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

Một trong những thành phần của hệ điều hành là hệ thống tệp - nơi lưu trữ chính thông tin về hệ thống và người dùng. Tất cả các hệ điều hành hiện đại đều hoạt động với một hoặc nhiều hệ thống tệp, ví dụ: FAT (Bảng phân bổ tệp), NTFS (Hệ thống tệp NT), HPFS (Hệ thống tệp hiệu suất cao), NFS (Hệ thống tệp mạng), AFS (Hệ thống tệp Andrew) , Hệ thống tệp Internet.

Hệ thống tệp là một phần của hệ điều hành, mục đích của nó là cung cấp cho người dùng giao diện thuận tiện khi làm việc với dữ liệu được lưu trữ trong bộ nhớ ngoài và cho phép các tệp được chia sẻ giữa nhiều người dùng và quy trình.

Theo nghĩa rộng, khái niệm "hệ thống tập tin" bao gồm:

Bộ sưu tập tất cả các tệp trên đĩa;

Tập hợp cấu trúc dữ liệu được sử dụng để quản lý tệp, chẳng hạn như thư mục tệp, bộ mô tả tệp, bảng phân bổ không gian đĩa trống và đã sử dụng;

Một bộ công cụ phần mềm hệ thống thực hiện quản lý tệp, cụ thể là: tạo, hủy, đọc, ghi, đặt tên, tìm kiếm và các hoạt động khác trên tệp.

Hệ thống tập tin thường được sử dụng cả khi tải HĐH sau khi bật máy tính và trong quá trình hoạt động. Hệ thống tập tin thực hiện các chức năng chính sau:

Xác định các cách có thể để tổ chức tệp và cấu trúc tệp trên phương tiện;

Triển khai các phương pháp truy cập nội dung tệp và cung cấp các công cụ để làm việc với tệp và cấu trúc tệp. Trong trường hợp này, quyền truy cập vào dữ liệu có thể được tổ chức theo hệ thống tệp theo cả tên và địa chỉ (số khu vực, bề mặt và đường đi của phương tiện);

Giám sát không gian trống trên phương tiện lưu trữ.

Khi một chương trình ứng dụng truy cập vào một tệp, nó không biết thông tin trong một tệp cụ thể được định vị như thế nào cũng như loại phương tiện vật lý nào (CD, đĩa cứng hoặc bộ nhớ flash) được ghi trên đó. Tất cả những gì chương trình biết là tên tệp, kích thước và thuộc tính của nó. Nó nhận dữ liệu này từ trình điều khiển hệ thống tập tin. Chính hệ thống tệp sẽ xác định vị trí và cách thức tệp sẽ được ghi trên phương tiện vật lý (ví dụ: ổ cứng).

Theo quan điểm của hệ điều hành, toàn bộ đĩa là một tập hợp các cụm (vùng bộ nhớ) có kích thước từ 512 byte trở lên. Trình điều khiển hệ thống tệp sắp xếp các cụm thành các tệp và thư mục (thực chất là các tệp chứa danh sách các tệp trong thư mục đó). Các trình điều khiển tương tự này sẽ theo dõi cụm nào hiện đang được sử dụng, cụm nào miễn phí và cụm nào được đánh dấu là bị lỗi. Để hiểu rõ ràng cách dữ liệu được lưu trữ trên đĩa và cách hệ điều hành cung cấp quyền truy cập vào chúng, cần phải hiểu, ít nhất là về mặt chung, cấu trúc logic của đĩa.


3.1.5 Cấu trúc logic đĩa

Để máy tính có thể lưu trữ, đọc và ghi thông tin, trước tiên ổ cứng phải được phân vùng. Các phân vùng được tạo trên đó bằng các chương trình thích hợp - việc này được gọi là "phân vùng ổ cứng". Nếu không có phân vùng này, sẽ không thể cài đặt hệ điều hành trên ổ cứng (mặc dù Windows XP và 2000 có thể được cài đặt trên một đĩa không được phân vùng, nhưng chúng tự thực hiện việc phân vùng này trong quá trình cài đặt).

Ổ cứng có thể được chia thành nhiều phân vùng, mỗi phân vùng sẽ được sử dụng độc lập. Cái này để làm gì? Một đĩa có thể chứa nhiều hệ điều hành khác nhau nằm trên các phân vùng khác nhau. Cấu trúc bên trong của một phân vùng được phân bổ cho bất kỳ HĐH nào hoàn toàn được xác định bởi hệ điều hành đó.

Ngoài ra, còn có những lý do khác để phân vùng đĩa, ví dụ:

Khả năng sử dụng đĩa có dung lượng lớn hơn MS DOS
32 MB;

Nếu một đĩa bị hỏng, chỉ thông tin trên đĩa đó bị mất;

Việc sắp xếp lại và dỡ bỏ một đĩa nhỏ dễ dàng và nhanh hơn một đĩa lớn;

Mỗi người dùng có thể được chỉ định ổ đĩa logic của riêng mình.

Thao tác chuẩn bị đĩa để sử dụng được gọi là định dạng, hoặc khởi tạo. Tất cả không gian đĩa sẵn có được chia thành các cạnh, rãnh và cung, với các rãnh và cạnh được đánh số bắt đầu từ 0 và các cung bắt đầu từ một. Một tập hợp các rãnh nằm ở cùng khoảng cách với trục của đĩa hoặc một gói đĩa được gọi là hình trụ. Do đó, địa chỉ vật lý của khu vực được xác định bởi tọa độ sau: số rãnh ghi (hình trụ - C), số mặt đĩa (đầu - H), số khu vực - R, tức là. CHR.

Khu vực đầu tiên của đĩa cứng (C=0, H=0, R=1) chứa bản ghi khởi động chính Bản ghi khởi động chính. Mục này không chiếm toàn bộ khu vực mà chỉ chiếm phần đầu tiên của nó. Master Boot Record là một chương trình tải khởi động phi hệ thống.

Ở cuối khu vực đầu tiên của ổ cứng là bảng phân vùng đĩa - Bảng phân vùng. Bảng này chứa bốn hàng mô tả tối đa bốn phân vùng. Mỗi hàng trong bảng mô tả một phần:

1) phần hoạt động hay không;

2) số của phần tương ứng với phần đầu của phần;

3) số của phần tương ứng với phần cuối của phần;

4) kích thước phân vùng theo các lĩnh vực;

5) mã hệ điều hành, tức là Phân vùng này thuộc hệ điều hành nào?

Một phân vùng được gọi là hoạt động nếu nó chứa chương trình khởi động hệ điều hành. Byte đầu tiên trong phần tử phần là cờ hoạt động phần (0 – không hoạt động, 128 (80H) – hoạt động). Nó được sử dụng để xác định xem phân vùng có phải là hệ thống hay không (có khả năng khởi động) và liệu hệ điều hành có cần được tải từ nó khi máy tính khởi động hay không. Chỉ có một phần có thể hoạt động. Các chương trình nhỏ được gọi là trình quản lý khởi động có thể nằm trong các khu vực đầu tiên của đĩa. Họ tương tác hỏi người dùng nên khởi động từ phân vùng nào và điều chỉnh cờ hoạt động của phân vùng cho phù hợp. Vì Bảng phân vùng có bốn hàng nên có thể có tối đa bốn hệ điều hành khác nhau trên đĩa, do đó, đĩa có thể chứa một số phân vùng chính thuộc các hệ điều hành khác nhau.

Một ví dụ về cấu trúc logic của một đĩa cứng bao gồm ba phân vùng, hai trong số đó thuộc về DOS và một thuộc về UNIX, được thể hiện trong Hình 3.2a.

Mỗi phân vùng đang hoạt động có bản ghi khởi động riêng - một chương trình tải một hệ điều hành nhất định.

Trong thực tế, đĩa thường được chia thành hai phân vùng. Kích thước của các phân vùng dù có được khai báo là hoạt động hay không đều do người dùng thiết lập trong quá trình chuẩn bị sử dụng ổ cứng. Điều này được thực hiện bằng cách sử dụng các chương trình đặc biệt. Trong DOS chương trình này được gọi là FDISK, trong các phiên bản Windows-XX nó được gọi là Diskadministrator.

Trong DOS, phân vùng chính là Phân vùng chính, đây là phần chứa trình tải hệ điều hành và chính hệ điều hành đó. Vì vậy, phân vùng chính là phân vùng hoạt động, được sử dụng làm ổ đĩa logic có tên C:.

Hệ điều hành WINDOWS (cụ thể là WINDOWS 2000) đã thay đổi thuật ngữ: phân vùng hoạt động được gọi là phân vùng hệ thống, và phân vùng khởi động là đĩa logic chứa các tệp hệ thống WINDOWS. Ổ đĩa logic khởi động có thể giống với phân vùng hệ thống, nhưng nó có thể nằm trên một phân vùng khác của cùng một ổ cứng hoặc trên một ổ cứng khác.

Phần nâng cao Phân vùng mở rộng có thể được chia thành nhiều ổ đĩa logic có tên từ D: đến Z:.

