✨Hệ thống tập tin
Trong điện toán, khái niệm hệ thống tập tin hoặc hệ thống tệp () được dùng để chỉ các phương pháp và cấu trúc dữ liệu mà một hệ điều hành sử dụng để theo dõi các tập tin trên ổ đĩa hoặc các phân vùng. Hệ thống tập tin cũng kiểm soát cách lưu trữ và truy xuất dữ liệu. Không có hệ thống tập tin, thông tin được lưu trong các phương tiện lưu trữ sẽ là một khối dữ liệu lớn mà không có cách nào để biết nơi một phần thông tin dừng lại và phần tiếp theo bắt đầu. Bằng cách tách dữ liệu thành từng mảnh và đặt tên cho mỗi mảnh, thông tin dễ dàng được phân tách và xác định. Lấy tên từ cách đặt tên cho các hệ thống quản lý thông tin dùng giấy, mỗi nhóm dữ liệu được gọi là "tập tin". Cấu trúc và quy tắc logic được sử dụng để quản lý các nhóm thông tin và tên của chúng được gọi là "hệ thống tập tin".
Có nhiều loại hệ thống tập tin khác nhau. Mỗi loại có cấu trúc và logic khác nhau, thuộc tính của tốc độ, tính linh hoạt, bảo mật, kích thước và nhiều hơn nữa. Một số hệ thống tập tin đã được thiết kế để sử dụng cho các ứng dụng cụ thể. Ví dụ, hệ thống tập tin ISO 9660 được thiết kế dành riêng cho đĩa quang.
Hệ thống tập tin có thể được sử dụng trên nhiều loại thiết bị lưu trữ khác nhau sử dụng các loại phương tiện khác nhau. Kể từ năm 2019, các ổ đĩa cứng đã là thiết bị lưu trữ chính và được dự kiến sẽ duy trì trong tương lai gần. Các loại phương tiện khác được sử dụng bao gồm SSD, băng từ và đĩa quang. Trong một số trường hợp, chẳng hạn như với tmpfs (temporary file, tập tin tạm), bộ nhớ chính của máy tính (bộ nhớ truy cập ngẫu nhiên, RAM) được sử dụng để tạo một hệ thống tập tin tạm thời để sử dụng ngắn hạn.
Một số hệ thống tập tin được sử dụng trên các thiết bị lưu trữ dữ liệu cục bộ; những loại khác cung cấp quyền truy cập tệp qua giao thức mạng (ví dụ: máy khách NFS, SMB hoặc 9P). Một số hệ thống tệp là "ảo", có nghĩa là "tập tin" được cung cấp (được gọi là tập tin ảo) được tính theo yêu cầu (chẳng hạn như procfs và sysfs) hoặc chỉ đơn thuần là ánh xạ vào hệ thống tập tin khác được sử dụng làm kho lưu trữ. Hệ thống tập tin quản lý quyền truy cập vào cả nội dung của tập tin và siêu dữ liệu về các tập tin đó. Nó có trách nhiệm sắp xếp không gian lưu trữ; độ tin cậy, hiệu quả và điều chỉnh liên quan đến phương tiện lưu trữ vật lý là yếu tố quan trọng cần xem xét khi thiết kế.
Nguồn gốc của thuật ngữ
Trước khi sự ra đời của máy tính, khái niệm file system (hệ thống tập tin) đã được sử dụng để mô tả một phương pháp lưu trữ và trích xuất tài liệu giấy. Đến năm 1961, thuật ngữ này được mở rộng cho việc quản lý tập tin trên máy tính. Đến năm 1964, thuật ngữ mới được sử dụng rộng rãi.
Kiến trúc
Một hệ thống tập tin bao gồm hai hoặc ba lớp. Đôi khi các lớp được phân tách rõ ràng và đôi khi các chức năng được kết hợp.
Lớp hệ thống tập tin logic (logical file system) chịu trách nhiệm tương tác với ứng dụng người dùng. Nó cung cấp giao diện chương trình ứng dụng (API) cho các thao tác với tập tin như OPEN
, CLOSE
, READ
,... và chuyển thao tác được yêu cầu đến lớp bên dưới để xử lý. Hệ thống tập tin logic quản lý việc mở các mục trong bảng tập tin (file table) và các file descriptor của từng tiến trình (process)." Lớp này cung cấp "quyền truy cập tập tin, hoạt động thư mục, [và] bảo mật và bảo vệ."
Lớp tùy chọn thứ hai là hệ thống tập tin ảo (virtual file system). Giao diện này hỗ trợ nhiều đối tượng (instance) đồng thời của các hệ thống tập tin vật lý, mỗi phiên đối tượng khi đó gọi là hệ thống tập tin thực thi (file system implementation). HFS Plus là một siêu dữ liệu và trường hợp bảo quản nhưng (thường) case-insensitive hệ thống tập tin. Do nguồn gốc Unix của macOS, phân quyền Unix đã được thêm vào HFS Plus. Các phiên bản sau của HFS Plus đã thêm nhật ký để ngăn ngừa tham nhũng cấu trúc hệ thống tập tin và đưa ra một số tối ưu hóa cho các thuật toán phân bổ nhằm cố gắng tự động chống phân mảnh các tập tin mà không yêu cầu trình chống phân mảnh bên ngoài.
Tên tập tin có thể lên tới 255 ký tự. HFS Plus sử dụng Unicode để lưu trữ tên tập tin. Trên macOS, kiểu tập tin có thể đến từ mã loại, được lưu trữ trong siêu dữ liệu của tập tin hoặc phần mở rộng tập tin.
HFS Plus có ba loại liên kết: liên kết cứng kiểu Unix, liên kết tượng trưng kiểu Unix và bí danh. Các bí danh được thiết kế để duy trì một liên kết đến tập tin gốc của chúng ngay cả khi chúng được di chuyển hoặc đổi tên; chúng không được giải thích bởi chính hệ thống tập tin mà bởi mã File Manager trong vùng người dùng.
macOS 10.13 High Sierra, được công bố vào ngày 5 tháng 6 năm 2017 tại sự kiện WWDC của Apple, sử dụng Apple File System trên các ổ đĩa SSD.
macOS cũng hỗ trợ hệ thống tệp UFS, xuất phát từ Unix Fast File System BSD thông qua NeXTSTEP. Tuy nhiên, kể từ Mac OS X Leopard, macOS không còn có thể được cài đặt trên ổ UFS, hệ thống trước Leopard cũng không thể cài đặt trên ổ UFS được nâng cấp lên Leopard. Kể từ khi Mac OS X Lion các hỗ trợ UFS đã bị loại bỏ hoàn toàn.
Các phiên bản mới hơn của macOS có khả năng đọc và ghi vào các hệ thống tập tin FAT cũ (16 và 32) phổ biến trên Windows. Chúng cũng có khả năng đọc các hệ thống tập tin NTFS mới hơn của Windows. Để ghi vào hệ thống tập tin NTFS trên các phiên bản macOS trước phần mềm bên thứ ba của Mac OS X Snow Leopard là cần thiết. Mac OS X 10.6 (Snow Leopard) và sau đó cho phép ghi vào hệ thống tập tin NTFS, nhưng chỉ sau khi thay đổi cài đặt hệ thống không tầm thường (phần mềm bên thứ ba tồn tại tự động hóa việc này).
Cuối cùng, macOS hỗ trợ đọc và ghi hệ thống tập tin exFAT kể từ Mac OS X Snow Leopard, bắt đầu từ phiên bản 10.6.5.
Microsoft Windows
phải|nhỏ|300x300px| Danh sách thư mục trong shell lệnh [[Microsoft Windows|Windows ]] Windows sử dụng các hệ thống tập tin FAT, NTFS, exFAT, Live File System và ReFS (những thứ cuối cùng chỉ được hỗ trợ và sử dụng được trong Windows Server 2012, Windows Server 2016, Windows 8, Windows 8.1 và Windows 10; Windows không thể khởi động từ nó).
Windows sử dụng một ký tự ổ đĩa trừu tượng ở cấp độ người dùng để phân biệt một đĩa hoặc phân vùng khác. Ví dụ: đường dẫn C:\WINDOWS đại diện cho một thư mục WINDOWS trên phân vùng được đại diện bởi chữ C. Ổ C: thường được sử dụng nhiều nhất cho phân vùng ổ đĩa cứng chính, trên đó Windows thường được cài đặt và từ đó khởi động. "Truyền thống" này đã trở nên ăn sâu đến mức các lỗi tồn tại trong nhiều ứng dụng đưa ra giả định rằng ổ đĩa mà hệ điều hành được cài đặt là C. Việc sử dụng các ký tự ổ đĩa và truyền thống sử dụng "C" làm ký tự ổ đĩa cho phân vùng ổ đĩa cứng chính, có thể bắt nguồn từ MS-DOS, trong đó các chữ cái A và B được dành riêng cho tối đa hai ổ đĩa mềm. Điều này đến lượt nó bắt nguồn từ CP/M trong những năm 1970 và cuối cùng là từ CP / CMS của IBM năm 1967.
FAT
Họ hệ thống tập tin FAT được hỗ trợ bởi hầu hết các hệ điều hành cho máy tính cá nhân, bao gồm tất cả các phiên bản Windows và MS-DOS/PC DOS, OS/2 và DR-DOS. PC-DOS là phiên bản OEM của MS-DOS, MS-DOS ban đầu được dựa trên 86-DOS của SCP. DR-DOS dựa trên Concurrent DOS của Digital Research, phiên bản kế thừa của CP/M-86. Do đó, các hệ thống tập tin FAT rất phù hợp dưới dạng định dạng trao đổi chung giữa các máy tính và thiết bị thuộc hầu hết mọi loại và độ tuổi.
hệ thống tập tin FAT theo dõi nguồn gốc của nó trở lại tiền thân FAT 8 bit (không tương thích) trong Standalone Disk BASIC và dự án MDOS/MIDAS tồn tại trong thời gian ngắn.
Trong những năm qua, hệ thống tập tin đã được mở rộng từ FAT12 sang FAT16 và FAT32. Các tính năng khác nhau đã được thêm vào hệ thống tệp bao gồm thư mục con, hỗ trợ bảng mã, thuộc tính mở rộng và tên tập tin dài. Các bên thứ ba như Digital Research đã kết hợp hỗ trợ tùy chọn để xóa tracking và các lược đồ bảo mật đa người dùng dựa trên ổ đĩa/thư mục/tập tin để hỗ trợ mật khẩu và quyền truy cập tập tin và thư mục như quyền đọc/ghi/thực thi/xóa. Hầu hết các tiện ích mở rộng này không được Windows hỗ trợ.
Các hệ thống tập tin FAT12 và FAT16 có giới hạn về số lượng mục trong thư mục gốc của hệ thống tập tin và có các hạn chế về kích thước tối đa của các ổ đĩa hoặc phân vùng có định dạng FAT.
FAT32 giải quyết các giới hạn trong FAT12 và FAT16, ngoại trừ giới hạn kích thước tập tin gần bằng 4GB, nhưng vẫn còn hạn chế so với NTFS.
FAT12, FAT16 và FAT32 cũng có giới hạn tám ký tự cho tên tập tin và ba ký tự cho phần mở rộng (chẳng hạn như.exe). Điều này thường được gọi là giới hạn tên tệp 8.3. VFAT, một phần mở rộng tùy chọn cho FAT12, FAT16 và FAT32, được giới thiệu trong Windows 95 và Windows NT 3.5, cho phép các tên tập tin dài (LFN) được lưu trữ trong hệ thống tập tin FAT theo kiểu tương thích ngược.
NTFS
NTFS, được giới thiệu với hệ điều hành Windows NT vào năm 1993, cho phép kiểm soát quyền dựa trên ACL. Các tính năng khác cũng được NTFS hỗ trợ bao gồm liên kết cứng, nhiều luồng tập tin, lập chỉ mục thuộc tính, theo dõi hạn ngạch, tập tin thưa thớt, mã hóa, nén và các điểm lặp lại (thư mục hoạt động như điểm gắn kết cho các hệ thống tập tin khác, liên kết tượng trưng, liên kết, liên kết lưu trữ từ xa).
exFAT
exFAT là một hệ thống tập tin độc quyền và bằng sáng chế được bảo vệ bằng với lợi thế nhất định so với NTFS đối với hệ thống tập tin cấp cao.
exFAT không tương thích ngược với các hệ thống tập tin FAT như FAT12, FAT16 hoặc FAT32. hệ thống tập tin được hỗ trợ với các hệ thống Windows mới hơn, như Windows Server 2003, Windows Vista, Windows 2008, Windows 7, Windows 8 và gần đây, hỗ trợ đã được thêm cho Windows XP.
exFAT được hỗ trợ trong macOS bắt đầu với phiên bản 10.6.5 (Snow Leopard). Hỗ trợ trong các hệ điều hành khác rất ít do Microsoft chưa công bố các thông số kỹ thuật của hệ thống tập tin và việc triển khai hỗ trợ cho exFAT cần phải có giấy phép. exFAT là hệ thống tập tin duy nhất được hỗ trợ đầy đủ trên cả macOS và Windows có thể lưu các tệp lớn hơn 4GB.
Hạn chế
Chuyển đổi loại hệ thống loại
Có thể có lợi hoặc cần thiết để có các tập tin trong một hệ thống tập tin khác với hệ thống hiện tại. Lý do bao gồm nhu cầu tăng yêu cầu không gian vượt quá giới hạn của hệ thống tập tin hiện tại. Độ sâu của đường dẫn có thể cần phải tăng lên ngoài giới hạn của hệ thống tập tin. Có thể có những cân nhắc về hiệu suất hoặc độ tin cậy. Cung cấp quyền truy cập vào hệ điều hành khác không hỗ trợ hệ thống tập tin hiện có là một lý do khác.
Chuyển đổi tại chỗ
Trong một số trường hợp, việc chuyển đổi có thể thực hiện tại chỗ, mặc dù việc di chuyển hệ thống tập tin có phần bảo thủ hơn, vì nó liên quan đến việc tạo một bản sao của dữ liệu và được khuyến nghị. Trên Windows, hệ thống tập tin FAT và FAT32 có thể được chuyển đổi sang NTFS thông qua tiện ích convert.exe, nhưng không thể ngược lại. Trên Linux, ext2 có thể được chuyển đổi thành ext3 (và được chuyển đổi trở lại) và ext3 có thể được chuyển đổi thành ext4 (nhưng không thể quay lại), và cả ext3 và ext4 có thể được chuyển đổi thành btrfs và chuyển đổi lại cho đến khi thông tin hoàn tác đã xóa. Các chuyển đổi này có thể do sử dụng cùng định dạng cho chính dữ liệu tập tin và di chuyển siêu dữ liệu vào không gian trống, trong một số trường hợp sử dụng hỗ trợ tập tin thưa thớt.
Di chuyển sang một hệ thống tệp khác
Di chuyển có nhược điểm là cần thêm không gian mặc dù có thể nhanh hơn. Trường hợp tốt nhất là nếu có không gian chưa sử dụng trên phương tiện sẽ chứa hệ thống tập tin cuối cùng.
Ví dụ: để di chuyển hệ thống tập tin FAT32 sang hệ thống tập tin ext2. Đầu tiên tạo một hệ thống tập tin ext2 mới, sau đó sao chép dữ liệu vào hệ thống tập tin, sau đó xóa hệ thống tập tin FAT32.
Một cách khác, khi không có đủ không gian để giữ lại hệ thống tập tin gốc cho đến khi hệ thống tập tin mới được tạo, là sử dụng vùng làm việc (chẳng hạn như bộ nhớ lưu động). Điều này mất nhiều thời gian hơn nhưng một bản sao lưu dữ liệu là một tác dụng phụ tốt đẹp.
Đường dẫn tập tin dài và tên tập tin dài
Trong các hệ thống tập tin phân cấp, các tập tin được truy cập bằng một đường dẫn là danh sách phân nhánh của các thư mục chứa tập tin. Các hệ thống tập tin khác nhau có các giới hạn khác nhau về độ sâu của đường dẫn. hệ thống tập tin cũng có giới hạn về độ dài của một tên tập tin riêng lẻ.
Sao chép các tập tin có tên dài hoặc nằm trong các đường dẫn có độ sâu đáng kể từ hệ thống tập tin này sang hệ thống tập tin khác có thể gây ra kết quả không mong muốn. Điều này phụ thuộc vào cách tiện ích thực hiện sao chép xử lý sự khác biệt.