Folder gốc

Một phần của tài liệu Tài liệu Cấu trúc máy tính & Hợp ngữ ppt (Trang 74 - 80)

- PC66, PC100, PC133, PC1600, PC2100, PC2400:

3. Bộ nhớ ngồ

3.3.3.3. Folder gốc

Folder gốc chứa các điểm vào cho các file và folder nằm trên gốc của ổ đĩa. Folder gốc khác với các folder khác là nĩ cĩ vị trí và kích thước cố định (512 điểm vào đối với đĩa cứng). Một điểm vào folder gốc cĩ nội dung như sau:

Byte offset Kích thước [byte] Ý nghĩa

00h 08h 0Bh 0Ch 16h 18h 1Ah 1Ch 8 3 1 10 2 2 2 4 Tên file Phần mở rộng Thuộc tính file Dự trữ

Giờ thay đổi thơng tin cuối cùng Ngày thay đổi thơng tin cuối cùng Cluster đầu tiên của file

Kích thước file

Folder cĩ một tập các điểm vào folder 32 byte (folder entry) cho mỗi file và folder con chứa trong nĩ. Điểm vào folder bao gồm:

Tài liệu Cấu trúc máy tính & Hợp ngữ Bộ nhớ

- Byte thuộc tính: 1 byte bao gồm thuộc tính lưu trữ (archive), ẩn (hidden), hệ thống (system) và chỉ đọc (read-only). User cĩ thể bật hay tắt các thuộc tính này.

- Thời gian tạo: 3 byte - Ngày tạo: 2 byte

- Ngày truy xuất cuối cùng: 2 byte

- Thời gian thay đổi thơng tin cuối cùng: 2 byte - Ngày thay đổi thơng tin cuối cùng: 2 byte - Số thứ tự của cluster bắt đầu file: 2 byte - Kích thước: 2 byte

Tên file:

Bắt đầu từ WinNT 3.5, file được tạo trên đĩa FAT dùng các bit thuộc tính để hỗ trợ tên file dài mà khơng ảnh hưởng đến các hệ điều hành trước (DOS). Khi tạo một file, nếu tên file dài thì Windows sẽ tạo một tên dạng 8.3 cho file và sẽ thêm các điểm vào thứ cấp của file, mỗi điểm vào chứa 13 ký tự. DOS sẽ bỏ qua các điểm vào này, xem như chúng khơng tồn tại và xử lý như dạng file 8.3 chuẩn.

Hình 3.14 – Ví dụ về tên file dài

3.3.4. FAT32

FAT32 là một dạng mở rộng của hệ thống file FAT để hỗ trợ lưu trữ lớn hơn 2 GB. Ổ đĩa FAT32 cĩ thể chứa nhiều hơn 65256 cluster và mỗi cluster nhỏ hơn so với FAT16 nên hiệu suất sử dụng sẽ cao hơn. File lớn nhất cĩ thể lưu trữ trên ổ đĩa FAT32 là 4GB-2.

Tài liệu Cấu trúc máy tính & Hợp ngữ Bộ nhớ

GV:Nguyễn Mạnh Hồng Trang 75

Thay đổi trong boot sector và bootstrap:

Thay đổi trong boot sector:

Thay đổi Mơ tả

Các sector dành riêng

FAT32 chứa nhiều sector dành riêng hơn FAT16 và FAT12, thường là 32

Thay đổi của boot sector

Do FAT32 BPB lớn hơn BPB chuẩn, MBR trên ổ đĩa FAT32 lớn hơn 1 sector đồng thời 1 sector trong khu vực dành riêng chứa số lượng cluster chưa sử dụng và số lượng cluster mới sử dụng gần nhất. Các giá trị này là thành phần của cấu trúc BIGFATBOOTFSINFO cho phép hệ thống khởi tạo các giá trị mà khơng cần đọc tồn bộ FAT.

Folder gốc Folder gốc trên ổ đĩa FAT32 khơng chứa tại một vị trí cố định như FAT16 hay FAT12. Folder gốc là một chuỗi cluster thơng thường. Thành phần A_BF_BPB_RootDirStrtClus trong cấu trúc BPB chứa số thứ tự của cluster đầu tiên của folder gốc và BPB_RootEntries sẽ bị bỏ qua.

Số sector/FAT Thành phầnA_BF_BPB_SectorsPerFATcủa BPB luơn bằng 0 trên ổ đĩa FAT32 mà thay vào đĩ là 2 thành phần

A_BF_BPB_BigSectorsPerFatA_BF_BPB_BigSectorsPerFatHi.

BPB (BIOS Parameter Block):