Hình 3.2b thể hiện cấu trúc logic của một ổ cứng, chỉ có hai phân vùng và bốn ổ đĩa logic.

Tổng quan. Trong lý thuyết khoa học máy tính, ba loại cấu trúc dữ liệu chính sau đây được xác định: tuyến tính, dạng bảng, phân cấp. Sách ví dụ: trình tự các tờ - cấu trúc tuyến tính. Các phần, phần, chương, đoạn - thứ bậc. Mục lục – bảng – kết nối – phân cấp tuyến tính. Dữ liệu có cấu trúc có thuộc tính mới - Địa chỉ. Vì thế:

      Cấu trúc tuyến tính (danh sách, vectơ). Danh sách thường xuyên. Địa chỉ của mỗi phần tử được xác định duy nhất bởi số của nó. Nếu tất cả các phần tử của danh sách có độ dài bằng nhau – vectơ dữ liệu.

      Cấu trúc dạng bảng (bảng, ma trận). Sự khác biệt giữa bảng và danh sách - mỗi phần tử - được xác định bởi một địa chỉ, không phải một mà bao gồm một số tham số. Ví dụ phổ biến nhất là ma trận - địa chỉ - hai tham số - số hàng và số cột. Các bảng đa chiều.

      Cấu trúc phân cấp. Được sử dụng để trình bày dữ liệu bất thường. Địa chỉ được xác định bởi tuyến đường - từ ngọn cây. Hệ thống tập tin - máy tính. (Tuyến đường có thể vượt quá kích thước dữ liệu, phân đôi - luôn có hai nhánh - trái và phải).

Sắp xếp cấu trúc dữ liệu Phương pháp chính là sắp xếp. ! Khi thêm một phần tử mới vào cấu trúc có thứ tự, có thể thay đổi địa chỉ của phần tử hiện có. Đối với cấu trúc phân cấp - lập chỉ mục - mỗi phần tử có một số duy nhất - sau đó được sử dụng để sắp xếp và tìm kiếm.

    Các thành phần cơ bản của một hệ thống tập tin

Bước lịch sử đầu tiên trong việc lưu trữ và quản lý dữ liệu là việc sử dụng các hệ thống quản lý tệp.

Tệp là một vùng được đặt tên của bộ nhớ ngoài có thể được ghi vào và đọc từ đó. Ba tham số:

    chuỗi số byte tùy ý,

    một tên riêng duy nhất (thực ra là một địa chỉ).

    dữ liệu cùng loại - loại tệp.

Các quy tắc đặt tên tệp, cách truy cập dữ liệu được lưu trữ trong tệp và cấu trúc của dữ liệu đó phụ thuộc vào hệ thống quản lý tệp cụ thể và có thể vào loại tệp.

Hệ thống tệp được phát triển đầu tiên, theo nghĩa hiện đại, được IBM phát triển cho dòng 360 (1965-1966). Nhưng trong các hệ thống hiện tại, nó thực tế không được sử dụng. Cấu trúc dữ liệu danh sách được sử dụng (EC-volume, phần, tệp).

Hầu hết các bạn đều quen thuộc với hệ thống tập tin của các hệ điều hành hiện đại. Đây chủ yếu là MS DOS, Windows và một số có cấu trúc hệ thống tệp cho các biến thể UNIX khác nhau.

Cấu trúc tập tin. Một tập tin đại diện cho một tập hợp các khối dữ liệu nằm trên phương tiện bên ngoài. Để trao đổi với đĩa từ ở cấp độ phần cứng, bạn cần chỉ định số trụ, số bề mặt, số khối trên rãnh tương ứng và số byte cần ghi hoặc đọc từ đầu khối này. Do đó, tất cả các hệ thống tệp đều phân bổ rõ ràng hoặc ngầm định một số mức cơ bản để đảm bảo hoạt động với các tệp đại diện cho một tập hợp các khối có thể định địa chỉ trực tiếp trong không gian địa chỉ.

Đặt tên các tập tin. Tất cả các hệ thống tệp hiện đại đều hỗ trợ đặt tên tệp đa cấp bằng cách duy trì các tệp bổ sung có cấu trúc đặc biệt - thư mục - trong bộ nhớ ngoài. Mỗi thư mục chứa tên của các thư mục và/hoặc tệp có trong thư mục đó. Do đó, tên tệp đủ điều kiện bao gồm danh sách tên thư mục cộng với tên của tệp trong thư mục chứa tệp ngay lập tức. Sự khác biệt giữa cách đặt tên tệp trên các hệ thống tệp khác nhau là nơi bắt đầu chuỗi tên. (Unix, DOS-Windows)

Bảo vệ tập tin. Hệ thống quản lý tệp phải cung cấp quyền truy cập vào tệp. Nói chung, cách tiếp cận là liên quan đến từng người dùng đã đăng ký của một hệ thống máy tính nhất định, đối với mỗi tệp hiện có, các hành động được phép hoặc bị cấm đối với người dùng này sẽ được chỉ định. Đã có những nỗ lực để thực hiện phương pháp này một cách đầy đủ. Nhưng điều này gây ra quá nhiều chi phí cả trong việc lưu trữ thông tin dư thừa và sử dụng thông tin này để kiểm soát khả năng đủ điều kiện truy cập. Do đó, hầu hết các hệ thống quản lý tệp hiện đại đều sử dụng phương pháp bảo vệ tệp được triển khai lần đầu tiên trong UNIX (1974). Trong hệ thống này, mỗi người dùng đã đăng ký được liên kết với một cặp số nhận dạng số nguyên: số nhận dạng của nhóm mà người dùng này thuộc về và số nhận dạng của chính người dùng đó trong nhóm. Theo đó, đối với mỗi tệp, mã định danh đầy đủ của người dùng đã tạo tệp này sẽ được lưu trữ và ghi chú những hành động mà bản thân anh ta có thể thực hiện với tệp, những hành động nào với tệp mà những người dùng khác trong cùng nhóm có thể thực hiện và những gì người dùng của các nhóm khác có thể làm gì với tập tin. Thông tin này rất nhỏ gọn, cần vài bước trong quá trình xác minh và phương pháp kiểm soát truy cập này đáp ứng được yêu cầu trong hầu hết các trường hợp.

Chế độ truy cập nhiều người dùng. Nếu hệ điều hành hỗ trợ chế độ nhiều người dùng, hoàn toàn có thể có hai hoặc nhiều người dùng cố gắng làm việc đồng thời với cùng một tệp. Nếu tất cả những người dùng này chỉ đọc tệp thì sẽ không có gì xấu xảy ra. Nhưng nếu ít nhất một trong số họ thay đổi tệp thì cần phải đồng bộ hóa lẫn nhau để nhóm này hoạt động chính xác. Trong lịch sử, các hệ thống tập tin đã thực hiện cách tiếp cận sau. Trong thao tác mở tệp (thao tác đầu tiên và bắt buộc mà phiên làm việc với tệp sẽ bắt đầu), trong số các tham số khác, chế độ vận hành (đọc hoặc thay đổi) đã được chỉ định. + có các quy trình đặc biệt để đồng bộ hóa hành động của người dùng. Không được phép bởi hồ sơ!

    Ghi nhật ký trong hệ thống tập tin. Nguyên tắc chung.

Việc chạy kiểm tra hệ thống (fsck) trên các hệ thống tệp lớn có thể mất nhiều thời gian, điều này thật đáng tiếc đối với các hệ thống tốc độ cao ngày nay. Lý do tại sao không có tính toàn vẹn trong hệ thống tệp có thể là do việc ngắt kết nối không chính xác, chẳng hạn như đĩa đang được ghi vào thời điểm chấm dứt. Các ứng dụng có thể cập nhật dữ liệu chứa trong các tệp và hệ thống có thể cập nhật siêu dữ liệu của hệ thống tệp, đó là “dữ liệu về dữ liệu hệ thống tệp”, nói cách khác, thông tin về khối nào được liên kết với tệp nào, tệp nào nằm trong thư mục nào, và những thứ tương tự. . Lỗi (thiếu tính toàn vẹn) trong tệp dữ liệu là xấu, nhưng tệ hơn nhiều là lỗi trong siêu dữ liệu hệ thống tệp, có thể dẫn đến mất tệp và các sự cố nghiêm trọng khác.

Để giảm thiểu các vấn đề về tính toàn vẹn và giảm thiểu thời gian khởi động lại hệ thống, hệ thống tệp được ghi nhật ký sẽ duy trì một danh sách các thay đổi mà nó sẽ thực hiện đối với hệ thống tệp trước khi thực sự ghi các thay đổi. Những bản ghi này được lưu trữ trong một phần riêng biệt của hệ thống tệp được gọi là "nhật ký" hoặc "nhật ký". Khi các mục nhập nhật ký (nhật ký) này được ghi một cách an toàn, hệ thống tệp nhật ký sẽ thực hiện những thay đổi này đối với hệ thống tệp và sau đó xóa các mục nhập này khỏi “nhật ký” (nhật ký). Các mục nhật ký được sắp xếp thành các tập hợp các thay đổi trong hệ thống tệp có liên quan, giống như cách các thay đổi được thêm vào cơ sở dữ liệu được sắp xếp thành các giao dịch.

