Virtual file system

1. Giới thiệu chung

Trước tiên chúng ta cần phải hiểu về khái  niệm file system là gì?

File system là một hệ thống tổ chức, lưu trữ file của người dùng. Các file system ta thường hay gặp như FAT12, FAT32, EXT4,…Mỗi một định dạng đó sẽ quy định cách tổ chức dữ liệu tại ổ cứng và mã hóa lại dữ liệu đó để tạo ra hệ thống file cho người dùng.

Virtual file system là một lớp abstraction chung của các file system. Nó có tác dụng tạo ra một hệ thống file duy nhất cho hệ thống. Ví dụ như khi chúng ta muốn kết nối USB có định dạng FAT32 vào hệ thống mà có ổ cứng theo định dạng NTFS, khi này virtual file system giúp thống nhất các định dạng đó để thống nhất trong việc đọc ghi dữ liệu.

2. Các chức năng của Virtual file system

  • Tạo ra một hệ thống đọc ghi file đồng nhất trong cả hệ thống
  • Cung cấp các Pseudo file system. Ví dụ các file trong thư mục /proc , /sys, /tmp
  • Hỗ trợ network file system
  • Cung cấp giao diện file cho người dùng
  • Hỗ trợ mở file, đóng file,…
  • Quản lý permission, quyền sở hữu file
  • Catched meta data của file vào trong RAM. Giúp tăng tốc việc đọc ghi file,..

3.  Virtual file system Architecture

File Object (struct file)

  • Chứa thông tin để mô tả phương thức để process tương tác với file
  • Được tạo ra khi process thực hiện open 1 file
  • Không được lưu trữ sẵn trong ổ cứng. Chỉ được giải phóng khi các process mở file kết thúc

Dentry object

  • Mô tả cấu trúc (bố cục) của file trong thư mục
  • Được tạo ra một loạt mỗi khi process mở 1 file, chứa danh sách các file nằm trong thư mục đó
  • Không luu trữ sẵn trong ổ cứng

Ví dụ: Khi người dùng truy cập vào file “exam” trong đường dần /home/admin/exam. 3 dentry sẽ được tạo ra lần lượt là “/”, “/home”, “/home/admin”

  • Các dentry trên được free khi và chỉ khi tất cả các file trong thư mục không còn được process nào mở file đó nữa.

Chú ý: Do một hệ thống có rất nhiều file và thư mục, nên các dentry và file object chỉ được tạo ra khi có procees truy cập file

Inode object

  • Chứa các thông tin để quản lý file trong OS
  • Định danh bởi một số riêng biệt trong OS. Số này được tạo ra bởi OS và không lưu trên ổ cứng

1.1.1          Super block object

Chứa các thông tin chung của loại file system:

  • Kích thước tối đa tối đa của 1 file
  • Chiều dài của 1 block trong ổ cứng
  • Kiểu mã hóa dữ liệu

Ví dụ: FAT

  • Block size: 512 byte
  • Max file size: 4GB
  • Không hỗ trợ recover data khi ghi file bị lỗi

Mỗi quan hệ Virtual file system và core data

Process chỉ liên kết với File object, từ file object các file được tổ chức theo thư mục trỏ tới Dentry object. Do tất cả mọi thứ trên Linux đều là file nên cả File object và Dentry object đều trỏ tới Inode object. Từ Inode object sẽ trỏ tới Superblock object để tổ chức file vật lý trên ổ cứng.

4. Luồng hoạt động của VFS

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top