Bài giảng Hệ điều hành - Nguyễn Thị Ngọc Vinh - Chương 2: Hệ thống File
1. Các khái niệm
2. Các phƣơng pháp truy cập file
3. Các thao tác với file
4. Thƣ mục
5. Cấp phát không gian cho file
6. Quản lý không gian trống trên đĩa
7. Độ tin cậy của hệ thống file
8. Bảo mật cho hệ thống file
9. Cấu trúc hệ thống file
10. Hệ thống file FAT
Quyền thay đổi chủ file (change owner) VIII. BẢO MẬT CHO HỆ THỐNG FILE www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 50 Quản lý vào ra: Gồm các chƣơng trình điều khiển thiết bị (driver) và chƣơng trình xử lý ngắt cứng Lƣu chuyển thông tin và dữ liệu giữa bộ nhớ và thiết bị nhớ ngoài Nhận các lệnh đọc/ghi thông tin từ lớp trên; dịch các yêu cầu; IX. CẤU TRÚC HỆ THỐNG FILE www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 51 Hệ thống file cơ sở: Sinh ra các lệnh đọc/ghi khối nhớ cụ thể cho lớp dƣới Trung chuyển các khối tin giữa lớp dƣới và MEM Không cần hiểu nội dung thông tin và tổ chức file IX. CẤU TRÚC HỆ THỐNG FILE www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 52 Modul tổ chức file: Ánh xạ giữa khối logic và vật lý Quản lý các khối trống chƣa đƣợc cấp phát trên đĩa Hệ thống file logic: Quản lý thƣ mục Cung cấp thông tin vị trí file Thực hiện các chức năng liên quan đến bảo mật và đảm bảo toàn vẹn cho hệ thống file IX. CẤU TRÚC HỆ THỐNG FILE www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 53 3 phiên bản: FAT12, FAT16, FAT32 Chữ số chỉ kích thƣớc ô bảng FAT tƣơng ứng 12, 16 và 32 bit X. HỆ THỐNG FILE FAT www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 54 Boot sector và các khối dự phòng Bảng FAT1 Bảng FAT2 Thư mục gốc (chỉ có trên FAT12 và FAT16) Phần còn lại cho tới cuối đĩa chứa các file và thư mục của đĩa lô gic X. HỆ THỐNG FILE FAT 1. ĐĨA LOGIC Đơn vị cấp phát không gian trên đĩa (khối logic) là cluster (lũy thừa 2 của số lƣợng sector) Boot sector: Sector đầu tiên của đĩa logic Chứa thông tin mô tả cấu trúc đĩa logic: kích thƣớc sector, cluster, kích thƣớc bảng FAT Chứa mã chƣơng trình mồi để tải HĐH nếu đĩa logic là đĩa khởi động FAT: bảng chỉ số quản lý cấp phát khối cho file Thƣ mục gốc ROOT Vùng dữ liệu: chứa các file và thƣ mục của đĩa logic www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 55 Vị trí Độ dài Ý nghĩa 0 3 Lệnh Jump. Chỉ thị cho CPU bỏ qua phần thông tin và nhẩy tới thực hiện phần mã mồi của hệ điều hành nếu đây là đĩa mồi hệ điều hành. 3 8 Tên hãng sản xuất, bổ sung dấu trắng ở cuối cho đủ 8B. Ví dụ: IBM 3.3, MSDOS5.0.v.v. 11 2 Bytes per sector. Kích thƣớc sector tính bằng byte. Giá trị thƣờng gặp là 512 đối với đĩa cứng. Đây cũng là vị trí bắt đầu của Khối Thông số BIOS (BIOS Parameter Block, viết tắt là BPB) 13 1 Sectors per cluster. Số sector trong một cluster, luôn là lũy thừa của 2 và không lớn hơn 128. 14 2 Reserved sectors. Số lƣợng sector dành cho vùng đầu đĩa đến trƣớc FAT, bao gồm boot sector và các sector dự phòng. 16 1 Số lƣợng bảng FAT. Thƣờng bằng 2. 17 2 Số khoản mục tối đa trong thự mục gốc ROOT. Chỉ sử dụng cho FAT12 và FAT16. Bằng 0 với FAT32. 19 2 Total sector. Tổng số sector trên đĩa. Nếu bằng không thì số lƣợng sector đƣợc ghi bằng 4 byte tại vị trí 0x20. 21 1 Mô tả loại đĩa. Ví dụ 0xF0 là đĩa mềm 3.5” hai mặt với 80 rãnh trên mỗi mặt, 0xF1 là đĩa cứng .v.v. 22 2 Sectors per FAT. Kích thƣớc FAT tính bằng sector (đối với FAT12/16) 24 2 Sectors per track. Số sector trên một rãnh. 26 2 Number of heads. Số lƣợng đầu đọc (mặt đĩa đƣợc sử dụng) 28 4 Hidden sectors. Số lƣợng sector ẩn. 32 4 Total sector. Tổng số sector trên đĩa cho trƣờng hợp có nhiều hơn 65535. X. HỆ THỐNG FILE FAT BOOT SECTOR 32 Byte đầu tiên www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 56 Vị trí Độ dài Ý nghĩa 36 1 Số thứ tự vật lý của đĩa (0: đĩa mềm, 80h: đĩa cứng .v.v.) 37 1 Dự phòng 38 1 Dấu hiệu của phần mã mồi. Chứa giá trị 0x29 (ký tự „)‟) hoặc 0x28. 39 4 Số xê ri của đĩa (Volume Serial Number) đƣợc tạo lúc format đĩa 43 11 Volume Label. Nhãn của đĩa đƣợc tạo khi format. 54 8 Tên hệ thống file FAT, ví dụ"FAT12 ", "FAT16 ". 62 448 Mã mồi hệ điều hành, đây là phần chƣơng trình tải hệ điều hành khi khởi động. 510 2 Dấu hiệu Boot sector (0x55 0xAA) X. HỆ THỐNG FILE FAT BOOT SECTOR Các byte tiếp theo với FAT12/16 www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 57 Vị trí Độ dài Ý nghĩa 36 4 Sectors per FAT. Kích thƣớc FAT tính bằng sector. 0x28 2 Cờ của FAT 0x2a 2 Version. Phiên bản. 0x2c 4 Số thứ tự của cluster đầu tiên của thƣ mục gốc root. 0x30 2 Số sector của Information Sector. Đây là phần nằm trong số sector dự phòng ngay sau boot sector. 0x32 2 Số thứ tự sector đầu tiên của bản sao của boot sector (nếu có) 0x34 12 Dự phòng 0x40 1 Số thứ tự vật lý của đĩa 0x41 1 Dự phòng 0x42 1 Dấu hiệu của phần mã mồi mở rộng. 0x43 4 Số xê ri của đĩa (Volume Serial Number) 0x47 11 Volume Label 0x52 8 "FAT32 " 0x5a 420 Mã mồi hệ điều hành 0x1FE 2 Dấu hiệu Boot sector (0x55 0xAA) X. HỆ THỐNG FILE FAT BOOT SECTOR Các byte tiếp theo với FAT32 www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 58 Quản lý các cluster trên đĩa và các file theo nguyên tắc: Các khối thuộc cùng 1 file đƣợc liên kết thành 1 danh sách Con trỏ đƣợc chứa trong ô tƣơng ứng của bảng FAT Mỗi ô trong bảng FAT tƣơng ứng với một cluster trên đĩa, chứa 1 trong các thông tin: STT cluster tiếp theo trong danh sách các khối của file Dấu hiệu kết thúc nếu ô tƣơng ứng với cluster cuối cùng của file Dấu hiệu đánh dấu cluster hỏng, không đƣợc sử dụng Dấu hiệu đánh dấu cluster dự phòng Bằng 0 nếu cluster trống, chƣa cấp phát cho file nào X. HỆ THỐNG FILE FAT BẢNG FAT www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 59 FAT12 FAT16 FAT32 Ý nghĩa 0x000 0x0000 0x00000000 Cluster trống 0x001 0x0001 0x00000001 Cluster dự phòng, không đƣợc sử dụng 0x002–0xFEF 0x0002–0xFFEF 0x00000002–0x0FFFFFEF Cluster đã đƣợc cấp cho file. Chứa số thứ tự cluster tiếp theo của file. 0xFF0–0xFF6 0xFFF0–0xFFF6 0x0FFFFFF0–0x0FFFFFF6 Cluster dự phòng 0xFF7 0xFFF7 0x0FFFFFF7 Cluster hỏng. 0xFF8–0xFFF 0xFFF8–0xFFFF 0x0FFFFFF8–0x0FFFFFFF Cluster cuối cùng của file X. HỆ THỐNG FILE FAT BẢNG FAT Cluster đầu tiên của vùng dữ liệu đƣợc đánh STT là 2 2 ô đầu tiên của bảng FAT không dùng để quản lý cluster www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 60 Mỗi thƣ mục đƣợc lƣu trong bảng thƣ mục, thực chất là 1 file đặc biệt chứa các khoản mục của thƣ mục Mỗi khoản mục chứa thông tin về một file hoặc thƣ mục con của thƣ mục đang xét Với FAT12/16, thƣ mục trên cùng của đĩa đƣợc chứa trong 1 vùng đặc biệt gọi là thƣ mục gốc Các thƣ mục mức thấp hơn/ thƣ mục gốc của FAT32 đƣợc chứa trong vùng dữ liệu trên đĩa cùng với các file Mỗi thƣ mục gồm các khoản mục 32 byte xếp liền nhau X. HỆ THỐNG FILE FAT THƯ MỤC GỐC (ROOT) www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 61 Vị trí Độ dài Mô tả 0 8 Tên file, thêm bằng dấu trắng ở cuối nếu ngắn hơn 8 byte 8 3 Phần mở rộng, thêm bằng dấu trắng ở cuối nếu ngắn hơn 3 byte 11 1 Byte thuộc tính của file. Các bit của byte này nếu bằng 1 sẽ có ý nghĩa như sau: Bit 0: file chỉ được đọc; Bit 1: file ẩn; Bit 2: file hệ thống; Bit 3: Volume label; Bit 4: thư mục con Bit 5: archive; Bit 6: thiết bị nhớ khác (dùng cho hệ điều hành); Bit 7: không sử dụng Byte thuộc tính bằng 0x0F là dấu hiệu của file tên dài. 12 1 Dự phòng 13 1 Thời gian tạo file tính theo đơn vị 10ms, giá trị từ 0 đến 199 14 2 Thời gian tạo file theo format sau: bit 15-11: giờ (0-23); bit 10-5: phút (0-59); bit 4-0: giây/2 (0-29) 16 2 Ngày tạo file theo format sau. Bit 15-9: năm (0-1980, 127 =2107); bit 8-5: tháng (1-12); bit 4-0: ngày (1-31) 18 2 Ngày truy cập cuối, theo format như ngày tạo file 20 2 2 byte cao của số thứ tự cluster đầu tiên của file trong FAT32 22 2 Thời gian sửa file lần cuối, theo format thời gian tạo file 24 2 Ngày sửa file lần cuôi, theo format như ngày tạo file 26 2 Số thứ tự cluster đầu tiên của file trong FAT12/16. 28 4 Kích thước file tính bằng byte. Bằng 0 với thư mục con X. HỆ THỐNG FILE FAT THƯ MỤC GỐC (ROOT) www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 62 www.echip.com.vn/echiproot/html/2006/so329/usb.html X. HỆ THỐNG FILE FAT TẠO ĐĨA USB KHỞI ĐỘNG www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 63 int absread(int drive, int nsects, long lsect, void *buffer) drive: ổ đĩa cần đọc, A: 0, B:1, C:2 nsects: số sector cần đọc lsect: vị trí sector bắt đầu đọc buffer: vùng nhớ lƣu nội dung thông tin cần đọc X. HỆ THỐNG FILE FAT HÀM ĐỌC ĐĨA www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 64 Vị trí sector bắt đầu: reserved sector (byte 14, 15 trong bootsector) Tổng số sector cần đọc: sectors per FAT (byte 22, 23) Nội dung bảng FAT đã đƣợc đọc ra vùng buf FAT16: ô FAT thứ n = buf+n*2 X. HỆ THỐNG FILE FAT ĐỌC FAT www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 65 Vị trí sector bắt đầu: reserved sector + NoOfFATs * sectors per FAT Tổng số sector cần đọc: NoOfRootEntries * 32 /BytesPerSector X. HỆ THỐNG FILE FAT ĐỌC ROOT www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 66 1. Viết chƣơng trình để hiển thị thông tin boot sector 2. Viết chƣơng trình đọc FAT 3. Viết chƣơng trình đọc ROOT và in nội dung giống lệnh DIR 4. Cho 1 tên file thuộc ROOT. Viết chƣơng trình tìm tất cả các cluster của file đó 5. Viết chƣơng trình đếm số cluster trống của ổ đĩa X. HỆ THỐNG FILE FAT BÀI TẬP THỰC HÀNH
File đính kèm:
- Bài giảng Hệ điều hành - Nguyễn Thị Ngọc Vinh - Chương 2 Hệ thống File.pdf