Hệ thống tệp được ghi nhật ký sẽ tăng khả năng toàn vẹn vì các mục nhập tệp nhật ký được thực hiện trước khi thực hiện thay đổi đối với hệ thống tệp và do hệ thống tệp giữ lại các mục nhập đó cho đến khi chúng được áp dụng đầy đủ và an toàn cho hệ thống tệp. Khi bạn khởi động lại máy tính sử dụng hệ thống tệp được ghi nhật ký, chương trình gắn kết có thể đảm bảo tính toàn vẹn của hệ thống tệp bằng cách chỉ cần kiểm tra tệp nhật ký để tìm những thay đổi dự kiến ​​nhưng không được thực hiện và ghi chúng vào hệ thống tệp. Trong hầu hết các trường hợp, hệ thống không cần kiểm tra tính toàn vẹn của hệ thống tệp, điều đó có nghĩa là máy tính sử dụng hệ thống tệp được ghi nhật ký sẽ có sẵn để sử dụng gần như ngay lập tức sau khi khởi động lại. Theo đó, khả năng mất dữ liệu do sự cố trong hệ thống tệp sẽ giảm đáng kể.

Hình thức cổ điển của hệ thống tệp được ghi nhật ký là lưu trữ các thay đổi trong siêu dữ liệu của hệ thống tệp trong nhật ký (nhật ký) và lưu trữ các thay đổi đối với tất cả dữ liệu hệ thống tệp, bao gồm cả các thay đổi đối với chính các tệp đó.

    Hệ thống tập tin MS-DOS (FAT)

Hệ thống tệp MS-DOS là một hệ thống tệp dựa trên cây dành cho các đĩa nhỏ và cấu trúc thư mục đơn giản, với thư mục gốc là thư mục gốc và các lá là các tệp và thư mục khác, có thể trống. Các tệp được hệ thống tệp này quản lý được đặt trong các cụm, kích thước của chúng có thể dao động từ 4 KB đến 64 KB theo bội số của 4 mà không sử dụng thuộc tính kề theo cách hỗn hợp để phân bổ bộ nhớ đĩa. Ví dụ, hình này hiển thị ba tập tin. Tệp File1.txt khá lớn: nó bao gồm ba khối liên tiếp. Tệp nhỏ File3.txt chỉ sử dụng không gian của một khối được phân bổ. Tệp thứ ba là File2.txt. là một tập tin bị phân mảnh lớn. Trong mỗi trường hợp, điểm vào trỏ đến khối có thể cấp phát đầu tiên thuộc sở hữu của tệp. Nếu một tệp sử dụng nhiều khối được phân bổ thì khối trước đó sẽ trỏ đến khối tiếp theo trong chuỗi. Giá trị FFF được xác định ở cuối chuỗi.

Phân vùng đĩa FAT

Để truy cập tập tin một cách hiệu quả, hãy sử dụng Bảng phân bổ tập tin– Bảng phân bổ tệp, nằm ở đầu phân vùng (hoặc ổ đĩa logic). Chính từ tên của bảng phân bổ mà tên của hệ thống tệp này – FAT – bắt nguồn từ đó. Để bảo vệ phân vùng, hai bản sao FAT được lưu trữ trên đó phòng trường hợp một trong số chúng bị hỏng. Ngoài ra, các bảng phân bổ file phải được đặt ở những địa chỉ cố định nghiêm ngặt để các file cần thiết để khởi động hệ thống được định vị chính xác.

Bảng phân bổ tệp bao gồm các phần tử 16 bit và chứa thông tin sau về từng cụm đĩa logic:

    cụm không được sử dụng;

    cụm được sử dụng bởi tập tin;

    cụm xấu;

    cụm tập tin cuối cùng;.

Vì mỗi cụm phải được gán một số 16-bit duy nhất nên FAT hỗ trợ tối đa 216 hoặc 65.536 cụm trên một đĩa logic (và cũng dành một số cụm cho nhu cầu riêng của nó). Do đó, chúng tôi nhận được kích thước đĩa tối đa do MS-DOS cung cấp là 4 GB. Kích thước cụm có thể tăng hoặc giảm tùy thuộc vào kích thước đĩa. Tuy nhiên, khi kích thước ổ đĩa vượt quá một giá trị nhất định, các cụm sẽ trở nên quá lớn, dẫn đến tình trạng phân mảnh ổ đĩa bên trong. Ngoài thông tin về file, bảng cấp phát file còn có thể chứa thông tin về thư mục. Điều này coi các thư mục là các tệp đặc biệt với các mục nhập 32 byte cho mỗi tệp có trong thư mục đó. Thư mục gốc có kích thước cố định - 512 mục cho đĩa cứng và đối với đĩa mềm, kích thước này được xác định bởi kích thước của đĩa mềm. Ngoài ra, thư mục gốc nằm ngay sau bản sao thứ hai của FAT vì nó chứa các tệp cần thiết cho bộ tải khởi động MS-DOS.

Khi tìm kiếm một tập tin trên đĩa, MS-DOS buộc phải xem qua cấu trúc thư mục để tìm ra nó. Ví dụ: để chạy tệp thực thi C:\Program\NC4\nc.exe tìm tệp thực thi bằng cách thực hiện như sau:

    đọc thư mục gốc của ổ C: và tìm thư mục Chương trình trong đó;

    đọc Chương trình cụm ban đầu và tìm trong thư mục này mục nhập về thư mục con NC4;

    đọc cụm ban đầu của thư mục con NC4 và tìm kiếm mục nhập cho tệp nc.exe trong đó;

    đọc tất cả các cụm của tệp nc.exe.

Phương pháp tìm kiếm này không phải là nhanh nhất trong số các hệ thống tệp hiện tại. Hơn nữa, độ sâu của các thư mục càng lớn thì việc tìm kiếm sẽ càng chậm. Để tăng tốc hoạt động tìm kiếm, bạn nên duy trì cấu trúc tệp cân bằng.

Ưu điểm của FAT

    Nó là sự lựa chọn tốt nhất cho các ổ đĩa logic nhỏ, bởi vì... bắt đầu với chi phí tối thiểu. Trên các đĩa có kích thước không vượt quá 500 MB, nó hoạt động với hiệu suất chấp nhận được.

Nhược điểm của FAT

    Vì kích thước của mục nhập tệp bị giới hạn ở 32 byte và thông tin phải bao gồm kích thước tệp, ngày, thuộc tính, v.v. nên kích thước của tên tệp cũng bị giới hạn và không được vượt quá 8 + 3 ký tự cho mỗi tệp. Việc sử dụng cái gọi là tên tệp ngắn làm cho FAT kém hấp dẫn hơn so với các hệ thống tệp khác.

    Sử dụng FAT trên các đĩa lớn hơn 500 MB là không hợp lý do chống phân mảnh đĩa.

    Hệ thống tệp FAT không có bất kỳ tính năng bảo mật nào và hỗ trợ các khả năng bảo mật thông tin tối thiểu.

    Tốc độ hoạt động trong FAT tỷ lệ nghịch với độ sâu của việc lồng thư mục và dung lượng ổ đĩa.

    Hệ thống tập tin UNIX - hệ thống (ext3)

Hệ điều hành Linux hiện đại, mạnh mẽ và miễn phí cung cấp một phạm vi rộng lớn cho việc phát triển các hệ thống hiện đại và phần mềm tùy chỉnh. Một số phát triển thú vị nhất trong các nhân Linux gần đây là các công nghệ mới, hiệu suất cao để quản lý việc lưu trữ, sắp xếp và cập nhật dữ liệu trên đĩa. Một trong những cơ chế thú vị nhất là hệ thống tệp ext3, đã được tích hợp vào nhân Linux kể từ phiên bản 2.4.16 và đã có sẵn theo mặc định trong các bản phân phối Linux của Red Hat và SuSE.

Hệ thống tệp ext3 là một hệ thống tệp ghi nhật ký, tương thích 100% với tất cả các tiện ích được tạo để tạo, quản lý và tinh chỉnh hệ thống tệp ext2, đã được sử dụng trên hệ thống Linux trong vài năm qua. Trước khi mô tả chi tiết sự khác biệt giữa hệ thống tệp ext2 và ext3, chúng ta hãy làm rõ thuật ngữ về hệ thống tệp và lưu trữ tệp.

Ở cấp độ hệ thống, tất cả dữ liệu trên máy tính tồn tại dưới dạng khối dữ liệu trên một số thiết bị lưu trữ, được tổ chức bằng các cấu trúc dữ liệu đặc biệt thành các phân vùng (bộ logic trên thiết bị lưu trữ), sau đó được tổ chức thành các tệp, thư mục và không được sử dụng (miễn phí) không gian.

