Đĩa và hệ thống tập tin. Công nghệ chẩn đoán và sửa chữa ổ đĩa cứng

Không thể tưởng tượng được hệ điều hành Microsoft thuộc họ Windows NT nếu không có hệ thống tệp NTFS - một trong những hệ thống tệp phức tạp và thành công nhất hiện nay. Bài viết này sẽ cho bạn biết các tính năng và nhược điểm của hệ thống này là gì, tổ chức thông tin dựa trên nguyên tắc nào và cách duy trì hệ thống ở trạng thái ổn định, những tính năng mà NTFS cung cấp và cách người dùng bình thường có thể sử dụng chúng.
Phần 1. Cấu trúc vật lý của NTFS

Hãy bắt đầu với sự thật chung. Về lý thuyết, một phân vùng NTFS có thể có kích thước gần như bất kỳ. Tất nhiên, có một giới hạn, nhưng tôi thậm chí sẽ không chỉ ra điều đó, vì nó sẽ đủ cho sự phát triển của công nghệ máy tính trong một trăm năm tới - với bất kỳ tốc độ tăng trưởng nào. Điều này hoạt động như thế nào trong thực tế? Hầu như giống nhau. Kích thước tối đa của phân vùng NTFS hiện chỉ bị giới hạn bởi kích thước của ổ cứng. Tuy nhiên, NT4 sẽ gặp sự cố khi cố gắng cài đặt trên một phân vùng nếu bất kỳ phần nào của nó lớn hơn 8 GB so với phần đầu vật lý của đĩa, nhưng sự cố này chỉ ảnh hưởng đến phân vùng khởi động.

Lạc đề trữ tình. Phương pháp cài đặt NT4.0 trên một đĩa trống khá độc đáo và có thể dẫn đến những suy nghĩ sai lầm về khả năng của NTFS. Nếu bạn yêu cầu trình cài đặt rằng bạn muốn định dạng ổ đĩa thành NTFS, kích thước tối đa nó sẽ cung cấp cho bạn chỉ là 4GB. Tại sao lại nhỏ như vậy nếu kích thước của phân vùng NTFS thực tế là không giới hạn? Thực tế là phần cài đặt đơn giản là không biết hệ thống tệp này :) Chương trình cài đặt định dạng đĩa này thành FAT thông thường, kích thước tối đa trong NT là 4 GB (sử dụng cụm 64 KB lớn không hoàn toàn tiêu chuẩn) và NT cài đặt trên FAT này. Nhưng ngay trong lần khởi động đầu tiên của hệ điều hành (vẫn đang trong giai đoạn cài đặt), phân vùng sẽ nhanh chóng được chuyển đổi sang NTFS; vì vậy người dùng không nhận thấy bất cứ điều gì ngoại trừ “giới hạn” kỳ lạ về kích thước NTFS trong quá trình cài đặt. :)

Cấu trúc phần - nhìn tổng quát

Giống như bất kỳ hệ thống nào khác, NTFS chia tất cả không gian hữu ích thành các cụm - khối dữ liệu được sử dụng tại một thời điểm. NTFS hỗ trợ hầu hết mọi kích thước cụm - từ 512 byte đến 64 KB, trong khi cụm 4 KB được coi là một tiêu chuẩn nhất định. NTFS không có bất kỳ điểm bất thường nào trong cấu trúc cụm, vì vậy không có nhiều điều để nói về vấn đề này, nói chung là một chủ đề khá tầm thường.

Đĩa NTFS thường được chia thành hai phần. 12% đầu tiên của đĩa được phân bổ cho cái gọi là vùng MFT - không gian mà siêu tệp MFT phát triển (xem thêm về điều này bên dưới). Không thể ghi bất kỳ dữ liệu nào vào khu vực này. Vùng MFT luôn được giữ trống - điều này được thực hiện để tệp dịch vụ quan trọng nhất (MFT) không bị phân mảnh khi nó phát triển. 88% còn lại của đĩa là không gian lưu trữ tệp thông thường.

Tuy nhiên, dung lượng đĩa trống bao gồm tất cả không gian trống về mặt vật lý - các phần chưa được lấp đầy của vùng MFT cũng được bao gồm ở đó. Cơ chế sử dụng vùng MFT như sau: khi không thể ghi tệp vào không gian thông thường nữa, vùng MFT chỉ đơn giản là giảm đi (trong các phiên bản hệ điều hành hiện tại chính xác một nửa), do đó giải phóng không gian để ghi tệp. Khi không gian được giải phóng trong khu vực MFT thông thường, khu vực này có thể mở rộng trở lại. Đồng thời, có thể các tệp thông thường vẫn nằm trong vùng này: không có điều gì bất thường ở đây. Chà, hệ thống đã cố gắng giữ cô ấy tự do, nhưng không có tác dụng. Cuộc sống vẫn tiếp diễn... Siêu tệp MFT có thể vẫn bị phân mảnh, mặc dù điều này là không mong muốn.

MFT và cấu trúc của nó

Hệ thống tệp NTFS đại diện cho một thành tựu đáng chú ý về cấu trúc: mọi một phần tử của hệ thống là một tập tin - thậm chí cả thông tin dịch vụ. Tệp quan trọng nhất trên NTFS được gọi là MFT, hay Master File Table - một bảng chung gồm các tệp. Nó nằm trong vùng MFT và là một thư mục tập trung của tất cả các tệp đĩa khác, và nghịch lý thay, chính nó. MFT được chia thành các mục có kích thước cố định (thường là 1 KB) và mỗi mục tương ứng với một tệp (theo nghĩa chung của từ này). 16 tệp đầu tiên có tính chất dịch vụ và không thể truy cập được vào hệ điều hành - chúng được gọi là siêu tệp, với siêu tệp đầu tiên chính là MFT. 16 phần tử MFT đầu tiên này là phần duy nhất của đĩa có vị trí cố định. Điều thú vị là bản sao thứ hai của ba bản ghi đầu tiên, vì độ tin cậy - chúng rất quan trọng - được lưu trữ chính xác ở giữa đĩa. Phần còn lại của tệp MFT có thể được đặt, giống như bất kỳ tệp nào khác, ở những vị trí tùy ý trên đĩa - bạn có thể khôi phục vị trí của nó bằng chính tệp đó, "bắt" trên cơ sở - trên phần tử MFT đầu tiên.

Siêu tệp

16 tệp NTFS (siêu tệp) đầu tiên có tính chất dịch vụ. Mỗi người trong số họ chịu trách nhiệm về một số khía cạnh hoạt động của hệ thống. Ưu điểm của cách tiếp cận mô-đun như vậy là tính linh hoạt đáng kinh ngạc của nó - ví dụ: trên FAT, thiệt hại vật lý trong vùng FAT sẽ ảnh hưởng nghiêm trọng đến hoạt động của toàn bộ đĩa và NTFS có thể dịch chuyển, thậm chí cả phân đoạn trên đĩa, tất cả dịch vụ của nó các khu vực, bỏ qua mọi đứt gãy bề mặt - ngoại trừ 16 phần tử MFT đầu tiên.

Siêu tệp nằm trong thư mục gốc của đĩa NTFS - chúng bắt đầu bằng ký hiệu tên “$”, mặc dù rất khó để có được bất kỳ thông tin nào về chúng bằng các phương tiện tiêu chuẩn. Điều tò mò là những tệp này cũng có kích thước rất thực được chỉ định - ví dụ: bạn có thể tìm hiểu xem hệ điều hành chi bao nhiêu cho việc lập danh mục toàn bộ đĩa của bạn bằng cách xem kích thước của tệp $MFT. Bảng sau đây hiển thị các siêu tệp hiện đang được sử dụng và mục đích của chúng.

$MFTBản thân MFT
$MFTmirrbản sao của 16 bản ghi MFT đầu tiên được đặt ở giữa đĩa
$Tệp nhật kýtập tin hỗ trợ ghi nhật ký (xem bên dưới)
$Khối lượngthông tin dịch vụ - nhãn ổ đĩa, phiên bản hệ thống tệp, v.v.
$AttrDefdanh sách các thuộc tính tệp tiêu chuẩn trên ổ đĩa
$. thư mục gốc
$bitmapbản đồ không gian trống
$Khởi độngkhu vực khởi động (nếu phân vùng có khả năng khởi động)
hạn ngạch $một tệp ghi lại quyền sử dụng dung lượng ổ đĩa của người dùng (bắt đầu chỉ hoạt động trong NT5)
$Chữ hoafile - một bảng tương ứng giữa chữ hoa và chữ thường trong tên tệp trên ổ đĩa hiện tại. Nó cần thiết chủ yếu vì tên tệp trong NTFS được viết bằng Unicode, lên tới 65 nghìn ký tự khác nhau, việc tìm kiếm các ký tự lớn và nhỏ tương đương là rất không tầm thường.

Tệp và luồng

Vì vậy, hệ thống có các tệp - và không có gì ngoài các tệp. Khái niệm này bao gồm những gì trên NTFS?

  • Trước hết, một yếu tố bắt buộc là ghi trong MFT, bởi vì, như đã đề cập trước đó, tất cả các tệp trên đĩa đều được đề cập trong MFT. Tất cả thông tin về tệp được lưu trữ ở nơi này, ngoại trừ chính dữ liệu đó. Tên tệp, kích thước, vị trí trên đĩa của các đoạn riêng lẻ, v.v. Nếu một bản ghi MFT không đủ thông tin thì một số bản ghi sẽ được sử dụng và không nhất thiết phải liên tiếp.
  • Phần tử tùy chọn - luồng dữ liệu tệp. Định nghĩa về “tùy chọn” có vẻ lạ, tuy nhiên, không có gì lạ ở đây cả. Thứ nhất, tệp có thể không có dữ liệu - trong trường hợp này, nó không tiêu tốn dung lượng trống của đĩa. Thứ hai, tệp có thể không lớn lắm. Sau đó, một giải pháp khá thành công được đưa ra: dữ liệu tệp được lưu trữ trực tiếp trong MFT, trong khoảng trống còn lại của dữ liệu chính trong một bản ghi MFT. Các tệp chiếm hàng trăm byte thường không có hiện thân “vật lý” trong vùng tệp chính - tất cả dữ liệu của tệp đó được lưu trữ ở một nơi - trong MFT.

Tình huống với dữ liệu tập tin khá thú vị. Nói chung, mỗi tệp trên NTFS có cấu trúc hơi trừu tượng - nó không có dữ liệu như vậy nhưng có các luồng. Một trong những luồng có ý nghĩa mà chúng ta quen thuộc - dữ liệu tệp. Nhưng hầu hết các thuộc tính của tệp cũng là luồng! Do đó, hóa ra tệp chỉ có một thực thể cơ bản - số trong MFT và mọi thứ khác đều là tùy chọn. Sự trừu tượng hóa này có thể được sử dụng để tạo ra những thứ khá thuận tiện - ví dụ: bạn có thể "đính kèm" một luồng khác vào một tệp bằng cách ghi bất kỳ dữ liệu nào vào đó - ví dụ: thông tin về tác giả và nội dung của tệp, như được thực hiện trong Windows 2000 (tab ngoài cùng bên phải trong thuộc tính tệp, được xem từ Explorer). Điều thú vị là những luồng bổ sung này không thể hiển thị bằng các phương tiện tiêu chuẩn: kích thước tệp được quan sát chỉ bằng kích thước của luồng chính chứa dữ liệu truyền thống. Ví dụ: bạn có thể có một tệp có độ dài bằng 0, khi bị xóa, tệp này sẽ giải phóng 1 GB dung lượng trống - đơn giản vì một số chương trình hoặc công nghệ xảo quyệt đã mắc kẹt một luồng bổ sung có kích thước gigabyte (dữ liệu thay thế) trong đó. Nhưng trên thực tế, hiện tại, các chủ đề thực tế không được sử dụng, vì vậy người ta không nên sợ những tình huống như vậy, mặc dù về mặt giả thuyết là có thể xảy ra. Chỉ cần lưu ý rằng tệp trên NTFS là một khái niệm sâu sắc hơn và toàn diện hơn người ta có thể tưởng tượng bằng cách duyệt qua các thư mục của đĩa. Và cuối cùng: tên tệp có thể chứa bất kỳ ký tự nào, bao gồm toàn bộ bộ bảng chữ cái quốc gia, vì dữ liệu được trình bày bằng Unicode - biểu diễn 16 bit cung cấp 65535 ký tự khác nhau. Độ dài tên tệp tối đa là 255 ký tự.

Danh mục

Thư mục NTFS là một tệp cụ thể lưu trữ các liên kết đến các tệp và thư mục khác, tạo ra cấu trúc dữ liệu phân cấp trên đĩa. Tệp danh mục được chia thành các khối, mỗi khối chứa tên tệp, thuộc tính cơ bản và liên kết đến phần tử MFT, phần tử này đã cung cấp thông tin đầy đủ về phần tử danh mục. Cấu trúc thư mục nội bộ là một cây nhị phân. Đây là ý nghĩa của điều này: để tìm một tệp có tên đã cho trong một thư mục tuyến tính, chẳng hạn như FAT, hệ điều hành phải xem qua tất cả các thành phần của thư mục cho đến khi tìm thấy đúng. Cây nhị phân sắp xếp tên tệp sao cho việc tìm kiếm tệp được thực hiện nhanh hơn - bằng cách nhận được câu trả lời gồm hai chữ số cho các câu hỏi về vị trí của tệp. Câu hỏi mà cây nhị phân có thể trả lời là: tên bạn đang tìm kiếm nằm trong nhóm nào, liên quan đến một phần tử nhất định - ở trên hay ở dưới? Chúng tôi bắt đầu với một câu hỏi như vậy cho phần tử ở giữa và mỗi câu trả lời sẽ thu hẹp khu vực tìm kiếm trung bình hai lần. Ví dụ: các tệp được sắp xếp đơn giản theo thứ tự bảng chữ cái và câu hỏi được trả lời theo cách rõ ràng - bằng cách so sánh các chữ cái đầu tiên. Khu vực tìm kiếm, bị thu hẹp một nửa, bắt đầu được khám phá theo cách tương tự, bắt đầu lại từ phần tử ở giữa.

Kết luận - ví dụ: để tìm kiếm một tệp trong số 1000 tệp, FAT sẽ phải thực hiện trung bình 500 so sánh (rất có thể tệp sẽ được tìm thấy ở giữa quá trình tìm kiếm) và hệ thống dựa trên cây sẽ có chỉ tạo ra khoảng 12 (2^10 = 1024). Tiết kiệm thời gian tìm kiếm là điều hiển nhiên. Tuy nhiên, bạn không nên nghĩ rằng trong các hệ thống truyền thống (FAT) mọi thứ đều bị bỏ qua: thứ nhất, việc duy trì danh sách các tệp ở dạng cây nhị phân khá tốn công sức và thứ hai, ngay cả FAT cũng được thực hiện bởi một hệ thống hiện đại (Windows2000). hoặc Windows98) sử dụng tìm kiếm tối ưu hóa tương tự. Đây chỉ là một thực tế khác để bổ sung vào nền tảng kiến ​​thức của bạn. Tôi cũng muốn xóa bỏ quan niệm sai lầm phổ biến (mà bản thân tôi đã chia sẻ gần đây) rằng việc thêm tệp vào thư mục ở dạng cây khó hơn so với thư mục tuyến tính: đây là những thao tác khá giống nhau về mặt thời gian - thực tế là rằng để thêm một tệp vào thư mục, trước tiên bạn cần đảm bảo rằng tệp có tên đó chưa có ở đó :) - và ở đây trong hệ thống tuyến tính, chúng ta sẽ gặp khó khăn khi tìm tệp, được mô tả ở trên, nhiều hơn là bù đắp cho sự đơn giản của việc thêm một tập tin vào thư mục.

Thông tin gì có thể thu được bằng cách đọc một tập tin danh mục? Chính xác những gì lệnh dir tạo ra. Để thực hiện điều hướng ổ đĩa đơn giản, bạn không cần vào MFT cho từng tệp, bạn chỉ cần đọc thông tin chung nhất về tệp từ tệp thư mục. Thư mục chính của đĩa - thư mục gốc - không khác gì các thư mục thông thường, ngoại trừ một liên kết đặc biệt đến nó từ đầu siêu tệp MFT.

Ghi nhật ký

NTFS là một hệ thống có khả năng chịu lỗi, có thể dễ dàng tự khôi phục về trạng thái chính xác trong hầu hết mọi trường hợp xảy ra lỗi thực sự. Bất kỳ hệ thống tập tin hiện đại nào cũng dựa trên khái niệm về giao dịch- một hành động được thực hiện hoàn toàn và chính xác hoặc không hề được thực hiện. NTFS đơn giản là không có trạng thái trung gian (sai hoặc không chính xác) - lượng thay đổi dữ liệu không thể được chia thành trước và sau lỗi, dẫn đến sự phá hủy và nhầm lẫn - nó bị cam kết hoặc bị hủy bỏ.

Ví dụ 1: dữ liệu được ghi vào đĩa. Đột nhiên, hóa ra không thể ghi vào nơi mà chúng tôi vừa quyết định ghi phần dữ liệu tiếp theo - thiệt hại vật lý trên bề mặt. Hành vi của NTFS trong trường hợp này khá logic: giao dịch ghi được khôi phục hoàn toàn - hệ thống nhận ra rằng việc ghi không được thực hiện. Vị trí được đánh dấu là không thành công và dữ liệu được ghi vào vị trí khác - một giao dịch mới bắt đầu.

Ví dụ 2: Một trường hợp phức tạp hơn là khi dữ liệu được ghi vào đĩa. Đột nhiên, bang - nguồn bị tắt và hệ thống khởi động lại. Quá trình ghi dừng ở giai đoạn nào, dữ liệu ở đâu và vô nghĩa ở đâu? Một cơ chế hệ thống khác được giải cứu - nhật ký giao dịch. Thực tế là hệ thống, nhận ra mong muốn ghi vào đĩa, đã đánh dấu trạng thái này trong siêu tệp $LogFile. Khi khởi động lại, tệp này sẽ được kiểm tra để tìm sự hiện diện của các giao dịch chưa hoàn thành bị gián đoạn do tai nạn và kết quả của nó là không thể đoán trước - tất cả các giao dịch này đều bị hủy: nơi thực hiện ghi được đánh dấu lại là các phần tử miễn phí, chỉ mục và MFT được đưa trở lại trạng thái trước khi thất bại và toàn bộ hệ thống vẫn ổn định. Chà, điều gì sẽ xảy ra nếu xảy ra lỗi khi ghi vào nhật ký? Cũng không sao: giao dịch chưa bắt đầu (chỉ có nỗ lực ghi lại ý định thực hiện) hoặc nó đã kết thúc - nghĩa là có nỗ lực ghi lại rằng giao dịch thực sự đã được thực hiện hoàn thành. Trong trường hợp sau, ở lần khởi động tiếp theo, bản thân hệ thống sẽ hoàn toàn hiểu rằng trên thực tế, mọi thứ đều được viết chính xác và sẽ không chú ý đến giao dịch “chưa hoàn thành”.

