Làm thế nào để các hệ thống tập tin nhận ra các tập tin của Viking từ byte / bit?


0

Không chắc chắn nếu lạc đề, nhưng tôi tin rằng đó là công việc của một hệ thống tệp để nhận ra các khối bit / byte và gọi các "tệp" này để giúp truy cập dữ liệu tốt hơn và đóng gói như một đơn vị, trái ngược với một đại dương của các quốc gia lật không có trật tự. Nhưng làm thế nào, nhiều hay ít, điều này được thực hiện? Hệ thống tập tin (bất kỳ trong câu hỏi) có vạch ra hoặc giữ một tham chiếu của phần bù giữa dữ liệu bắt đầu / kết thúc dữ liệu, nó có sử dụng mã định danh cho một địa chỉ được kiểm tra hoặc một cái gì đó không, v.v.? Tôi có kiến ​​thức lập trình, nhưng khái niệm thất tình này chắc chắn đã làm tôi bối rối. Tôi biết hầu hết các hệ thống tệp được viết bằng HLL (như C, C ++, D, v.v.), nhưng chính xác, ở mức thấp nhất, chúng có theo dõi hoàn hảo mọi thứ từ sector / block 1 của tệp "A" không phạm vi cuối cùng?


1
Bắt đầu với siêu khối FAT / MFT /. Làm việc từ đó.
Ignacio Vazquez-Abrams

Câu trả lời:


0

đĩa cứng được sắp xếp theo cụm 512 hoặc 4k byte dữ liệu. Mỗi cụm được gọi là một khối.

Ở mức thấp nhất, một hệ điều hành sẽ phát hành các lệnh như đọc từ khối 4 hoặc ghi vào khối 11. Đặc tả SATA xác định chính xác cách thức các lệnh này hoạt động và những lệnh nào sẽ có sẵn. Các lệnh mức thấp này được trừu tượng hóa thành các lệnh cấp cao hơn mà giao diện hệ thống tệp.

Một hệ thống tệp cung cấp ánh xạ các tệp vào các khối đĩa. Một hệ thống tệp rất cơ bản (như MS-DOS FS) sẽ bắt đầu bằng cách có bảng phân vùng (ở khối 0, "siêu khối") cho phép bạn xác định các đĩa logic trên đầu đĩa vật lý. Mỗi đĩa logic sau đó sẽ bắt đầu với một mục duy nhất xác định một thư mục. Mỗi mục trong thư mục này sẽ chứa một danh sách các tệp và khối nào trỏ đến các tệp đó.

Đối với mỗi tệp, khối đầu tiên sẽ là cấu trúc siêu dữ liệu xác định tệp đó là gì (tệp, thư mục, liên kết hoặc thứ gì khác), độ lớn của nó, quyền truy cập của nó là gì và danh sách các khối nơi dữ liệu tập tin cư trú.


0

Hệ thống tập tin không nhìn nhận các tập tin. Thay vào đó, họ định nghĩa những gì một

Bắt đầu với một đĩa trống và yêu cầu hệ thống tệp tạo tệp ở đó. Nó sẽ:

  1. Quyết định xem tên tệp và / hoặc cú pháp đường dẫn của bạn có đúng không
  2. Xác định vị trí trong cấu trúc thư mục nơi tệp của bạn sẽ được đặt một cách hợp lý
  3. Quyết định xem một tập tin khác có cùng tên đã có mặt tại vị trí đó hay chưa, và nếu vậy, liệu có ghi đè lên nó, nối thêm vào nó hay trả lại lỗi.
  4. Tạo một hoặc nhiều mục trong siêu dữ liệu hệ thống tệp cho biết rằng tệp có trong thư mục cha mong muốn
  5. Phân bổ không gian đĩa cho các byte tạo nên tệp
  6. Ghi byte của tệp vào không gian đĩa được phân bổ
  7. Thay đổi siêu dữ liệu để chỉ ra vị trí của tất cả các khối của tệp và cho biết EOF ở đâu (nếu đó là tệp tuần tự).

Không ai trong số đó yêu cầu hệ thống tệp "nhận ra" bất cứ thứ gì ngoại trừ các cấu trúc dữ liệu giống như nó đã tạo ở vị trí đầu tiên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.