Hệ thống tệp được tạo trên các phân vùng đĩa để đơn giản hóa việc lưu trữ và tổ chức dữ liệu dưới dạng tệp và thư mục. Linux, giống như hệ thống Unix, sử dụng hệ thống tệp phân cấp được tạo thành từ các tệp và thư mục, tương ứng chứa các tệp hoặc thư mục. Các tệp và thư mục trong hệ thống tệp Linux được cung cấp cho người dùng bằng cách gắn chúng (lệnh "mount"), lệnh này thường là một phần của quá trình khởi động hệ thống. Danh sách các hệ thống tệp có sẵn để sử dụng được lưu trữ trong tệp /etc/fstab (FileSystem TABle). Danh sách các hệ thống tệp hiện không được hệ thống gắn kết được lưu trữ trong tệp /etc/mtab (Mount TABle).

Khi hệ thống tệp được gắn trong khi khởi động, một bit trong tiêu đề ("bit sạch") sẽ bị xóa, cho biết hệ thống tệp đang được sử dụng và cấu trúc dữ liệu được sử dụng để kiểm soát vị trí và tổ chức của tệp và thư mục trong hệ thống tệp đó có thể thay đổi.

Một hệ thống tệp được coi là hoàn chỉnh nếu tất cả các khối dữ liệu trong đó đang được sử dụng hoặc miễn phí; mỗi khối dữ liệu được phân bổ bị chiếm bởi một và chỉ một tệp hoặc thư mục; tất cả các tập tin và thư mục đều có thể được truy cập sau khi xử lý một loạt các thư mục khác trong hệ thống tập tin. Khi một hệ thống Linux bị cố tình tắt bằng cách sử dụng các lệnh của người vận hành, tất cả các hệ thống tệp sẽ không được kết nối. Việc ngắt kết nối hệ thống tệp trong khi tắt máy sẽ đặt "bit sạch" trong tiêu đề hệ thống tệp, cho biết rằng hệ thống tệp đã được ngắt kết nối đúng cách và do đó có thể được coi là nguyên vẹn.

Nhiều năm gỡ lỗi và thiết kế lại hệ thống tệp cũng như việc sử dụng các thuật toán cải tiến để ghi dữ liệu vào đĩa đã làm giảm đáng kể tình trạng hỏng dữ liệu do ứng dụng hoặc chính nhân Linux gây ra, nhưng việc loại bỏ tình trạng hỏng hóc và mất dữ liệu do mất điện và các sự cố hệ thống khác vẫn là một thách thức. . Trong trường hợp xảy ra sự cố hoặc tắt hệ thống Linux đơn giản mà không sử dụng quy trình tắt máy tiêu chuẩn, “bit sạch” không được đặt trong tiêu đề hệ thống tệp. Lần tiếp theo khi hệ thống khởi động, quá trình gắn kết sẽ phát hiện rằng hệ thống không được đánh dấu là "sạch" và kiểm tra tính toàn vẹn của nó về mặt vật lý bằng cách sử dụng tiện ích kiểm tra hệ thống tệp Linux/Unix "fsck" (Kiểm tra hệ thống tệp K).

Có một số hệ thống tệp nhật ký có sẵn cho Linux. Nổi tiếng nhất trong số đó là: XFS, một hệ thống tệp nhật ký được phát triển bởi Silicon Graphics, nhưng hiện được phát hành dưới dạng nguồn mở; RaiserFS, một hệ thống tệp ghi nhật ký được thiết kế dành riêng cho Linux; JFS, một hệ thống tệp nhật ký ban đầu được IBM phát triển nhưng hiện được phát hành dưới dạng nguồn mở; ext3 là một hệ thống tệp được phát triển bởi Tiến sĩ Stephan Tweedie tại Red Hat và một số hệ thống khác.

Hệ thống tệp ext3 là phiên bản Linux được ghi nhật ký của hệ thống tệp ext2. Hệ thống tệp ext3 có một lợi thế đáng kể so với các hệ thống tệp nhật ký khác - nó hoàn toàn tương thích với hệ thống tệp ext2. Điều này cho phép sử dụng tất cả các ứng dụng hiện có được thiết kế để thao tác và tùy chỉnh hệ thống tệp ext2.

Hệ thống tệp ext3 được hỗ trợ bởi nhân Linux phiên bản 2.4.16 trở lên và phải được bật bằng hộp thoại Cấu hình hệ thống tệp khi xây dựng hạt nhân. Các bản phân phối Linux như Red Hat 7.2 và SuSE 7.3 đã bao gồm hỗ trợ riêng cho hệ thống tệp ext3. Bạn chỉ có thể sử dụng hệ thống tập tin ext3 nếu hỗ trợ ext3 được tích hợp trong kernel của bạn và bạn có phiên bản mới nhất của tiện ích "mount" và "e2fsprogs".

Trong hầu hết các trường hợp, việc chuyển đổi hệ thống tệp từ định dạng này sang định dạng khác đòi hỏi phải sao lưu tất cả dữ liệu chứa trong đó, định dạng lại các phân vùng hoặc ổ đĩa logic chứa hệ thống tệp, sau đó khôi phục tất cả dữ liệu vào hệ thống tệp đó. Do tính tương thích của hệ thống tệp ext2 và ext3, tất cả các bước này không cần phải thực hiện và việc dịch có thể được thực hiện bằng một lệnh duy nhất (chạy với quyền root):

# /sbin/tune2fs -j<имя-раздела >

Ví dụ: chuyển đổi hệ thống tệp ext2 nằm trên phân vùng /dev/hda5 sang hệ thống tệp ext3 có thể được thực hiện bằng lệnh sau:

# /sbin/tune2fs -j /dev/hda5

Tùy chọn "-j" cho lệnh "tune2fs" sẽ tạo nhật ký ext3 trên hệ thống tệp ext2 hiện có. Sau khi chuyển đổi hệ thống tệp ext2 thành ext3, bạn cũng phải thực hiện các thay đổi đối với các mục nhập tệp /etc/fstab để cho biết rằng phân vùng hiện là hệ thống tệp "ext3". Bạn cũng có thể sử dụng tính năng tự động phát hiện loại phân vùng (tùy chọn “tự động”), nhưng vẫn nên chỉ định rõ ràng loại hệ thống tệp. Ví dụ sau đây tệp /etc/fstab hiển thị các thay đổi trước và sau khi truyền hệ thống tệp cho phân vùng /dev/hda5:

/dev/ hda5 /opt ext2 mặc định 1 2

/dev/ hda5 /opt ext3 mặc định là 1 0

Trường cuối cùng trong /etc/fstab chỉ định bước trong quá trình khởi động trong đó cần kiểm tra tính toàn vẹn của hệ thống tệp bằng tiện ích "fsck". Khi sử dụng hệ thống tệp ext3, bạn có thể đặt giá trị này thành "0" như trong ví dụ trước. Điều này có nghĩa là chương trình "fsck" sẽ không bao giờ kiểm tra tính toàn vẹn của hệ thống tệp, do thực tế là tính toàn vẹn của hệ thống tệp được đảm bảo bằng cách khôi phục nhật ký.

Việc chuyển đổi hệ thống tệp gốc sang ext3 yêu cầu một cách tiếp cận đặc biệt và được thực hiện tốt nhất ở chế độ một người dùng sau khi tạo đĩa RAM hỗ trợ hệ thống tệp ext3.

Ngoài việc tương thích với các tiện ích hệ thống tệp ext2 và dịch hệ thống tệp dễ dàng từ ext2 sang ext3, hệ thống tệp ext3 còn cung cấp một số loại nhật ký khác nhau.

Hệ thống tệp ext3 hỗ trợ ba chế độ ghi nhật ký khác nhau có thể được kích hoạt từ tệp /etc/fstab. Các chế độ ghi nhật ký này như sau:

    Nhật ký / tạp chí – ghi lại tất cả các thay đổi đối với dữ liệu và siêu dữ liệu hệ thống tệp. Chậm nhất trong cả ba chế độ ghi nhật ký. Chế độ này giảm thiểu khả năng mất các thay đổi tệp bạn thực hiện đối với hệ thống tệp.

    Tuần tự/theo thứ tự - Chỉ ghi các thay đổi vào siêu dữ liệu hệ thống tệp nhưng ghi các cập nhật dữ liệu tệp vào đĩa trước khi thay đổi siêu dữ liệu hệ thống tệp liên quan. Chế độ ghi nhật ký ext3 này được cài đặt theo mặc định.

    Writeback - chỉ những thay đổi đối với siêu dữ liệu hệ thống tệp mới được ghi, dựa trên quy trình tiêu chuẩn để ghi các thay đổi vào dữ liệu tệp. Đây là phương pháp ghi nhật ký nhanh nhất.

Sự khác biệt giữa các chế độ ghi nhật ký này vừa tinh tế vừa sâu sắc. Việc sử dụng chế độ nhật ký yêu cầu hệ thống tệp ext3 ghi mọi thay đổi vào hệ thống tệp hai lần - đầu tiên vào nhật ký và sau đó vào chính hệ thống tệp. Điều này có thể làm giảm hiệu suất tổng thể của hệ thống tệp của bạn, nhưng chế độ này được người dùng yêu thích nhất vì nó giảm thiểu khả năng mất các thay đổi dữ liệu đối với tệp của bạn, vì cả thay đổi dữ liệu meta và thay đổi dữ liệu tệp đều được ghi vào nhật ký ext3 và có thể được lặp lại khi hệ thống được khởi động lại.