Tuy nhiên, hãy nhớ rằng ghi nhật ký không phải là thuốc chữa bách bệnh tuyệt đối mà chỉ là phương tiện để giảm đáng kể số lượng lỗi và lỗi hệ thống. Người dùng NTFS thông thường khó có thể nhận thấy lỗi hệ thống hoặc buộc phải chạy chkdsk - kinh nghiệm cho thấy NTFS được khôi phục về trạng thái hoàn toàn chính xác ngay cả trong trường hợp xảy ra lỗi vào những thời điểm rất bận rộn với hoạt động của đĩa. Bạn thậm chí có thể tối ưu hóa ổ đĩa và nhấn đặt lại ở giữa quá trình này - khả năng mất dữ liệu ngay cả trong trường hợp này sẽ rất thấp. Tuy nhiên, điều quan trọng là phải hiểu rằng hệ thống khôi phục NTFS đảm bảo tính chính xác của hệ thống tập tin, không phải dữ liệu của bạn. Nếu bạn đang ghi vào đĩa và gặp sự cố, dữ liệu của bạn có thể không được ghi. Không có phép lạ.

Nén

Các tệp NTFS có một thuộc tính khá hữu ích - "nén". Thực tế là NTFS có tích hợp sẵn tính năng hỗ trợ nén đĩa - thứ mà trước đây bạn phải sử dụng Stacker hoặc DoubleSpace. Bất kỳ tệp hoặc thư mục nào cũng có thể được lưu trữ riêng lẻ trên đĩa ở dạng nén - quá trình này hoàn toàn minh bạch đối với các ứng dụng. Nén tệp có tốc độ rất cao và chỉ có một thuộc tính tiêu cực lớn - sự phân mảnh ảo rất lớn của các tệp nén, tuy nhiên, điều này không thực sự làm phiền bất kỳ ai. Quá trình nén được thực hiện theo khối gồm 16 cụm và sử dụng cái gọi là “cụm ảo” - một lần nữa là một giải pháp cực kỳ linh hoạt cho phép bạn đạt được các hiệu ứng thú vị - ví dụ: một nửa tệp có thể được nén và một nửa thì không. Điều này đạt được là do việc lưu trữ thông tin về việc nén các đoạn nhất định rất giống với việc phân mảnh tệp thông thường: ví dụ: một bản ghi điển hình về bố cục vật lý cho một tệp thực, không nén:

cụm tệp từ 1 đến 43 được lưu trữ trong cụm đĩa bắt đầu từ 400

cụm tệp từ 44 đến 52 được lưu trữ trong cụm đĩa bắt đầu từ 8530...

Bố cục vật lý của một tệp nén điển hình:

cụm tệp từ 1 đến 9 được lưu trữ trong cụm đĩa bắt đầu từ 400

cụm tệp 10 đến 16 không được lưu trữ ở bất cứ đâu

cụm tệp từ 17 đến 18 được lưu trữ trong cụm đĩa bắt đầu từ 409

cụm tệp từ 19 đến 36 không được lưu trữ ở bất cứ đâu


Có thể thấy file nén có các cụm “ảo”, trong đó không có thông tin thật. Ngay khi hệ thống nhìn thấy các cụm ảo như vậy, nó sẽ hiểu ngay rằng dữ liệu từ khối trước đó, bội số của 16, phải được giải nén và dữ liệu kết quả sẽ chỉ lấp đầy các cụm ảo - trên thực tế, đó là toàn bộ thuật toán .

Sự an toàn

NTFS chứa nhiều phương tiện phân định quyền của các đối tượng - người ta tin rằng đây là hệ thống tệp tiên tiến nhất trong số tất cả các hệ thống tệp hiện có. Về lý thuyết, điều này chắc chắn là đúng, nhưng thật không may, trong quá trình triển khai hiện nay, hệ thống quyền còn khá xa lý tưởng và mặc dù cứng nhắc nhưng không phải lúc nào cũng là một tập hợp các đặc điểm hợp lý. Các quyền được gán cho bất kỳ đối tượng nào và được hệ thống tôn trọng rõ ràng đang phát triển - những thay đổi và bổ sung lớn đối với các quyền đã được thực hiện nhiều lần và đến Windows 2000 cuối cùng chúng đã đạt được một bộ khá hợp lý.

Các quyền của hệ thống tệp NTFS được liên kết chặt chẽ với chính hệ thống - nghĩa là, nói chung, chúng không bắt buộc phải được hệ thống khác tôn trọng nếu nó được cấp quyền truy cập vật lý vào đĩa. Để ngăn chặn truy cập vật lý, Windows 2000 (NT5) vẫn giới thiệu một tính năng tiêu chuẩn - xem bên dưới để biết thêm về điều này. Hệ thống quyền trong tình trạng hiện tại khá phức tạp và tôi nghi ngờ rằng mình có thể nói với độc giả phổ thông bất cứ điều gì thú vị và hữu ích đối với anh ta trong cuộc sống hàng ngày. Nếu quan tâm đến chủ đề này, bạn sẽ tìm thấy nhiều sách về kiến ​​trúc mạng NT mô tả chi tiết hơn về vấn đề này.

Tại thời điểm này, việc mô tả cấu trúc của hệ thống tập tin có thể được hoàn thành; nó vẫn chỉ mô tả một số thứ nhất định có tính thực tế hoặc nguyên bản.

Liên kết cứng

Tính năng này đã có trong NTFS từ thời xa xưa, nhưng rất hiếm khi được sử dụng - tuy nhiên: Liên kết cứng là khi cùng một tệp có hai tên (một số con trỏ thư mục tệp hoặc các thư mục khác nhau trỏ đến cùng một bản ghi MFT). Giả sử cùng một tệp có tên 1.txt và 2.txt: nếu người dùng xóa tệp 1, tệp 2 sẽ vẫn còn. Nếu anh ta xóa 2, tệp 1 sẽ vẫn giữ nguyên, nghĩa là cả hai tên, kể từ thời điểm tạo, là hoàn toàn bình đẳng. Tệp chỉ bị xóa vật lý khi họ của nó bị xóa.

Liên kết tượng trưng (NT5)

Một tính năng thiết thực hơn nhiều cho phép bạn tạo các thư mục ảo - giống hệt như các đĩa ảo sử dụng lệnh subst trong DOS. Các ứng dụng khá đa dạng: thứ nhất là đơn giản hóa hệ thống danh mục. Nếu không thích thư mục Documents and settingsAdministratorDocuments, bạn có thể liên kết nó với thư mục gốc - hệ thống sẽ vẫn liên lạc với thư mục bằng một đường dẫn hoang dã và bạn sẽ có một tên ngắn hơn nhiều và hoàn toàn tương đương với nó. Để tạo các kết nối như vậy, bạn có thể sử dụng chương trình nối (junction.zip, 15 KB), được viết bởi chuyên gia nổi tiếng Mark Russinovich. Chương trình chỉ hoạt động trong NT5 (Windows 2000), cũng như tính năng này.

Để xóa kết nối, bạn có thể sử dụng lệnh rd tiêu chuẩn.
CHÚ Ý: Cố gắng liên kết bằng Explorer hoặc các trình quản lý tệp khác mà không hiểu bản chất ảo của thư mục (chẳng hạn như FAR) sẽ dẫn đến việc dữ liệu được tham chiếu bởi liên kết sẽ bị xóa! Hãy cẩn thận.

Mã hóa (NT5)

Một tính năng hữu ích dành cho những người quan tâm đến bí mật của họ - mỗi tệp hoặc thư mục cũng có thể được mã hóa, khiến bản cài đặt NT khác không thể đọc được. Kết hợp với mật khẩu tiêu chuẩn và thực tế không thể phá được để khởi động hệ thống, tính năng này cung cấp đủ mức bảo mật cho hầu hết các ứng dụng đối với dữ liệu quan trọng mà bạn chọn.

Hãy quay lại một điểm khá thú vị và quan trọng - phân mảnh và chống phân mảnh NTFS. Thực tế là tình hình của hai khái niệm này vào lúc này không thể gọi là thỏa đáng theo bất kỳ cách nào. Ngay từ đầu, người ta đã tuyên bố rằng NTFS không bị phân mảnh tệp. Điều này hóa ra không hoàn toàn đúng và tuyên bố đã được thay đổi - NTFS ngăn chặn sự phân mảnh. Hóa ra điều này không hoàn toàn đúng. Tất nhiên, điều đó gây trở ngại, nhưng lợi ích của việc này gần bằng không... Hiện tại rõ ràng rằng NTFS là một hệ thống, không giống các hệ thống khác, dễ bị phân mảnh, bất kể điều gì được tuyên bố chính thức. Điều duy nhất là về mặt logic thì cô ấy không phải chịu đựng nhiều vì điều này. Tất cả các cấu trúc bên trong được xây dựng theo cách mà sự phân mảnh không cản trở việc tìm kiếm nhanh các phần dữ liệu. Nhưng tất nhiên, nó không cứu bạn khỏi hậu quả vật lý của sự phân mảnh - những chuyển động không cần thiết của đầu. Và do đó - chuyển tiếp và với một bài hát.

Đến tận gốc rễ của vấn đề

Như bạn đã biết, hệ thống phân mảnh tệp nhiều nhất khi không còn dung lượng trống, khi cần sử dụng các lỗ nhỏ còn sót lại từ các tệp khác. Đây là nơi xuất hiện thuộc tính đầu tiên của NTFS, góp phần trực tiếp vào sự phân mảnh nghiêm trọng.

Đĩa NTFS được chia thành hai vùng. Ở đầu đĩa có một vùng MFT - vùng nơi MFT, Bảng Tệp Chính, phát triển. Vùng này chiếm ít nhất 12% dung lượng đĩa và dữ liệu không thể được ghi vào vùng này. Điều này được thực hiện sao cho ít nhất MFT không bị phân mảnh. Nhưng khi phần còn lại của đĩa được lấp đầy, vùng đó sẽ giảm đi một nửa :). Và như thế. Vì vậy, chúng ta không có một đầu đĩa mà có nhiều đầu. Kết quả là, nếu NTFS hoạt động với đĩa đầy khoảng 90%, tình trạng phân mảnh sẽ phát triển như điên.

Một hệ quả phụ là ổ đĩa đầy hơn 88% gần như không thể chống phân mảnh - ngay cả API chống phân mảnh cũng không thể di chuyển dữ liệu sang vùng MFT. Có thể chúng ta sẽ không còn chỗ để điều động.

Hơn nữa. NTFS hoạt động và hoạt động nhưng vẫn bị phân mảnh - ngay cả khi dung lượng trống còn lâu mới cạn kiệt. Điều này được hỗ trợ bởi một thuật toán lạ để tìm dung lượng trống để ghi tệp - thiếu sót nghiêm trọng thứ hai. Thuật toán hành động cho bất kỳ bản ghi nào như sau: một ổ đĩa nhất định được lấy và chứa đầy tệp cho đến khi nó dừng lại. Hơn nữa, theo một thuật toán rất thú vị: đầu tiên, các lỗ lớn được lấp đầy, sau đó là các lỗ nhỏ. Những thứ kia. Phân phối điển hình của các đoạn tệp theo kích thước trên NTFS bị phân mảnh trông như thế này (kích thước đoạn):

16 - 16 - 16 - 16 - 16 - [nhảy lùi] - 15 - 15 - 15 - [quay lại] - 14 - 14 - 14 .... 1 - 1 - 1 -1 - 1...

Vì vậy, quá trình đi xuống các lỗ nhỏ nhất trong 1 cụm, mặc dù thực tế là có thể có nhiều phần không gian trống lớn hơn trên đĩa.

Hãy nhớ các tệp nén - khi một khối lượng lớn thông tin nén được ghi lại tích cực trên NTFS, một số lượng lớn "lỗ hổng" được hình thành do sự phân phối lại các khối lượng nén trên đĩa - nếu bất kỳ phần nào của tệp bắt đầu nén tốt hơn hoặc tệ hơn, thì nó phải được gỡ bỏ khỏi chuỗi liên tục và đặt ở một nơi khác hoặc co lại về khối lượng, để lại một lỗ hổng.

Mục đích của phần giới thiệu này là để giải thích một thực tế đơn giản là không thể nói rằng NTFS ngăn chặn được sự phân mảnh tập tin. Ngược lại, cô vui vẻ chia cắt chúng. Sự phân mảnh của NTFS sau nửa năm hoạt động sẽ mang lại sự ngạc nhiên thực sự cho bất kỳ ai quen thuộc với công việc của hệ thống tệp. Do đó, bạn phải chạy trình chống phân mảnh. Nhưng tất cả các vấn đề của chúng ta không kết thúc ở đó, mà than ôi, chúng mới chỉ bắt đầu.

Biện pháp giải quyết?

NT có API chống phân mảnh tiêu chuẩn. Nó có một hạn chế thú vị đối với việc di chuyển các khối tệp: có thể di chuyển ít nhất 16 cụm (!) cùng một lúc và các cụm này phải bắt đầu từ vị trí là bội số của 16 cụm trong tệp. Nhìn chung, hoạt động được thực hiện độc quyền trên 16 cụm. Hậu quả:

  1. Không có gì có thể được di chuyển vào một lỗ không gian trống dưới 16 cụm (ngoại trừ các tệp nén, nhưng đây là những sự tinh vi không thú vị vào lúc này).
  2. Một tệp khi được di chuyển đến một vị trí khác sẽ để lại (ở vị trí mới) một “không gian bị chiếm dụng tạm thời”, mở rộng kích thước của nó thành bội số của 16 cụm.
  3. Khi bạn cố gắng di chuyển một tệp không chính xác bằng cách nào đó (“không phải là bội số của 16”), kết quả thường không thể đoán trước được. Một cái gì đó được làm tròn, một cái gì đó đơn giản là không di chuyển... Tuy nhiên, toàn bộ khung cảnh bị phân tán rộng rãi với “không gian bị chiếm dụng tạm thời”.

“Không gian bị chiếm dụng tạm thời” nhằm tạo điều kiện thuận lợi cho việc khôi phục hệ thống trong trường hợp xảy ra lỗi phần cứng và được giải phóng sau một thời gian, thường là khoảng nửa phút.

Tuy nhiên, sẽ hợp lý hơn khi sử dụng API này vì nó tồn tại. Đó là những gì họ sử dụng. Do đó, quy trình chống phân mảnh tiêu chuẩn, được điều chỉnh theo các giới hạn API, bao gồm các giai đoạn sau (không nhất thiết phải theo thứ tự này):

  • Xóa các tập tin khỏi vùng MFT. Không cố ý - chỉ là không thể đặt chúng trở lại đó :) Một giai đoạn vô hại và thậm chí còn hữu ích theo một số cách.
  • Chống phân mảnh tập tin. Tất nhiên, đây là một quá trình hữu ích, mặc dù nó hơi phức tạp do những hạn chế về tần suất chuyển động - các tập tin thường phải được dịch chuyển nhiều hơn mức cần thiết trong tâm trí.
  • Chống phân mảnh MFT, máy ảo (pagefile.sys) và thư mục. Chỉ có thể thông qua API trong Windows 2000, nếu không thì - trong quá trình khởi động lại, dưới dạng một quy trình riêng biệt, như trong Diskeeper cũ.
  • Xếp chồng các tập tin gần hơn với đầu được gọi là chống phân mảnh không gian trống. Đây thực sự là một quá trình đáng sợ.

Giả sử chúng ta muốn đặt các tệp thành một hàng ở đầu đĩa. Chúng tôi đặt một tập tin. Nó để phần đuôi chiếm chỗ của phần bù lên đến bội số của 16. Chúng tôi đặt cái tiếp theo - tất nhiên là sau phần đuôi. Sau một thời gian, khi phần đuôi được giải phóng, chúng ta có một lỗ, như vậy có hai phương án gần như tương đương. Đầu tiên là thường xuyên tối ưu hóa ổ đĩa bằng trình chống phân mảnh như vậy, đồng thời xử lý tình trạng phân mảnh hoang dã của các tệp mới được tạo. Tùy chọn thứ hai là hoàn toàn không chạm vào bất cứ thứ gì và chấp nhận sự phân mảnh đồng nhất nhưng yếu hơn nhiều của tất cả các tệp trên đĩa.

Cho đến nay chỉ có một trình chống phân mảnh bỏ qua API chống phân mảnh và hoạt động trực tiếp hơn bằng cách nào đó - Norton Speeddisk 5.0 cho NT. Khi họ cố gắng so sánh nó với tất cả những phần mềm khác - Diskeeper, O&O defrag, v.v. - họ không đề cập đến sự khác biệt chính, cơ bản nhất này. Đơn giản vì vấn đề này được giấu kỹ, ít nhất là không được quảng cáo ở mọi lượt. Speeddisk là chương trình duy nhất hiện nay có thể tối ưu hóa hoàn toàn ổ đĩa mà không tạo ra những phần không gian trống nhỏ chưa được lấp đầy. Cũng cần nói thêm rằng bằng cách sử dụng API tiêu chuẩn, không thể chống phân mảnh ổ đĩa NTFS với cụm lớn hơn 4 KB, nhưng SpeedDisk có thể làm được điều này.

Thật không may, Windows 2000 bao gồm một trình chống phân mảnh hoạt động thông qua API và do đó tạo ra các lỗ hổng. Như một số kết luận từ tất cả những điều này: tất cả các trình chống phân mảnh khác chỉ đơn giản là có hại khi sử dụng một lần. Nếu bạn đã chạy nó ít nhất một lần, bạn cần chạy nó ít nhất mỗi tháng một lần để loại bỏ tình trạng phân mảnh của các tệp mới đến. Đây là bản chất chính của sự phức tạp của việc chống phân mảnh NTFS bằng các phương pháp lịch sử.Phần 3. Chọn cái gì?

Bất kỳ hệ thống tệp nào được trình bày hiện nay đều có nguồn gốc từ quá khứ sâu xa - từ những năm 80. Đúng, NTFS, nghe có vẻ lạ lùng, là một hệ thống rất cũ! Thực tế là trong một thời gian dài, máy tính cá nhân chỉ sử dụng hệ điều hành DOS, hệ điều hành mà FAT có tên. Nhưng song song đó, các hệ thống hướng tới tương lai cũng được phát triển và âm thầm tồn tại. Hai hệ thống như vậy đã nhận được sự công nhận rộng rãi là NTFS, được tạo cho hệ điều hành Windows NT 3.1 từ xa xưa và HPFS, người bạn đồng hành trung thành của OS/2.

Việc triển khai các hệ thống mới rất khó khăn - trở lại năm 1995, với việc phát hành Windows95, không ai có ý nghĩ rằng cần phải thay đổi điều gì đó - FAT đã nhận được làn gió thứ hai thông qua bản vá "tên dài" bị mắc kẹt ở trên cùng, việc triển khai nó đã không được triển khai ở đó gần với mức lý tưởng nhất có thể nếu không thay đổi hệ thống, nhưng vẫn khá ngu ngốc. Nhưng trong những năm tiếp theo, nhu cầu thay đổi trở nên cấp thiết hơn, khi những hạn chế tự nhiên của FAT bắt đầu lộ rõ. FAT32, xuất hiện trong Windows 95 OSR2, chỉ đơn giản là di chuyển các ranh giới - mà không thay đổi bản chất của hệ thống, điều này đơn giản là không cung cấp khả năng tổ chức công việc hiệu quả với một lượng lớn dữ liệu.

HPFS (Hệ thống tệp hiệu suất cao), vẫn được người dùng OS/2 tích cực sử dụng, tỏ ra là một hệ thống khá thành công, nhưng nó cũng có những nhược điểm đáng kể - thiếu hoàn toàn các công cụ khôi phục tự động, tổ chức dữ liệu quá phức tạp và tính linh hoạt thấp.

