Location : Trong Hệ thống tệp, có một số vị trí mà các tệp có thể được lưu trữ.. Các hoạt động này được thực hiện bởi người dùng bằng cách sử dụng các lệnh được cung cấp bởi hệ điều hành
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG ĐIỆN – ĐIỆN TỬ
BÁO CÁO BÀI TÂP LỚN MÔN HỆ ĐIỀU HÀNH
ĐỀ TÀI: TÌM HIỂU VỀ FILE SYSTEM
GIÁO VIÊN HƯỚNG DẪN: TS NGUYỄN THANH BÌNH
Trang 2Mục lục
No table of contents entries found.
Trang 3DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU
I Hình ảnh
Trang 4PHÂN CÔNG CÔNG VIỆC
Đỗ Kim Hoàn - File;
- File System;
- Hệ thống FAT Hoàng Minh Đức - File Directory;
- Tổ chức thông tin trên đĩa từ.
Trần Quang Linh - File System Setting:
+ Cài đặt cho cách quản lý file và phân bổ vùng nhớ.
+ Các cách truy nhập file trong hệ thống File;.
Trang 5LỜI NÓI ĐẦU
Nếu chúng ta nói về hệ điều hành, trong tất cả các chức năng chính của
hệ điều hành thì hệ thống file là quan trọng nhất, nghĩa là hệ điều hành quản lýcác file Nếu chúng ta nói về Windows, nó có hệ thống file NTFS, trước đó có
hệ điều hành DOS có hệ thống file dos, nếu chúng ta nói về Unix thì có hệthống tệp Unix, nếu chúng ta nói về LINUX thì có hệ thống tệp mở rộng, trongthời đại ngày nay, chúng ta nói về dữ liệu lớn vì có hệ thống tệp ZFS Có nghĩa
là nếu chúng ta nói về bất kì hệ điều hành nào thì trong kernel của hệ điều hành
đó thì đều có một module là file system
File system là phần cứng hay phần mềm? File system là một phần mềm
và nằm trong hệ điều hành nghĩa là nó được quản lý bởi hệ điều hành Một filekhi máy tính sử dụng sẽ được lưu trữ trong bộ RAM hay Cache nhưng nhữngloại bộ nhớ này sẽ hoàn toàn mất hết dữ liệu khi máy tính không còn hoạt động.Vậy để khi chúng ta đóng máy tính và mở lên mà vẫn có dữ liệu thì một loại bộnhớ khác được sinh ra được gọi là bộ nhớ lưu trữ vĩnh viễn hay còn gọi là ổcứng (hard disk), ví dụ SSD, HDD, file system sẽ lấy dữ liệu từ những ổ cứngtrên để sử dụng User sẽ sử dụng file để xem thông tin dữ liệu của mình, các filenày được nằm trong các Foler ở trong Windows, Directory ở trong Linux và tất
cả chúng sẽ được quản lý ở File System User sẽ chỉ có thể xem được cácfoler/directory của mình mà không xem được chúng quản lý bởi File Systemnhư thế nào
Khi có một file dữ liệu cần được lưu trữ vào máy, file system sẽ chia nhỏchúng thành các block và từ các block đó chúng sẽ được ánh xạ tới các địa chỉcủa ổ cứng Công việc trên được xử lý bởi file system, vì vậy file system có vaitrò chính là lưu trữ dữ liệu, tìm kiếm và truy xuất dữ liệu
Trang 6File system xử lý các vấn đề sau
File Structure: Chúng tôi đã thấy các cấu trúc dữ liệu khác nhau trong đó tệp có thể được lưu trữ Nhiệm vụ của hệ thống tệp là duy trì cấu trúc tệp tối ưu.
Recovering Free space: Bất cứ khi nào một tệp bị xóa khỏi đĩa cứng, sẽ có một dung lượng trống được tạo trong đĩa Có thể có nhiều khoảng trống như vậy cần được khôi phục để phân bổ lại chúng cho các tệp khác.
disk space assignment to the files: Mối quan tâm chính về tệp là quyết định nơi lưu trữ tệp trên đĩa cứng Có nhiều thuật toán lập lịch đĩa khác nhau sẽ được đề cập sau trong hướng dẫn này.
Tracking data location: Một tệp có thể hoặc không thể được lưu trữ chỉ trong một khối Nó có thể được lưu trữ trong các khối không liền kề trên đĩa Chúng tôi cần theo dõi tất cả các khối chứa một phần của tệp.
1.2 File System Structure
File system cung cấp quyền truy cập hiệu quả vào đĩa bằng cách cho phép dữ liệu được lưu trữ, định vị và truy xuất một cách thuận tiện Một file sytsem phải có khả năng lưu trữ tệp, định vị tệp và truy xuất tệp.
Hầu hết các Hệ điều hành sử dụng phương pháp phân lớp cho mọi tác vụ bao gồm
cả file system Mỗi lớp của file system chịu trách nhiệm cho một số hoạt động.
Hình ảnh hiển thị bên dưới mô tả chi tiết cách hệ thống tệp được chia thành các lớp khác nhau cũng như chức năng của từng lớp.
Trang 7Hình 7: Các lớp của file system
Khi một chương trình ứng dụng yêu cầu một tệp, yêu cầu đầu tiên được chuyển đến file system logic File system logic chứa dữ liệu Meta của cấu trúc tệp và thư mục Nếu chương trình ứng dụng không có các quyền cần thiết của tệp thì lớp này sẽ báo lỗi Các file system hợp lý cũng xác minh đường dẫn đến tệp.
Nói chung, các tệp được chia thành các khối logic khác nhau Các tệp sẽ được lưu trữ trong đĩa cứng và được truy xuất từ đĩa cứng Đĩa cứng được chia thành các track và sector khác nhau Do đó, để lưu trữ và truy xuất các tệp, các khối logic cần được ánh xạ tới các khối vật lý Việc ánh xạ này được thực hiện bởi Mô-đun tổ chức tệp Nó cũng chịu trách nhiệm quản lý không gian trống.
Khi mô-đun tổ chức tệp đã quyết định khối vật lý nào mà chương trình ứng dụng cần, nó sẽ chuyển thông tin này đến file system cơ bản File system cơ bản chịu trách nhiệm đưa ra các lệnh tới điều khiển I/O để tìm nạp các khối đó.
Các điều khiển I/O chứa các mã bằng cách sử dụng mà nó có thể truy cập đĩa cứng Các mã này được gọi là trình điều khiển thiết bị Các điều khiển I/O cũng chịu trách nhiệm xử lý các ngắt.
2 Tổ chức thông tin trên đĩa từ
2.1 Cấu trúc vật lý của đĩa từ
Mặt đĩa từ (magnetic disk): Dùng để lưu trữ thông tin Thông tin có thể lưu trữ
ở hai mặt khác nhau.
Trang 8 Lớp vỏ cứng bên ngoài bảo vệ cả đĩa.
2.2 Mặt đĩa từ
Thông tin lưu trên đĩa từ ở cả hai mặt là mặt trên và mặt dưới hay mặt 0
và mặt 1.
Mỗi mặt được đọc với một đầu đọc ghi (header) khác nhau Cho nên
người ta đồng nhất mặt đĩa với số hiệu đầu đọc ghi: đầu từ 0 ở mặt 0 và đầu từ 1 ở mặt 1.
Dữ liệu sẽ được lưu trữ trên đĩa ở các vòng tròn đồng tâm hay còn gọi là
“rãnh đĩa (track)” Các rãnh đĩa được đánh số: 0, 1, 2, … từ ngoài vào
trong
Trong các vòng tròn đồng tâm, chúng ta chia ra các cung từ bằng nhau
hay gọi là sector Các Sector được đánh số: 1, 2, 3, … Một sector trên đĩa
được xác định bằng toạ độ 3 chiều: (mặt đĩa; rãnh đĩa; số hiệu vector trênrãnh đĩa)
Trang 92.3 Sector
Sector đơn vị thông tin hệ thống máy tính dung để làm việc với đĩa từSector xác định qua tọa độ 3 chiều: Header, Track, Sector
Ví dụ: Boot Sector cıa đĩa mềm: Sector <0, 0, 1>
Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
o Vị trí tương đối so với sector đầu tiên của đĩa, ví dụ: Sector đầu
tiên của đĩa <0, 0, 1> (mặt 0, rãnh 0, sector thứ nhất) có số hiệu
#0, tương tự <0, 0, 2> sẽ có số hiệu là #1, …
o Đối với mặt 1, số hiệu sẽ bắt đầu từ #8 (số hiệu lớn nhất tương ứng của mặt 0) và giảm dần về #0 Ví dụ <1, 0, 1> #8
2.4 Cấu trúc vật lý đĩa cứng
Gồm nhiều mặt đĩa được đánh số từ 0,1…
Các rãnh cùng bán kính tạo lên cylinder, được đánh số từ 0,1,…
Các sector trên mỗi mặt của mỗi cylinder được đánh số từ 1,2,…
Trang 10 Định vị thông tin theo tạo độ 3 chiều là (Header, Cylinder, Sector) hay (H, C, S) Ngoài ra cũng có thể định vị theo toạ độ 1 chiều bằng số hiệu sector như với đĩa từ; Sector – Header – Cylinder.
Trang 112.6 Cấu trúc logic của đĩa
Đĩa mềm: Mỗi hệ điều hành có một chiến lược quản lí riêng
Đĩa cứng; Có dung lượng lớn và được chia thành nhiều phân vùng khác nhau
o Phân vùng có nhiều tên gọi khác nhau: Partitions, Volumes
(Microsoft), MiniDisk (IBM),
o Mỗi phân vùng là một tập hợp các Cylinder liên tiếp nhau
o Người dùng ấn định kích thước của mỗi phân vùng bằng các
chương trình phân chia ổ đĩa
Mỗi phân vùng có thể được quản lí bỏi một hệ điều hành riêng Hệ điều hành sẽ format phân vùng theo định dạng file mà hệ điều hành đó sử dụng ví dụ: NTFS(MSDOS), EXT3(Linux), …
Trước tất cả các phân vùng là các section bị che
Section đầu tiên của toàn bộ thiết bị lưu trữ là section quan trọng nhất, gọi là Master Boot Record (MBR)
MBR có cấu trúc gồm 3 phần:
o Chương trình nhận biết: Có nhiệm vụ là đọc bảng phân chương để biết vị trí các phân vùng và phân vùng tích cực (chứa Hệ điều hành) Khi xác định được phân vùng tích cực sẽ đọc và thực hiện sector đầu tiên của phân vùng này
o Bảng phân chương (64 bytes): Gồm 4 phần tử, mỗi phần tử 16 bytes chứa thông tin một vùng (vị trí, kích thước, hệ thống file mà )
o Chữ ký hệ thống luôn là 55AA
Cấu trúc 1 phần tử của bảng phân chương:
Trang 12o Byte đầu tiên: Byte 0 hay Byte dấu hiệu, nó cho biết rằng phân vùng này có phải phân vùng tích cực hay không? Có thể chứa 1 trong 2 giá trị: hoặc là giá trị 0, hoặc là giá trị 80h.
Nếu giá trị 0 thì cho biết răngf phân vùng này chứa dữ liệu thường Nếu giá trị 80h thì cho biết rằng phân vùng này chứa hệ điều hành
3 byte tiếp theo dùng để xác định toạ độ của sector đầu tiên của phân vùng: Byte 1 cho biết số hiệu mặt đĩa hay số hiệu đầu đọc ghi(header)., Byte 2, Byte 3 tạo thành 1W dùng để mã hoá số hiệu sector và
cylinder đầu của phân vùng Cách mã hoá: số hiệu sector dùng 6 bit thấp; số hiệu cylinder dùng 10 bit (Toạ độ 3 chiều)
Byte 4 là mã nhận diện hệ thống Ví dụ giá trị 05/0F thì là Partition
mở rộng; với giá trị 06 là BigDos; giá trị 07 là NTFS; …
Byte 5,6 và 7 chứa toạ độ sector cuối cùng cảu phân vùng trong đó byte 5 chứa giá trị mạt đĩa; byte 6 và 7 tạo thành 1W dùng để mã hoá
số hiệu sector và cylinder
4 byte 8, 9, 10, 11 cho biết số hiệu của sector đầu tiên của phân vùng.(vị trí tương đối với sector đầu tiên cảu đĩa)
4 byte 12, 13, 14, 15 cho biết tổng số sector của phân vùng (giới hạn kích thước là 2 TB)
3 Tổng quan về File
3.1 Thuộc tính của File
File là một tập hợp có tên của thông tin liên quan được ghi trên bộ lưu trữ thứ cấp như đĩa từ, băng từ và đĩa quang Nói chung, một tệp là một chuỗi các bit, byte, dòng hoặc bản ghi có ý nghĩa được xác định bởi người tạo và người dùng tệp Với file, chúng ta có một số thuộc tính sau:
Name: Mỗi tệp mang một tên mà tệp được nhận dạng trong hệ thống tệp Một
thư mục không thể có hai tệp trùng tên.
Identifier: Cùng với tên, Mỗi tệp có phần mở rộng riêng xác định loại tệp Ví dụ: một tệp văn bản có phần mở rộng là .txt,
Type : Trong Hệ thống tệp, Tệp được phân loại theo các loại khác nhau như tệp video, tệp âm thanh, tệp văn bản, tệp thực thi, v.v.
Trang 13Location : Trong Hệ thống tệp, có một số vị trí mà các tệp có thể được lưu trữ Mỗi tệp mang vị trí của nó làm thuộc tính của nó.
Size : Kích thước của tệp là một trong những thuộc tính quan trọng nhất của
nó Theo kích thước của tệp, chúng tôi muốn nói đến số byte mà tệp có được trong bộ nhớ.
Protection:Quản trị viên của máy tính có thể muốn các biện pháp bảo vệ khác nhau cho các tệp khác nhau Do đó, mỗi tệp mang một bộ quyền riêng cho nhóm Người dùng khác nhau.
Time and Date : Mỗi tệp mang một dấu thời gian chứa thời gian và ngày mà tệp được sửa đổi lần cuối.
3.2 Thao tác với File
File là một tập hợp dữ liệu có liên quan về mặt logic được ghi trên bộ lưu trữ thứ cấp dưới dạng chuỗi các thao tác Nội dung của các tệp được xác định bởi người tạo ra nó, người đang tạo file Các thao tác khác nhau có thể được thực hiện trên một file như đọc, ghi, mở và đóng, v.v được gọi là các thao tác với file Các hoạt động này được thực hiện bởi người dùng bằng cách sử dụng các lệnh được cung cấp bởi hệ điều hành Một số thao tác phổ biến như sau:
Create operation: Thao tác này được sử dụng để tạo một tệp trong file system Đây là hoạt động được sử dụng rộng rãi nhất được thực hiện trên file system Để tạo một tệp mới thuộc loại cụ thể, chương trình ứng dụng được liên kết gọi file system File system này phân bổ không gian cho tệp Vì file system biết định dạng của cấu trúc thư mục, nên mục nhập của tệp mới này được tạo vào thư mục thích hợp.
Open operation: Thao tác này là thao tác phổ biến được thực hiện trên
tệp Tệp sau khi được tạo phải được mở trước khi thực hiện các thao tác xử lý tệp Khi người dùng muốn mở một tệp, nó sẽ cung cấp tên tệp để mở tệp cụ thể trong file system Nó yêu cầu hệ điều hành thực hiện lệnh gọi hệ thống mở và chuyển tên tệp cho file system.
Trang 14 Write operation: Thao tác này được sử dụng để ghi thông tin vào một
tệp Một cuộc gọi hệ thống ghi được đưa ra chỉ định tên của tệp và độ dài của
dữ liệu phải được ghi vào tệp Bất cứ khi nào độ dài tệp được tăng lên theo giá trị đã chỉ định và con trỏ tệp được định vị lại sau byte cuối cùng được ghi.
Read operation: Hoạt động này đọc nội dung từ một tập tin Một con trỏ Đọc
được hệ điều hành duy trì, trỏ đến vị trí mà dữ liệu đã được đọc.
Re-position or Seek operation: Lệnh gọi hệ thống tìm kiếm định vị lại các
con trỏ tệp từ vị trí hiện tại đến một vị trí cụ thể trong tệp tức là tiến hoặc lùi tùy thuộc vào yêu cầu của người dùng Thao tác này thường được thực hiện với những hệ thống quản lý tệp hỗ trợ tệp truy cập trực tiếp.
Delete operation: Việc xóa tệp sẽ không chỉ xóa tất cả dữ liệu được lưu trữ bên trong tệp mà nó còn được sử dụng để giải phóng không gian đĩa bị chiếm bởi nó Để xóa tệp đã chỉ định, thư mục được tìm kiếm Khi mục nhập thư mục được định vị, tất cả không gian tệp được liên kết và mục nhập thư mục sẽ được giải phóng.
Truncate operation: Cắt bớt chỉ đơn giản là xóa tệp ngoại trừ xóa các thuộc
tính Tệp không bị xóa hoàn toàn mặc dù thông tin được lưu trữ bên trong tệp được thay thế.
Close operation: Khi quá trình xử lý tệp hoàn tất, tệp phải được đóng lại để tất
cả các thay đổi được thực hiện vĩnh viễn và tất cả các tài nguyên bị chiếm dụng
sẽ được giải phóng Khi đóng, nó giải phóng tất cả các bộ mô tả bên trong đã được tạo khi tệp được mở.
Close operation: Thao tác này thêm dữ liệu vào cuối tệp.
Rename operation: Thao tác này được sử dụng để đổi tên tệp hiện có.
3.3 Truy cập vào File:
Để có những thao tác với file như trên, đầu tiên ta cần phải truy cập vào file:
3.3.1 Sequential Access
Trang 15Hình 1 Mô hình Sequential Access
Hầu hết các hệ điều hành truy cập tệp theo tuần tự Nói cách khác, chúng ta có thể nói rằng hầu hết các tệp cần được hệ điều hành truy cập tuần tự.
Trong truy cập tuần tự, hệ điều hành đọc tệp từng từ Một con trỏ được duy trì ban đầu trỏ đến địa chỉ cơ sở của tệp Nếu người dùng muốn đọc từ đầu tiên của tệp thì con trỏ cung cấp từ đó cho người dùng và tăng giá trị của nó lên 1 từ Quá trình này tiếp tục cho đến khi kết thúc tập tin.
Các hệ thống văn bản hiện đại cung cấp khái niệm truy cập trực tiếp và truy cập được lập chỉ mục nhưng phương pháp được sử dụng nhiều nhất là truy cập tuần tự do thực tế là hầu hết các tệp như tệp văn bản, tệp âm thanh, tệp video, v.v cần được truy cập tuần tự.
3.3.2 Direct Access
Truy cập trực tiếp chủ yếu được yêu cầu trong trường hợp hệ thống cơ sở dữ liệu Trong hầu hết các trường hợp, chúng tôi cần lọc thông tin từ cơ sở dữ liệu Truy cập tuần tự có thể rất chậm và không hiệu quả trong những trường hợp như vậy.
Giả sử mỗi khối của bộ lưu trữ lưu trữ 4 bản ghi và chúng tôi biết rằng bản ghi chúng tôi cần được lưu trữ trong khối thứ 10 Trong trường hợp đó, truy cập tuần tự sẽ không được thực hiện vì nó sẽ đi qua tất cả các khối để truy cập bản ghi cần thiết.
Trang 16Hình 2: Mô hình Direct Access
Truy cập trực tiếp sẽ cho kết quả cần thiết mặc dù thực tế là hệ điều hành phải thực hiện một số tác vụ phức tạp như xác định số khối mong muốn Tuy nhiên, điều
đó thường được thực hiện trong các ứng dụng cơ sở dữ liệu.
3.3.3 Indexed Access
Nếu một tệp có thể được sắp xếp trên bất kỳ tệp nào được sắp xếp thì một chỉ mục có thể được gán cho một nhóm các bản ghi nhất định Tuy nhiên, một bản ghi cụ thể có thể được truy cập bằng chỉ mục của nó Chỉ mục không là gì ngoài địa chỉ của một bản ghi trong tệp.
Khi truy cập chỉ mục, việc tìm kiếm trong cơ sở dữ liệu lớn trở nên rất nhanh chóng và dễ dàng nhưng chúng ta cần có thêm dung lượng trong bộ nhớ để lưu trữ giá trị chỉ mục.
Trang 17Mỗi phân vùng phải có ít nhất một thư mục trong đó có thể liệt kê tất cả các tệp của phân vùng đó. Một mục nhập thư mục được duy trì cho mỗi tệp trong thư mục lưu trữ tất cả thông tin liên quan đến tệp đó
Hình 3: Cấu trúc thư mục
Một thư mục có thể được xem như một tệp chứa dữ liệu Meta của một loạt tệp
Mọi Thư mục đều hỗ trợ một số thao tác phổ biến trên tệp:
3.4.2 Single Level Directory
Phương pháp đơn giản nhất là có một danh sách lớn tất cả các tệp trên đĩa. Toàn bộ hệ thống sẽ chỉ chứa một thư mục được cho là đề cập đến tất cả các tệp
có trong hệ thống tệp. Thư mục chứa một mục nhập cho mỗi tệp có trên hệ thống tệp
Hình 4: Cấu trúc Single Level Directory
Loại thư mục này có thể được sử dụng cho một hệ thống đơn giản
Trang 18Ưu điểm Nhược điểm
Thực hiện rất đơn giản.
Nếu kích thước của các tệp
rất nhỏ thì việc tìm kiếm sẽ
trở nên nhanh hơn.
Việc tạo, tìm kiếm, xóa tệp
Bảo vệ không thể được thực hiện cho nhiều người dùng.
Không có cách nào để nhóm các loại tệp giống nhau.
Việc chọn tên duy nhất cho mọi tệp hơi phức tạp và giới hạn số lượng tệp trong hệ thống vì hầu hết Hệ điều hành đều giới hạn số lượng ký
tự được sử dụng để tạo tên tệp.
Bảng 1: So sánh ưu nhược điểm của Single Level Directory
3.4.3 Two Level Directory
Trong hệ thống thư mục hai cấp, có thể tạo một thư mục riêng cho mỗi người dùng. Có một thư mục chính chứa các thư mục riêng dành cho từng người dùng. Với mỗi người dùng, có một thư mục khác nhau ở cấp độ thứ hai, chứa nhóm tệp của người dùng. Hệ thống không cho phép người dùng truy cập vào thư mục của người dùng khác mà không được phép
Hình 5:Cấu trúc Tow Level Directory
Đặc điểm của Two Level Directory
Mỗi tệp có một tên đường dẫn là /User-name/directory-name/
Những người dùng khác nhau có thể có cùng tên tệp
Việc tìm kiếm trở nên hiệu quả hơn vì chỉ cần duyệt qua danh sách của một người dùng
Các loại tệp giống nhau không thể được nhóm vào một thư mục cho một người dùng cụ thể
Trang 19Mọi Hệ điều hành đều duy trì một biến là PWD chứa tên thư mục hiện tại (tên người dùng hiện tại) để việc tìm kiếm có thể được thực hiện một cách thích hợp
3.4.4 Tree Structured Directory
Trong hệ thống thư mục có cấu trúc Tree, bất kỳ mục nhập thư mục nào cũng
có thể là tệp hoặc thư mục con. Hệ thống thư mục cấu trúc cây khắc phục được nhược điểm của hệ thống thư mục hai cấp. Các loại tệp tương tự hiện có thể được nhóm trong một thư mục
Mỗi người dùng có thư mục riêng và không thể nhập vào thư mục của người dùng khác. Tuy nhiên, người dùng có quyền đọc dữ liệu của root nhưng anh ta không thể viết hoặc sửa đổi dữ liệu này. Chỉ quản trị viên của hệ thống mới có toàn quyền truy cập vào thư mục gốc
Tìm kiếm hiệu quả hơn trong cấu trúc thư mục này. Khái niệm về thư mục làm việc hiện tại được sử dụng. Một tệp có thể được truy cập bằng hai loại đường dẫn, tương đối hoặc tuyệt đối
Đường dẫn tuyệt đối là đường dẫn của tệp đối với thư mục gốc của hệ thống trong khi đường dẫn tương đối là đường dẫn đối với thư mục làm việc hiện tại của hệ thống. Trong các hệ thống thư mục có cấu trúc cây, người dùng được cấp đặư mục
Hình 6: Cấu trúc Tree Directory
Một hệ thống thư mục có cấu trúc cây có thể bao gồm nhiều cấp độ khác nhau, do
đó có một tập hợp các quyền được gán cho từng tệp và thư mục
Các quyền là RWX liên quan đến việc đọc, viết và thực thi các tệp hoặc thư mục. Các quyền được gán cho ba loại người dùng: chủ sở hữu, nhóm và những người khác
Có một bit nhận dạng phân biệt giữa thư mục và tệp. Đối với một thư mục, nó
là d và đối với một tệp, nó là dấu chấm (.)
III File FAT
Tồn tại nhiều hệ thống file khác nhau như file FAT, NTFS, ETX3, CDFS, UDF
Hệ thống FAT
Trang 20 FAT32 dùng cho Win98
12/16/32: số bit dùng để định danh cluster
Hệ thống quản lý file trong CDROM
Hạn chế về độ sâu cây thư mục và kích thước tên
Hệ thống UDF
Phát triển từ CDFS cho DVD-ROM, hỗ trợ tên file dài
Ở trong báo cáo này sẽ lựa chọn hệ thống file đơn giản nhất và dễ dàng hiểu nhất đó là hệ thống file FAT Hệ thống file FAT được sử dụng rất thông dụng vì nó được đưa ra bởi hãng Microsoft.
1 Cấu trúc của hệ thống file FAT
Khi chúng ta có một phân vùng mà chúng ta muốn sử dụng cho hệ thống file FAT thì đầu tiên chúng ta cần phải tiến hành format
Hình 20: Cấu trúc hệ thống file FAT16 và FAT32
Khi format phân vùng đó theo định dạng của hệ thống file flash thì nó sẽ chia phân vùng này ra thành bao gồm vùng hệ thống và vùng dữ liệu Trong phần hệ thống, được chia thành các phần nhỏ là Boot Sector, FAT group Trong vùng dữ liệu, được chia thành các khối được gọi là các cluster Với FAT12 và FAT16 thì sẽ sử dụng 12 hoặc 16 bit để định ra của một cluster tạo ra hệ thống FAT12, FAT16; với FAT12 có
Trang 21thước lớn nhất của hệ thống FAT12 là 32MB và FAT16 là 2Gb hoặc 4Gb Với FAT32, về mặt lý thuyết có thể dùng 32 bit để định danh 1 phần tử, tuy nhiên chỉ dùng 28 bit trong thực tế, cho nên số cluster lớn nhất có thể là 2^28 – 18 Kích thước lớn nhất của một phân vùng FAT32 có thể đạt tới 2Tb, 8Tb hoặc 16Tb Về cấu trúc file hệ thống của FAT12 và FAT16 là giống nhau và phần thư mục gốc được đặt trong vùng hệ thống còn với FAT32 thì nó được đặt trong vùng dữ liệu nên kích thước và vị trí có thể được thay đổi
2 Boot Sector
2.1 Tổng quan
Boot sector là sector đầu tiên của một phân vùng dành cho hệ thống file FAT
và được chia thành 3 phần như sau đầu tiên là câu lệnh Jmp và mã vùng nhảy tới, tiếp tới là một vùng là bảng tham số Bios parameters blog, tiếp đến là chương trình mồi và cuối cùng là 4 byte được gọi là chữ ký của hệ thống.
Hình 21: Cấu trúc của Boot Sector và ví dụ
Khi bật máy tính, đầu tiên là top power on the test rồi tiếp đến là thực hiện chương trình nhật biết, trong chương trình nhận biết sẽ đọc bảng phân chương để biết rằng phân vùng nào chưa hệ điều hành và sau đó đọc sector đầu tiên của phân vùng chứa hệ điều hành vào trong bộ nhớ và thực hiện phân vùng này Nếu phân vùng chưa
hệ điều hành là phân vùng của Microsoft như Windown thì sector đầu tiên sẽ chính là boot sector vậy nên sau chương trình nhận biết thì chương trình tiếp theo là boot sector Boot sector sẽ thực hiện bằng câu lệnh Jmp, câu lệnh này sẽ nhảy của bảng thông số Bios và thực hiện thương trình mồi Chương trình mồi sẽ tìm kiếm những file của hệ điều hành và tiến hành nạp các file đó vào trong bộ nhớ Bảng thống số Bios sẽ
có các thông số dùng để mô tả các tổ chức của phân vùng tương ứng ví dụ nó cho biết
Trang 22rằng kích thước của bảng FAT, kích thước của thư mục gốc, kích thước của cluster,
để tìm kiếm vị trí của thư mục gốc, vị trí các file,
2.2 Bảng tham số bios
Cấu trúc bảng tham số đĩa dành cho FAT16
Hình 22: Ví dụ giải mã bảng tham số bios của FAT16
EB 3C 90 MSDOS5.0
00 02 40
01 00 02
00 02
00 00 F8 D1 09 3F 00
40 00 3F 00 00 00
41 0C 34 00
80h 00 29h D513 5B24
NO NAME FAT16
Nhảy đến đầu chương trình mồi Tên hệ thống file đã format đĩa Kích thước 1 sector, thường là 512
Số sector cho một cluster (32K – Cluster)
Số sector đừng trước FAT/ Số sector để dành
Số bảng FAT
Số phần tử của ROOT FAT32: 00 00 Tổng số sector trên đĩa ( <32M) hoặc 0000 Khuôn dạng đĩa (F8:HD, F0: Đĩa 1.44M)
Số sector cho một bảng FAT (209)
Bảng 2:Phân tích bảng tham số đĩa dành cho FAT16
Cấu trúc tham số đĩa dành cho FAT32