Đôi khi chúng ta đề cập đến những điều đó filesystems
, bởi vì đôi khi những thư mục đó là điểm gắn kết. Quá nhiều cho câu hỏi duy nhất bạn hỏi ...
filesystem
có thể đề cập đến hai điều khác nhau ... hoặc thực sự là hai khía cạnh rất khác nhau của cùng một điều:
- Cấu trúc logic được sử dụng để tổ chức dữ liệu trên phương tiện lưu trữ.
- Phương pháp được HĐH sử dụng để cung cấp các quy trình truy cập dữ liệu thống nhất.
Khái niệm về tập tin và thư mục là một phép ẩn dụ. Đối với một máy tính chỉ có dữ liệu và tất cả các phương tiện truyền thông không là gì ngoài các thiết bị có thể chứa dữ liệu. Một số thiết bị cho phép đọc và ghi dữ liệu (ví dụ: HDD), các thiết bị khác chỉ cho phép đọc dữ liệu (ví dụ: CD-ROM) và thậm chí có những thiết bị chỉ cho phép ghi dữ liệu (ví dụ: máy in). Chúng tôi sử dụng phép ẩn dụ tập tin và thư mục để cấu trúc dữ liệu, để chúng tôi có thể truy cập vào các khối dữ liệu nhỏ, thay vì mọi thứ cùng một lúc.
Các hệ thống tập tin chúng tôi đưa vào phương tiện lưu trữ, ví dụ ext4, xfs, fat làm phần cấu trúc. Chúng tôi sử dụng chúng để đặt nhãn trên khối dữ liệu (tệp) và để có một danh sách có cấu trúc nhất quán của tất cả các nhãn (thư mục). Danh sách có cấu trúc thực sự là một cái cây. Khía cạnh quan trọng nhất là một cái cây có chính xác một khởi đầu, gốc của nó. Duy trì cấu trúc này và đảm bảo dữ liệu vẫn còn có thể truy cập được là nhiệm vụ, đó là lý do tại sao không chỉ có một hương vị của hệ thống tập tin.
Khía cạnh khác của các hệ thống tập tin là, đó là công việc của HĐH để làm cho dữ liệu được lưu trữ trên các thiết bị lưu trữ có thể truy cập được đối với tất cả các chương trình. Điều này được thực hiện bởi hai điều:
HĐH cung cấp chính xác một giao diện (lập trình) để truy cập và tương tác với các tệp và thư mục. Đối với các chương trình / quy trình, không quan trọng hệ thống tệp trên thiết bị lưu trữ là ext2, xfs, fat hay bất cứ thứ gì. Progams / process truy cập các tập tin và thư mục một cách thống nhất.
HĐH tổ chức tất cả các phương tiện lưu trữ, tức là hệ thống tập tin của họ, trong một cấu trúc siêu cấp. Các chương trình truy cập các tệp và thư mục thông qua cấu trúc siêu cấp này và không cần phải tương tác trực tiếp với các thiết bị lưu trữ. Bằng cách đó, các chương trình không cần quan tâm đến việc dữ liệu thực sự nằm trên thiết bị nào. Cấu trúc siêu cấp này thường được gọi là "hệ thống tệp ảo" của hạt nhân.
Thêm hệ thống tệp của thiết bị lưu trữ vào hệ thống tệp ảo được gọi là "gắn kết" hệ thống tệp. Khi Linux của bạn khởi động, kernel sẽ tạo ra hệ thống tập tin ảo (VFS). Ngay sau khi tạo, nó trống và chỉ bao gồm điểm vào của nó, hay còn gọi là gốc của nó, được phiên âm /
. Sau đó, kernel gắn kết một hệ thống tập tin ở gốc của VFS. Đây là một ramdisk hoặc ngay lập tức một hệ thống tập tin trên một phân vùng trên ổ cứng. Vì nó được thêm vào thư mục gốc của VFS, phân vùng này thường được gọi là hệ thống tập tin gốc.
Bây giờ đến phần mà các dòng bị mờ và chúng ta thấy rằng các hệ thống tệp trên các thiết bị lưu trữ và VFS của kernel thực sự là hai khía cạnh của cùng một tác vụ HĐH: Với việc gắn hệ thống tệp gốc, VFS chứa nhiều tệp và thư mục, tất cả đều có tồn tại trên phân vùng gốc. Tuy nhiên, mọi thư mục có thể trở thành "điểm gắn kết". Điểm gắn kết là nơi VFS đặt điểm nhập cảnh vào hệ thống tệp trên thiết bị lưu trữ. Điều này có nghĩa là bất cứ khi nào chúng tôi gắn hệ thống tệp trên một thư mục, chúng tôi sẽ nói với VFS rằng thay vì truy cập dữ liệu được lưu trữ trong thư mục đó, chúng tôi muốn truy cập dữ liệu trên một thiết bị lưu trữ khác. Điểm gắn kết thường là các thư mục trống, do đó chúng tôi không làm cho dữ liệu không thể truy cập được bằng cách gắn các hệ thống tệp khác lên trên.
Khi bạn cài đặt HĐH, tùy thuộc vào việc bạn muốn đặt tất cả dữ liệu vào một hệ thống tệp, sau đó trở thành hệ thống tệp gốc của bạn hay bạn muốn phân chia dữ liệu của mình giữa nhiều hệ thống tệp. Cái sau yêu cầu HĐH của bạn gắn kết tất cả các hệ thống tệp riêng lẻ, để làm cho tất cả dữ liệu có thể truy cập được. Làm thế nào bạn phân chia mọi thứ là một câu hỏi về cách bạn thiết kế hệ thống của bạn. Đây là lý do tại sao đôi khi các thư mục bạn biết từ cài đặt của bạn được gọi là hệ thống tập tin.
Đối với các máy tính chúng ta thường có ở nhà, việc chia cài đặt của bạn thành nhiều hệ thống tập tin là không cần thiết nữa. Vẫn có thể có lý do tốt để làm như vậy, nhưng điều này nằm ngoài phạm vi của bài đăng này.
Để giữ phần còn lại của bài đăng này ngắn: Phân vùng là một phương tiện khác để cấu trúc dữ liệu trên các thiết bị lưu trữ. Với các phân vùng, người ta sẽ khắc phục không gian lưu trữ liền kề từ một thiết bị lưu trữ vật lý và cung cấp chúng như các thiết bị lưu trữ riêng lẻ cho HĐH (trên đó người ta có thể đặt các hệ thống tệp để gắn vào VFS). Một lý do để làm điều này có thể là một người chỉ có một ổ cứng, nhưng muốn sử dụng nhiều hệ thống tập tin khác nhau. Phân vùng mà hệ thống tập tin gốc sống thường được gọi là phân vùng gốc.