NTFS không thể chinh phục máy tính cá nhân trong một thời gian dài do cần một lượng bộ nhớ đáng kể để tổ chức công việc hiệu quả với cấu trúc dữ liệu của nó. Các hệ thống có 4 hoặc 8 MB (tiêu chuẩn 95-96) đơn giản là không thể nhận được bất kỳ lợi ích nào từ NTFS, do đó, nó mang tiếng là một hệ thống chậm và cồng kềnh. Trên thực tế, điều này không đúng - các hệ thống máy tính hiện đại có bộ nhớ trên 64 MB chỉ đơn giản nhận được hiệu suất tăng rất lớn nhờ sử dụng NTFS.

Bảng này tập hợp tất cả những ưu và nhược điểm đáng kể của các hệ thống phổ biến hiện nay, chẳng hạn như FAT32, FAT và NTFS. Hầu như không hợp lý khi thảo luận về các hệ thống khác, vì hiện tại 97% người dùng lựa chọn giữa Windows98, Windows NT4.0 và Windows 2000 (NT5.0) và đơn giản là không có lựa chọn nào khác.

Các hệ thống hỗ trợ nóDOS, Windows9X, NT tất cả các phiên bảnWindows98, NT5NT4, NT5
Kích thước âm lượng tối đa2 GBthực tế không giới hạnthực tế không giới hạn
Tối đa. số lượng tập tin trên ổ đĩakhoảng 65 nghìnthực tế không giới hạnthực tế không giới hạn
Tên tập tincó hỗ trợ tên dài - 255 ký tự, bộ ký tự hệ thống255 ký tự, bất kỳ ký tự nào từ bất kỳ bảng chữ cái nào (65 nghìn kiểu khác nhau)
Thuộc tính tập tin có thểBộ cơ bảnBộ cơ bảnmọi thứ xuất hiện trong đầu các nhà sản xuất phần mềm
Sự an toànKHÔNGKHÔNGcó (bắt đầu từ NT5.0 khả năng mã hóa dữ liệu vật lý được tích hợp sẵn)
NénKHÔNGKHÔNGĐúng
Khả năng phục hồi thất bạitrung bình (hệ thống quá đơn giản nên không có gì đặc biệt để phá vỡ :))kém (các công cụ tối ưu hóa tốc độ đã dẫn đến sự xuất hiện các điểm yếu về độ tin cậy)hoàn thành - khôi phục hệ thống tự động trong trường hợp có bất kỳ lỗi nào (không tính lỗi ghi vật lý, khi một thứ được viết nhưng thực tế là một thứ khác được viết)
Tiết kiệmtối thiểu (kích thước cụm lớn trên các đĩa lớn)được cải thiện bằng cách giảm kích thước cụmtối đa. Hệ thống lưu trữ rất hiệu quả và linh hoạt
Hiệu suấtcao đối với một số lượng nhỏ tệp, nhưng giảm nhanh khi có nhiều tệp được thêm vào thư mục. kết quả - đối với đĩa được lấp đầy nhẹ - tối đa, đối với đĩa đầy - kémhoàn toàn tương tự như FAT, nhưng trên các đĩa lớn (hàng chục gigabyte), các vấn đề nghiêm trọng bắt đầu từ việc tổ chức dữ liệu tổng thểhệ thống không hiệu quả lắm đối với các phân vùng nhỏ và đơn giản (lên đến 1 GB), nhưng làm việc với lượng dữ liệu khổng lồ và các thư mục ấn tượng được tổ chức hiệu quả nhất có thể và nhanh hơn rất nhiều so với các hệ thống khác

Tôi muốn nói rằng nếu hệ điều hành của bạn là NT (Windows 2000), thì việc sử dụng bất kỳ hệ thống tệp nào ngoài NTFS đồng nghĩa với việc hạn chế đáng kể sự tiện lợi và tính linh hoạt của chính hệ điều hành đó. NT, và đặc biệt là Windows 2000, giống như hai phần của một tổng thể duy nhất với NTFS - nhiều tính năng hữu ích của NT gắn trực tiếp với cấu trúc vật lý và logic của hệ thống tệp và việc sử dụng FAT hoặc FAT32 chỉ có ý nghĩa về tính tương thích - nếu bạn có nhiệm vụ đọc những đĩa này từ bất kỳ hệ thống nào khác.

Tôi xin bày tỏ lòng biết ơn chân thành Andrey Shabalin, nếu không có nó thì bài viết này đơn giản là đã không được viết, và thậm chí đã được viết ra, nó sẽ chứa đựng nhiều điểm thiếu chính xác khó chịu

Thông tin chung về hệ thống tập tin

Windows 2000 hỗ trợ các hệ thống tập tin sau: FAT, FAT32 và NTFS. Phần này cung cấp một cái nhìn tổng quan ngắn gọn về các hệ thống tập tin này. Việc lựa chọn hệ thống tập tin bị ảnh hưởng bởi các yếu tố sau:

Mục đích sử dụng máy tính.

Nền tảng phần cứng.

Số lượng ổ cứng và dung lượng của chúng.

Yêu cầu bảo mật.

Các ứng dụng sử dụng trong hệ thống

Hỗ trợ Windows 2000 hệ thống tập tin phân tán(Hệ thống tệp phân tán, DFS) và hệ thống tập tin mã hóa(Mã hóa hệ thống tệp, EFS). Mặc dù DFS và EPS được gọi là "hệ thống tệp", nhưng chúng không phải là hệ thống tệp theo nghĩa chặt chẽ của thuật ngữ này. Do đó, DFS là một phần mở rộng của dịch vụ mạng cho phép bạn kết hợp các tài nguyên mạng nằm trong các phân vùng với các hệ thống tệp khác nhau thành một ổ đĩa logic duy nhất. Đối với EPS, đây là một tiện ích bổ sung cho NTFS giúp bổ sung khả năng mã hóa dữ liệu cho NTFS.

Hệ thống tập tin FAT và FAT32

FAT (thường được nhắc đến nhiều nhất trong chương này là FAT 16) là một hệ thống tệp đơn giản được thiết kế cho các ổ đĩa nhỏ và cấu trúc thư mục đơn giản. Tên của nó xuất phát từ tên của phương thức được sử dụng để sắp xếp các tệp - Bảng phân bổ tệp (FAT). Bảng này nằm ở đầu tập. Để bảo vệ ổ đĩa, hai bản sao FAT được lưu trữ trên ổ đĩa. Nếu bản sao FAT đầu tiên bị hỏng

các tiện ích đĩa (chẳng hạn như Scandisk) có thể sử dụng bản sao thứ hai để khôi phục ổ đĩa. Bảng phân bổ tệp và thư mục gốc phải được đặt tại các địa chỉ cố định nghiêm ngặt để các tệp cần thiết để khởi động hệ thống được đặt chính xác.

Về mặt cấu trúc, FAT tương tự như mục lục của một cuốn sách, vì hệ điều hành sử dụng nó để tìm kiếm một tệp và xác định các cụm mà tệp này chiếm trên ổ cứng. Microsoft ban đầu phát triển FAT để quản lý các tệp trên đĩa mềm và chỉ sau đó mới sử dụng nó làm tiêu chuẩn để quản lý đĩa trong MS-DOS. Lúc đầu, phiên bản 12 bit của FAT (được gọi là FAT12) được sử dụng cho đĩa mềm và ổ cứng nhỏ (dưới 16 MB). Trong MS-DOS v. 3.0 đã giới thiệu phiên bản PAT 16 bit cho các ổ đĩa lớn hơn. Cho đến nay, FAT 12 được sử dụng trên các phương tiện rất nhỏ (hoặc trên các đĩa rất cũ). Ví dụ: tất cả các đĩa mềm 3,5 inch 1,44 MB được định dạng là FAT16 và tất cả các đĩa mềm 5,25 inch được định dạng là FAT12.

Ổ đĩa được định dạng theo FAT12 và FAT16 được đánh dấu theo cụm. Kích thước cụm mặc định được xác định bởi kích thước ổ đĩa (thông tin thêm về kích thước cụm sẽ được cung cấp sau trong chương này). Bảng vị trí tệp và bản sao lưu của nó chứa thông tin sau về từng cụm ổ đĩa:

Không sử dụng (cụm không được sử dụng).

Cụm được một tệp sử dụng (cụm được một tệp sử dụng).

Cụm xấu (cụm xấu).

Cụm cuối cùng trong một tập tin.

Thư mục gốc chứa các mục nhập cho từng tệp và từng thư mục nằm trong thư mục gốc. Sự khác biệt duy nhất giữa thư mục gốc và các thư mục khác là nó chiếm một không gian được xác định rõ ràng trên đĩa và có kích thước cố định (không quá 512 mục cho một đĩa cứng; đối với đĩa mềm, kích thước này được xác định bởi dung lượng của chúng).

Tên (ở định dạng 8.3).

Byte thuộc tính (8 bit thông tin hữu ích, được mô tả chi tiết bên dưới).

Thời gian tạo (24 bit).

Ngày tạo (16 bit).

Ngày truy cập lần cuối (16 bit).

Thời gian sửa đổi lần cuối (16 bit).

Ngày sửa đổi lần cuối (16 bit).

Số cụm bắt đầu của tệp trong bảng vị trí tệp (16 bit).

Kích thước tệp (32 bit).

Cấu trúc thư mục FAT không có tổ chức rõ ràng và các tệp được gán các địa chỉ cụm khả dụng đầu tiên trên ổ đĩa. Số cụm bắt đầu của tệp là địa chỉ của cụm đầu tiên được tệp chiếm giữ trong bảng vị trí tệp. Mỗi cụm chứa một con trỏ tới cụm tiếp theo được tệp sử dụng hoặc một chỉ báo (OxFFFF) cho biết cụm đã cho là cụm cuối cùng của tệp.

Thông tin thư mục được sử dụng bởi hệ điều hành hỗ trợ hệ thống tệp FAT. Ngoài ra, Windows 2000 có thể ghi lại các thư mục thông tin tạm thời bổ sung(dấu thời gian). Các thuộc tính tạm thời bổ sung này cho biết thời điểm tệp được tạo và thời điểm tệp được truy cập lần cuối. Về cơ bản, các thuộc tính bổ sung được sử dụng bởi các ứng dụng POSIX.

Các tệp trên đĩa có 4 thuộc tính mà người dùng có thể đặt lại và đặt - Lưu trữ, Hệ thống, Ẩn và Chỉ đọc.

Trong Windows NT, bắt đầu từ phiên bản 3.5, các tệp được tạo hoặc đổi tên trên ổ đĩa FAT sử dụng các bit thuộc tính để hỗ trợ tên tệp dài theo cách không xung đột với các phương pháp truy cập ổ đĩa được hệ điều hành MS-DOS và OS/2 sử dụng. Đối với tệp có tên dài, Windows NT/2000 tạo tên ngắn ở định dạng 8.3. Ngoài thành phần tiêu chuẩn này, Windows NT/2000 còn tạo một hoặc nhiều mục nhập bổ sung cho tệp, mỗi mục có 13 ký tự của tên dài. Mỗi mục bổ sung này chứa phần tương ứng của tên tệp dài ở định dạng Unicode. Windows NT/2000 đặt các mục bổ sung cho thuộc tính ổ đĩa, cũng như tệp hệ thống chỉ đọc ẩn, do đó

đánh dấu chúng là một phần của tên tệp dài, MS-DOS và OS/2 thường bỏ qua các mục nhập thư mục đã đặt tất cả các thuộc tính này, vì vậy các mục nhập đó sẽ không hiển thị đối với chúng. Thay vào đó, MS-DOS và OS/2 truy cập tệp bằng tên tệp ngắn định dạng 8.3 tiêu chuẩn.

Windows NT, bắt đầu từ phiên bản 3.5, hỗ trợ tên tệp dài trên ổ đĩa FAT. Tùy chọn mặc định này có thể bị tắt bằng cách đặt giá trị đăng ký Win31FileSystem, một phần của khóa đăng ký sau, thành 1:

HKEY_LOCAL_MACH TRONG E\System\CiirrentControlSet\Control\FileSystem

Đặt giá trị này sẽ ngăn Windows NT tạo tệp có tên dài trên ổ đĩa FAT nhưng sẽ không ảnh hưởng đến tên dài đã được tạo.

Trong Windows NT/2000, FAT16 hoạt động giống hệt như trong MS-DOS, Windows 3.1x và Windows 95/98. Hỗ trợ cho hệ thống tệp này đã được đưa vào Windows 2000 vì nó tương thích với hầu hết các hệ điều hành của các nhà cung cấp phần mềm khác. Ngoài ra, việc sử dụng FAT16 còn mang lại khả năng nâng cấp các phiên bản hệ điều hành Windows trước đó lên Windows 2000.

Hệ thống tệp FAT32 32-bit được giới thiệu cùng với bản phát hành Windows 95 OSR2 và được hỗ trợ trong Windows 98 và Windows 2000. Nó cung cấp khả năng truy cập tối ưu vào ổ đĩa cứng, CD-ROM và tài nguyên mạng, cải thiện tốc độ và hiệu suất của tất cả các thiết bị. /O hoạt động. FAT32 là phiên bản cải tiến của FAT được thiết kế để sử dụng trên ổ đĩa lớn hơn 2 GB.

Ổ đĩa được định dạng để sử dụng FAT32, giống như ổ đĩa FAT16, được phân vùng thành các cụm. Kích thước cụm mặc định được xác định bởi kích thước ổ đĩa. Trong bảng Hình 7.1 hiển thị so sánh kích thước cụm cho FAT16 và FAT32 tùy thuộc vào kích thước đĩa.

Để đảm bảo khả năng tương thích tối đa với các chương trình ứng dụng, mạng và trình điều khiển thiết bị hiện có, FAT32 đã được triển khai với những thay đổi tối thiểu có thể có đối với kiến ​​trúc và cấu trúc dữ liệu nội bộ. Tất cả các tiện ích đĩa của Microsoft (Format, FDISK, Defrag và ScanDisk) đã được thiết kế lại để hỗ trợ FAT32. Ngoài ra, Microsoft đang làm rất nhiều việc để hỗ trợ các công ty tiện ích ổ đĩa và trình điều khiển thiết bị hàng đầu giúp hỗ trợ FAT32 trong các sản phẩm của họ. Trong bảng 7.2 nỗ lực được thực hiện để so sánh các đặc điểm của FAT16 và FAT32.

Hệ thống tập tin NTFS

Hệ thống tệp Windows NT (NTFS) cung cấp sự kết hợp giữa hiệu suất, độ tin cậy và hiệu quả không thể thực hiện được với bất kỳ triển khai FAT nào (cả FAT16 và FAT32). Mục tiêu thiết kế chính của NTFS là cung cấp hiệu suất tốc độ cao cho các hoạt động tệp tiêu chuẩn (bao gồm đọc, ghi, tìm kiếm) và cung cấp các khả năng bổ sung, bao gồm sửa chữa hệ thống tệp bị hỏng trên các đĩa cực lớn.

NTFS có các tính năng bảo mật hỗ trợ kiểm soát truy cập dữ liệu và đặc quyền của chủ sở hữu, đóng vai trò quan trọng trong việc đảm bảo tính toàn vẹn của dữ liệu bí mật quan trọng. Các thư mục và tệp NTFS có thể được gán quyền truy cập bất kể chúng có được chia sẻ hay không. NTFS là hệ thống tệp duy nhất trong Windows NT/2000 cho phép bạn gán quyền truy cập vào từng tệp riêng lẻ. Tuy nhiên, nếu một tệp được sao chép từ phân vùng hoặc ổ đĩa NTFS sang phân vùng hoặc ổ đĩa FAT thì tất cả các quyền và thuộc tính duy nhất khác vốn có của NTFS sẽ bị mất.

Hệ thống tệp NTFS, giống như FAT, sử dụng các cụm làm đơn vị cơ bản của không gian đĩa. Trong NTFS, kích thước cụm mặc định (khi nó không được đặt bằng lệnh định dạng hoặc trong Quản lý đĩa) phụ thuộc vào kích thước khối lượng. Nếu bạn sử dụng tiện ích dòng lệnh FORMAT để định dạng ổ đĩa NTFS, bạn có thể chỉ định kích thước cụm mong muốn làm tham số cho lệnh này. Kích thước cụm mặc định được hiển thị trong Bảng. 7.3.

Việc định dạng một ổ đĩa cho NTFS dẫn đến việc tạo ra một số ổ đĩa tập tin hệ thốngbảng tập tin chính(Bảng tệp chính, MFT). MFT chứa thông tin về tất cả các tệp và thư mục có trên ổ đĩa NTFS. NTFS là một hệ thống tệp hướng đối tượng coi tất cả các tệp là đối tượng có thuộc tính. Hầu hết tất cả các đối tượng tồn tại trên một ổ đĩa đều là tệp và mọi thứ trong tệp đều là thuộc tính - bao gồm thuộc tính dữ liệu, thuộc tính bảo mật và thuộc tính tên tệp. Mỗi khu vực bị chiếm dụng trên ổ đĩa NTFS thuộc về một tệp. Một phần của tệp thậm chí là siêu dữ liệu hệ thống tệp (thông tin là mô tả của chính hệ thống tệp).

Trong Windows 2000, một phiên bản NTFS mới đã được giới thiệu - NTFS 5.0. Cấu trúc dữ liệu mới có trong triển khai này cho phép bạn tận dụng các tính năng mới của Windows 2000, chẳng hạn như hạn ngạch đĩa cho mỗi người dùng, mã hóa tệp, theo dõi liên kết, điểm chuyển tiếp(điểm giao nhau), tập thuộc tính tích hợp sẵn(tự nhiên

tập thuộc tính). Ngoài ra, bạn có thể thêm dung lượng ổ đĩa bổ sung vào ổ đĩa NTFS 5.0 mà không cần khởi động lại. Các tính năng mới của NTFS 5.0 được thể hiện trong bảng. 7.4.

NTFS là lựa chọn tốt nhất để làm việc với khối lượng lớn. Cần lưu ý rằng nếu các yêu cầu gia tăng được đặt ra cho hệ thống (bao gồm bảo mật và sử dụng thuật toán nén hiệu quả), thì một số trong số chúng chỉ có thể được thực hiện bằng NTFS. Vì vậy, trong một số trường hợp cần sử dụng NTFS ngay cả với dung lượng nhỏ.

Các hạn chế của hệ thống tệp và các vấn đề tương thích

Các bảng bên dưới (Bảng 7.5 và 7.6) tóm tắt tính tương thích của hệ thống tệp NTFS và FAT, cũng như các hạn chế áp dụng cho từng hệ thống tệp này.

Bàn

Hệ thống tập tin. Đĩa

Một máy tính thường có nhiều đĩa. Mỗi đĩa được gán một tên, được chỉ định bằng một chữ cái Latinh có dấu hai chấm, ví dụ: A:, B:, C:, v.v. Người ta chấp nhận tiêu chuẩn rằng A: và B: là ổ đĩa mềm và ổ C:, D:, v.v. – ổ đĩa cứng, ổ đĩa quang hoặc đĩa điện tử.

Đĩa điện tử là một phần của RAM, đối với người dùng nó trông giống như VRAM. Tốc độ trao đổi thông tin bằng đĩa điện tử cao hơn nhiều so với thiết bị lưu trữ ngoài cơ điện. Khi đĩa điện tử hoạt động, các bộ phận cơ điện không bị mài mòn. Tuy nhiên, sau khi tắt nguồn, thông tin trên đĩa điện tử không được lưu lại.