Khi sử dụng chế độ "tuần tự", chỉ những thay đổi đối với siêu dữ liệu của hệ thống tệp mới được ghi lại, giúp giảm sự dư thừa giữa việc ghi vào hệ thống tệp và nhật ký, đó là lý do tại sao phương pháp này nhanh hơn. Mặc dù các thay đổi đối với dữ liệu tệp không được ghi vào nhật ký nhưng chúng phải được thực hiện trước khi các thay đổi đối với siêu dữ liệu hệ thống tệp liên quan được thực hiện bởi daemon ghi nhật ký ext3, điều này có thể làm giảm hiệu suất hệ thống của bạn một chút. Việc sử dụng phương pháp ghi nhật ký này đảm bảo rằng các tệp trên hệ thống tệp không bao giờ không đồng bộ với siêu dữ liệu hệ thống tệp được liên kết.

Phương pháp ghi lại nhanh hơn hai phương pháp ghi nhật ký còn lại vì nó chỉ lưu trữ các thay đổi đối với siêu dữ liệu hệ thống tệp và không đợi dữ liệu liên quan của tệp thay đổi khi ghi (trước khi cập nhật những thứ như kích thước tệp và thông tin thư mục). Do dữ liệu tệp được cập nhật không đồng bộ đối với các thay đổi được ghi nhật ký đối với siêu dữ liệu của hệ thống tệp, nên các tệp trong hệ thống tệp có thể hiển thị lỗi trong siêu dữ liệu, ví dụ: lỗi chỉ ra chủ sở hữu của các khối dữ liệu (bản cập nhật chưa được hoàn thành tại thời điểm hệ thống được khởi động lại). Điều này không gây tử vong nhưng có thể ảnh hưởng đến trải nghiệm của người dùng.

Việc chỉ định chế độ ghi nhật ký được sử dụng trên hệ thống tệp ext3 được thực hiện trong tệp /etc/fstab cho hệ thống tệp đó. Chế độ "Tuần tự" là mặc định, nhưng bạn có thể chỉ định các chế độ ghi nhật ký khác nhau bằng cách thay đổi các tùy chọn cho phân vùng mong muốn trong tệp /etc/fstab. Ví dụ: một mục trong /etc/fstab biểu thị việc sử dụng chế độ ghi nhật ký ghi lại sẽ trông như thế này:

/dev/hda5 /opt ext3 data=writeback 1 0

    Hệ thống tệp gia đình Windows NT (NTFS)

      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 khổng lồ 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 là một thành tựu nổi bật về cấu trúc: mọi thành phần của hệ thống đều là một tệp - 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 cách sử dụng chính tệp đó, "nối" trên cơ sở - 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.

bản sao của 16 bản ghi MFT đầu tiên được đặt ở giữa đĩa

tập tin hỗ trợ ghi nhật ký (xem bên dưới)

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

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

thư mục gốc

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

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

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)