BPB trong FAT32 là phiên bản mở rộng của BPB FAT16/FAT12. Nĩ cũng cung cấp thơng tin như trước nhưng đồng thời thêm vào một số trường:

Tên Kích thước [byte]

Mơ tả

A_BF_BPB_BytesPerSector 2 Số byte/sector A_BF_BPB_SectorsPerCluster 1 Số sector/cluster

A_BF_BPB_ReservedSectors 2 Số thứ tự của sector dành riêng, bắt đầu bằng sector 0

A_BF_BPB_NumberOfFATs 1 Số lượng FAT

A_BF_BPB_RootEntries 2 Bỏ qua

A_BF_BPB_TotalSectors 2 Tổng số sector

A_BF_BPB_MediaDescriptor 1 Tương tự như FAT16

A_BF_BPB_SectorsPerFAT 2 = 0

A_BF_BPB_SectorsPerTrack 2 Số sector/track

A_BF_BPB_Heads 2 Số head trên đĩa

A_BF_BPB_HiddenSectors 2 Số sector ẩn trên đĩa

Tài liệu Cấu trúc máy tính & Hợp ngữ Bộ nhớ

A_BF_BPB_BigTotalSectors 2 Tổng số sector trên FAT32

A_BF_BPB_BigTotalSectorsHigh 2 Tổng số sector trên FAT32 (2 byte cao) A_BF_BPB_BigSectorsPerFat 2 Số sector/FAT

A_BF_BPB_BigSectorsPerFatHi 2 Số sector/FAT (2 byte cao)

A_BF_BPBExtFlags

2 Bit 7 xác định thơng tin trên FAT hiện hành cĩ cập nhật cĩ tất cả các FAT khác hay khơng.

A_BF_BPB_FS_Version 2 Phiên bản của hệ thống file

A_BF_BPB_RootDirStrtClus 2 Số thứ tự cùa cluster đầu tiên của folder gốc

A_BF_BPB_RootDirStrtClusHi 2 Số thứ tự cùa cluster đầu tiên của folder gốc (2 byte cao)

A_BF_BPB_FSInfoSec 2 Số thứ tự của sector chứa thơng tin hệ thống file.

A_BF_BPB_BkUpBootSec 2 Số thứ tự của bản sao boot sector.

A_BF_BPB_Reserved 12 Dành riêng

Cấu trúc BIGFATBOOTFSINFO:

Cấu trúc này chứa các thơng tin về hệ thống file trên ổ đĩa FAT32.

Tên Kích thước [byte]

Mơ tả

bfFSInf_Sig 4 Nhận dạng của sector thơng tin hệ thống file. Giá trị này là FSINFOSIG (0x61417272L).

bfFSInf_free_clus_cnt 4 Số cluster khơng sử dụng (=-1 nếu khơng xác định) bfFSInf_next_free_clus 4 Số thứ tự cluster định vị gần nhất

bfFSInf_resvd 12 Dành riêng

Phản chiếu FAT (mirroring):

Trên FAT16/FAT12, FAT đầu tiên luơn là bản sơ cấp và bất kỳ thay đổi nào đầu được tự động cập nhật trên các bản sao. Đối với FAT32, phản chiếu FAT cĩ thể bỏ qua và một bản sao khác với bản đầu tiên cĩ thể là bản sơ cấp. Phản chiếu được cho phép bằng cách xĩa bit 0080h trong thành phầnextddpb_flagscủa cấu trúc DPB.

Phản chiếu Mơ tả

Cho phép (xĩa bit 0080h)

Bất kỳ khi nào một sector FAT thay đổi thì nĩ sẽ cập nhật cho các FAT khác.

Tài liệu Cấu trúc máy tính & Hợp ngữ Bộ nhớ

GV:Nguyễn Mạnh Hồng Trang 77

DPB (Drive Parameter Block):

Cấu trúc của DPB: DPB STRUC dpb_drive DB ? dpb_unit DB ? dpb_sector_size DW ? dpb_cluster_mask DB ? dpb_cluster_shift DB ? dpb_first_fat DW ? dpb_fat_count DB ? dpb_root_entries DW ? dpb_first_sector DW ? dpb_max_cluster DW ? dpb_fat_size DW ? dpb_dir_sector DW ? dpb_reserved2 DD ? dpb_media DB ? ifdef NOTFAT32 dpb_first_access DB ? else dpb_reserved DB ? endif dpb_reserved3 DD ? dpb_next_free DW ? dpb_free_cnt DW ? ifndef NOTFAT32 extdpb_free_cnt_hi DW ? extdpb_flags DW ? extdpb_FSInfoSec DW ? extdpb_BkUpBootSec DW ? extdpb_first_sector DD ? extdpb_max_cluster DD ? extdpb_fat_size DD ? extdpb_root_clus DD ? extdpb_next_free DD ? endif DPB ENDS Tên Mơ tả dpb_drive Số thứ tự đĩa (0 = A, 1 = B, …)

