Thông tin tài liệu:
Bài giảng Hệ điều hành Unix chương 7 trình bày về Linux file system. Các nội dung cần học trong chương này gồm có: Các khái niệm cơ bản, các loại filesystem cơ bản, virtual filesystem, file I/O, file standard library,... Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ điều hành Unix: Chương 7 - Ngô Duy Hòa
Nội dung cần học
• Các khái niệm cơ bản.
• Các loại filesystem cơ bản.
Bài 7. Linux file system • Virtual Filesystem.
• File I/O.
Ngô Duy Hòa – KHMT - CNTT • File standard library.
• …
File & Inode
• Trong Unix/Linux: 1 file ↔ 1 Inode.
• Cấu trúc Inode tương tự nhau,nhưng phụ
1. Các khái niệm cơ bản thuộc vào phiên bản OS.
• Dữ liệu file được xác định thông qua địa
chỉ các block. Trong 1 Inode:
– 10 (ufs) hoặc 12 (ext2) địa chỉ trực tiếp.
– 3 địa chỉ kế tiếp tương ứng với 3 cấp địa chỉ
gián tiếp.
Tổ chức dữ liệu theo chỉ mục Inode – Index Node
1
Dùng danh sách liên kết & bảng chỉ mục
Quản lý bộ nhớ trống
• Dữ liệu trong HDD được chia thành các khối
(block data), địa chỉ các block này là 1 số 4 byte.
• File cũng được chia thành các khối dữ liệu và
được sắp đặt không liên tục trong HDD.
• Có 3 cách quản lý bộ nhớ trống (các địa chỉ
block chưa sử dụng):
– Dùng danh sách liên kết.
– Dùng bảng chỉ mục.
– Dùng vector bitmap.
Kết hợp 2 phương pháp trên Dùng vector Bitmap
Disk partitions
2. Các loại filesystem cơ bản
2
Cấu trúc phân vùng Super blocks
• Boot block: chứa thông tin khởi động. • Kích thướng phân vùng.
• Super block: chứa thông tin về phân vùng. • Số blocks dữ liệu chưa sử dụng.
• Inode List: danh sách Inodes trong filesystem. • Danh sách các blocks dữ liệu chưa sử dụng.
• Data List: danh sách các khối blocks dữ liệu. • Kích thước danh sách Inodes.
• Số Inodes chưa sử dụng.
• Danh sách các Inodes chưa sử dụng.
List free inodes & free blocks
s5fs directory
• Directory la 1 bảng các thành phần (entry table).
• Mỗi entry table đặc trưng cho 1 file:
– File inode (2 bytes).
– File name (14 bytes).
3
Data layout on hard disk
Kiến trúc FFS track2
Sector 0
Sector 1 track1
track0
• Đĩa được chia thành các phân vùng head 0
(partition) là tập các cylinder liên tiếp.
• FFS chia phân vùng thành các nhóm
Cylinder 0
(group) các cylinder liên tiếp.
platters
• Trong mỗi nhóm đều có: head 1
– Super block.
– Free data block & Free inode Bitmap.
Cylinder 1
– Fixed inodes table.
head 2
– Data blocks table.
Cấu trúc thư mục trong FFS
Group cylinder
Các chức năng mở rộng Ext2 file system
• Hỗ trợ file name với 255 ký tự.
• Hỗ trợ làm việc với symbolic link.
• Hỗ trợ file locking
• Hỗ trợ file rename.
4
Virtual File System
Nguyên tắc làm việc
• Khi 1 file được yêu cầu dữ liệu Æ giá trị inode
của file được lưu trữ trong bộ nhớ chính trong 1
in-core inode (vnode).
• Cấu trúc vnode có các thành phần cơ bản sau:
– v_data: trỏ đến dữ liệu trong filesystem thực (chính là
inode của file).
– v_op : thao tác thực hiện với dữ liệu
– v_vfsp: con trỏ đến filesystem thực mà chứa file đang
được yêu cầu dữ liệu.
–…
Một số đặc điểm
• Unbuffered I/O functions.
• Các hàm system call làm việc với file
3. File I/O thông qua file descriptor:
– Standard input: STDIN_FILENO.
– Standard output: STDOUT_FILENO.
– Standard error: STDERR_FILENO.
• Sử dụng header:
–
–
5
Các hàm làm việc với file
6
Các hàm làm việc với file (tiếp)
Các hàm làm việc với Inode
7
Đặc điểm
• Sử dụng con trỏ FILE*
4. Standard Library
...