Các đĩa từ hiện có về mặt vật lý có thể được chia thành nhiều đĩa logic mà người dùng sẽ thấy trên màn hình giống như các đĩa vật lý. Ổ đĩa logic là một phần của ổ cứng thông thường có tên riêng.

Đĩa chứa hệ điều hành được gọi là mang tính hệ thống(hoặc đĩa khởi động). Ổ cứng C: thường được sử dụng làm đĩa khởi động. Khi xử lý vi-rút hoặc lỗi hệ thống, hệ điều hành thường được tải từ đĩa mềm. Đĩa quang có sẵn cũng có thể khởi động được.

Để thông tin được ghi vào đĩa từ mới, nó phải được định dạng trước đó. Định dạng- Đây là việc chuẩn bị một đĩa để ghi thông tin.

Trong quá trình định dạng, thông tin dịch vụ được ghi vào đĩa (đánh dấu xong), sau đó được sử dụng để ghi và đọc thông tin, điều chỉnh tốc độ quay của đĩa, đồng thời phân bổ một vùng hệ thống, bao gồm ba phần:

giày cao cổ,

bảng phân bổ tập tin,

thư mục gốc.

Giày cao cổ(Bản ghi khởi động) được đặt trên mỗi đĩa ở khu vực logic số 0. Nó chứa dữ liệu về định dạng đĩa, cũng như một chương trình ngắn được sử dụng trong quy trình khởi động hệ điều hành.

Có một khu vực trên ổ cứng của bạn được gọi là MBR (Bản ghi khởi động chính) hoặc khu vực khởi động chính. MBR chỉ định ổ đĩa logic mà hệ điều hành sẽ khởi động.

Bảng phân bổ tập tin(Bảng phân bổ tệp - viết tắt FAT) nằm sau khu vực khởi động và chứa mô tả về thứ tự vị trí của tất cả các tệp trong các khu vực của một đĩa nhất định, cũng như thông tin về các khu vực bị lỗi của đĩa. Bảng FAT được theo sau bởi một bản sao chính xác của nó, điều này làm tăng độ tin cậy của việc lưu trữ bảng rất quan trọng này.

Thư mục gốc(Thư mục gốc) luôn nằm sau bản sao FAT. Thư mục gốc chứa danh sách các tập tin và thư mục nằm trên đĩa. Ngay phía sau thư mục gốc là dữ liệu.

Hệ thống tập tin là một phần của hệ điều hành cung cấp khả năng tổ chức và lưu trữ tệp cũng như thực hiện các thao tác trên tệp.

Tài liệu

Vì dữ liệu địa chỉ cũng có kích thước và phải được lưu trữ nên việc lưu trữ dữ liệu theo đơn vị nhỏ như byte là bất tiện. Chúng cũng bất tiện khi lưu trữ theo đơn vị lớn hơn (kilobyte, megabyte, v.v.), vì việc lấp đầy không đầy đủ một đơn vị lưu trữ sẽ dẫn đến hoạt động lưu trữ kém hiệu quả.

Việc lưu trữ và truy xuất thông tin trên các thiết bị lưu trữ bên ngoài là rất quan trọng. Thiết bị lưu trữ bên ngoài là một loại kho thông tin, nơi các chương trình và dữ liệu được lưu trữ trong một thời gian dài cho đến khi chúng cần thiết để giải quyết một vấn đề. Bây giờ hãy tưởng tượng rằng hàng hóa được lưu trữ trong nhà kho mà không có bất kỳ hệ thống nào. Kho càng lớn thì càng khó tìm được sản phẩm phù hợp. Hoặc lấy ví dụ, một chiếc tủ đựng nhiều tài liệu, sách, báo cáo, chứng chỉ, v.v. Trong trường hợp không có tổ chức lưu trữ cụ thể, việc tìm kiếm các tài liệu cần thiết, đặc biệt nếu số lượng của chúng nhiều, có thể là một công việc rất khó khăn và tốn thời gian.

Đơn vị lưu trữ dữ liệu là một đối tượng có độ dài thay đổi được gọi là tệp.

Tài liệu là một tập hợp dữ liệu được đặt tên có tổ chức nội bộ nhất định và chiếm một khu vực nhất định của vật mang thông tin.

Thông thường, dữ liệu cùng loại sẽ được lưu trữ trong một tệp riêng biệt. Trong trường hợp này, kiểu dữ liệu xác định loại tệp.

Vì không có giới hạn kích thước trong định nghĩa tệp, bạn có thể tưởng tượng một tệp có 0 byte (tệp trống) và một tệp có số byte bất kỳ.

Tên tệp phải là duy nhất - nếu không có tên này thì không thể đảm bảo quyền truy cập dữ liệu rõ ràng. Trong công nghệ máy tính, yêu cầu về tính duy nhất của tên được đảm bảo tự động - cả người dùng và quá trình tự động hóa đều không thể tạo một tệp có tên giống với tên hiện có.

Tệp có thể chứa: chương trình bằng mã máy, văn bản chương trình bằng ngôn ngữ thuật toán, văn bản tài liệu, báo cáo, phiếu lương, bài báo, dữ liệu số, bản ghi âm giọng nói của con người hoặc giai điệu âm nhạc, hình vẽ, hình minh họa, một bức vẽ, một bức ảnh, một đoạn phim video, v.v.

Tệp được tạo theo hướng dẫn của người dùng hoặc tự động, sử dụng nhiều hệ thống phần mềm khác nhau, chẳng hạn như hệ điều hành, shell, công cụ lập trình, v.v. Tệp đã tạo được gán một tên nhất định, dung lượng được phân bổ cho nó trên bộ lưu trữ đĩa và nó được đăng ký trong hệ điều hành theo một cách nhất định. Tệp mới được tạo có thể chứa một số thông tin.

Mỗi tệp có một số thuộc tính đặc trưng - thuộc tính. Các thuộc tính quan trọng nhất của tập tin là:

Tên,

sự mở rộng,

thời gian và ngày thành lập.

Tên tập tin, giống như tên của một người, tên của một tài liệu, một cuốn sách, dùng để phân biệt tệp này với tệp khác, để trỏ đến tệp mong muốn. Trong các hệ điều hành khác nhau, tên file được hình thành theo những quy tắc khác nhau. Ví dụ: trong hệ điều hành MS DOS, tên tệp là



chuỗi các chữ cái trong bảng chữ cái Latinh,