dpb_unit Số thứ tự của đơn vị đĩa (unit number), cho phép trình điều khiển thiết bị phân biệt đĩa.

dpb_sector_size Số byte/sector dpb_cluster_mask Số sector/cluster – 1

dpb_cluster_shift Số sector/cluster biểu diễn theo số mũ của 2 dpb_first_fat Số thứ tự của sector đầu tiên chứa FAT dpb_fat_count Số FAT/đĩa

dpb_root_entries Số điểm vào/folder gốc

dpb_first_sector Số thứ tự sector đầu tiên của cluster đầu tiên dpb_max_cluster Số cluster/đĩa -1 (khơng dùng trong FAT32)

Tài liệu Cấu trúc máy tính & Hợp ngữ Bộ nhớ

dpb_fat_size Số sector đang sử dụng /FAT (= 0 đối với FAT32, thay thế bằng

extdpb_fat_size)

dpb_dir_sector Số thứ tự của sector đầu tiên chứa folder gốc (khơng dùng trong FAT32)

dpb_reserved2 Dành riêng

dpb_media Mơi trường trữ tin

reserved Dành riêng

dpb_first_access Xác định đĩa cĩ dùng được hay khơng dpb_reserved3 Dành riêng

dpb_next_free Số thứ tự cluster định vị gần nhất

dpb_free_cnt Số lượng cluster trống (=FFFFh nếu khơng xác định) extdpb_free_cnt_hi 2 byte cao xác định số cluster trống

extdpb_flags Mơ tả đĩa

extdpb_FSInfoSec Số thứ tự của sector chứa thơng tin hệ thống file extdpb_BkUpBootSec Số thứ tự của bản sao boot sector

extdpb_first_sector Sector đầu tiên của cluster đầu tiên extdpb_max_cluster Số sector/đĩa + 1

extdpb_fat_size Số sector sử dụng bởi FAT

extdpb_root_clus Số thứ tự của cluster đầu tiên trong folder gốc extdpb_next_free Số thứ tự cluster định vị gần nhất

Loại phân vùng:

Loại phân vùng hợp lệ cho trong bảng sau (giá trị tương ứng chứa trong thành phần

Part_FileSystemcủa cấu trúc S_PARTITION.

Giá trị Mơ tả

PART_UNKNOWN (00h) Unknown PART_DOS2_FAT (01h) FAT12

PART_DOS3_FAT (04h) FAT16 (< 32 MB)

PART_EXTENDED (05h) Phân vùng DOS mơ rộng PART_DOS4_FAT (06h) FAT16 (> 32 MB)

PART_DOS32 (0Bh) FAT32 (cĩ thể tới2047GB) PART_DOS32X (0Ch) FAT32 dùng Int 13h mở rộng

PART_DOSX13 (0Eh) Giống PART_DOS4_FAT (06h) dùng Int 13h mở rộng PART_DOSX13X (0Fh) Giống PART_EXTENDED (05h) dùng Int 13h mở rộng

Tài liệu Cấu trúc máy tính & Hợp ngữ Bộ nhớ GV:Nguyễn Mạnh Hồng Trang 79 Cấu trúc S_PARTITION: s_partition STRUC Part_BootInd DB ? Part_FirstHead DB ? Part_FirstSector DB ? Part_FirstTrack DB ? Part_FileSystem DB ? Part_LastHead DB ? Part_LastSector DB ? Part_LastTrack DB ? Part_StartSector DD ? Part_NumSectors DD ? s_partition ENDS Tên Mơ tả

Part_BootInd Phân vùng cĩ khởi động được (=80h) hay khơng (=00h) Part_FirstHead Head đầu tiên của phân vùng

Part_FirstSector Sector đầu tiên của phân vùng (bit 0-5; 6-7 dùng cho Part_FirstTrack) Part_FirstTrack Track đầu tiên của phân vùng

PartFileSystem Hệ thống file của phân vùng

Part_LastHead The last head of the partition. This is a 0-based number that represents the offset from the beginning of the disk. The partition includes the head specified by this member.

Part_LastSector Sector đầu tiên của phân vùng (bit 0-5; 6-7 dùng cho Part_LastTrack) Part_LastTrack Track đầu tiên của phân vùng

Part_StartSector Số thứ tự của sector đầu tiên trên đĩa Part_NumSectors Số sector/phân vùng

Một phần của tài liệu Tài liệu Cấu trúc máy tính & Hợp ngữ ppt (Trang 74 - 80)