Hệ thống FAT32
Như đã trình bày ở phần trước, đĩa cứng luôn bắt đầu bằng
MBR, tiếp sau đó là các partition.
MBR
|
partition
|
partition
|
….
|
partition
|
Có hai loại partition là primary partition và extended
partition. Extended partition có thể được chia tiếp thành các logical
partition. Như vậy, ổ đĩa (C:\, D:\, E:\...v.v) có thể là primary partition hoặc
logical partition. Xem hình vẽ minh họa bên dưới.
Mỗi một ổ đĩa logic sẽ sử dụng một hệ thống quản lý tập tin
(file system) duy nhất để quản lý các tập tin. Ví dụ ổ đĩa C:\ là FAT32, D:\ là NTFS, E:\ là NTFS.
Phần này tập
trung trình bày về hệ thống FAT (cụ thể là FAT32).
FAT (File Allocation Table) là hệ thống quản lý tập tin được
phát triển bởi Microsoft vào cuối những năm 1970 – đầu những năm 1980. Hệ điều
hành MS-DOS của Microsoft là hệ điều hành đầu tiên sử dụng hệ thống FAT.
Theo thời gian, hệ thống quản lý tập tin này luôn được nâng
cấp để hỗ trợ nhiều loại đĩa có dung lượng lớn hơn. Ví dụ: đĩa cứng, đĩa USB,
thẻ nhớ…v.v.
Tất cả các hệ điều hành Windows và hầu hết các hệ điều hành
Unix đều hỗ trợ hệ thống FAT.
Hệ thống FAT có ba loại: FAT12, FAT16 và FAT32. Sự khác biệt
chủ yếu của ba loại này là kích thước của mỗi entry. (entry là một đơn vị lưu
trữ, được sử dụng để lưu địa chỉ của các cluster). Mỗi entry trong hệ thống
FAT12 là 12 bit, FAT16 là 16 bit và FAT32 là 32 bit.
Cấu trúc của một ổ đĩa logic định dạng theo hệ thống FAT gồm
ba vùng:
-
Vùng đầu tiên là Reserved, chứa các thông tin mô
tả của hệ thống quản lý tập tin. Vùng Reserved bắt đầu từ sector 0, kích thước
của vùng này được lưu trong Boot Sector của ổ đĩa logic (trong VBR). Với FAT12,
FAT16 vùng này thường là một sector, với FAT32 gồm nhiều sector.
-
Vùng FAT: chứa hai FAT Structure, vùng này bắt đầu
ngay sau vùng Reserved, gồm: một FAT Structure chính, một FAT Structure dự
phòng. Kích thước của vùng FAT được tính dựa vào số lượng FAT Structure nhân với
kích thước của mỗi FAT Structure, hai thông tin này được lưu trong Boot Sector.
-
Vùng Data chứa các cluster lưu trữ nội dung của
tập tin. Vùng này bắt đầu ngay sau vùng FAT. Kích thước được tính bằng tổng
sector của ổ đĩa logic trừ đi sector bắt đầu của vùng Data. Tổng số sector của ổ
đĩa được lưu trong Boot Sector.
Trong vùng Data, có một cấu trúc dữ liệu quan trọng là Root
Directory. Root Directory là siêu dữ liệu của tập tin (file metadata).
Trong hệ thống FAT, mỗi thư mục hoặc tập tin (gọi chung là tập
tin) sẽ có một cấu trúc dữ liệu để mô tả nó, gọi là Directory Entry. Directory
Entry chứa tên tập tin, kích thước, địa chỉ bắt đầu của vùng nội dung và một số
thông tin khác.
Đối với FAT12/FAT16, Root Directory luôn nằm ở phần đầu tiên
của vùng Data, có kích thước cố định, kích thước này được lưu trong Boot Sector.
Xem hình minh họa dưới đây.
Với FAT32, vị trí bắt đầu của Root Directory không cố định,
nó có thể nằm ở vị trí bất kì trong vùng Data, kích thước của Root Directory
cũng không cố định, nó có thể tăng lên tùy ý. Địa chỉ bắt đầu của Root
Directory được lưu trong Boot Sector, kích thước của Root Directory được tính dựa
vào FAT Structure. Xem hình minh họa dưới đây.
Cập nhật: 2013/4/1
------------------------------------
Tham khảo
[3] FAT32_Hardware White Pa per