một số ký tự đặc biệt (~, _, -, $, &, @, %,",!,(>)> (>). #).

Tên có thể chứa từ một đến tám (1 ... 8) ký tự và được chọn tùy ý. Nên chọn tên file để người dùng dễ dàng nhớ chính xác những gì được lưu trữ trong file này. Ví dụ: một tệp chứa báo cáo quý 4 có thể được gọi là otchet4, một tệp có phiếu lương có thể được gọi là vedzarpl và một tệp có một số loại hình vẽ có thể được gọi là hình ảnh.

Trong hệ điều hành MS DOS, tên file không được chứa

không gian,

các chữ cái trong bảng chữ cái tiếng Nga,

Ngoài ra, nó không thể chứa nhiều hơn tám ký tự. Nói chung, đây là những hạn chế khá đáng kể. Ví dụ: một tệp chứa báo cáo quý 4 của công ty mà chúng tôi gọi là otchet4, tốt nhất nên gọi là “Báo cáo quý 4”, trong trường hợp đặc biệt là “Otchet za 4 kvartal”, sử dụng cái gọi là phiên âm , khi các từ của một ngôn ngữ được viết bằng các chữ cái của một ngôn ngữ khác. Trong hệ điều hành Unix và Windows 9.x, các hạn chế về độ dài của tên cũng như việc sử dụng dấu cách và dấu chấm trong tên đã bị xóa. Và trong hệ điều hành Windows 9.x, ngoài ra, bạn có thể sử dụng các chữ cái tiếng Nga trong tên. Do đó, một tệp trong Unix có thể được đặt tên là “Báo cáo za 4 kvartal” và trong Windows 9.x, tên “Báo cáo quý 4” cũng được cho phép.

Ngoài tên, mỗi tập tin có thể có hoặc không có sự mở rộng. Phần mở rộng được sử dụng để mô tả nội dung của tệp theo một cách nhất định. Ví dụ: phần mở rộng doc và txt cho biết tệp chứa một số loại tài liệu hoặc văn bản, trong khi phần mở rộng bmp cho biết tệp chứa hình ảnh ở định dạng bitmap. Phần mở rộng, nếu có, được phân tách khỏi tên tệp bằng dấu chấm. Trong hệ điều hành MS DOS, phần mở rộng có thể chứa từ một đến ba ký tự, ví dụ: otchet4.doc, vedzarpl.txt, picture.bmp và trong hệ thống Unix và Windows 9.x, được phép nhiều hơn ba ký tự. Nếu không có phần mở rộng thì tên tệp sẽ không có dấu chấm.

Nếu một tệp được tạo bằng bất kỳ hệ thống phần mềm nào, thì theo quy định, nó sẽ tự động nhận được phần mở rộng tiêu chuẩn cho hệ thống này và người dùng chỉ cần chọn hoặc chỉ định tên. Sau đó, hệ thống phần mềm nhận dạng các tập tin “của nó” bằng cách sử dụng các phần mở rộng tiêu chuẩn. Hệ điều hành cung cấp một số phần mở rộng tiêu chuẩn (Bảng 3.1).

Bảng 3.1

Một số phần mở rộng của MS DOS và Windows 9.x

Các tệp có phần mở rộng .com (phổ biến) và .exe (thực thi) chứa các chương trình bằng ngôn ngữ máy. Những tập tin này thường được gọi là tập tin chương trình. Sự khác biệt giữa tệp com và tệp exe liên quan đến tổ chức nội bộ của chúng. Những khác biệt này không ảnh hưởng đến cách xử lý tệp theo bất kỳ cách nào. Các tệp có phần mở rộng .bat (lô) chứa các chuỗi lệnh tùy ý của hệ điều hành. Những tập tin như vậy thường được gọi là tập tin batch. Thuật ngữ « tập tin thực thi" kết hợp các khái niệm "tệp chương trình" và "tệp bó". Nói cách khác, "tệp thực thi" có nghĩa là tệp chứa chương trình ngôn ngữ máy có thể được bộ xử lý của máy tính thực thi trực tiếp (tệp có phần mở rộng .exe và .com) hoặc một chuỗi lệnh của hệ điều hành (tệp .bat file) cũng được thực thi, nhưng chỉ bằng cách truy cập các chương trình và công cụ hệ điều hành thích hợp.

Một thuộc tính quan trọng của một tập tin là nó chiều dài.Độ dài tệp bằng lượng không gian mà tệp chiếm trên đĩa hoặc băng và do đó được đo bằng byte. Giá trị của thuộc tính này được sử dụng để xác định xem một tệp có thể được đặt trên vùng trống của phương tiện đĩa hay không và cho một số mục đích khác.

Khi một tệp ban đầu được ghi vào đĩa, cũng như khi các thay đổi được thực hiện đối với tệp bằng đồng hồ hệ thống (một chương trình đặc biệt có trong hệ điều hành), ngày và giờ ghi tệp vào thiết bị đĩa sẽ tự động được ghi lại. Thuộc tính ngày và giờ được sử dụng để xác định các phiên bản mới nhất của tệp.

Ngoài các thuộc tính tệp chính được coi là trong hệ điều hành MS DOS, các tệp còn có thêm bốn thuộc tính - chỉ đọc, hệ thống, ẩn và lưu trữ. Mỗi thuộc tính này có chính xác hai trạng thái - thuộc tính bật hoặc thuộc tính tắt.

Việc bật thuộc tính chỉ đọc có nghĩa là tệp không thể được sửa đổi theo bất kỳ cách nào. Ngoài ra, việc phá hủy một tập tin như vậy rất phức tạp. Thuộc tính hệ thống thường chỉ được bật cho các tệp hệ điều hành chính. Thuộc tính ẩn được bật cho những tệp mà khi xem danh sách các tệp nằm trên thiết bị đĩa, lệnh hệ điều hành không đưa vào danh sách này.

Hệ điều hành cung cấp một cách để thực hiện các hành động tập thể với các tệp dễ dàng hơn. Hành động cần được thực hiện trên một nhóm tệp chỉ được chỉ định một lần, nhưng cùng với hành động đó, không chỉ định tên đầy đủ của một tệp mà là một tên đặc biệt cho phép hệ điều hành nhận dạng tất cả các tệp trong nhóm và sau đó thực hiện hành động mong muốn đối với họ. Tên này được gọi là tên ký tự đại diện, mẫu hoặc mặt nạ. Tên nhóm của các tập tin được hình thành bằng các ký tự “*” và “?”.

Ký tự * được tìm thấy trong tên nhóm được hệ điều hành hiểu là “bất kỳ chuỗi ký tự tên bất kỳ nào”. Do đó, tên nhóm a* tương ứng với bất kỳ tên nào bắt đầu bằng chữ cái “a”: a1, azbuka, a2z4.

Biểu tượng? được HĐH coi là bất kỳ ký tự đơn nào, nghĩa là nó tương ứng với chính xác một ký tự tên tùy ý. Ví dụ: mẫu otchet?.doc khớp với bất kỳ tên nào có phần mở rộng .doc, trong tên của phân đoạn tên otchet được theo sau bởi chính xác một ký tự, ví dụ: otchet1.doc, otchet4.doc, otchet%.doc, ochet#.doc, v.v.

Một vài ví dụ nữa:

Txt – các tệp có tên hai chữ cái bất kỳ và phần mở rộng .txt;

*.bak – tệp có bất kỳ tên nào và phần mở rộng .bak;

prog1.* – các tệp có tên progl và bất kỳ phần mở rộng nào;

*.* – các tệp có bất kỳ tên và phần mở rộng nào.

Danh mục

Để đọc nội dung của một tập tin, bạn cần biết vị trí của nó trên thiết bị đĩa. Mỗi tệp chiếm một nhóm khu vực cụ thể trên đĩa. Do đó, vị trí tệp có thể được chỉ định bằng cách chỉ định số lượng cung và rãnh mà tệp chiếm giữ. Tuy nhiên, phương pháp chỉ định vị trí tệp này rất bất tiện, vì trong trường hợp này người dùng cần biết số lượng của tất cả các cung đĩa được phân bổ cho tệp. Để tăng hiệu quả trao đổi dữ liệu, một số lĩnh vực liên tiếp được kết hợp thành cụm, và việc trao đổi được thực hiện ngay lập tức bởi toàn bộ nhóm ngành (xem Hình 2.7). Sơ đồ tổ chức trao đổi này làm tăng đáng kể tốc độ hoạt động trao đổi dữ liệu với ổ cứng. Để không chỉ định ba số riêng biệt (số bề mặt làm việc, số rãnh ghi và số khu vực) làm địa chỉ của khu vực mà cụm bắt đầu, một cách đánh số duy nhất, liên tục đã được giới thiệu cho tất cả các cụm đĩa. Để xác định cụm nơi tệp bắt đầu, chỉ cần chỉ định một số - số sê-ri của cụm trên đĩa.

Mục lụcđược gọi là bảng hệ thống tệp đĩa chứa danh sách tất cả các tệp được ghi vào đĩa này. Đối với mỗi tệp, bảng này cho biết giá trị của tất cả các thuộc tính của nó, cũng như số cụm đầu tiên được phân bổ cho tệp.

Về mục đích, danh mục có thể được so sánh với mục lục trong một cuốn sách, trong đó số trang bắt đầu được chỉ định cho mỗi chương hoặc với kho tài liệu được lưu trữ trong tủ hồ sơ. Cũng giống như trong một cuốn sách, để xác định vị trí của một chương cụ thể, bạn có thể xác định theo tiêu đề của chương trong nội dung cuốn sách nó bắt đầu từ trang nào, do đó, hệ điều hành, theo tên của tệp, sẽ tìm thấy trong thư mục cụm mà nó bắt đầu.

Sự tương đồng giữa danh mục và mục lục trong một cuốn sách chỉ là một phần do các cụm được phân bổ vào một tệp trên đĩa không phải dưới dạng một mảng liên tục mà nằm rải rác, trong khi trong một cuốn sách, tất cả các trang của một chương đều được đặt. trong một hàng. Hãy tưởng tượng một chương của cuốn sách chiếm các trang 5, 15, 16, 17, 31, 123, 124 thay vì chiếm các trang 5, 6, 7, 8, 9, 10, 11 liên tiếp. Việc phân bổ các cụm không liên tục cho các tệp này được tổ chức nhằm tối ưu hóa việc sử dụng dung lượng đĩa trống trong nhiều lần phá hủy và ghi tệp.

Để vẫn biết cụm nào và thứ tự nào được phân bổ để lưu trữ tệp, hệ thống tệp cung cấp bảng phân bổ tệp (FAT). Thư mục chỉ chứa số cụm bắt đầu của tệp. Và bảng FAT chứa số lượng của tất cả các cụm khác mà tệp chiếm giữ. Trong phần lớn các trường hợp, người dùng không phải làm việc với bảng FAT vì nó được điền vào khi tệp được ghi và phân tích tự động khi nó được đọc.

Đối với các cụm, có địa chỉ tuyến tính: tất cả các cụm được đánh số từ 1 đến 2n (ở đây n là dung lượng bit FAT). Đối với FAT 16 bit, số cụm trên đĩa là 216 = 65536. Không khó để tính toán rằng đối với đĩa 1 GB, một cụm là 32 KB.

Kích thước của ổ cứng hiện đại thường vượt quá 1 GB. Khi ghi thông tin vào các đĩa như vậy, một phần đáng kể dung lượng ổ đĩa có thể bị lãng phí, vì, ví dụ, trong trường hợp FAT 16 bit, các tệp 31 KB và nhỏ hơn 1 KB, mỗi tệp chiếm cùng một dung lượng ổ đĩa - 32KB. Không gian chưa sử dụng của một cụm được gọi là "cụm nhô ra". Số lượng tệp nhỏ được ghi vào đĩa càng nhiều thì tổn thất trên các gờ của cụm càng lớn.

Cách tự nhiên nhất để tăng hiệu quả sử dụng cụm là giảm kích thước của chúng. Hiện tại hệ thống tệp là FAT32, sử dụng 232 cụm.

Cấu trúc thư mục đơn giản được thảo luận ở trên, trong đó tất cả các tệp tạo thành một danh sách chung, có thể đảm bảo hệ điều hành hoạt động tốt chỉ trong trường hợp kích thước đĩa nhỏ và giới hạn tổng số tệp có thể ghi vào đĩa. Do đó, trên đĩa mềm 1,44 MB, thư mục gốc có thể chứa thông tin về không quá 224 tệp. Và khi dung lượng ổ đĩa trở nên đủ lớn và do đó, hàng trăm hoặc hàng nghìn tệp có thể được ghi vào đĩa, cấu trúc thư mục đơn giản sẽ dẫn đến sự chậm lại đáng kể trong quá trình tìm kiếm tệp trên đĩa hoặc thư mục trở nên đầy.

Thư mục trong hệ điều hành có cấu trúc phức tạp hơn. Các nhóm tập tin thư mục tùy ý có thể được kết hợp và tạo thành thư mục con.Trên một số hệ điều hành, các thư mục con được gọi là thư mục. Trong thực tế, các thư mục con, giống như thư mục gốc, là các bảng nằm trên đĩa và chứa thông tin về các tệp được gán cho thư mục con. Không giống như thư mục gốc, vị trí của các thư mục con trên đĩa không bị ràng buộc với vùng hệ thống. Do đó, kích thước của các thư mục con có thể khá tùy ý, điều này giúp loại bỏ hạn chế về số lượng tệp được chỉ định trong thư mục con.

Các thư mục con được tạo bởi người dùng theo ý riêng của họ. Mỗi thư mục con có tên riêng (thường không có phần mở rộng), được chọn theo quy tắc giống như tên tệp.

Việc nhóm và đưa các tệp vào thư mục con có thể được thực hiện theo bất kỳ tiêu chí nào. Ví dụ: trong một thư mục con riêng có tên WINDOWS (Hình 3.3), nên thu thập tất cả các tệp liên quan đến hệ điều hành. Theo cách tương tự, nên nhóm tất cả các tệp cần thiết cho hoạt động của bất kỳ trình soạn thảo văn bản hoặc chương trình trò chơi nào vào một thư mục con riêng. Nếu một số người dùng lần lượt làm việc trên một máy thì việc tổ chức các thư mục con riêng biệt cho mỗi người dùng là điều hợp lý. Ví dụ: đặt tên cho các thư mục con: user1, user2, user3,... (user - user), nhóm các file của người dùng đầu tiên trong thư mục con user1, nhóm thứ hai trong thư mục con user2, v.v. Ngoài việc loại bỏ các hạn chế về số lượng liên quan đến việc sử dụng một thư mục, điều này còn tạo ra sự trật tự nhất định khi lưu trữ thông tin trên đĩa.

Tất cả các thư mục con nằm trong thư mục gốc đều được phân loại là cấp độ đầu tiên. Trong bộ lễ phục. 3.3 Thư mục con cấp một là các thư mục con Windows, user1, tệp Chương trình. Thư mục gốc, liên quan đến các thư mục con cấp một có trong nó, được gọi là cha mẹ, và các thư mục con liên quan đến thư mục gốc được xem xét công ty con hoặc lồng vào nhau.

Lần lượt, mỗi thư mục con cấp một có cấu trúc giống hệt như thư mục gốc. Trong thư mục con cấp một, các thư mục con cấp hai, v.v., có thể được tổ chức. Ví dụ: chủ sở hữu thư mục con user1 có thể nhóm trong thư mục con này tất cả các báo cáo mà anh ta đã chuẩn bị vào một thư mục con riêng gọi là otcheti, và chẳng hạn, các tệp chứa thông tin về các liên hệ kinh doanh có thể được thu thập trong thư mục con kontakti. Các thư mục con cấp một được coi là cha mẹ của các thư mục con cấp hai mà chúng chứa. Thư mục con cấp hai đóng vai trò là con của thư mục con cấp một.

Cơm. 3.3. Cấu trúc cây thư mục

Cấu trúc của thư mục giống như một cái cây. Thư mục gốc có thể được ánh xạ tới thân cây, các thư mục con đóng vai trò là nhánh và các tệp là lá của “cây” này. Cấu trúc thư mục này được gọi là giống cây hoặc thứ bậc.

Trong hệ điều hành có giao diện đồ họa, các thư mục được hiển thị dưới dạng thư mục. Hình này hiển thị cây thư mục của một trong các đĩa. Từ hình. 3.4 bạn có thể thấy trong thư mục gốc có 4 thư mục là A, B, C và D. Đồng thời, bên trong thư mục A có thư mục A1 và A2. Thư mục C chứa thư mục C1 và C2. Trong thư mục A1 có thư mục A11 và trong thư mục cuối cùng có thư mục A111. Dấu chéo trên cây biểu thị rằng có các thư mục khác bên trong các thư mục tương ứng (có những thư mục bên trong thư mục D và A12 không hiển thị được). Hình này không hiển thị các tệp có thể nằm trong thư mục gốc hoặc trong bất kỳ thư mục nào.

Cơm. 3.4. Thư mục dưới dạng thư mục

Đường dẫn đến tập tin

Hệ điều hành tìm kiếm một tập tin trong một thư mục theo tên đầy đủ của nó. Điều này có nghĩa là về nguyên tắc không thể có hai file khác nhau có cùng tên trong cùng một thư mục hoặc thư mục con . Chúng tôi xin nhắc bạn rằng tên bao gồm tên tệp và phần mở rộng của nó. Cũng không được phép có hai thư mục con lồng nhau có cùng tên trong một thư mục hoặc thư mục con.

Thư mục hoặc thư mục con được phép có tệp hoặc thư mục con có cùng tên. Nhưng khi đó tên tệp không đủ để chỉ ra rõ ràng tệp mong muốn. Để phân biệt các tệp có cùng tên, cũng cần phải chỉ ra các thư mục con chứa chúng. Nhưng trong trường hợp chung, bạn cần chỉ định không chỉ một thư mục con mà toàn bộ chuỗi thư mục con, phải được theo sau từ thư mục gốc đến thư mục con chứa tệp bạn đang tìm kiếm để đến được tệp mong muốn và xác định địa điểm của nó.

Chuỗi tên các thư mục con cần duyệt, bắt đầu từ thư mục gốc và kết thúc bằng thư mục con chứa file, được gọi là đường dẫn hoặc tuyến đường đến tập tin.

Trong hệ điều hành MS DOS và Windows, thư mục gốc trong đường dẫn được biểu thị bằng ký tự \. Ký hiệu tương tự phân tách tên của các thư mục con trong chuỗi với nhau, cũng như tên tệp với tên của thư mục con chứa nó. Biểu tượng này được gọi là dấu gạch chéo ngược.

Do đó, đối với các tệp nằm trong thư mục gốc (xem Hình 3.3), đường dẫn chỉ là ký hiệu thư mục gốc \ và các tệp được chỉ định như sau:

Tệp trong thư mục con user1 có đường dẫn \user1:

\user1\picture.bmp.

Và đường dẫn đến các tệp từ thư mục con kontakti phải bao gồm tên của cả hai thư mục con - \user1\kontakti:

\user1\kontakti\ivanov.doc,

\user1\kontakti\postavki.txt

Đường dẫn có thể được chỉ định không chỉ cho các tệp mà còn cho các thư mục con. Vì vậy, đối với thư mục con kontakti, đường dẫn là \user1.

Vì máy tính của bạn bao gồm nhiều thiết bị đĩa khác nhau nên để nhận dạng duy nhất một tệp, bạn phải chỉ định tệp đó nằm trên thiết bị nào. Điều này có thể được thực hiện bằng cách chỉ định tên của thiết bị đĩa chứa tệp. Tên của thiết bị thường được đặt trước đường dẫn tới file. Tên tập tin đầy đủ (đặc tả tập tin) chứa

ü tên thiết bị,

ü đường dẫn đến tập tin,

ü tên tập tin.

<имя носителя>\<имя каталога-1>\...\<имя каталога-N>\<собственное имя файла>.

Ví dụ: nếu một thư mục có cấu trúc được hiển thị trong Hình. 3.3 nằm trên ổ cứng C:, khi đó thông số kỹ thuật đầy đủ của tệp postavki.txt trông như sau:

C:\user1\kontakti\postavki.txt

Nếu thư mục này nằm trên một đĩa mềm, tức là trên thiết bị đĩa A:, thì thông số kỹ thuật sẽ được ghi như sau:

A:\user1\kontakti\postavki.txt

Đặc tả tệp hoàn chỉnh sẽ xác định đầy đủ và rõ ràng tệp mong muốn, đây là những gì hệ điều hành yêu cầu để thực thi chính xác các lệnh của người dùng. Nếu xảy ra lỗi nhỏ nhất trong mục nhập đặc tả tệp, chẳng hạn như ít nhất một ký tự bị thiếu hoặc bị biến dạng, hệ điều hành sẽ không thể tìm thấy tệp đó.

Windows hỗ trợ ý tưởng về tệp dưới dạng một chuỗi byte không có cấu trúc.

Chương trình ứng dụng có khả năng đọc các byte này theo thứ tự ngẫu nhiên. Thông thường, việc lưu trữ tệp được tổ chức trên một thiết bị truy cập trực tiếp dưới dạng một tập hợp các khối có kích thước cố định. Công việc chính của hệ thống con quản lý tệp là liên kết tên tệp tượng trưng với các khối đĩa chứa dữ liệu tệp.

Đặt tên tệp

Để tạo một tệp và gán tên cho nó trong Windows, hàm Win32 CreateFile được sử dụng. Độ dài tối đa của tên tệp đủ điều kiện khi tạo tệp là MAX_PATH với giá trị 260, nhưng hệ thống cho phép tên tệp dài tới 32.000 ký tự ở định dạng Unicode.

Hệ thống có khả năng phân biệt chữ lớn và chữ nhỏ trong tên file. Các chương trình ứng dụng thường nhận dạng loại tệp theo tên của nó. Ví dụ: các tệp có phần mở rộng .exe có thể thực thi được. Việc kết nối tên với các chương trình xử lý được thực hiện trong sổ đăng ký.

Thuộc tính tệp

Trong Windows, một tệp không chỉ được coi là một chuỗi byte mà còn là một tập hợp các thuộc tính và dữ liệu tệp chỉ là một trong các thuộc tính - cái gọi là luồng dữ liệu chưa được đặt tên.

Các thuộc tính được lưu trữ dưới dạng một cặp:<наименование атрибута, значение атрибута>trong mục nhập tệp trong MFT (Bảng tệp chính).

Danh sách thuộc tính tệp NTFS

  • Thông tin tiêu chuẩn - bit cờ (chỉ đọc, lưu trữ), dấu thời gian.
  • Tên tập tin. Tên tệp được lưu trữ bằng Unicode.
  • Bộ mô tả bảo mật (kiểm soát truy cập tệp).
  • Dữ liệu. Luồng dữ liệu chưa được đặt tên và được đặt tên.
  • ID đối tượng - mã định danh tệp 64-bit duy nhất cho tập này. Tệp có thể được mở không chỉ bằng tên mà còn bằng mã định danh này.
  • Thông tin khối lượng.
  • Lập chỉ mục thông tin được sử dụng cho các thư mục.
  • Dữ liệu EFS (Hệ thống tệp mã hóa) được sử dụng để mã hóa.

Tổ chức tập tin và truy cập. Hiểu I/O không đồng bộ

Hệ thống con tệp Windows xử lý các tệp có byte có thể được đọc theo bất kỳ thứ tự nào vì số khối được xác định một cách bí ẩn bởi vị trí hiện tại trong tệp. Những tập tin như vậy được gọi là tập tin truy cập trực tiếp.

Một thành tựu quan trọng của các nhà phát triển hệ điều hành Windows là cung cấp cho người dùng khả năng thực hiện các hoạt động I/O không đồng bộ. Trong trường hợp này, quá trình khởi tạo thao tác I/O không đợi nó hoàn thành mà tiếp tục tính toán.

Thư mục. Cấu trúc logic của một kho lưu trữ tập tin

Hệ thống tệp trên đĩa là một cấu trúc phân cấp, được tổ chức bởi sự hiện diện của các tệp đặc biệt - thư mục (thư mục) có cùng định dạng bảng bên trong (tên tệp, loại tệp - thông thường hoặc thư mục, thuộc tính).

Windows hỗ trợ "." trong tên tệp đầy đủ. - cho thư mục hiện tại, ".." - cho thư mục gốc.

Phân vùng đĩa. Hoạt động gắn kết

Trong Windows, thông thường là chia các đĩa vật lý thành các đĩa logic (đây là thao tác cấp thấp), đôi khi được gọi là phân vùng. Ngược lại, đôi khi, một số đĩa vật lý được kết hợp thành một đĩa logic. Tên ổ đĩa logic được lưu trữ trong thư mục "\?". không gian tên đối tượng. Bằng cách chỉ định ký tự ổ đĩa, chương trình ứng dụng sẽ có quyền truy cập vào hệ thống tệp USE.

Windows cho phép người dùng tạo điểm gắn kết - liên kết một thư mục trống với một thư mục trên ổ đĩa logic. Sau khi hoàn thành thao tác thành công, nội dung của các thư mục này sẽ khớp với nhau.

Hệ thống tập tin NTFS

Trong hệ điều hành Windows, hệ thống tệp được tích hợp vào hệ thống đầu vào/đầu ra.

Cụm

Thông thường, các đĩa được chia thành các khối (sector) có dung lượng 512 byte. Nhưng sẽ thuận tiện hơn khi vận hành với các khối có kích thước lớn hơn - một cụm. Kích thước cụm bằng kích thước cung nhân với hệ số cụm và có thể được đặt trong quá trình vận hành định dạng đĩa. Theo mặc định giá trị này là 4 KB.

NTFS hỗ trợ các kích thước 512, 1024, 2048, 4096, 8196, 16 KB, 32 KB, 64 K. Kích thước khối thỏa hiệp tối ưu nằm trong khoảng từ 1 đến 8 KB. Việc nén các ổ đĩa NTFS không được hỗ trợ cho các kích thước cụm lớn hơn 4096 Byte. Hệ thống phân biệt giữa các cụm đĩa (cụm ổ đĩa) và các cụm đĩa thuộc một tệp (cụm logic).

Tài liệu ôn tập bài 33

dành cho học sinh chuyên

"Phần mềm công nghệ thông tin"

Phó Giáo sư Khoa Khoa học Máy tính, Tiến sĩ. Livak E.N.

HỆ THỐNG QUẢN LÝ TẬP TIN

Các khái niệm, sự kiện cơ bản

Mục đích. Đặc điểm của hệ thống tập tinMẬPVFATMỠ 32,HPFSNTFS. Hệ thống tệp UNIX OS (s5, ufs), Linux OS Ext2FS. Các vùng hệ thống của đĩa (phân vùng, ổ đĩa). Nguyên tắc sắp xếp tập tin và lưu trữ thông tin vị trí tập tin. Tổ chức danh mục. Hạn chế quyền truy cập vào các tập tin và thư mục.

Kỹ năng

Sử dụng kiến ​​thức về cấu trúc hệ thống tệp để bảo vệ và khôi phục thông tin máy tính (tệp và thư mục). Tổ chức kiểm soát truy cập vào các tập tin.

Hệ thống tập tin. Cấu trúc hệ thống tập tin

Dữ liệu trên đĩa được lưu trữ dưới dạng tập tin. Một tập tin là một phần được đặt tên của đĩa.

Hệ thống quản lý tập tin được thiết kế để quản lý tập tin.

Khả năng xử lý dữ liệu được lưu trữ trong các tệp ở mức logic được cung cấp bởi hệ thống tệp. Chính hệ thống tệp sẽ xác định cách tổ chức dữ liệu trên bất kỳ phương tiện lưu trữ nào.

Như vậy, hệ thống tập tin là một tập hợp các thông số kỹ thuật và phần mềm tương ứng chịu trách nhiệm tạo, hủy, sắp xếp, đọc, ghi, sửa đổi và di chuyển thông tin tệp cũng như kiểm soát quyền truy cập vào tệp và quản lý tài nguyên được các tệp sử dụng.

Hệ thống quản lý tập tin là hệ thống con chính trong phần lớn các hệ điều hành hiện đại.

Sử dụng hệ thống quản lý tập tin

· Tất cả các chương trình xử lý hệ thống được kết nối bằng dữ liệu;

· Giải quyết các vấn đề về phân bổ không gian đĩa và quản lý dữ liệu tập trung;

· Người dùng được cung cấp cơ hội thực hiện các thao tác trên tệp (tạo, v.v.), trao đổi dữ liệu giữa các tệp và các thiết bị khác nhau và bảo vệ tệp khỏi bị truy cập trái phép.

Một số hệ điều hành có thể có nhiều hệ thống quản lý tệp, giúp chúng có khả năng xử lý nhiều hệ thống tệp.

Hãy thử phân biệt giữa hệ thống tệp và hệ thống quản lý tệp.

Thuật ngữ "hệ thống tệp" xác định các nguyên tắc truy cập vào dữ liệu được tổ chức trong tệp.

Thuật ngữ "hệ thống quản lý tập tin"đề cập đến việc triển khai cụ thể của hệ thống tệp, tức là Đây là một tập hợp các mô-đun phần mềm cung cấp khả năng làm việc với các tệp trong một hệ điều hành cụ thể.

Vì vậy, để làm việc với các tệp được tổ chức theo một hệ thống tệp nào đó, mỗi hệ điều hành phải phát triển một hệ thống quản lý tệp thích hợp. Hệ thống UV này sẽ chỉ hoạt động trên hệ điều hành được thiết kế cho nó.

Đối với dòng hệ điều hành Windows, các hệ thống tệp được sử dụng chủ yếu là: VFAT, FAT 32, NTFS.

Chúng ta hãy xem cấu trúc của các hệ thống tập tin này.

Trên hệ thống tập tin MẬP Dung lượng ổ đĩa của bất kỳ ổ đĩa logic nào được chia thành hai khu vực:

khu vực hệ thống và

· vùng dữ liệu.

Khu vực hệ thống được tạo và khởi tạo trong quá trình định dạng và sau đó được cập nhật khi cấu trúc tệp được thao tác.

Vùng hệ thống bao gồm các thành phần sau:

· Khu vực khởi động chứa bản ghi khởi động (bản ghi khởi động);

· Các lĩnh vực dành riêng (chúng có thể không tồn tại);

· bảng phân bổ tập tin (FAT, Bảng phân bổ tệp);

· Thư mục gốc (ROOT).

Các thành phần này lần lượt được đặt trên đĩa.

Vùng dữ liệu chứa các tập tin và thư mục phụ thuộc vào thư mục gốc.

Vùng dữ liệu được chia thành cái gọi là cụm. Một cụm là một hoặc nhiều lĩnh vực liền kề của một vùng dữ liệu. Mặt khác, một cụm là đơn vị bộ nhớ đĩa có thể định địa chỉ tối thiểu được phân bổ cho một tệp. Những thứ kia. một tập tin hoặc thư mục chiếm một số cụm nguyên. Để tạo và ghi một tập tin mới vào đĩa, hệ điều hành sẽ phân bổ một số cụm đĩa trống cho nó. Các cụm này không nhất thiết phải nối tiếp nhau. Đối với mỗi tệp, một danh sách tất cả các số cụm được gán cho tệp đó sẽ được lưu trữ.

Việc chia vùng dữ liệu thành các cụm thay vì sử dụng các cung cho phép bạn:

· giảm kích thước của bảng FAT;

· giảm phân mảnh tập tin;

· độ dài của chuỗi tập tin giảm Þ tăng tốc độ truy cập tập tin.

Tuy nhiên, kích thước cụm quá lớn sẽ dẫn đến việc sử dụng vùng dữ liệu không hiệu quả, đặc biệt trong trường hợp số lượng lớn các tệp nhỏ (xét cho cùng, trung bình một nửa cụm bị mất cho mỗi tệp).

Trong các hệ thống tệp hiện đại (FAT 32, HPFS, NTFS), vấn đề này được giải quyết bằng cách giới hạn kích thước cụm (tối đa 4 KB)

Bản đồ vùng dữ liệu là T Bảng phân bổ tập tin (Bảng phân bổ tệp - FAT) Mỗi ​​phần tử của bảng FAT (12, 16 hoặc 32 bit) tương ứng với một cụm đĩa và mô tả trạng thái của nó: cụm trống, bận hoặc cụm xấu.

· Nếu một cụm được phân bổ cho một tệp (tức là bận), thì phần tử FAT tương ứng chứa số cụm tiếp theo của tệp;

· Cụm cuối cùng của tệp được đánh dấu bằng một số trong phạm vi FF8h - FFFh (FFF8h - FFFFh);

· nếu cụm trống, nó chứa giá trị 0 000h (0000h);

· một cụm không sử dụng được (thất bại) được đánh dấu bằng số FF7h (FFF7h).

Do đó, trong bảng FAT, các cụm thuộc cùng một tệp được liên kết thành chuỗi.

Bảng phân bổ tệp được lưu trữ ngay sau bản ghi khởi động của đĩa logic; vị trí chính xác của nó được mô tả trong một trường đặc biệt trong khu vực khởi động.

Nó được lưu trữ trong hai bản sao giống hệt nhau, nối tiếp nhau. Nếu bản sao đầu tiên của bảng bị hủy thì bản sao thứ hai sẽ được sử dụng.

Do thực tế là FAT được sử dụng rất nhiều trong quá trình truy cập đĩa, nên nó thường được tải vào RAM (vào bộ đệm I/O hoặc bộ nhớ đệm) và tồn tại ở đó càng lâu càng tốt.

Nhược điểm chính của FAT là xử lý tệp chậm. Khi tạo một tệp, quy tắc là cụm miễn phí đầu tiên được phân bổ. Điều này dẫn đến sự phân mảnh đĩa và chuỗi tập tin phức tạp. Điều này dẫn đến việc xử lý các tập tin chậm hơn.

Để xem và chỉnh sửa bảng FAT bạn có thể sử dụng tính thiết thựcĐĩaBiên tập viên.

Thông tin chi tiết về chính tập tin được lưu trữ trong một cấu trúc khác gọi là thư mục gốc. Mỗi ổ đĩa logic có thư mục gốc (ROOT) riêng.

Thư mục gốc mô tả các tập tin và thư mục khác. Một phần tử thư mục là một bộ mô tả tập tin.

Mỗi bộ mô tả tập tin và thư mục bao gồm nó

· Tên

· sự mở rộng

ngày tạo hoặc sửa đổi lần cuối

· thời điểm tạo hoặc sửa đổi lần cuối

thuộc tính (kho lưu trữ, thuộc tính thư mục, thuộc tính ổ đĩa, hệ thống, ẩn, chỉ đọc)

· chiều dài tập tin (đối với một thư mục - 0)

· Trường dành riêng không được sử dụng

· số cụm đầu tiên trong chuỗi các cụm được phân bổ cho một tập tin hoặc thư mục; Sau khi nhận được số này, hệ điều hành, tham khảo bảng FAT, sẽ tìm ra tất cả các số cụm khác của tệp.

Vì vậy, người dùng khởi chạy tệp để thực thi. Hệ điều hành tìm kiếm tệp có tên mong muốn bằng cách xem mô tả của tệp trong thư mục hiện tại. Khi tìm thấy phần tử bắt buộc trong thư mục hiện tại, hệ điều hành sẽ đọc số cụm đầu tiên của tệp này, sau đó sử dụng bảng FAT để xác định số cụm còn lại. Dữ liệu từ các cụm này được đọc vào RAM, kết hợp thành một phần liên tục. Hệ điều hành chuyển quyền điều khiển sang tệp và chương trình bắt đầu chạy.

Để xem và chỉnh sửa thư mục gốc ROOT bạn cũng có thể sử dụng tính thiết thựcĐĩaBiên tập viên.

Hệ thống tập tin VFAT

Hệ thống tệp VFAT (FAT ảo) lần đầu tiên xuất hiện trong Windows for Workgroups 3.11 và được thiết kế cho I/O tệp chế độ được bảo vệ.

Hệ thống tập tin này được sử dụng trong Windows 95.

Nó cũng được hỗ trợ trong Windows NT 4.

VFAT là hệ thống tệp 32-bit gốc của Windows 95. Nó được điều khiển bởi trình điều khiển VFAT .VXD.

VFAT sử dụng mã 32 bit cho tất cả các thao tác với tệp và có thể sử dụng trình điều khiển chế độ được bảo vệ 32 bit.

NHƯNG, các mục trong bảng phân bổ tệp vẫn là 12 hoặc 16 bit, do đó đĩa sử dụng cùng cấu trúc dữ liệu (FAT). Những thứ kia. f định dạng bảngVFAT cũng vậy, giống như định dạng FAT.

VFAT cùng với tên "8.3" hỗ trợ tên tập tin dài. (VFAT thường được gọi là FAT có hỗ trợ tên dài).

Nhược điểm chính của VFAT là tổn thất phân cụm lớn với kích thước đĩa logic lớn và các hạn chế về kích thước của chính đĩa logic.

Hệ thống tập tin MỠ 32

Đây là một triển khai mới của ý tưởng sử dụng bảng FAT.

FAT 32 là một hệ thống tệp 32-bit hoàn toàn độc lập.

Lần đầu tiên được sử dụng trong Windows OSR 2 (OEM Service Release 2).

Hiện nay, FAT 32 được sử dụng trong Windows 98 và Windows ME.

Nó chứa nhiều cải tiến và bổ sung so với việc triển khai FAT trước đó.

1. Sử dụng dung lượng ổ đĩa hiệu quả hơn nhiều do nó sử dụng các cụm nhỏ hơn (4 KB) - ước tính tiết kiệm được tới 15%.

2. Có bản ghi khởi động mở rộng cho phép bạn tạo bản sao của các cấu trúc dữ liệu quan trọng Þ tăng khả năng chống lại sự hư hại của đĩa đối với cấu trúc đĩa

3. Có thể sử dụng bản sao lưu FAT thay vì bản tiêu chuẩn.

4. Có thể di chuyển thư mục gốc, hay nói cách khác, thư mục gốc có thể ở bất kỳ vị trí nào Þ loại bỏ giới hạn về kích thước của thư mục gốc (512 phần tử, vì ROOT được cho là chiếm một cụm).

5. Cải thiện cấu trúc thư mục gốc

Các trường bổ sung đã xuất hiện, ví dụ: thời gian tạo, ngày tạo, ngày truy cập lần cuối, tổng kiểm tra

Vẫn còn nhiều thẻ điều khiển cho một tên tệp dài.

Hệ thống tập tin HPFS

HPFS (Hệ thống tệp hiệu suất cao) là một hệ thống tệp hiệu suất cao.

HPFS lần đầu tiên xuất hiện trong OS/2 1.2 và LAN Manager.

Hãy liệt kê Các tính năng chính của HPFS

· Sự khác biệt chính là nguyên tắc cơ bản của việc đặt tập tin vào đĩa và nguyên tắc lưu trữ thông tin về vị trí của tập tin. Nhờ những nguyên tắc này, HPFS đã hiệu suất cao và khả năng chịu lỗi, đáng tin cậy hệ thống tập tin.

· Dung lượng ổ đĩa trong HPFS không được phân bổ theo cụm (như trong FAT), mà khối. Trong cách triển khai hiện đại, kích thước khối được lấy bằng một khu vực, nhưng về nguyên tắc nó có thể có kích thước khác. (Thực ra một khối là một cụm, chỉ có một cụm luôn bằng một cung). Việc đặt các tập tin vào các khối nhỏ như vậy cho phép sử dụng không gian đĩa hiệu quả hơn, vì tổng dung lượng trống trung bình chỉ (nửa cung) là 256 byte cho mỗi tệp. Hãy nhớ rằng kích thước cụm càng lớn thì càng lãng phí nhiều dung lượng đĩa.

· Hệ thống HPFS cố gắng sắp xếp tệp theo các khối liền kề hoặc nếu không thể, hãy đặt tệp vào đĩa theo cách sao cho phạm vi(các đoạn) của tệp càng gần nhau càng tốt. Cách tiếp cận này là cần thiết giảm thời gian định vị đầu ghi/đọcổ cứng và thời gian chờ (độ trễ giữa việc cài đặt đầu đọc/ghi trên rãnh mong muốn). Chúng ta hãy nhớ lại rằng trong tệp FAT, cụm trống đầu tiên được phân bổ đơn giản.

Mức độ(phạm vi) - các đoạn tệp nằm trong các khu vực lân cận của đĩa. Một tệp có ít nhất một phạm vi nếu nó không bị phân mảnh và có nhiều phạm vi nếu không.

·Đã sử dụng phương pháp Cây nhị phân cân bằng để lưu trữ và tìm kiếm thông tin về vị trí của tệp (thư mục được lưu trữ ở giữa đĩa, ngoài ra còn cung cấp tính năng tự động sắp xếp các thư mục), điều này rất cần thiết tăng năng suất HPFS (so với FAT).

· HPFS cung cấp các thuộc tính tệp mở rộng đặc biệt cho phép kiểm soát quyền truy cập vào tập tin và thư mục.

Thuộc tính mở rộng (thuộc tính mở rộng, EA ) cho phép bạn lưu trữ thông tin bổ sung về tệp. Ví dụ: mỗi tệp có thể được liên kết với đồ họa (biểu tượng) duy nhất, mô tả tệp, nhận xét, thông tin chủ sở hữu tệp, v.v.

Cấu trúc phân vùng C HPFS


Ở đầu phân vùng được cài đặt HPFS, có ba điều khiển khối:

khối khởi động

· khối bổ sung (siêu khối) và

· khối dự phòng (dự phòng) (khối dự phòng).

Họ chiếm 18 lĩnh vực.

Tất cả dung lượng đĩa còn lại trong HPFS được chia thành các phần từ các khu vực lân cận - sọc(dải - dải, băng). Mỗi dải chiếm 8 MB dung lượng đĩa.

Mỗi dải đều có cái riêng bitmap phân bổ ngành.Bitmap hiển thị các khu vực của một băng tần nhất định bị chiếm dụng và khu vực nào còn trống. Mỗi khu vực của dải dữ liệu tương ứng với một bit trong bitmap của nó. Nếu bit = 1 thì khu vực này đang bận, nếu 0 thì khu vực đó đang rảnh.

Các ảnh bitmap của hai làn đường được đặt cạnh nhau trên đĩa, cũng như các làn đường đó. Nghĩa là, chuỗi sọc và thẻ trông giống như trong Hình.

So sánh vớiMẬP. Chỉ có một “bản đồ bit” cho toàn bộ đĩa (bảng FAT). Và để làm việc với nó, bạn phải di chuyển trung bình các đầu đọc/ghi trên một nửa đĩa.

Để giảm thời gian định vị các đầu đọc/ghi của đĩa cứng, trong HPFS, đĩa được chia thành các sọc.

Hãy xem xét khối điều khiển.

Khối khởi động (khởi độngkhối)

Chứa tên ổ đĩa, số sê-ri, khối tham số BIOS và chương trình khởi động.

Chương trình bootstrap tìm thấy tập tin LDR hệ điều hành 2 , đọc nó vào bộ nhớ và chuyển quyền điều khiển sang chương trình khởi động hệ điều hành này, sau đó, chương trình này sẽ tải nhân OS/2 từ đĩa vào bộ nhớ - OS 2 KRNL. Và đã có OS 2 KRIML sử dụng thông tin từ tập tin CẤU HÌNH. SYS tải tất cả các mô-đun chương trình và khối dữ liệu cần thiết khác vào bộ nhớ.

Khối khởi động được đặt trong các khu vực từ 0 đến 15.

siêuKhối(siêu khối)

Chứa

· con trỏ tới danh sách bitmap (danh sách khối bitmap). Danh sách này liệt kê tất cả các khối trên đĩa chứa bitmap được sử dụng để phát hiện các khu vực trống;

· con trỏ tới danh sách các khối bị lỗi (danh sách khối xấu). Khi hệ thống phát hiện một khối bị hỏng, khối đó sẽ được thêm vào danh sách này và không còn được sử dụng để lưu trữ thông tin;

· con trỏ tới dải thư mục

· con trỏ tới nút tập tin (F -node) của thư mục gốc,

· Ngày quét phân vùng cuối cùng của CHKDSK;

· thông tin về kích thước sọc (trong triển khai HPFS hiện tại - 8 MB).

Siêu khối nằm ở khu vực 16.

Dự phòngkhối(khối dự phòng)

Chứa

· con trỏ tới bản đồ thay thế khẩn cấp (bản đồ hotfix hoặc khu vực hotfix);

· con trỏ tới danh sách các khối dự phòng miễn phí (danh sách khối miễn phí khẩn cấp thư mục);

· một số cờ hệ thống và mô tả.

Khối này nằm ở khu vực 17 của đĩa.

Khối sao lưu cung cấp khả năng chịu lỗi cao cho hệ thống tệp HPFS và cho phép bạn khôi phục dữ liệu bị hỏng trên đĩa.

Nguyên tắc vị trí tập tin

Mức độ(phạm vi) - các đoạn tệp nằm trong các khu vực lân cận của đĩa. Một tệp có ít nhất một phạm vi nếu nó không bị phân mảnh và có nhiều phạm vi nếu không.

Để giảm thời gian cần thiết để định vị các đầu đọc/ghi của đĩa cứng, hệ thống HPFS cố gắng

1) đặt tệp vào các khối liền kề;