file - 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 từng đoạn riêng lẻ, v.v. Nếu một bản ghi MFT không đủ thông tin thì nhiều 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 10 (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 hiện đại nào cũng dựa trên khái niệm giao dịch - một hành động được thực hiện hoàn toàn và chính xác hoặc hoàn toàn không đượ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 đang đượ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: trường hợp phức tạp hơn - dữ liệu đang đượ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 chứ 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ạ.

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 trong cụm đĩa bắt đầu từ 400 cụm tệp từ 10 đến 16 không được lưu ở đâu. Cụm tệp từ 17 đến 18 được lưu trong cụm đĩa bắt đầu từ cụm tệp 409 từ 19 đến thứ 36 không được lưu ở đâ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.

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 bạn không thích thư mục Documents and settings\Administrator\Documents, 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 đườ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 đến nó. Để tạo các kết nối như vậy, bạn có thể sử dụng chương trình kết nối (junction.zip(15 Kb), 36 kb), được viết bởi chuyên gia nổi tiếng Mark Russinovich (http://www.sysinternals.com). 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. CẢNH BÁO: Cố gắng xóa một liên kết bằng Explorer hoặc các trình quản lý tệp khác không hiểu bản chất ảo của một thư mục (chẳng hạn như FAR) sẽ xóa dữ liệu được liên kết tham chiếu! 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à hầu như 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ệ điều hành, là nền tảng cho hoạt động của bất kỳ thiết bị máy tính nào, tổ chức công việc với dữ liệu điện tử, tuân theo một thuật toán nhất định, trong chuỗi mà hệ thống tệp không được xác nhận quyền sở hữu. Hệ thống tập tin nói chung là gì và loại hệ thống tập tin nào được áp dụng trong thời hiện đại, chúng tôi sẽ cố gắng giải thích trong bài viết này.

Mô tả các đặc điểm chung của hệ thống tập tin

FS- điều này, như đã nêu ở trên, là một phần của hệ điều hành, liên quan trực tiếp đến việc đặt, xóa, di chuyển thông tin điện tử trên một phương tiện cụ thể, cũng như tính bảo mật cho việc sử dụng tiếp theo trong tương lai. Tài nguyên này cũng có thể áp dụng trong trường hợp cần khôi phục thông tin bị mất do lỗi phần mềm. Tức là nó là công cụ chính để làm việc với các tập tin điện tử.

Các loại hệ thống tập tin

Mỗi thiết bị máy tính sử dụng một loại hệ thống tập tin đặc biệt. Các loại sau đây đặc biệt phổ biến:

Được thiết kế cho ổ cứng;
- dùng cho băng từ;
- dành cho phương tiện quang học;
- ảo;
- mạng.

Đương nhiên, đơn vị logic chính để làm việc với dữ liệu điện tử là một tệp, có nghĩa là một tài liệu có thông tin có tính chất nhất định được hệ thống hóa trong đó, có tên riêng, giúp người dùng dễ dàng làm việc hơn với một luồng dữ liệu điện tử lớn. các tài liệu.
Vì vậy, tất cả mọi thứ mà hệ điều hành sử dụng đều được chuyển đổi thành tệp, bất kể đó là văn bản hay hình ảnh, âm thanh, video hay ảnh. Trong số những thứ khác, trình điều khiển và thư viện phần mềm cũng có bản phiên âm của chúng.

Mỗi đơn vị thông tin có tên, phần mở rộng, kích thước, đặc điểm cố hữu và loại cụ thể. Nhưng FS là tổng thể của chúng, cũng như các nguyên tắc làm việc với tất cả chúng.

Tùy thuộc vào những tính năng cụ thể vốn có trong hệ thống, nó sẽ hoạt động hiệu quả với dữ liệu đó. Và đây là điều kiện tiên quyết để phân loại thành các loại, chủng loại.

Nhìn vào hệ thống tập tin từ góc độ lập trình

Khi nghiên cứu khái niệm về hệ thống tệp, bạn nên hiểu rằng đây là thành phần đa cấp, thành phần đầu tiên bị chi phối bởi bộ biến đổi hệ thống tệp, đảm bảo sự tương tác hiệu quả giữa chính hệ thống và một ứng dụng phần mềm cụ thể. Chính anh ta là người chịu trách nhiệm chuyển đổi yêu cầu dữ liệu điện tử sang một định dạng cụ thể, được các trình điều khiển nhận ra, điều này đòi hỏi phải làm việc hiệu quả với các tệp, tức là chúng có thể truy cập được.

Các ứng dụng hiện đại có tiêu chuẩn máy khách-máy chủ có yêu cầu FS rất cao. Xét cho cùng, các hệ thống hiện đại chỉ cần cung cấp khả năng truy cập hiệu quả nhất vào tất cả các loại thiết bị điện tử hiện có, cũng như cung cấp sự hỗ trợ to lớn cho phương tiện truyền thông có dung lượng lớn, cũng như bảo vệ tất cả dữ liệu khỏi sự truy cập không mong muốn của những người dùng khác, cũng như đảm bảo tính toàn vẹn của thông tin được lưu trữ ở định dạng điện tử.

Dưới đây chúng ta sẽ xem xét tất cả các FS hiện có cũng như những ưu điểm và nhược điểm của chúng.

MẬP
Đây là loại hệ thống tập tin lâu đời nhất, được phát triển vào năm 1977. Nó hoạt động với OS 86-DOS và không có khả năng hoạt động với phương tiện lưu trữ cứng và được thiết kế cho các loại linh hoạt và lưu trữ thông tin lên đến một megabyte. Nếu ngày nay việc giới hạn quy mô thông tin không còn phù hợp thì các chỉ số khác vẫn có nhu cầu không thay đổi.

Hệ thống tệp này đã được công ty phát triển ứng dụng phần mềm hàng đầu, Microsoft, sử dụng cho các hệ điều hành như MS-DOS 1.0.
Các tập tin của hệ thống này có một số thuộc tính đặc trưng:

Tên đơn vị thông tin phải có chữ cái hoặc số ở đầu, nội dung tiếp theo của tên có thể bao gồm các ký hiệu bàn phím máy tính khác nhau;
- tên tệp không được vượt quá tám ký tự, một dấu chấm được đặt ở cuối tên, theo sau là phần mở rộng ba chữ cái;
- bất kỳ thanh ghi bố trí bàn phím nào cũng có thể được sử dụng để tạo tên tệp.

Ngay từ khi bắt đầu phát triển, hệ thống tệp FAT đã nhằm mục đích hoạt động với hệ điều hành DOS, nó không quan tâm đến việc lưu dữ liệu về người dùng hoặc chủ sở hữu thông tin.

Nhờ những sửa đổi khác nhau của FS này, nó đã trở thành phổ biến nhất trong thời hiện đại và các hệ điều hành sáng tạo nhất hoạt động trên cơ sở của nó.

Hệ thống tệp này có khả năng lưu các tệp không thay đổi nếu thiết bị máy tính bị tắt không đúng cách, chẳng hạn như do pin không được sạc hoặc đèn bị tắt.

Nhiều hệ điều hành mà FAT hoạt động có chứa một số tiện ích phần mềm nhất định có chức năng sửa và kiểm tra cây nội dung hệ thống tệp cũng như các tệp.

NTFS
Hệ thống tệp NTFS hiện đại hoạt động với hệ điều hành Windows NT, về nguyên tắc, nó nhắm đến nó. Nó bao gồm tiện ích chuyển đổi, chịu trách nhiệm chuyển đổi các ổ đĩa từ định dạng HPFS hoặc FAT sang định dạng ổ đĩa NTFS.

Nó được hiện đại hóa hơn so với tùy chọn đầu tiên được mô tả ở trên. Phiên bản này đã mở rộng các khả năng liên quan đến kiểm soát truy cập trực tiếp tới tất cả các đơn vị thông tin. Tại đây bạn có thể sử dụng nhiều thuộc tính hữu ích, nén tệp động và khả năng chịu lỗi. Một trong những ưu điểm của nó là hỗ trợ các yêu cầu của tiêu chuẩn POSIX.

Hệ thống tệp này cho phép bạn tạo các tệp thông tin có tên dài tối đa 255 ký tự.

Nếu hệ điều hành hoạt động với hệ thống tệp này bị lỗi thì không cần phải lo lắng về sự an toàn của tất cả các tệp. Chúng vẫn còn nguyên vẹn và không hề hấn gì vì loại hệ thống tệp này có đặc tính tự phục hồi.

Một tính năng của hệ thống tệp NTFS là cấu trúc của nó, được trình bày dưới dạng một bảng cụ thể. Mười sáu mục đầu tiên trong sổ đăng ký là nội dung của chính hệ thống tệp. Mỗi đơn vị điện tử riêng lẻ cũng có dạng bảng, chứa thông tin về bảng, tệp nhân bản ở định dạng MFT, tệp đăng ký được sử dụng khi cần khôi phục thông tin và dữ liệu tiếp theo - đây là thông tin về chính tệp đó và dữ liệu của nó đã được lưu trực tiếp trên ổ cứng.

Tất cả các lệnh được thực thi với các tệp đều có xu hướng được lưu lại, điều này giúp hệ thống sau đó tự phục hồi sau khi hệ điều hành mà nó đang làm việc bị lỗi.

EFS
Một hệ thống tệp rất phổ biến là EFS, được coi là được mã hóa. Nó hoạt động với hệ điều hành Windows. Hệ thống này khiến các tập tin được lưu trữ trên ổ cứng ở dạng mã hóa. Đây là cách bảo vệ hiệu quả nhất cho tất cả các tập tin.
Mã hóa được đặt trong thuộc tính tệp bằng hộp kiểm bên cạnh tab cho biết khả năng mã hóa. Sử dụng chức năng này, bạn có thể chỉ định ai có thể xem tệp, nghĩa là ai được phép làm việc với chúng.

NGUYÊN
Các phần tử tệp là đơn vị lập trình dễ bị tổn thương nhất. Suy cho cùng, chúng là thông tin được lưu trữ trên đĩa máy tính. Chúng có thể bị hư hỏng, loại bỏ, ẩn. Nói chung, công việc của người dùng chỉ nhằm mục đích tạo, lưu và di chuyển chúng.
Hệ điều hành không phải lúc nào cũng thể hiện các đặc tính lý tưởng trong hoạt động của nó và có xu hướng bị lỗi. Điều này xảy ra vì nhiều lý do. Nhưng đó không phải là về điều đó bây giờ.

Nhiều người dùng phải đối mặt với thông báo rằng hệ thống RAW bị hỏng. Đây có thực sự là FS hay không? Nhiều người hỏi câu hỏi này. Hóa ra điều này không hoàn toàn đúng. Nếu chúng tôi giải thích nó ở cấp độ ngôn ngữ lập trình, thì RAW là một lỗi, cụ thể là lỗi logic đã được đưa vào hệ điều hành Windows để bảo vệ nó khỏi lỗi. Nếu thiết bị đưa ra bất kỳ thông báo nào về RAW, thì bạn cần lưu ý rằng cấu trúc của hệ thống tệp đang gặp rủi ro, nó hoạt động không chính xác hoặc có nguy cơ bị phá hủy dần dần.

Nếu vấn đề như vậy hiển nhiên, thì bạn sẽ không thể truy cập vào một tệp duy nhất trên máy tính và nó cũng sẽ từ chối thực thi các lệnh vận hành khác.

UDF
Đây là một hệ thống tệp dành cho đĩa quang, có các đặc điểm riêng:

Tên tệp không được vượt quá 255 ký tự;
- trường hợp danh nghĩa có thể thấp hơn hoặc cao hơn.

Nó hoạt động với hệ điều hành Windows XP.

EXFAT
Và một hệ thống tệp hiện đại khác là EXFAT, là một loại trung gian giữa Windows và Linux, đảm bảo chuyển đổi hiệu quả các tệp từ hệ thống này sang hệ thống khác, vì dịch vụ lưu trữ tệp của chúng khác nhau. Nó được sử dụng trên các thiết bị lưu trữ di động, chẳng hạn như ổ đĩa flash.

Hệ thống tập tin là hệ thống được sử dụng bởi hệ điều hành Windows. Nó là cần thiết để tổ chức và lưu trữ dữ liệu trên bất kỳ đĩa nào. Chính cô là người chịu trách nhiệm lưu trữ dữ liệu trên ổ cứng. Chúng ta hãy xem hệ thống tập tin là gì và những loại hệ thống như vậy tồn tại.

Tại sao chúng ta cần một hệ thống tập tin?

Bạn có thể hiểu hệ thống tập tin nào được sử dụng trên máy tính của mình bằng cách đi tới thư mục có tên “My Computer”. Sau đó, bạn cần nhấp chuột phải và chọn “thuộc tính”. Trong cửa sổ thông tin xuất hiện, bạn có thể đọc dòng chữ sau: Hệ thống tệp: (tên).

Không nhất thiết mỗi đĩa phải có cùng một hệ thống tập tin. Để tìm hiểu, bạn cần xem từng đĩa.

Tính bảo mật của máy tính cá nhân của bạn sẽ phụ thuộc vào sự lựa chọn chính xác của hệ thống tệp và hệ điều hành sẽ không gặp sự cố và mất dữ liệu. Hãy xem những hệ thống tập tin nào có thể được tìm thấy trong Windows.

Các loại hệ thống tập tin

MẬP

Điều đầu tiên chúng ta sẽ xem xét là hệ thống tập tin có tên FAT. Ngày nay nó cực kỳ hiếm, vì vậy không đáng để nghiên cứu chi tiết về nó. Hạn chế lớn nhất của nó là dung lượng ổ đĩa tối đa chỉ 2 GB, điều này thực tế không bao giờ có trong phần cứng hiện đại. Vì vậy, nếu đĩa của bạn có dung lượng lớn hơn thì nó sẽ ngừng hoạt động. Vài năm trước, 2 GB là dung lượng ổ cứng tiêu chuẩn và hệ thống tệp này được sử dụng hoàn hảo ở đó. Nhưng ngày nay nó đã không còn hữu dụng nữa và đã chiếm một vị trí danh dự trong thùng rác của lịch sử.

Hệ thống tệp tiếp theo là FAT 32. 32 nổi tiếng là kích thước bit của hệ thống. Phiên bản này là phiên bản cập nhật của hệ thống tập tin trước đó. Nếu bạn đang sử dụng phiên bản Windows cũ hơn, bạn có thể gặp một số vấn đề khi định dạng ổ đĩa. Tuy nhiên, hệ thống này ổn định hơn nhiều so với hệ thống tiền nhiệm và việc làm việc với các tệp sẽ diễn ra nhanh hơn nhiều.

NTFS

Bây giờ chúng ta hãy xem hệ thống tập tin NTFS là gì. Hệ thống lưu trữ tệp này xuất hiện tương đối gần đây và hiện đại hơn hai hệ thống trước. Tuy nhiên, mặc dù có rất nhiều ưu điểm nhưng nó không phải là không có nhược điểm. Hầu hết các đĩa do các công ty thương mại sản xuất ngày nay đều có hệ thống tập tin như vậy. Nó lưu trữ dữ liệu tốt hơn nhiều nhưng lại tiêu tốn khá nhiều tài nguyên máy tính của bạn.

Ngoài ra, trong trường hợp đĩa logic có mức tải đầy lên tới 90 phần trăm, hiệu suất của hệ thống tệp sẽ giảm mạnh. Ngoài ra, nếu hệ điều hành cũ hơn Windows XP, thì hệ thống tệp như vậy sẽ từ chối hoạt động trên nó. Khi bạn đưa đĩa vào ổ đĩa, máy tính của bạn sẽ không thể nhận ra nó hoặc sẽ bị đánh dấu là phân vùng không xác định. Nói về những ưu điểm, có thể lưu ý rằng công việc của một hệ thống tệp như vậy với các tệp nhỏ sẽ nhanh hơn và chất lượng tốt hơn nhiều. Kích thước lớn nhất mà một đĩa có thể có là 18 TB. Ngoài ra còn có một thứ như phân mảnh tập tin. Với nó, hệ thống tập tin sẽ không bị chậm mà sẽ tiếp tục hoạt động như bình thường. Ngoài ra, khi sử dụng NTFS, bạn có thể hoàn toàn chắc chắn rằng tệp sẽ không bị hỏng. Hệ thống sử dụng dung lượng ổ đĩa rất tiết kiệm và cho phép bạn nén các tệp ở kích thước tối thiểu mà không làm hỏng chúng. Nhân tiện, nhờ hệ thống này mà người ta có thể khôi phục dữ liệu trong trường hợp bị mất. Theo đó, nếu chúng ta so sánh hệ thống này với FAT, thì tất cả những ưu điểm đều rõ ràng. Điều quan trọng nhất mà nó có thể mang lại cho bạn là sự an toàn.

UDF

Bây giờ là lúc xem hệ thống tệp UDF là gì. Đây là một hệ thống tệp độc lập với hệ điều hành của máy tính và được sử dụng để lưu dữ liệu được lưu trữ trên phương tiện quang học. Không giống như các hệ thống trước đó, UDF cho phép ghi thông tin bổ sung vào đĩa mềm đã đầy. Ngoài ra, hệ thống tệp này có thể xóa có chọn lọc một số tệp nhất định trên đĩa mà không làm hỏng thông tin khác. Siêu dữ liệu như lãnh thổ gốc được đặt hỗn loạn bên trong đĩa, nhưng cơ sở của dữ liệu này có ba vị trí: khu vực 256, 257 và N-1, trong trường hợp này N là kích thước của rãnh ghi.

Đối với đĩa DVD, UDF là hệ thống tập tin thành công nhất vì nó hoàn toàn không có hạn chế về kích thước tập tin. Bạn có thể quay cả video lớn và nhỏ.

Nhờ UDF mà chúng tôi đã biết được hệ thống tệp cuối cùng là gì và cách chọn nó một cách chính xác cho máy tính của bạn.

Chúc một ngày tốt lành, người dùng thân mến, trong bài viết này chúng ta sẽ nói về một chủ đề như tập tin. Cụ thể, chúng ta sẽ xem xét: Quản lý tập tin, loại tập tin, cấu trúc tập tin, thuộc tính tập tin.

Hệ thống tập tin

Một trong những nhiệm vụ chính của HĐH là mang lại sự thuận tiện cho người dùng khi làm việc với dữ liệu được lưu trữ trên đĩa. Để thực hiện điều này, HĐH thay thế cấu trúc vật lý của dữ liệu được lưu trữ bằng một số mô hình logic thân thiện với người dùng, được triển khai dưới dạng cây thư mục hiển thị trên màn hình bằng các tiện ích như Norton Commander, Far Manager hoặc Windows Explorer. Yếu tố cơ bản của mô hình này là tài liệu, điều này cũng giống như hệ thống tập tin nói chung, có thể được đặc trưng bởi cả cấu trúc logic và vật lý.

Quản lý tập tin

Tài liệu– một vùng được đặt tên của bộ nhớ ngoài dành cho việc đọc và ghi dữ liệu.

Các tập tin được lưu trữ trong bộ nhớ không phụ thuộc vào nguồn điện. Một ngoại lệ là đĩa điện tử, khi cấu trúc bắt chước hệ thống tệp được tạo trong OP.

Hệ thống tập tin(FS) là một thành phần hệ điều hành cung cấp cho tổ chức việc tạo, lưu trữ và truy cập vào các tập dữ liệu - tệp được đặt tên.

Hệ thống tập tin bao gồm: Hệ thống tập tin bao gồm:

  • Tập hợp tất cả các tập tin trên đĩa.
  • Tập hợp cấu trúc dữ liệu được sử dụng để quản lý tệp (thư mục tệp, bộ mô tả tệp, bảng phân bổ không gian đĩa trống và đã sử dụng).
  • Một bộ công cụ phần mềm hệ thống thực hiện các thao tác khác nhau trên tệp: tạo, hủy, đọc, ghi, đặt tên, tìm kiếm.

Các vấn đề được FS giải quyết phụ thuộc vào cách tổ chức toàn bộ quá trình tính toán. Loại đơn giản nhất là hệ thống tệp trong hệ điều hành một người dùng và một chương trình. Các chức năng chính trong FS như vậy nhằm giải quyết các nhiệm vụ sau:

  • Đặt tên các tập tin.
  • Giao diện phần mềm cho các ứng dụng.
  • Ánh xạ mô hình hệ thống tệp logic vào tổ chức vật lý của kho dữ liệu.
  • FS chống lại sự cố mất điện, lỗi phần cứng và phần mềm.

Các tác vụ FS trở nên phức tạp hơn trong các hệ điều hành đa nhiệm một người dùng, được thiết kế cho công việc của một người dùng nhưng cho phép chạy nhiều quy trình cùng một lúc. Đối với các tác vụ được liệt kê ở trên, một tác vụ mới sẽ được thêm vào - quyền truy cập chung vào một tệp từ một số quy trình.

Tệp trong trường hợp này là tài nguyên được chia sẻ, có nghĩa là FS phải giải quyết toàn bộ các vấn đề liên quan đến tài nguyên đó. Đặc biệt: phải có phương tiện để chặn một tập tin và các phần của nó, đối chiếu các bản sao, ngăn chặn sự chạy đua và loại bỏ bế tắc. Trong hệ thống nhiều người dùng, một tác vụ khác xuất hiện: Bảo vệ tệp của một người dùng khỏi sự truy cập trái phép của người dùng khác.

Các chức năng của FS, hoạt động như một phần của hệ điều hành mạng, thậm chí còn trở nên phức tạp hơn; nó cần tổ chức bảo vệ các tập tin một người dùng khỏi sự truy cập trái phép của một người dùng khác.

Mục đích chính hệ thống tập tin và tương ứng với nó hệ thống quản lý tập tin– tổ chức quản lý thuận tiện các tệp được sắp xếp dưới dạng tệp: thay vì truy cập cấp thấp vào dữ liệu chỉ ra địa chỉ vật lý cụ thể của bản ghi mà chúng ta cần, quyền truy cập logic được sử dụng cho biết tên tệp và bản ghi trong đó.

Phải phân biệt thuật ngữ “hệ thống tệp” và “hệ thống quản lý tệp”: trước hết, 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 dưới dạng tệp. Và thuật ngữ “hệ thống quản lý tệp” nên được sử dụng liên quan đến việc triển khai cụ thể 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í dụ

Hệ thống tệp FAT (bảng phân bổ tệp) có nhiều triển khai như một hệ thống quản lý tệp

  • Hệ thống được phát triển cho những chiếc PC đầu tiên được gọi đơn giản là FAT (bây giờ được gọi đơn giản là FAT-12). Nó được thiết kế để hoạt động với đĩa mềm và trong một thời gian, nó được sử dụng để hoạt động với ổ cứng.
  • Sau đó, nó được cải tiến để hoạt động với các ổ cứng lớn hơn và cách triển khai mới này được gọi là FAT-16. tên này cũng được sử dụng liên quan đến SUF của chính MS-DOS.
  • Việc triển khai SUF cho OS/2 được gọi là super-FAT (sự khác biệt chính là khả năng hỗ trợ các thuộc tính mở rộng cho mỗi tệp).
  • Có phiên bản SUF dành cho Windows 9x/NT, v.v. (FAT-32).

Loại tập tin

Tệp thông thường: chứa thông tin có tính chất tùy ý được người dùng nhập vào hoặc được tạo ra do hoạt động của hệ thống và chương trình người dùng. Nội dung của một tệp thông thường được xác định bởi ứng dụng hoạt động với nó.

Các tập tin thông thường có thể có hai loại:

  1. Phần mềm(có thể thực thi) – là các chương trình được viết bằng ngôn ngữ lệnh của hệ điều hành và thực hiện một số chức năng hệ thống (có phần mở rộng .exe, .com, .bat).
  2. Hồ sơ dữ liệu– tất cả các loại tệp khác: tài liệu văn bản và đồ họa, bảng tính, cơ sở dữ liệu, v.v.

Danh mục- một mặt, đây là một nhóm các tệp được người dùng kết hợp dựa trên những cân nhắc nhất định (ví dụ: các tệp chứa chương trình trò chơi hoặc các tệp tạo nên một gói phần mềm), mặt khác, đây là một đặc biệt loại tệp chứa thông tin trợ giúp hệ thống về một tập hợp tệp được người dùng nhóm theo một số tiêu chí không chính thức (loại tệp, vị trí trên đĩa, quyền truy cập, ngày tạo và sửa đổi).

Các tập tin đặc biệt– đây là các tệp giả được liên kết với các thiết bị đầu vào/đầu ra, được sử dụng để thống nhất cơ chế truy cập tệp và thiết bị bên ngoài. Các tệp đặc biệt cho phép người dùng thực hiện các thao tác I/O bằng cách sử dụng các lệnh ghi hoặc đọc tệp thông thường. Các lệnh này trước tiên được xử lý bởi các chương trình FS, sau đó ở một số giai đoạn thực hiện yêu cầu, chúng được HĐH chuyển đổi thành các lệnh điều khiển cho thiết bị tương ứng (PRN, LPT1 - cho cổng máy in (tên tượng trưng cho HĐH - đây là tập tin), CON - cho bàn phím).

Ví dụ. Sao chép con text1 (làm việc với bàn phím).

Cấu trúc tập tin

Cấu trúc tập tin– toàn bộ tập hợp các tệp trên đĩa và mối quan hệ giữa chúng (thứ tự các tệp được lưu trữ trên đĩa).

Các loại cấu trúc tập tin:

  • đơn giản, hoặc Cấp một: Một thư mục là một chuỗi tuyến tính của các tập tin.
  • thứ bậc hoặc đa cấp: Bản thân một thư mục có thể là một phần của thư mục khác và chứa nhiều tệp và thư mục con bên trong nó. Cấu trúc phân cấp có thể có hai loại: “Cây” và “Mạng”. Các thư mục tạo thành một “Cây” nếu tệp chỉ được phép đưa vào một thư mục (OS MS-DOS, Windows) và “Mạng” - nếu tệp có thể được đưa vào nhiều thư mục cùng một lúc (UNIX).
  • Cấu trúc tệp có thể được biểu diễn dưới dạng biểu đồ mô tả thứ bậc của các thư mục và tệp:



Các loại tên tệp

Các tập tin được xác định theo tên. Người dùng đưa file tên tượng trưng, điều này tính đến các hạn chế của hệ điều hành đối với cả ký tự được sử dụng và độ dài của tên. Trong các hệ thống tập tin đầu tiên, ranh giới này khá hẹp. Vì vậy phổ biến Hệ thống tập tin FATĐộ dài của tên bị giới hạn bởi sơ đồ 8.3 nổi tiếng (8 ký tự - chính tên, 3 ký tự - phần mở rộng tên) và trong UNIX System V, tên không được chứa nhiều hơn 14 ký tự.

Tuy nhiên, sẽ thuận tiện hơn nhiều cho người dùng khi làm việc với những cái tên dài, vì chúng cho phép bạn đặt cho tệp một cái tên thực sự dễ nhớ, nhờ đó, ngay cả sau một khoảng thời gian khá dài, bạn vẫn có thể nhớ được tệp này chứa gì. Do đó, các hệ thống tệp hiện đại có xu hướng hỗ trợ các tên tệp tượng trưng dài.

Ví dụ: Windows NT chỉ định trong hệ thống tệp NTFS của nó rằng tên tệp có thể dài tối đa 255 ký tự, không tính ký tự null kết thúc.

Việc chuyển sang tên dài sẽ tạo ra sự cố tương thích với các ứng dụng đã tạo trước đó sử dụng tên ngắn. Để các ứng dụng truy cập tệp theo các quy ước đã được chấp nhận trước đó, hệ thống tệp phải có khả năng cung cấp tên ngắn (bí danh) tương đương cho các tệp có tên dài. Vì vậy, một trong những nhiệm vụ quan trọng là vấn đề tạo ra những tên viết tắt phù hợp.

Tên tượng trưng có thể có ba loại: đơn giản, ghép và tương đối:

  1. Tên đơn giản xác định một tệp trong một thư mục, được gán cho các tệp có tính đến danh pháp ký hiệu và độ dài tên.
  2. Họ và tên là một chuỗi các tên tượng trưng đơn giản của tất cả các thư mục mà qua đó đường dẫn từ gốc đến một tệp nhất định, tên đĩa, tên tệp sẽ đi qua. Vậy tên đầy đủ là tổng hợp, trong đó các tên đơn giản được phân tách với nhau bằng dấu phân cách được chấp nhận trong HĐH.
  3. Tập tin cũng có thể được xác định tên họ hàng. Tên tệp tương đối được xác định thông qua khái niệm "thư mục hiện tại". Tại bất kỳ thời điểm nào, một trong các thư mục luôn cập nhật và thư mục này được người dùng tự chọn theo lệnh của HĐH. Hệ thống tệp ghi lại tên của thư mục hiện tại để sau đó có thể sử dụng nó làm phần bổ sung cho tên tương đối để tạo thành tên tệp đủ điều kiện.

Trong cấu trúc tệp dạng cây, có sự tương ứng một-một giữa tệp và tên đầy đủ của nó - “một tệp - một tên đầy đủ”. Trong cấu trúc tệp mạng, một tệp có thể được bao gồm trong một số thư mục, nghĩa là nó có thể có nhiều tên đầy đủ; Sự tương ứng ở đây là “một tập tin - nhiều tên đầy đủ.”

Đối với tệp 2.doc, xác định cả ba loại tên, với điều kiện thư mục hiện tại là thư mục 2008_year.

  • Tên đơn giản: 2.doc
  • Tên đầy đủ: C:\2008_year\Documents\2.doc
  • Tên tương đối: Documents\2.doc

Thuộc tính tệp

Một đặc tính quan trọng của một tập tin là các thuộc tính của nó. Thuộc tính– đây là thông tin mô tả các thuộc tính của tập tin. Ví dụ về các thuộc tính tệp có thể có:

  • Thuộc tính chỉ đọc;
  • Ký “file ẩn” (Hidden);
  • Ký “file hệ thống” (System);
  • Ký vào “tập tin lưu trữ” (Archive);
  • Loại tệp (tệp thông thường, thư mục, tệp đặc biệt);
  • Chủ sở hữu tập tin;
  • Trình tạo tập tin;
  • Mật khẩu để truy cập tập tin;
  • Thông tin về các hoạt động truy cập tập tin được phép;
  • Thời gian tạo, lần truy cập cuối cùng và sửa đổi lần cuối;
  • Kích thước tập tin hiện tại;
  • Kích thước tệp tối đa;
  • Ký “tạm thời (xóa sau khi hoàn tất quá trình)”;
  • Dấu hiệu chặn.

Trong các loại hệ thống tệp khác nhau, các bộ thuộc tính khác nhau có thể được sử dụng để mô tả các tệp (ví dụ: trong hệ điều hành một người dùng, bộ thuộc tính sẽ không chứa các đặc điểm liên quan đến người dùng và bảo mật (người tạo tệp, mật khẩu để truy cập tập tin, v.v.).

Người dùng có thể truy cập các thuộc tính bằng cách sử dụng các phương tiện được hệ thống tệp cung cấp cho mục đích này. Thông thường, bạn có thể đọc giá trị của bất kỳ thuộc tính nào, nhưng chỉ thay đổi một số thuộc tính, ví dụ: bạn có thể thay đổi quyền truy cập của một tệp, nhưng bạn không thể thay đổi ngày tạo hoặc kích thước hiện tại của tệp.

Quyền tập tin

Xác định quyền truy cập vào một tệp có nghĩa là xác định cho mỗi người dùng một tập hợp các thao tác mà anh ta có thể áp dụng cho một tệp nhất định. Các hệ thống tệp khác nhau có thể có danh sách các hoạt động truy cập khác nhau. Danh sách này có thể bao gồm các hoạt động sau:

  • việc tạo tập tin.
  • sự hủy diệt tập tin.
  • ghi vào một tập tin.
  • đang mở một tập tin.
  • đóng tập tin.
  • đọc từ tập tin.
  • bổ sung tập tin.
  • tìm kiếm trong tập tin.
  • lấy thuộc tính tập tin.
  • thiết lập các giá trị thuộc tính mới.
  • đổi tên.
  • thực thi tập tin.
  • đọc một danh mục, v.v.

Trong trường hợp tổng quát nhất quyền truy cập có thể được mô tả bằng một ma trận quyền truy cập, trong đó các cột tương ứng với tất cả các tệp trong hệ thống, các hàng tương ứng với tất cả người dùng và tại giao điểm của các hàng và cột, các thao tác được phép được chỉ định:

Trong một số hệ thống, người dùng có thể được chia thành các loại riêng biệt. Đối với tất cả người dùng cùng loại, quyền truy cập thống nhất được xác định, ví dụ: trong hệ thống UNIX, tất cả người dùng được chia thành ba loại: chủ sở hữu tệp, thành viên của nhóm và những người khác.