cuudulieu
Administrator
Bạn có hiểu cách dữ liệu tệp được sắp xếp trên ổ cứng của máy tính không? Bạn có biết FAT là gì, sự khác nhau giữa FAT16 và FAT32 là gì? Bài viết sau có thể giúp bạn.
★ Chuẩn bị kiến thức
Sau khi đĩa được định dạng, hệ thống tệp cần sử dụng một số vùng đặc biệt để tổ chức dữ liệu riêng của nó, bao gồm: Bản ghi MasterBoot, Bảng phân vùng, Bản ghi khởi động. , File Allocation Table (cũng là tên của FAT) và thư mục gốc (Root Directory). Ở phần dưới, đĩa được chia thành các khối 512 byte, được gọi là các sector. Hệ thống tệp FAT kết hợp nhiều thành phần thành một cụm (Cụm) làm đơn vị cơ bản khi phân bổ dung lượng lưu trữ cho các tệp. Số lượng các thành phần trong cụm phải là sức mạnh của 2 (bạn có thể sử dụng lệnh CHKDSK hoặc SCANDISK để xem kích thước cụm trong hệ thống của bạn). Microsoft đề cập đến các cụm này dưới dạng đơn vị phân bổ (AllocationUnit) và SCANDISK sẽ cung cấp cho bạn kích thước của chúng, chẳng hạn như "16,384 byte cho mỗi đơn vị phân bổ". Thông thường, bạn có thể tìm thấy kích thước cụm bằng cách chia dung lượng đĩa 64K (65,536 byte) và làm tròn dữ liệu kết quả thành công suất gần nhất là 2. Ví dụ, một đĩa 1,2 GB có kích thước cụm có thể được chia cho 1,2 GB (1,258,291.2K) chia cho 65,536 để có được 19,2K và sau đó mang lại sức mạnh gần nhất của 32K.
★ FAT chuỗi
FAT là một cơ sở dữ liệu ghi lại kích thước của tệp trên đĩa và cụm tương ứng của nó. Nó có một Entry Point tương đối cho mỗi cluster. Hai bản ghi đầu tiên chứa dữ liệu của chính FAT. Các bản ghi thứ ba và tiếp theo được phân bổ như không gian đĩa được sử dụng bởi tệp. Bảng bản ghi FAT sẽ chứa một số giá trị đặc biệt để biểu diễn:
Khi một chương trình là cung cấp nội dung của một tập tin trên các yêu cầu hệ điều hành, hệ điều hành sẽ ghi tập tin bảng vào thư mục này để tìm số cụm đầu tiên của mình, và sau đó vào bảng FAT để tìm các bản ghi trong liên kết này ( Các cụm tiếp theo trong chuỗi). Hành động này được lặp lại cho đến khi cụm cuối cùng của tệp được tìm thấy và hệ điều hành có thể tính toán chính xác cụm nào thuộc về tệp và thứ tự của nó. Bằng cách này, hệ điều hành có thể cung cấp bất kỳ phần nào của tệp được chương trình yêu cầu. Cách tổ chức tệp này được gọi là Chuỗi FAT.
Trong hệ thống tệp FAT, tệp luôn được gán cho các cụm đơn vị nguyên. Trong một đĩa 1.2 GB với kích thước 32K cho mỗi cụm, một tệp 12 byte chỉ chứa các ký tự "Hello, World!" Vẫn chiếm 32K không gian đĩa. Trong cụm phần không sử dụng được gọi là mất mát (Slack), mất file nhỏ gần như toàn bộ cụm khá, trung bình, một tập tin sẽ được khoảng một nửa số tổn thất.
Trong một ổ đĩa cứng 850MB với 16K mỗi cụm, với kích thước tệp trung bình là 50K, khoảng 16% không gian đĩa cứng được phân bổ cho tệp thực sự bị lãng phí. Một chương trình nén đĩa cứng điển hình, chẳng hạn như DriveSpace, một cách để tăng dung lượng của ổ đĩa là chuyển đổi không gian ảo đó ra để sử dụng bởi các tệp khác .
★ Tính toán các lĩnh vực và cụm Sử
dụng sớm nhất trong DOS 1.0 là hệ thống tệp FAT 12 bit. (Hiện tại hệ thống FAT 12 bit vẫn được sử dụng trên đĩa mềm). Bắt đầu từ DOS 2.0, vì hỗ trợ cho đĩa cứng đã được thêm vào, phương pháp ghi 16-bit FAT được sử dụng thay thế. Năm 1987, vấn đề đầu tiên đã gặp phải Vấn đề này đã bắt nguồn từ hoạt động ở mức độ thấp của hệ điều hành, bởi vì hệ điều hành DOS sử dụng các tham số 16 bit để ghi lại số lượng các sector để truy cập các tập tin. Bit có thể được ghi ở mức tối đa 65.536 giá trị khác nhau và 65.536 lần 512 byte cho mỗi sector chỉ có thể được giải quyết tới 32MB. Đây là số lượng tối đa các sector mà hệ điều hành có thể ghi lại. Vào thời điểm đó, dung lượng đĩa cứng đã bắt đầu vượt quá con số này, vì vậy bắt đầu từ DOS 4.0, chế độ 32 bit được sử dụng để ghi lại số lượng các lĩnh vực cấp thấp.
Hiện nay, giới hạn dung lượng DOS 2GB không phải là vấn đề nghiêm trọng của hệ điều hành, mà là một vấn đề ứng dụng hiện có. Khi một đĩa cứng có dung lượng lớn hơn 2 GB, kích thước cụm của nó là 64K, là 65.536 byte. Nhưng tối đa 16-bit chỉ 65.535, 64K là quá lớn. Microsoft đã phát hiện ra rằng nhiều ứng dụng đơn giản giả định rằng số byte cho mỗi cụm có thể được nhồi vào một giá trị 16 bit.
Ngay cả khi không có vấn đề 16-bit như vậy khi dung lượng đĩa cứng là 2GB, hệ điều hành sẽ từ chối truy cập nhiều hơn ổ đĩa cứng 4GB. Trong hệ thống FAT16, hệ điều hành tự lưu trữ một số lĩnh vực trên mỗi cụm trong một byte trong bảng tham số đĩa đã thiết lập của nó. Số này phải là lũy thừa của 2 và giá trị của nó không được lớn hơn 256. Do đó, kích thước tối đa có thể có của một cụm là 128 sector, là 64K. Vì vậy, ngay cả khi không có giới hạn 2 GB, FAT16 chỉ có thể được sử dụng trong các ổ đĩa cứng có dung lượng 4GB trở xuống. Sau khi hệ thống FAT32 được phát hành, bảng bản ghi FAT và số lượng các sector hiện nay trở thành 32-bit. Điều này có nghĩa là bạn có thể truy cập dung lượng ổ đĩa cứng lớn nhất từ 2 đến 32 (tức là 4,294,967,296) nhân với 512 byte cho mỗi sector, dẫn đến 2 terabyte (2,199,023,255,552 byte).
★ Chuẩn bị kiến thức
Sau khi đĩa được định dạng, hệ thống tệp cần sử dụng một số vùng đặc biệt để tổ chức dữ liệu riêng của nó, bao gồm: Bản ghi MasterBoot, Bảng phân vùng, Bản ghi khởi động. , File Allocation Table (cũng là tên của FAT) và thư mục gốc (Root Directory). Ở phần dưới, đĩa được chia thành các khối 512 byte, được gọi là các sector. Hệ thống tệp FAT kết hợp nhiều thành phần thành một cụm (Cụm) làm đơn vị cơ bản khi phân bổ dung lượng lưu trữ cho các tệp. Số lượng các thành phần trong cụm phải là sức mạnh của 2 (bạn có thể sử dụng lệnh CHKDSK hoặc SCANDISK để xem kích thước cụm trong hệ thống của bạn). Microsoft đề cập đến các cụm này dưới dạng đơn vị phân bổ (AllocationUnit) và SCANDISK sẽ cung cấp cho bạn kích thước của chúng, chẳng hạn như "16,384 byte cho mỗi đơn vị phân bổ". Thông thường, bạn có thể tìm thấy kích thước cụm bằng cách chia dung lượng đĩa 64K (65,536 byte) và làm tròn dữ liệu kết quả thành công suất gần nhất là 2. Ví dụ, một đĩa 1,2 GB có kích thước cụm có thể được chia cho 1,2 GB (1,258,291.2K) chia cho 65,536 để có được 19,2K và sau đó mang lại sức mạnh gần nhất của 32K.
★ FAT chuỗi
FAT là một cơ sở dữ liệu ghi lại kích thước của tệp trên đĩa và cụm tương ứng của nó. Nó có một Entry Point tương đối cho mỗi cluster. Hai bản ghi đầu tiên chứa dữ liệu của chính FAT. Các bản ghi thứ ba và tiếp theo được phân bổ như không gian đĩa được sử dụng bởi tệp. Bảng bản ghi FAT sẽ chứa một số giá trị đặc biệt để biểu diễn:
- Cụm này trống, cho biết không có tệp nào được sử dụng trong đó ( giá trị là 0000H ở FAT16 );
- Cụm chứa một hoặc một số sector bị hỏng không thể sử dụng được ( giá trị là FFF7H ở FAT16 );
- Cụm này là cụm cuối cùng của tệp ( giá trị là FFFFH ở FAT16 );
- Nếu cluster đang được sử dụng, nhưng không phải là cụm cuối cùng của tập tin, thì FAT bảng kỷ lục sẽ ghi lại dưới một vị trí cluster.
Khi một chương trình là cung cấp nội dung của một tập tin trên các yêu cầu hệ điều hành, hệ điều hành sẽ ghi tập tin bảng vào thư mục này để tìm số cụm đầu tiên của mình, và sau đó vào bảng FAT để tìm các bản ghi trong liên kết này ( Các cụm tiếp theo trong chuỗi). Hành động này được lặp lại cho đến khi cụm cuối cùng của tệp được tìm thấy và hệ điều hành có thể tính toán chính xác cụm nào thuộc về tệp và thứ tự của nó. Bằng cách này, hệ điều hành có thể cung cấp bất kỳ phần nào của tệp được chương trình yêu cầu. Cách tổ chức tệp này được gọi là Chuỗi FAT.
Trong hệ thống tệp FAT, tệp luôn được gán cho các cụm đơn vị nguyên. Trong một đĩa 1.2 GB với kích thước 32K cho mỗi cụm, một tệp 12 byte chỉ chứa các ký tự "Hello, World!" Vẫn chiếm 32K không gian đĩa. Trong cụm phần không sử dụng được gọi là mất mát (Slack), mất file nhỏ gần như toàn bộ cụm khá, trung bình, một tập tin sẽ được khoảng một nửa số tổn thất.
Trong một ổ đĩa cứng 850MB với 16K mỗi cụm, với kích thước tệp trung bình là 50K, khoảng 16% không gian đĩa cứng được phân bổ cho tệp thực sự bị lãng phí. Một chương trình nén đĩa cứng điển hình, chẳng hạn như DriveSpace, một cách để tăng dung lượng của ổ đĩa là chuyển đổi không gian ảo đó ra để sử dụng bởi các tệp khác .
★ Tính toán các lĩnh vực và cụm Sử
dụng sớm nhất trong DOS 1.0 là hệ thống tệp FAT 12 bit. (Hiện tại hệ thống FAT 12 bit vẫn được sử dụng trên đĩa mềm). Bắt đầu từ DOS 2.0, vì hỗ trợ cho đĩa cứng đã được thêm vào, phương pháp ghi 16-bit FAT được sử dụng thay thế. Năm 1987, vấn đề đầu tiên đã gặp phải Vấn đề này đã bắt nguồn từ hoạt động ở mức độ thấp của hệ điều hành, bởi vì hệ điều hành DOS sử dụng các tham số 16 bit để ghi lại số lượng các sector để truy cập các tập tin. Bit có thể được ghi ở mức tối đa 65.536 giá trị khác nhau và 65.536 lần 512 byte cho mỗi sector chỉ có thể được giải quyết tới 32MB. Đây là số lượng tối đa các sector mà hệ điều hành có thể ghi lại. Vào thời điểm đó, dung lượng đĩa cứng đã bắt đầu vượt quá con số này, vì vậy bắt đầu từ DOS 4.0, chế độ 32 bit được sử dụng để ghi lại số lượng các lĩnh vực cấp thấp.
Hiện nay, giới hạn dung lượng DOS 2GB không phải là vấn đề nghiêm trọng của hệ điều hành, mà là một vấn đề ứng dụng hiện có. Khi một đĩa cứng có dung lượng lớn hơn 2 GB, kích thước cụm của nó là 64K, là 65.536 byte. Nhưng tối đa 16-bit chỉ 65.535, 64K là quá lớn. Microsoft đã phát hiện ra rằng nhiều ứng dụng đơn giản giả định rằng số byte cho mỗi cụm có thể được nhồi vào một giá trị 16 bit.
Ngay cả khi không có vấn đề 16-bit như vậy khi dung lượng đĩa cứng là 2GB, hệ điều hành sẽ từ chối truy cập nhiều hơn ổ đĩa cứng 4GB. Trong hệ thống FAT16, hệ điều hành tự lưu trữ một số lĩnh vực trên mỗi cụm trong một byte trong bảng tham số đĩa đã thiết lập của nó. Số này phải là lũy thừa của 2 và giá trị của nó không được lớn hơn 256. Do đó, kích thước tối đa có thể có của một cụm là 128 sector, là 64K. Vì vậy, ngay cả khi không có giới hạn 2 GB, FAT16 chỉ có thể được sử dụng trong các ổ đĩa cứng có dung lượng 4GB trở xuống. Sau khi hệ thống FAT32 được phát hành, bảng bản ghi FAT và số lượng các sector hiện nay trở thành 32-bit. Điều này có nghĩa là bạn có thể truy cập dung lượng ổ đĩa cứng lớn nhất từ 2 đến 32 (tức là 4,294,967,296) nhân với 512 byte cho mỗi sector, dẫn đến 2 terabyte (2,199,023,255,552 byte).