2) nếu điều này là không thể thì hãy đặt các phạm vi của tệp bị phân mảnh càng gần nhau càng tốt,

Để thực hiện việc này, HPFS sử dụng số liệu thống kê và cũng cố gắng dự trữ có điều kiện ít nhất 4 kilobyte dung lượng ở cuối các tệp đang tăng lên.

Nguyên tắc lưu trữ thông tin vị trí file

Mỗi tập tin và thư mục trên đĩa đều có nút tập tin F-Node. Đây là cấu trúc chứa thông tin về vị trí của tệp và các thuộc tính mở rộng của nó.

Mỗi F-Node chiếm một lĩnh vực và luôn nằm gần tệp hoặc thư mục của nó (thường ngay trước tệp hoặc thư mục). Đối tượng F-Node chứa

· chiều dài,

· 15 ký tự đầu tiên của tên tập tin,

· thông tin dịch vụ đặc biệt,

· thống kê về truy cập tập tin,

· thuộc tính tập tin mở rộng,

· danh sách các quyền truy cập (hoặc chỉ một phần của danh sách này, nếu nó rất lớn); Nếu các thuộc tính mở rộng quá lớn đối với nút tệp thì một con trỏ tới chúng sẽ được ghi vào nút đó.

· thông tin liên kết về vị trí và cấp dưới của tập tin, v.v.

Nếu tệp liền kề thì vị trí của nó trên đĩa được mô tả bằng hai số 32 bit. Số đầu tiên là con trỏ tới khối đầu tiên của tệp và số thứ hai là độ dài phạm vi (số khối liên tiếp thuộc về tệp).

Nếu một tệp bị phân mảnh thì vị trí của các phần mở rộng của nó sẽ được mô tả trong nút tệp bằng các cặp số 32 bit bổ sung.

Một nút tệp có thể chứa thông tin về tối đa tám phần của tệp. Nếu một tệp có nhiều phạm vi hơn thì một con trỏ tới khối phân bổ sẽ được ghi vào nút tệp của nó, nút này có thể chứa tối đa 40 con trỏ tới các phạm vi hoặc, tương tự như khối cây thư mục, tới các khối phân bổ khác.

Cấu trúc và vị trí thư mục

Dùng để lưu trữ danh mục sọc nằm ở giữa đĩa.

Dải này được gọi là danh mụcban nhạc.

Nếu nó đã đầy hoàn toàn, HPFS sẽ bắt đầu đặt các thư mục tệp vào các sọc khác.

Việc đặt cấu trúc thông tin này vào giữa đĩa sẽ làm giảm đáng kể thời gian định vị đầu đọc/ghi trung bình.

Tuy nhiên, sự đóng góp lớn hơn đáng kể cho hiệu suất HPFS (so với việc đặt Dải thư mục ở giữa đĩa logic) được thực hiện bằng cách sử dụng phương pháp cây nhị phân cân bằng để lưu trữ và truy xuất thông tin về vị trí của tệp.

Hãy nhớ lại rằng trong hệ thống tập tin MẬP Thư mục có cấu trúc tuyến tính, không được sắp xếp theo thứ tự đặc biệt nên khi tìm kiếm một tập tin bạn cần xem qua nó một cách tuần tự ngay từ đầu.

Trong HPFS, cấu trúc thư mục là một cây cân bằng với các mục được sắp xếp theo thứ tự bảng chữ cái.

Mỗi mục trong cây chứa

· thuộc tính tập tin,

· con trỏ tới nút tập tin tương ứng,

thông tin về ngày giờ tạo tập tin, ngày giờ cập nhật và truy cập lần cuối,

độ dài của dữ liệu chứa các thuộc tính mở rộng,

· bộ đếm truy cập tập tin,

độ dài tên tập tin

· chính cái tên,

· và các thông tin khác.

Hệ thống tệp HPFS chỉ xem xét các nhánh cần thiết của cây nhị phân khi tìm kiếm tệp trong một thư mục. Phương pháp này hiệu quả hơn nhiều lần so với việc đọc tuần tự tất cả các mục trong một thư mục, trường hợp này xảy ra với hệ thống FAT.

Kích thước của mỗi khối theo thư mục nào được phân bổ trong quá trình triển khai HPFS hiện tại là 2 KB. Kích thước của mục mô tả tệp phụ thuộc vào kích thước của tên tệp. Nếu tên là 13 byte (đối với định dạng 8.3), thì khối 2 KB có thể chứa tối đa 40 bộ mô tả tệp. Các khối được kết nối với nhau thông qua một danh sách.

Các vấn đề

Khi đổi tên tập tin, cái gọi là cân bằng lại cây có thể xảy ra. Việc tạo, đổi tên hoặc xóa một tập tin có thể dẫn đến khối thư mục xếp tầng. Trên thực tế, việc đổi tên có thể không thành công do thiếu dung lượng ổ đĩa, ngay cả khi bản thân tệp không tăng kích thước. Để tránh thảm họa này, HPFS duy trì một nhóm nhỏ các khối miễn phí có thể được sử dụng trong trường hợp xảy ra thảm họa. Hoạt động này có thể yêu cầu phân bổ các khối bổ sung trên một đĩa đầy đủ. Một con trỏ tới nhóm khối miễn phí này được lưu trữ trong SpareBlock.

Nguyên tắc đặt tập tin và thư mục trên đĩaHPFS:

· Thông tin về vị trí của các tệp được phân tán khắp đĩa, với các bản ghi cho từng tệp cụ thể được đặt (nếu có thể) trong các khu vực lân cận và gần với dữ liệu về vị trí của chúng;

· các thư mục được đặt ở giữa không gian đĩa;

· Các thư mục được lưu trữ dưới dạng cây cân bằng nhị phân với các mục được sắp xếp theo thứ tự bảng chữ cái.

Độ tin cậy của việc lưu trữ dữ liệu trong HPFS

Bất kỳ hệ thống tập tin nào cũng phải có phương tiện sửa lỗi xảy ra khi ghi thông tin vào đĩa. Hệ thống HPFS sử dụng cho việc này cơ chế thay thế khẩn cấp ( sửa lỗi nóng).

