Tải bản đầy đủ (.pdf) (8 trang)

Bài giảng Hệ điều hành Unix: Chương 7 - Ngô Duy Hòa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (789.73 KB, 8 trang )

Nội dung cần học
Bài 7. Linux file system
Ngơ Duy Hịa – KHMT - CNTT








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.


File & Inode
1. Các khái niệm cơ bản

• Trong Unix/Linux: 1 file ↔ 1 Inode.
• Cấu trúc Inode tương tự nhau,nhưng phụ
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


Quản lý bộ nhớ trống

Dùng danh sách liên kết & bảng chỉ mục

• 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



Super blocks

Cấu trúc phân vùng






Boot block: chứa thơng tin khởi động.
Super block: chứa thông tin về phân vùng.
Inode List: danh sách Inodes trong filesystem.
Data List: danh sách các khối blocks dữ liệu.








Kích thướng phân vùng.
Số blocks dữ liệu chưa sử dụng.
Danh sách các blocks dữ liệu chưa sử dụng.
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


Kiến trúc FFS

Data layout on hard disk
track2
track1
track0

Sector 0
Sector 1

• Đĩa được chia thành các phân vùng
(partition) là tập các cylinder liên tiếp.
• FFS chia phân vùng thành các nhóm
(group) các cylinder liên tiếp.
• Trong mỗi nhóm đều có:
– Super block.
– Free data block & Free inode Bitmap.
– Fixed inodes table.
– Data blocks table.


Group cylinder

Các chức năng mở rộng





head 0

Cylinder 0
platters

head 1

Cylinder 1
head 2

Cấu trúc thư mục trong FFS

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 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
3. File I/O

• Unbuffered I/O functions.
• Các hàm system call làm việc với file
thông qua file descriptor:
– Standard input: STDIN_FILENO.
– Standard output: STDOUT_FILENO.
– Standard error: STDERR_FILENO.

• Sử dụng header:
– <unistd.h>
– <fcntl.h>

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

Các hàm cơ bản

Thank you!

8



×