. Hình 12.4 view Schematic của một hệ thống tập tin ảo
Bốn loại đối tượng chính được xác định bởi VFS Linux là:
. • Các đối tượng inode, đại diện cho một tập tin cá nhân
. • Các đối tượng tập tin, đại diện cho một tập tin mở
• Các đối tượng superblock, mà đại diện cho toàn bộ hệ thống tập tin.
• Các đối tượng dentry, đại diện cho một mục nhập thư mục cá nhân.
Đối với mỗi bốn loại đối tượng, các VFS định nghĩa một tập hợp các hoạt động có thể được thực hiện. Mỗi đối tượng của một trong những loại có chứa một con trỏ đến một bảng chức năng. Các bảng liệt kê chức năng các địa chỉ của các chức năng thực tế mà thực hiện các hoạt động quy định cho đối tượng cụ thể. : Ví dụ, một API được viết tắt cho một số các hoạt động cho các đối tượng tập tin bao gồm
(...) • int mở - Mở một tập tin.
• int close (...) - Đóng một tập tin đã được mở sẵn.
• ssize t đọc (...) - Đọc từ một tập tin.
• ssize t write (...) - Viết thư cho một tập tin.
• int mmap (...) - Bộ nhớ-ánh xạ một tập tin.
An thực hiện các đối tượng tập tin cho một cụ thể loại tập tin được yêu cầu để thực hiện mỗi chức năng được quy định trong định nghĩa của các đối tượng tập tin. Như vậy, các lớp phần mềm VFS có thể thực hiện một thao tác trên một trong các đối tượng này bằng cách gọi hàm thích hợp từ bảng chức năng của đối tượng, mà không cần phải biết trước chính xác những gì loại của đối tượng đó là đối phó với. VFS không biết, hoặc không quan tâm, cho dù một inode đại diện cho một tập tin trên đĩa, một tập tin thư mục, hoặc một tập tin từ xa. Các chức năng thích hợp cho việc đọc () hoạt động của tập tin đó sẽ luôn luôn được ở cùng một vị trí trong bảng chức năng của nó, và các lớp VFSsoftware sẽ gọi là chức năng mà không quan tâm đến cách dữ liệu được thực sự đọc.
đang được dịch, vui lòng đợi..