Nếu hệ thống tệp HPFS gặp sự cố khi ghi dữ liệu vào đĩa, nó sẽ hiển thị thông báo lỗi. HPFS sau đó lưu trữ thông tin đáng lẽ phải được ghi vào khu vực bị lỗi ở một trong các khu vực dự phòng được dành riêng trước cho trường hợp này. Danh sách các khối dự phòng miễn phí được lưu trữ trong khối dự phòng HPFS. Nếu phát hiện lỗi khi ghi dữ liệu vào khối thông thường, HPFS sẽ chọn một trong các khối dự phòng miễn phí và lưu trữ dữ liệu ở đó. Hệ thống tập tin sau đó cập nhật thẻ thay thế khẩn cấp ở đơn vị dự bị.

Bản đồ này chỉ đơn giản là các cặp từ kép, mỗi từ là một số khu vực 32 bit.

Số đầu tiên cho biết khu vực bị lỗi và số thứ hai cho biết khu vực đó trong số các khu vực dự phòng có sẵn đã được chọn để thay thế nó.

Sau khi thay thế khu vực bị lỗi bằng khu vực dự phòng, bản đồ thay thế khẩn cấp sẽ được ghi vào đĩa và một cửa sổ bật lên xuất hiện trên màn hình thông báo cho người dùng rằng đã xảy ra lỗi ghi đĩa. Mỗi khi hệ thống ghi hoặc đọc một khu vực đĩa, nó sẽ xem xét bản đồ khôi phục và thay thế tất cả các số khu vực xấu bằng số khu vực dự phòng bằng dữ liệu tương ứng.

Cần lưu ý rằng việc dịch số này không ảnh hưởng đáng kể đến hiệu suất hệ thống, vì nó chỉ được thực hiện khi truy cập vật lý vào đĩa chứ không phải khi đọc dữ liệu từ bộ nhớ đệm của đĩa.

Hệ thống tập tin NTFS

Hệ thống tệp NTFS (Hệ thống tệp công nghệ mới) chứa một số cải tiến và thay đổi đáng kể giúp phân biệt đáng kể với các hệ thống tệp khác.

Lưu ý rằng với những trường hợp ngoại lệ hiếm hoi, với Phân vùng NTFS chỉ có thể được làm việc trực tiếp từcác cửa sổN.T. mặc dù có những triển khai tương ứng của hệ thống quản lý tệp để đọc tệp từ ổ đĩa NTFS cho một số hệ điều hành.

Tuy nhiên, không có triển khai chính thức nào để làm việc với NTFS ngoài Windows NT.

NTFS không được hỗ trợ trên hệ điều hành Windows 98 và Windows Millennium Edition được sử dụng rộng rãi.

Các tính năng chínhNT FS

· Làm việc trên các đĩa lớn diễn ra hiệu quả (hiệu quả hơn nhiều so với FAT);

· có các công cụ hạn chế quyền truy cập vào các tập tin và thư mục Þ Phân vùng NTFS cung cấp bảo mật cục bộ cho cả tệp và thư mục;

· một cơ chế giao dịch đã được giới thiệu trong đó khai thác gỗ thao tác tập tin Þ tăng đáng kể độ tin cậy;

· nhiều hạn chế về số lượng tối đa các cung và/hoặc cụm đĩa đã được loại bỏ;

· Tên tệp ở dạng NTFS, không giống như hệ thống tệp FAT và HPFS, có thể chứa bất kỳ ký tự nào, bao gồm toàn bộ bảng chữ cái quốc gia, vì dữ liệu được biểu thị bằng Unicode - biểu diễn 16 bit cung cấp 65535 ký tự khác nhau. Độ dài tối đa của tên tệp trong NTFS là 255 ký tự.

· NTFS cũng có khả năng nén tích hợp mà bạn có thể áp dụng cho từng tệp, toàn bộ thư mục và thậm chí cả các ổ đĩa (và sau đó hoàn tác hoặc gán chúng theo ý muốn).

Cấu trúc ổ đĩa với hệ thống tệp NTFS

Một phân vùng NTFS được gọi là một ổ đĩa (volume). Kích thước ổ đĩa tối đa có thể (và kích thước tệp) là 16 EB (exabyte 2**64).

Giống như các hệ thống khác, NTFS chia không gian ổ đĩa thành các cụm—khối dữ liệu được đánh địa chỉ dưới dạng đơn vị dữ liệu. NTFS hỗ trợ kích thước cụm từ 512 byte đến 64 KB; tiêu chuẩn là một cụm có kích thước 2 hoặc 4 KB.

Tất cả dung lượng ổ đĩa trong NTFS được chia thành hai phần không bằng nhau.


12% đầu tiên của đĩa được phân bổ cho cái gọi là vùng MFT - không gian có thể bị dịch vụ chính chiếm giữ siêu tập tin MFT.

Không thể ghi bất kỳ dữ liệu nào vào khu vực này. Vùng MFT luôn được giữ trống - điều này được thực hiện để tệp MFT, nếu có thể, không bị phân mảnh khi nó phát triển.

88% dung lượng còn lại là không gian lưu trữ tệp thông thường.

MFT(bậc thầytài liệubàn - bảng tệp chung) về cơ bản là một thư mục chứa tất cả các tệp khác trên đĩa, bao gồm cả chính nó. Nó được thiết kế để xác định vị trí của tập tin.

MFT bao gồm các bản ghi có kích thước cố định. Kích thước bản ghi MFT (tối thiểu 1 KB và tối đa 4 KB) được xác định khi ổ đĩa được định dạng.

Mỗi mục tương ứng với một tập tin.

16 mục đầu tiên có tính chất dịch vụ và không có sẵn cho hệ điều hành - chúng được gọi là siêu tập tin, và siêu tệp đầu tiên chính là MFT.

16 phần tử MFT đầu tiên này là phần duy nhất của đĩa có vị trí cố định nghiêm ngặt. Một bản sao của 16 mục này được giữ ở giữa tập sách để đảm bảo độ tin cậy.

Các phần còn lại của tệp MFT có thể được đặt, giống như bất kỳ tệp nào khác, ở các vị trí tùy ý trên đĩa.

Siêu tệp có tính chất dịch vụ - mỗi siêu tệp chịu trách nhiệm về một số khía cạnh hoạt động của hệ thống. Siêu tập tin nằm trong thư mục gốc của ổ đĩa NTFS. Tất cả đều bắt đầu bằng ký hiệu tên "$", mặc dù rất khó để có được bất kỳ thông tin nào về chúng bằng các phương tiện tiêu chuẩn. Trong bảng Các siêu dữ liệu chính và mục đích của chúng được đưa ra.

Tên siêu tệp

Mục đích của siêu tập tin

$MFT

Bản thân Bảng Tệp Chính

$MFTmirr

Một bản sao của 16 mục MFT đầu tiên được đặt ở giữa tập sách

$Tệp nhật ký

Tập tin hỗ trợ ghi nhật ký

$Khối lượng

Thông tin dịch vụ - nhãn ổ đĩa, phiên bản hệ thống tệp, v.v.

$AttrDef

Danh sách các thuộc tính tệp tiêu chuẩn trên ổ đĩa

Thư mục gốc

$bitmap

Bản đồ không gian trống

$Khởi động

Khu vực khởi động (nếu phân vùng có khả năng khởi động)

hạn ngạch $

Một tệp ghi lại quyền sử dụng dung lượng ổ đĩa của người dùng (tệp này chỉ bắt đầu hoạt động trong Windows 2000 với NTFS 5.0)

$Chữ hoa

Tệp - bảng tương ứng giữa chữ hoa và chữ thường trong tên tệp. Trong NTFS, tên tập tin được viết bằng bảng mã Unicode (lên tới 65 nghìn ký hiệu khác nhau) và tìm kiếm các giá trị tương đương lớn và nhỏ trong trường hợp này là một nhiệm vụ không hề nhỏ

Bản ghi MFT tương ứng lưu trữ tất cả thông tin về tệp:

· tên tập tin,

· kích cỡ;

· thuộc tính tập tin;

· vị trí trên đĩa của các mảnh riêng lẻ, v.v.

Nếu một bản ghi MFT không đủ thông tin thì một số bản ghi sẽ được sử dụng và không nhất thiết phải là các bản ghi liên tiếp.

Nếu tệp không lớn lắm thì dữ liệu tệp sẽ được lưu trữ trực tiếp trong MFT, trong khoảng trống còn lại của dữ liệu chính trong một bản ghi MFT.

Một tập tin trên ổ đĩa NTFS được xác định bởi cái gọi là liên kết tập tin(Tham chiếu tệp), được biểu thị dưới dạng số 64 bit.

· số tập tin tương ứng với số bản ghi trong MFT,

· và số thứ tự. Con số này được tăng lên bất cứ khi nào một số nhất định trong MFT được sử dụng lại, cho phép hệ thống tệp NTFS thực hiện kiểm tra tính toàn vẹn bên trong.

Mỗi tệp trong NTFS được biểu thị bằng dòng(luồng), tức là nó không có “chỉ dữ liệu” như vậy mà có các luồng.

Một trong những luồng là dữ liệu tệp.

Hầu hết các thuộc tính tệp cũng là luồng.

Do đó, hóa ra tệp chỉ có một thực thể cơ bản - số trong MFT và mọi thứ khác, bao gồm cả luồng của nó, đều là tùy chọn.

Cách tiếp cận này có thể được sử dụng một cách hiệu quả - ví dụ: bạn có thể “đính kèm” một luồng khác vào một tệp bằng cách ghi bất kỳ dữ liệu nào vào đó.

Các thuộc tính tiêu chuẩn cho tệp và thư mục trên ổ đĩa NTFS có tên và mã loại cố định.

Mục lục trong NTFS là một tệp đặc biệt lưu trữ các liên kết đến các tệp và thư mục khác.

Tệp danh mục được chia thành các khối, mỗi khối chứa

· tên tập tin,

thuộc tính cơ bản và

Thư mục gốc của đĩa không khác gì các thư mục thông thường, ngoại trừ một liên kết đặc biệt đến nó từ đầu siêu tệp MFT.

Cấu trúc thư mục bên trong là cây nhị phân, tương tự như HPFS.

Số lượng tệp trong thư mục gốc và không phải gốc không bị giới hạn.

Hệ thống tệp NTFS hỗ trợ mô hình đối tượng bảo mật NT: NTFS xử lý các thư mục và tệp dưới dạng các loại đối tượng riêng biệt và duy trì danh sách quyền riêng biệt (mặc dù chồng chéo) cho từng loại.

NTFS cung cấp bảo mật ở cấp độ tệp; điều này có nghĩa là quyền truy cập vào các tập, thư mục và tệp có thể phụ thuộc vào tài khoản người dùng và nhóm mà người dùng đó thuộc về. Mỗi khi người dùng truy cập vào một đối tượng hệ thống tệp, quyền truy cập của người đó sẽ được kiểm tra dựa trên danh sách quyền của đối tượng đó. Nếu người dùng có đủ quyền, yêu cầu của anh ta sẽ được chấp nhận; nếu không thì yêu cầu sẽ bị từ chối. Mô hình bảo mật này áp dụng cho cả việc đăng ký người dùng cục bộ trên máy tính NT và các yêu cầu mạng từ xa.

Hệ thống NTFS cũng có khả năng tự phục hồi nhất định. NTFS hỗ trợ nhiều cơ chế khác nhau để xác minh tính toàn vẹn của hệ thống, bao gồm ghi nhật ký giao dịch, cho phép các hoạt động ghi tệp được phát lại dựa trên nhật ký hệ thống đặc biệt.

Tại khai thác gỗ hoạt động của tệp, hệ thống quản lý tệp sẽ ghi lại những thay đổi xảy ra trong một tệp dịch vụ đặc biệt. Khi bắt đầu một thao tác liên quan đến việc thay đổi cấu trúc file, một ghi chú tương ứng sẽ được thực hiện. Nếu có bất kỳ lỗi nào xảy ra trong quá trình thao tác với tệp, dấu bắt đầu thao tác nói trên vẫn được biểu thị là chưa hoàn thành. Khi bạn thực hiện kiểm tra tính toàn vẹn của hệ thống tệp sau khi khởi động lại máy, các thao tác đang chờ xử lý này sẽ bị hủy và các tệp sẽ được khôi phục về trạng thái ban đầu. Nếu hoạt động thay đổi dữ liệu trong tệp được hoàn thành bình thường thì trong chính tệp hỗ trợ ghi nhật ký dịch vụ này, thao tác được đánh dấu là đã hoàn thành.

Nhược điểm chính của hệ thống tập tinNTFS- dữ liệu dịch vụ chiếm nhiều dung lượng (ví dụ: mỗi thành phần thư mục chiếm 2 KB) - đối với các phân vùng nhỏ, dữ liệu dịch vụ có thể chiếm tới 25% dung lượng phương tiện.

Þ NTFS không thể được sử dụng để định dạng đĩa mềm. Bạn không nên sử dụng nó để định dạng các phân vùng nhỏ hơn 100 MB.

Hệ thống tập tin hệ điều hành UNIX

Trong thế giới UNIX, có một số loại hệ thống tệp khác nhau có cấu trúc bộ nhớ ngoài riêng. Được biết đến nhiều nhất là hệ thống tệp UNIX System V (s5) truyền thống và hệ thống tệp họ UNIX BSD (ufs).

Hãy xem xét s 5.

Một tệp trên hệ thống UNIX là một tập hợp các ký tự truy cập ngẫu nhiên.

Tệp có cấu trúc do người dùng áp đặt.

Hệ thống tệp Unix là một hệ thống tệp phân cấp, nhiều người dùng.

Hệ thống tập tin có cấu trúc cây. Các đỉnh (nút trung gian) của cây là các thư mục có liên kết đến các thư mục hoặc tệp khác. Các lá của cây tương ứng với các tập tin hoặc thư mục trống.

Bình luận. Trên thực tế, hệ thống tệp Unix không dựa trên cây. Thực tế là hệ thống có khả năng vi phạm hệ thống phân cấp ở dạng cây, vì có thể liên kết nhiều tên có cùng nội dung tập tin.

Cấu trúc đĩa

Đĩa được chia thành các khối. Kích thước khối dữ liệu được xác định khi định dạng hệ thống tệp bằng lệnh mkfs và có thể được đặt thành 512, 1024, 2048, 4096 hoặc 8192 byte.

Chúng tôi đếm 512 byte (kích thước cung).

Dung lượng ổ đĩa được chia thành các khu vực sau (xem hình):

· khối tải;

· kiểm soát siêu khối;

· mảng i-nút;

· Khu vực lưu trữ nội dung (dữ liệu) của tập tin;

· một tập hợp các khối miễn phí (được liên kết thành một danh sách);

Khối khởi động

Siêu khối

tôi - nút

. . .

tôi - nút

Bình luận.Đối với hệ thống tệp UFS - tất cả điều này được lặp lại cho một nhóm trụ (ngoại trừ khối Khởi động) + một vùng đặc biệt được phân bổ để mô tả nhóm trụ

Khối khởi động

Lô đất nằm ở lô số 0. (Hãy nhớ lại rằng vị trí của khối này trong khối số 0 của thiết bị hệ thống được xác định bởi phần cứng, vì bộ tải khởi động phần cứng luôn truy cập vào khối số 0 của thiết bị hệ thống. Đây là thành phần cuối cùng của hệ thống tệp phụ thuộc vào phần cứng.)

Khối khởi động chứa một chương trình khuyến mãi được sử dụng để khởi chạy hệ điều hành UNIX lần đầu. Trong hệ thống tệp S 5, chỉ có khối khởi động của hệ thống tệp gốc thực sự được sử dụng. Trong các hệ thống tệp bổ sung, khu vực này có mặt nhưng không được sử dụng.

Siêu khối

Nó chứa thông tin vận hành về trạng thái của hệ thống tệp, cũng như dữ liệu về cài đặt hệ thống tệp.

Đặc biệt, siêu khối chứa thông tin sau

· số lượng nút i (mô tả chỉ mục);

· kích thước phân vùng ???;

· danh sách các khối miễn phí;

· danh sách các nút i miễn phí;

· và khác.

Chúng ta hãy chú ý! Dung lượng trống trên đĩa là danh sách liên kết các khối miễn phí. Danh sách này được lưu trữ trong một siêu khối.

Các phần tử danh sách là mảng gồm 50 phần tử (nếu khối = 512 byte thì phần tử = 16 bit):

· Các phần tử mảng số 1-48 chứa số khối không gian khối tệp trống từ 2 đến 49.

· Phần tử #0 chứa con trỏ tới phần tiếp theo của danh sách, và

· Phần tử cuối cùng (số 49) chứa con trỏ tới phần tử tự do trong mảng.

Nếu một số quy trình cần một khối miễn phí để mở rộng một tệp, thì hệ thống sẽ chọn một phần tử mảng bằng cách sử dụng một con trỏ (đến phần tử tự do) và khối có Số được lưu trong phần tử này sẽ được cung cấp cho tệp. Nếu tệp bị giảm, các số giải phóng sẽ được thêm vào mảng các khối miễn phí và con trỏ tới phần tử miễn phí sẽ được điều chỉnh.

Vì kích thước mảng là 50 phần tử nên có thể xảy ra hai tình huống quan trọng:

1. Khi chúng ta giải phóng các khối tệp nhưng chúng không thể vừa với mảng này. Trong trường hợp này, một khối trống được chọn từ hệ thống tệp và mảng khối trống đã được điền đầy đủ sẽ được sao chép vào khối này, sau đó giá trị của con trỏ tới phần tử trống được đặt lại và Phần tử 0 của mảng, nằm trong siêu khối, chứa số khối mà hệ thống đã chọn để sao chép nội dung của mảng. Tại thời điểm này, một phần tử mới của danh sách các khối miễn phí được tạo (mỗi khối có 50 phần tử).

2. Khi nội dung của các phần tử của mảng các khối tự do đã hết (trong trường hợp này, phần tử 0 của mảng bằng 0), nếu phần tử này không bằng 0 thì điều này có nghĩa là có sự tiếp tục của mảng. Phần tiếp theo này được đọc thành bản sao của siêu khối trong RAM.

Danh sách miễn phínút i. Đây là một bộ đệm bao gồm 100 phần tử. Nó chứa thông tin về 100 số i-node hiện đang miễn phí.

Siêu khối luôn ở trong RAM

Þ tất cả các hoạt động (giải phóng và chiếm giữ các khối và nút i xảy ra trong RAM Þ giảm thiểu trao đổi đĩa.

Nhưng! Nếu nội dung của siêu khối không được ghi vào đĩa và nguồn bị tắt, các vấn đề sẽ phát sinh (sự khác biệt giữa trạng thái thực của hệ thống tệp và nội dung của siêu khối). Nhưng đây đã là một yêu cầu về độ tin cậy của thiết bị hệ thống.

Bình luận. Hệ thống tệp UFS hỗ trợ nhiều bản sao của siêu khối (một bản sao cho mỗi nhóm trụ) để cải thiện tính ổn định.

Vùng Inode

Đây là một mảng mô tả tập tin được gọi là i -nút (Tôi-nút).(64 byte?)

Mỗi bộ mô tả chỉ mục (i-node) của một tệp chứa:

· Loại tập tin (tập tin/thư mục/tập tin đặc biệt/fifo/socket)

· Thuộc tính (quyền truy cập) - 10

ID chủ sở hữu tệp

· ID nhóm của chủ sở hữu tập tin

· Thời gian tạo tập tin

Thời gian sửa đổi tập tin

· Thời gian truy cập tập tin lần cuối

· Độ dài tập tin

· Số lượng liên kết đến một i-node nhất định từ các thư mục khác nhau

Địa chỉ khối tệp

!ghi chú. Không có tên tập tin ở đây

Chúng ta hãy xem xét kỹ hơn cách nó được tổ chức địa chỉ khối, trong đó tập tin được đặt. Vì vậy, trong trường địa chỉ có số của 10 khối đầu tiên của tệp.

Nếu tệp vượt quá mười khối, thì cơ chế sau sẽ bắt đầu hoạt động: phần tử thứ 11 của trường chứa số khối, chứa 128 (256) liên kết đến các khối của tệp này. Nếu tệp thậm chí còn lớn hơn thì phần tử thứ 12 của trường sẽ được sử dụng - nó chứa số khối, chứa 128(256) số khối, trong đó mỗi khối chứa 128(256) số khối hệ thống tệp. Và nếu tệp thậm chí còn lớn hơn thì phần tử thứ 13 sẽ được sử dụng - trong đó độ sâu lồng của danh sách sẽ tăng thêm một phần tử khác.

Bằng cách này, chúng ta có thể nhận được một tệp có kích thước (10+128+128 2 +128 3)*512.

Điều này có thể được biểu diễn như sau:

Địa chỉ của khối thứ nhất của tập tin

Địa chỉ của khối thứ 2 của tập tin

Địa chỉ của khối thứ 10 của tập tin

Địa chỉ khối địa chỉ gián tiếp (khối có 256 địa chỉ khối)

Địa chỉ của khối địa chỉ gián tiếp thứ 2 (khối có 256 khối địa chỉ có địa chỉ)

Địa chỉ của khối địa chỉ gián tiếp thứ 3 (khối có địa chỉ của khối có địa chỉ của khối có địa chỉ)

Bảo vệ tập tin

Bây giờ chúng ta hãy xem ID chủ sở hữu, nhóm và các bit bảo mật.

Trong hệ điều hành Unix nó được sử dụng hệ thống phân cấp người dùng ba cấp:

Cấp độ đầu tiên là tất cả người dùng.

Cấp độ thứ hai là nhóm người dùng. (Tất cả người dùng được chia thành các nhóm.

Cấp độ thứ ba là một người dùng cụ thể (Nhóm bao gồm những người dùng thực sự). Do tổ chức người dùng ba cấp độ này, mỗi tệp có ba thuộc tính:

1) Chủ sở hữu tập tin. Thuộc tính này được liên kết với một người dùng cụ thể, người này được hệ thống tự động chỉ định làm chủ sở hữu tệp. Bạn có thể trở thành chủ sở hữu mặc định bằng cách tạo một tệp và cũng có một lệnh cho phép bạn thay đổi chủ sở hữu của tệp.

2) Bảo vệ truy cập tập tin. Quyền truy cập vào mỗi tệp được giới hạn ở ba loại:

· Quyền của chủ sở hữu (những gì chủ sở hữu có thể làm với tệp này, trong trường hợp chung - không nhất thiết là tất cả);

· Quyền của nhóm mà chủ sở hữu tập tin thuộc về. Chủ sở hữu không được đưa vào đây (ví dụ: một tệp có thể bị khóa đọc đối với chủ sở hữu, nhưng tất cả các thành viên khác trong nhóm có thể tự do đọc từ tệp;

· tất cả người dùng khác của hệ thống;

Đối với ba loại này, ba hành động được quy định: đọc từ tệp, ghi vào tệp và thực thi tệp (theo cách ghi nhớ của hệ thống R, W, X tương ứng). Mỗi tệp trong ba danh mục này xác định người dùng nào có thể đọc, người dùng nào có thể viết và ai có thể chạy nó như một quy trình.

Tổ chức thư mục

Theo quan điểm của hệ điều hành, thư mục là một tệp thông thường chứa dữ liệu về tất cả các tệp thuộc thư mục đó.

Một phần tử thư mục bao gồm hai trường:

1) số nút i (số thứ tự trong mảng nút i) và

2) tên tệp:

Mỗi thư mục chứa hai tên đặc biệt: ‘.’ - chính thư mục đó; ‘..’ - thư mục mẹ.

(Đối với thư mục gốc, thư mục gốc đề cập đến cùng một thư mục.)

Nói chung, một thư mục có thể chứa nhiều mục tham chiếu đến cùng một nút i, nhưng thư mục đó không thể chứa các mục có cùng tên. Nghĩa là, một số lượng tên tùy ý có thể được liên kết với nội dung của tệp. Nó được gọi là buộc. Một mục nhập thư mục đề cập đến một tập tin duy nhất được gọi là giao tiếp.

Các tệp tồn tại độc lập với các mục trong thư mục và các liên kết thư mục thực sự trỏ đến các tệp vật lý. Một tập tin "biến mất" khi liên kết cuối cùng trỏ đến nó bị xóa.

Vì vậy, để truy cập một tập tin theo tên, hệ điều hành

1. tìm tên này trong thư mục chứa tệp,

2. lấy số nút i của tệp,

3. theo số tìm i-node trong khu vực của i-node,

4. từ nút i nhận địa chỉ của các khối chứa dữ liệu tệp,

5. đọc các khối từ vùng dữ liệu bằng địa chỉ khối.

Cấu trúc phân vùng đĩa trong EXT2 FS

Toàn bộ không gian phân vùng được chia thành các khối. Một khối có thể có kích thước 1, 2 hoặc 4 kilobyte. Một khối là một đơn vị không gian đĩa có thể định địa chỉ.

Các khối trong khu vực của chúng được kết hợp thành các nhóm khối. Các nhóm khối trong hệ thống tệp và các khối trong một nhóm được đánh số tuần tự, bắt đầu bằng 1. Khối đầu tiên trên đĩa được đánh số 1 và thuộc nhóm số 1. Tổng số khối trên một đĩa (trong một phân vùng đĩa) là ước số của dung lượng đĩa, được biểu thị bằng các cung. Và số lượng nhóm khối không nhất thiết phải chia số khối, vì nhóm khối cuối cùng có thể không đầy đủ. Phần đầu của mỗi nhóm khối có một địa chỉ, có thể lấy là ((số nhóm - 1)* (số khối trong nhóm)).

Mỗi nhóm khối có cấu trúc giống nhau. Cấu trúc của nó được trình bày trong bảng.

Phần tử đầu tiên của cấu trúc này (siêu khối) giống nhau đối với tất cả các nhóm và tất cả phần còn lại là riêng lẻ cho mỗi nhóm. Siêu khối được lưu trữ trong khối đầu tiên của mỗi nhóm khối (ngoại trừ nhóm 1 có bản ghi khởi động ở khối đầu tiên). Siêu khối là điểm bắt đầu của hệ thống tập tin. Nó có kích thước 1024 byte và luôn nằm ở vị trí offset 1024 byte tính từ đầu hệ thống tệp. Sự hiện diện của nhiều bản sao của siêu khối được giải thích bởi tầm quan trọng cực kỳ lớn của thành phần này trong hệ thống tệp. Bản sao siêu khối được sử dụng khi khôi phục hệ thống tệp sau lỗi.

Thông tin được lưu trữ trong siêu khối được sử dụng để tổ chức quyền truy cập vào phần dữ liệu còn lại trên đĩa. Siêu khối xác định kích thước của hệ thống tệp, số lượng tệp tối đa trong phân vùng, dung lượng trống và chứa thông tin về nơi cần tìm các vùng chưa được phân bổ. Khi HĐH khởi động, siêu khối được đọc vào bộ nhớ và tất cả các thay đổi đối với hệ thống tệp trước tiên được phản ánh trong một bản sao của siêu khối nằm trong HĐH và chỉ được ghi vào đĩa theo định kỳ. Điều này cải thiện hiệu suất hệ thống vì nhiều người dùng và quy trình liên tục cập nhật tệp. Mặt khác, khi hệ thống tắt, siêu khối phải được ghi vào đĩa, điều này không cho phép tắt máy tính bằng cách tắt nguồn. Nếu không, lần khởi động tiếp theo, thông tin được ghi trong siêu khối sẽ không tương ứng với trạng thái thực của hệ thống tệp.

Sau siêu khối là phần mô tả nhóm khối (Bộ mô tả nhóm). Mô tả này chứa:

Địa chỉ của khối chứa bitmap khối của nhóm này;

Địa chỉ của khối chứa bitmap inode của nhóm này;

Địa chỉ khối chứa bảng inode của nhóm này;

Bộ đếm số khối trống trong nhóm này;

Số lượng nút trống trong nhóm này;

Số lượng nút trong một nhóm nhất định là các thư mục

và các dữ liệu khác.

Thông tin được lưu trữ trong mô tả nhóm được sử dụng để định vị các bitmap khối và inode, cũng như bảng inode.

Hệ thống tập tin máy lẻ 2 được đặc trưng bởi:

  • cấu trúc thứ bậc,
  • phối hợp xử lý các tập dữ liệu,
  • phần mở rộng tập tin động,
  • bảo vệ thông tin trong các tập tin,
  • xử lý các thiết bị ngoại vi (chẳng hạn như thiết bị đầu cuối và thiết bị băng từ) dưới dạng tập tin.

Biểu diễn tập tin nội bộ

Mỗi tệp trong hệ thống Ext 2 có một chỉ mục duy nhất. Chỉ mục chứa thông tin cần thiết cho bất kỳ quy trình nào để truy cập tệp. Xử lý các tệp truy cập bằng cách sử dụng một tập hợp các lệnh gọi hệ thống được xác định rõ ràng và xác định tệp bằng một chuỗi ký tự đóng vai trò là tên tệp đủ điều kiện. Mỗi tên ghép xác định duy nhất một tệp, do đó nhân hệ thống chuyển đổi tên này thành một chỉ mục tệp. Chỉ mục này bao gồm một bảng địa chỉ nơi thông tin tệp nằm trên đĩa. Vì mỗi khối trên đĩa được đánh địa chỉ bằng số riêng của nó nên bảng này lưu trữ một tập hợp các số khối đĩa. Để tăng tính linh hoạt, kernel sẽ gắn thêm một tệp vào một khối mỗi lần, cho phép thông tin của tệp được phân tán khắp hệ thống tệp. Nhưng cách bố trí này làm phức tạp thêm nhiệm vụ tìm kiếm dữ liệu. Bảng địa chỉ chứa danh sách các số khối chứa thông tin thuộc về tệp.

Nút tập tin

Mỗi tệp trên đĩa có một nút tệp tương ứng, được xác định bằng số sê-ri của nó - chỉ mục tệp. Điều này có nghĩa là số lượng tệp có thể được tạo trên hệ thống tệp bị giới hạn bởi số lượng nút, được chỉ định rõ ràng khi hệ thống tệp được tạo hoặc được tính toán dựa trên kích thước vật lý của phân vùng đĩa. Các nút tồn tại trên đĩa ở dạng tĩnh và kernel đọc chúng vào bộ nhớ trước khi làm việc với chúng.

Inode của tệp chứa thông tin sau:

- Loại và quyền truy cập vào tệp này.

Mã định danh chủ sở hữu tệp (Uid chủ sở hữu).

Kích thước tệp tính bằng byte.

Thời gian truy cập file lần cuối (Access time).

Thời gian tạo tập tin.

Thời gian sửa đổi cuối cùng của tập tin.

Thời gian xóa tập tin.

ID nhóm (GID).

Số lượng liên kết.

Số lượng khối bị chiếm bởi tập tin.

Cờ tập tin

Dành riêng cho hệ điều hành

Con trỏ tới các khối trong đó dữ liệu tệp được ghi (ví dụ về địa chỉ trực tiếp và gián tiếp trong Hình 1)

Phiên bản tệp (dành cho NFS)

tập tin ACL

Thư mục ACL

Địa chỉ mảnh

Số mảnh

Kích thước mảnh

Danh mục

Thư mục là các tập tin.

Hạt nhân lưu trữ dữ liệu trong một thư mục giống như trong một loại tệp thông thường, sử dụng cấu trúc chỉ mục và các khối có mức địa chỉ trực tiếp và gián tiếp. Các tiến trình có thể đọc dữ liệu từ các thư mục giống như cách chúng đọc các tệp thông thường, tuy nhiên, quyền truy cập ghi độc quyền vào thư mục được kernel dành riêng, đảm bảo rằng cấu trúc thư mục là chính xác.)

Khi một tiến trình sử dụng đường dẫn tệp, kernel sẽ tìm trong thư mục để tìm số inode tương ứng. Sau khi tên tệp được chuyển đổi thành số inode, inode đó sẽ được đặt vào bộ nhớ và sau đó được sử dụng trong các yêu cầu tiếp theo.

Các tính năng bổ sung của EXT2 FS

Ngoài các tính năng Unix tiêu chuẩn, EXT2fs còn cung cấp một số tính năng bổ sung thường không được hệ thống tệp Unix hỗ trợ.

Thuộc tính tệp cho phép bạn thay đổi cách kernel phản ứng khi làm việc với các tập hợp tệp. Bạn có thể đặt thuộc tính trên một tập tin hoặc thư mục. Trong trường hợp thứ hai, các tệp được tạo trong thư mục này kế thừa các thuộc tính này.

Trong quá trình gắn hệ thống, một số tính năng liên quan đến thuộc tính tệp có thể được đặt. Tùy chọn gắn kết cho phép quản trị viên chọn cách tạo tệp. Trong hệ thống tệp dành riêng cho BSD, các tệp được tạo có cùng ID nhóm với thư mục mẹ. Các tính năng của System V có phần phức tạp hơn. Nếu một thư mục có tập bit setgid thì các tệp được tạo sẽ kế thừa mã định danh nhóm của thư mục đó và các thư mục con sẽ kế thừa mã định danh nhóm và bit setgid. Mặt khác, các tệp và thư mục sẽ được tạo bằng ID nhóm chính của quá trình gọi.

Hệ thống EXT2fs có thể sử dụng sửa đổi dữ liệu đồng bộ tương tự như hệ thống BSD. Tùy chọn gắn kết cho phép quản trị viên chỉ định rằng tất cả dữ liệu (inodes, khối bit, khối gián tiếp và khối thư mục) được ghi vào đĩa một cách đồng bộ khi chúng được sửa đổi. Điều này có thể được sử dụng để đạt được dung lượng ghi dữ liệu cao nhưng cũng dẫn đến hiệu suất kém. Trên thực tế, chức năng này thường không được sử dụng vì ngoài việc làm giảm hiệu suất, nó có thể dẫn đến mất dữ liệu người dùng không được gắn cờ khi kiểm tra hệ thống tệp.

EXT2fs cho phép bạn chọn kích thước khối logic khi tạo hệ thống tệp. Nó có thể có kích thước 1024, 2048 hoặc 4096 byte. Việc sử dụng các khối lớn hơn sẽ mang lại các thao tác I/O nhanh hơn (vì thực hiện ít yêu cầu đĩa hơn) và do đó ít chuyển động đầu hơn. Mặt khác, việc sử dụng các khối lớn sẽ dẫn đến lãng phí dung lượng ổ đĩa. Thông thường, khối cuối cùng của tệp không hoàn toàn được sử dụng để lưu trữ thông tin, do đó khi kích thước khối tăng lên, dung lượng ổ đĩa bị lãng phí sẽ tăng lên.

EXT2fs cho phép bạn sử dụng các liên kết tượng trưng được tăng tốc. Khi sử dụng các liên kết như vậy, các khối dữ liệu hệ thống tệp sẽ không được sử dụng. Tên tệp đích không được lưu trữ trong khối dữ liệu mà trong chính nút đó. Cấu trúc này cho phép bạn tiết kiệm dung lượng ổ đĩa và tăng tốc độ xử lý các liên kết tượng trưng. Tất nhiên, không gian dành riêng cho một tay cầm bị hạn chế, do đó không phải mọi liên kết đều có thể được biểu diễn dưới dạng liên kết được tăng tốc. Độ dài tối đa của tên tệp trong liên kết được tăng tốc là 60 ký tự. Trong tương lai gần, người ta dự định mở rộng sơ đồ này cho các tệp nhỏ.

EXT2fs giám sát trạng thái của hệ thống tập tin. Hạt nhân sử dụng một trường riêng biệt trong siêu khối để biểu thị trạng thái của hệ thống tệp. Nếu hệ thống tệp được gắn ở chế độ đọc/ghi thì trạng thái của nó được đặt thành "Không sạch". Nếu nó được tháo dỡ hoặc lắp lại ở chế độ chỉ đọc thì trạng thái của nó được đặt thành “Sạch”. Trong quá trình kiểm tra trạng thái hệ thống tệp và khởi động hệ thống, thông tin này được sử dụng để xác định xem việc kiểm tra hệ thống tệp có cần thiết hay không. Hạt nhân cũng có một số lỗi trong trường này. Khi kernel phát hiện sự không khớp, hệ thống tệp được đánh dấu là "Có lỗi". Trình kiểm tra hệ thống tệp sẽ kiểm tra thông tin này để kiểm tra hệ thống, ngay cả khi trạng thái của nó thực sự là Sạch.

Việc bỏ qua việc kiểm tra hệ thống file trong một thời gian dài đôi khi có thể dẫn đến một số khó khăn, vì vậy EXT2fs bao gồm hai phương pháp để kiểm tra hệ thống thường xuyên. Siêu khối chứa bộ đếm gắn kết hệ thống. Bộ đếm này được tăng lên mỗi lần hệ thống được gắn vào chế độ đọc/ghi. Nếu giá trị của nó đạt đến mức tối đa (nó cũng được lưu trữ trong siêu khối), thì chương trình kiểm tra hệ thống tệp sẽ bắt đầu kiểm tra nó, ngay cả khi trạng thái của nó là "Sạch". Thời gian kiểm tra cuối cùng và khoảng thời gian tối đa giữa các lần kiểm tra cũng được lưu trữ trong siêu khối. Khi đạt đến khoảng thời gian tối đa giữa các lần quét, trạng thái của hệ thống tệp sẽ bị bỏ qua và quá trình quét của nó sẽ bắt đầu.

Tối ưu hóa hiệu suất

Hệ thống EXT2fs chứa nhiều tính năng giúp tối ưu hóa hiệu suất của nó, giúp tăng tốc độ trao đổi thông tin khi đọc và ghi tệp.

EXT2fs tích cực sử dụng bộ đệm đĩa. Khi một khối cần được đọc, kernel sẽ đưa ra yêu cầu thao tác I/O cho một số khối liền kề. Do đó, kernel cố gắng đảm bảo rằng khối tiếp theo cần đọc đã được tải vào bộ đệm đĩa. Những thao tác như vậy thường được thực hiện khi đọc các tập tin một cách tuần tự.

Hệ thống EXT2fs cũng chứa một số lượng lớn các tối ưu hóa cho việc sắp xếp thông tin. Các nhóm khối được sử dụng để nhóm các nút và khối dữ liệu tương ứng lại với nhau. Hạt nhân luôn cố gắng đặt các khối dữ liệu của một tệp trong cùng một nhóm, cũng như bộ mô tả của nó. Điều này nhằm mục đích giảm chuyển động của các đầu ổ đĩa khi đọc bộ mô tả và các khối dữ liệu tương ứng của nó.

Khi ghi dữ liệu vào một tệp, EXT2fs phân bổ trước tối đa 8 khối liền kề khi phân bổ một khối mới. Phương pháp này cho phép bạn đạt được hiệu suất cao khi tải hệ thống nặng. Điều này cũng cho phép các tập tin được đặt trong các khối liền kề, giúp tăng tốc độ đọc tiếp theo của chúng.