Quản lý tập tin, loại tập tin, hệ thống tập tin, thuộc tính tập tin. Hệ thống tập tin là gì

Hệ thống tập tin là một phần của hệ điều hành, mục đích của nó là tổ chức công việc hiệu quả với dữ liệu được lưu trữ trong bộ nhớ ngoài và 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 đó. Việc tổ chức lưu trữ thông tin trên đĩa từ không phải là điều dễ dàng. Ví dụ, điều này đòi hỏi kiến ​​thức tốt về thiết kế bộ điều khiển đĩa và các tính năng làm việc với các thanh ghi của nó. Tương tác trực tiếp với đĩa là đặc quyền của một thành phần của hệ thống đầu vào/đầu ra của hệ điều hành được gọi là trình điều khiển đĩa. Để giải phóng người dùng máy tính khỏi sự phức tạp khi tương tác với phần cứng, một mô hình trừu tượng, rõ ràng của hệ thống tệp đã được phát minh. Về mặt khái niệm, các thao tác ghi hoặc đọc tệp đơn giản hơn so với các thao tác của thiết bị cấp thấp.

Hãy liệt kê chức năng chính hệ thống tập tin.

1. Nhận dạng tập tin. Liên kết tên tệp với không gian bộ nhớ ngoài được phân bổ cho nó.

2. Phân phối bộ nhớ ngoài giữa các tập tin. Để làm việc với một tệp cụ thể, người dùng không cần phải có thông tin về vị trí của tệp này trên phương tiện lưu trữ bên ngoài. Ví dụ: để tải tài liệu vào trình soạn thảo từ ổ cứng, chúng ta không cần biết tài liệu nằm ở mặt nào của đĩa từ, trên hình trụ nào và ở khu vực nào.

3. Đảm bảo độ tin cậy và khả năng chịu lỗi. Chi phí của thông tin có thể cao hơn nhiều lần so với chi phí của một chiếc máy tính.

4. Đảm bảo bảo vệ khỏi sự truy cập trái phép.

5. Cung cấp quyền truy cập chung vào các tệp để người dùng không phải nỗ lực đặc biệt để đảm bảo đồng bộ hóa quyền truy cập.

6. Đảm bảo hiệu suất cao.

Một tập tin đôi khi được cho là một tập hợp các thông tin liên quan được đặt tên được ghi vào bộ nhớ thứ cấp. Đối với hầu hết người dùng, hệ thống tệp là phần dễ thấy nhất của HĐH. Nó cung cấp một cơ chế lưu trữ trực tuyến và truy cập vào cả dữ liệu và chương trình cho tất cả người dùng hệ thống. Theo quan điểm của người dùng, tệp là một đơn vị của bộ nhớ ngoài, nghĩa là dữ liệu được ghi vào đĩa phải là một phần của tệp nào đó.

37. Bảng nội dung tập đơn giản nhất và các thành phần của nó

Hệ thống tập tin bao gồm mục lụcvùng dữ liệu – một tập hợp các khối trên đĩa, được xác định bằng số/địa chỉ của chúng. Một ví dụ về mục lục (trừu tượng) đơn giản nhất, mục lục của một ổ đĩa (đĩa, gói đĩa), có các tên khác nhau trong các hệ điều hành khác nhau - VTOC - Volume Table of Content, FAT - File Allocation Table, FDT - Bảng định nghĩa tệp, v.v., được hiển thị trong Hình. 1.

Cơm. 1. Mục lục tập đơn giản nhất

Nó bao gồm ba khu vực:

· vùng tập tin.Đây là một bảng thường có giới hạn (trong ví dụ N=6) số dòng N(ví dụ: trong MS-DOS, N=500, tức là số lượng tập tin không quá 500). Số cột M(trong ví dụ M= 5) thường được chọn sao cho 85 -95% tệp do người dùng tạo sẽ chứa không quá M các khối, điều này phụ thuộc cả vào kích thước của khối và loại người dùng cũng như mức độ phát triển chung của thông tin và phần mềm. Cột bảng đầu tiên trong mỗi hàng (Bản ghi tiêu đề) chứa dữ liệu về tệp, trong ví dụ này – tên tệp;

· khu vực tràn- một bảng bổ sung có cấu trúc tương tự, trong đó ghi lại số khối của các tệp đặc biệt dài (trong ví dụ - File_l). Việc tổ chức bảng phân bổ dưới dạng vùng tệp và vùng tràn rõ ràng cho phép lưu toàn bộ kích thước của bảng mà không đồng thời giới hạn độ dài có thể có của tệp;

· danh sách các khối miễn phí- thông tin cần thiết để đặt các tập tin được tạo hoặc mở rộng. Danh sách này được tạo trong quá trình khởi tạo và bao gồm tất cả các khối ngoại trừ các khối bị hỏng và sau đó được điều chỉnh khi tệp được tạo, xóa hoặc sửa đổi;

· danh sách các khối xấuĐây là bảng được tạo trong quá trình khởi tạo (phân vùng) một ổ đĩa (đĩa), được bổ sung bằng các chương trình chẩn đoán (ví dụ trong số đó là NDD - Norton Disk Doctor, được nhiều người dùng biết đến) và ngăn chặn việc phân phối các vùng bị hỏng trên phương tiện từ tính sang Hồ sơ dữ liệu.

Chúng ta hãy liệt kê các đặc điểm của tình huống được ghi lại trong Hình 1. trong hệ thống tập tin (nhân tạo) đơn giản nhất.

File_l chiếm 6 khối, số này lớn hơn giá trị tối đa nên địa chỉ của khối số 6 (23) được đặt vào bảng tràn;

File_2 chiếm 2 khối, nhỏ hơn giới hạn nên mọi thông tin đều tập trung ở vùng tệp.

Có các tình huống xung đột sau:

· File_3 không chứa một khối nào (do đó, tệp đã bị xóa, nhưng bản ghi tiêu đề vẫn được giữ nguyên);

· File_4 và File_l tham chiếu đến khối số 3. Đây là lỗi vì mỗi khối phải được gán cho một tệp duy nhất;

· Danh sách các khối miễn phí chứa số khối số 12 (được đánh dấu là xấu) và số 13 (được phân bổ trong File_1).

38. Cấu trúc logic của các phân vùng đĩa sử dụng ví dụ về hệ thống tệp tương thích với IBM và MS


Ổ đĩa logic D và E

Số lượng phân vùng chính tối đa là 4. Phân vùng hoạt động là nơi đặt bộ tải khởi động hệ thống.

MBR- mã và dữ liệu cần thiết cho lần tải hệ điều hành tiếp theo và nằm trong các khu vực vật lý đầu tiên (thường là ở khu vực đầu tiên) trên ổ cứng hoặc thiết bị lưu trữ thông tin khác.

Một mục nhập phần mở rộng được gọi SMBR (Bản ghi khởi động chính thứ cấp)). Sự khác biệt với mục này là nó không có bộ nạp khởi động và bảng phân vùng bao gồm hai mục: phân vùng chính và phân vùng mở rộng.

39. Hệ thống tập tin FAT. Cấu trúc khối lượng FAT

40. Hệ thống tập tin NTFS. Cấu trúc ổ đĩa NTFS

41. Sổ đăng ký hệ điều hành Windows

42. Hệ điều hành thuộc họ Windows NT

43. Một số module kiến ​​trúc của Windows NT

44. Quản lý ổ cứng trong Windows NT

45. Hệ điều hành Projective, nguyên tắc, ưu điểm, nhược điểm của chúng

46. ​​​​Hệ điều hành thủ tục, nguyên tắc, ưu điểm, nhược điểm của chúng

47. Lịch sử phát triển và tư tưởng xây dựng hệ điều hành Unix

48. Cấu trúc hệ điều hành Unix

49. Giao diện người dùng Unix

50. Các tiến trình (tác vụ) điều phối trong Unix

51. Hệ điều hành Linux và những ưu điểm chính của nó

52. Thực hiện chế độ đồ họa trong hệ điều hành Linux

53. Nguyên tắc cơ bản làm việc trên hệ điều hành Linux

54. Các tập tin cấu hình hệ điều hành Linux cơ bản

55. Làm việc với ổ đĩa trong hệ điều hành Linux

56. Ứng dụng cho hệ điều hành Linux

Tập tin và hệ thống tập tin

Tất cả các chương trình và dữ liệu được lưu trữ trong bộ nhớ dài hạn (ngoài) của máy tính dưới dạng tệp.

Tài liệu- đây là một lượng thông tin (chương trình hoặc dữ liệu) nhất định có tên và được lưu trữ trong bộ nhớ dài hạn (bên ngoài).

Tên tập tin. Tên tệp bao gồm hai phần, được phân tách bằng dấu chấm: tên tệp thực và phần mở rộng xác định loại của nó (chương trình, dữ liệu, v.v.). Tên thực của tệp do người dùng đặt và loại tệp thường được chương trình đặt tự động khi nó được tạo (Bảng 4.2).

Các hệ điều hành khác nhau có định dạng tên tệp khác nhau. Trong hệ điều hành MS-DOS, bản thân tên tệp không được chứa quá 8 chữ cái trong bảng chữ cái Latinh, số và một số ký tự đặc biệt và phần mở rộng bao gồm ba chữ cái Latinh, ví dụ: proba.txt

Trong hệ điều hành Windows, tên tệp có thể dài tối đa 255 ký tự và bạn có thể sử dụng bảng chữ cái tiếng Nga, ví dụ: Informationunits.doc


Hệ thống tập tin. Mỗi phương tiện lưu trữ (đĩa mềm, đĩa cứng hoặc đĩa laser) có thể lưu trữ một số lượng lớn tệp. Thứ tự các tệp được lưu trữ trên đĩa được xác định bởi hệ thống tệp được sử dụng.

Mỗi đĩa được chia thành hai khu vực: khu vực lưu trữ tệp và thư mục. Thư mục chứa tên của tập tin và chỉ dẫn nơi nó bắt đầu trên đĩa. Nếu chúng ta so sánh một cái đĩa và một cuốn sách thì vùng lưu trữ tệp sẽ tương ứng với nội dung của nó và thư mục sẽ tương ứng với mục lục. Hơn nữa, một cuốn sách bao gồm các trang và một đĩa bao gồm các phần.

Đối với các đĩa có số lượng tệp nhỏ (lên đến vài chục) có thể được sử dụng hệ thống tập tin đơn cấp, khi thư mục (mục lục đĩa) là một chuỗi tuyến tính các tên tệp (Bảng 4.3). Một danh mục như vậy có thể được so sánh với mục lục của một cuốn sách dành cho trẻ em, trong đó chỉ có tựa đề của từng câu chuyện riêng lẻ.

Nếu hàng trăm, hàng nghìn tệp được lưu trữ trên đĩa thì để dễ tìm kiếm, hãy sử dụng hệ thống tập tin phân cấp đa cấp, có cấu trúc cây. Ví dụ, hệ thống phân cấp như vậy có thể được so sánh với mục lục của một cuốn sách giáo khoa nhất định, đó là hệ thống phân cấp gồm các phần, chương, đoạn và điểm.

Thư mục gốc ban đầu chứa các thư mục con của cấp 1, lần lượt, mỗi thư mục sau có thể chứa các thư mục con của cấp 2, v.v. Cần lưu ý rằng các tập tin có thể được lưu trữ trong các thư mục ở mọi cấp độ.

Ví dụ: thư mục gốc có thể chứa hai thư mục con cấp 1 (Directory_1, Directory_2) và một tệp (File_1). Đổi lại, trong thư mục cấp 1 (Directory_1) có hai thư mục con cấp 2 (Directory_1.1 và Directory_1.2) và một tệp (File_1.1) - fig. 4.21.

Hệ thống tập tin là một hệ thống tổ chức thư mục và lưu trữ tập tin.

Hãy xem xét một hệ thống tệp phân cấp bằng một ví dụ cụ thể. Mỗi đĩa có một tên logic (A:, B: - đĩa mềm, C:, D:, E: v.v. - đĩa cứng và đĩa laser).

Giả sử thư mục gốc của ổ C: có hai thư mục cấp 1 (GAMES, TEXT) và thư mục GAMES có một thư mục cấp 2 (CHESS). Đồng thời, trong thư mục TEXT có tệp proba.txt và trong thư mục CHESS có tệp Chess.exe (Hình 4.22).

Đường dẫn đến tập tin. Làm cách nào để tìm các tệp hiện có (chess.exe, proba.txt) trong hệ thống tệp phân cấp nhất định? Để làm điều này, bạn cần chỉ định đường dẫn đến tệp. Đường dẫn đến tệp bao gồm tên logic của đĩa, được ghi thông qua dấu phân cách "\" và một chuỗi tên của các thư mục lồng nhau, tên cuối cùng chứa tệp mong muốn. Đường dẫn đến các tập tin trên có thể được viết như sau:

Đường dẫn tới file cùng với tên file đôi khi được gọi là tên tập tin đầy đủ.

Ví dụ về tên tệp đầy đủ:

Với \GAMES\CHESS\chess.exe

Trình bày hệ thống tập tin bằng giao diện đồ họa. Hệ thống tệp phân cấp MS-DOS chứa các thư mục và tệp được thể hiện trong hệ điều hành Windows thông qua giao diện đồ họa dưới dạng hệ thống phân cấp các thư mục và tài liệu. Một thư mục trong Windows tương tự như thư mục MS-DOS

Tuy nhiên, cấu trúc phân cấp của các hệ thống này có phần khác nhau. Trong hệ thống tệp phân cấp MS-DOS, trên cùng của hệ thống phân cấp đối tượng là thư mục gốc của đĩa, có thể so sánh với thân cây mà các nhánh (thư mục con) phát triển và trên các nhánh là các lá (tệp) .

Trong Windows, ở trên cùng của hệ thống phân cấp thư mục là thư mục Máy tính để bàn. Cấp độ tiếp theo được thể hiện bằng các thư mục Máy tính của tôi, Thùng rácmạng(nếu máy tính được kết nối với mạng cục bộ) - hình. 4.23.

2. Bằng cách chọn một trong các mục menu Xem (Biểu tượng lớn, Biểu tượng nhỏ, Danh sách, Bảng), bạn có thể tùy chỉnh hình thức trình bày nội dung thư mục.

Thư mục mạng chứa các thư mục của tất cả các máy tính hiện được kết nối với mạng cục bộ.

Thư mục Rổ tạm thời chứa tất cả các thư mục và tập tin đã bị xóa. Nếu cần, hãy gỡ bỏ và lưu trữ trong Xe đẩy các thư mục và tài liệu có thể được khôi phục.

3. Để xóa vĩnh viễn các tập tin, bạn phải nhập lệnh [File-Empty Thùng rác].

Các thao tác trên tập tin. Khi làm việc trên máy tính, các thao tác sau thường được thực hiện trên tệp:

  • sao chép (bản sao của tệp được đặt trong thư mục khác);
  • di chuyển (bản thân tập tin được chuyển sang thư mục khác);
  • xóa (mục nhập tệp bị xóa khỏi thư mục);
  • đổi tên (thay đổi tên tập tin).

Giao diện đồ họa của Windows cho phép bạn thực hiện các thao tác trên tệp bằng chuột bằng phương pháp Kéo và Thả (kéo và thả). Ngoài ra còn có các ứng dụng chuyên biệt để làm việc với các tập tin, được gọi là quản lý tập tin: Norton Commander, Windows Commander, Explorer, v.v.

Trong một số trường hợp, việc làm việc với giao diện dòng lệnh trở nên cần thiết. Windows cung cấp chế độ làm việc với giao diện dòng lệnh MS-DOS.

Giao diện dòng lệnh

1. Nhập lệnh [Phiên chương trình-MS-DOS]. Cửa sổ ứng dụng sẽ xuất hiện Phiên MS-DOS.

Khi được hệ thống nhắc, bạn có thể nhập các lệnh MS-DOS từ bàn phím, bao gồm:

  • các lệnh để làm việc với các tập tin (sao chép, xóa, đổi tên, v.v.);
  • các lệnh để làm việc với các thư mục (dir, mkdir, chdir, v.v.);
  • các lệnh để làm việc với đĩa (định dạng, chống phân mảnh, v.v.).

2. Có hàng tá lệnh MS-DOS và mỗi lệnh có định dạng và tham số riêng, khá khó nhớ. Để nhận thông tin trợ giúp về một lệnh, bạn phải nhập phím /? sau tên lệnh.

Ví dụ: để được trợ giúp về lệnh định dạng, tại dấu nhắc hệ thống, bạn sẽ gõ: C:\WINDOWS>format/?


Những câu hỏi cần xem xét

1. Phần tử nào đứng đầu hệ thống phân cấp trong hệ thống file MS-DOS? Trong GUI của Windows?

Nhiệm vụ thực tế

4.11. Sao chép tập tin bằng giao diện dòng lệnh và trình quản lý tập tin.

4.12. Xem dung lượng ổ đĩa máy tính của bạn cũng như dung lượng đã sử dụng và dung lượng trống.

4.13. Làm quen với định dạng của lệnh dir. Xem thư mục gốc của ổ C.

Cấu trúc dữ liệu

Hệ thống tập tin

· 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ó một thuộc tính mới - Địa chỉ.

· 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 Cách 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 – số này sau đó được sử dụng để sắp xếp và tìm kiếm.

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

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

Một 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ủa một 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 của mình (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. Vì vậy, trong tất cả các hệ thống tập tin, nó được phân bổ rõ ràng hoặc ngầm định một số cấp độ cơ bản, cung cấp công việc với các tệp biểu thị 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 file. 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ì trong bộ nhớ ngoài các tệp bổ sung có cấu trúc đặc biệt - thư mục. 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 đó. Như vậy, tên tệp đầy đủ 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 trực tiếp tập tin này. 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 chuỗi tên bắt đầu. (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. Nhìn chung, cách tiếp cận là liên quan đến mỗi người dùng đã đăng ký của hệ thống máy tính này cho mỗi tập tin 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ơ!

Hệ thống tệp cho phép bạn tổ chức các chương trình và dữ liệu cũng như tổ chức quản lý có trật tự các đối tượng này.

Khái niệm hệ thống tập tin nằm bên dưới hệ điều hành Unix đã để lại dấu ấn sâu sắc trong hệ điều hành máy tính cá nhân. Trong Unix, hệ thống con I/O thống nhất cách truy cập cả tệp và thiết bị ngoại vi. Một tập tin được hiểu là một tập hợp dữ liệu trên đĩa, thiết bị đầu cuối hoặc một số thiết bị khác.

Hệ thống tập tin là một phần chức năng của hệ điều hành thực hiện các thao tác trên tệp. Hệ thống tệp cho phép bạn làm việc với các tệp và thư mục (thư mục) bất kể nội dung, kích thước, loại, v.v. của chúng.

Hệ thống tập tin là một hệ thống quản lý dữ liệu.

Hệ thống quản lý dữ liệu là một hệ thống trong đó người dùng được giải phóng khỏi hầu hết các thao tác trên tệp vật lý và có thể tập trung chủ yếu vào các thuộc tính logic của dữ liệu.

Hệ thống tệp hệ điều hành tạo cho người dùng một số loại biểu diễn ảo của các thiết bị lưu trữ bên ngoài, cho phép chúng hoạt động không phải ở mức độ thấp của các lệnh điều khiển thiết bị vật lý mà ở mức độ cao của tập hợp dữ liệu và cấu trúc.

Hệ thống tập tin (mục đích):

  • ẩn hình ảnh vị trí thực của thông tin trong bộ nhớ ngoài;
  • đảm bảo tính độc lập của các chương trình với cấu hình cụ thể của máy tính (mức độ logic khi làm việc với các tệp);
  • cung cấp các phản hồi tiêu chuẩn cho các lỗi xảy ra trong quá trình trao đổi dữ liệu.

Cấu trúc tập tin

Toàn bộ tập hợp các tập tin trên đĩa và mối quan hệ giữa chúng được gọi là cấu trúc tập tin. Các hệ điều hành phát triển có cấu trúc file phân cấp - đa cấp, được tổ chức dưới dạng cây.

Cấu trúc thư mục cây được sử dụng - cây thư mục. Được mượn từ Unix. Cấu trúc phân cấp - cấu trúc của một hệ thống, các bộ phận (thành phần) của nó được kết nối bằng các mối quan hệ bao hàm hoặc phụ thuộc.

Cấu trúc phân cấp được biểu diễn bằng cây định hướng, trong đó các đỉnh tương ứng với các thành phần và các cung tương ứng với các kết nối.

Cây thư mục ổ G

Cây có hướng là một đồ thị có một đỉnh (gốc) được chọn, trong đó có một đường đi duy nhất giữa gốc và bất kỳ đỉnh nào. Trong trường hợp này, có thể có hai tùy chọn định hướng: hoặc tất cả các đường dẫn được định hướng từ gốc đến các lá hoặc tất cả các đường dẫn được định hướng từ các lá đến gốc.

Cây được sử dụng để mô tả và thiết kế các cấu trúc phân cấp.

Rễ là vị trí bắt đầu, lá là vị trí cuối cùng.

Phần

Trong quá trình định dạng, bất kỳ đĩa cứng hoặc đĩa quang từ nào cũng có thể được chia thành nhiều phần và được coi là các đĩa (độc lập) riêng biệt. Những phần này được gọi là phần hoặc ổ đĩa logic. Việc phân vùng đĩa thành nhiều ổ đĩa logic có thể cần thiết vì hệ điều hành không thể xử lý các đĩa lớn hơn một kích thước nhất định. Sẽ rất thuận tiện khi lưu trữ dữ liệu và chương trình người dùng tách biệt với các chương trình hệ thống (HĐH), vì HĐH có thể “bay khỏi máy tính”.

chương– vùng đĩa. Dưới đĩa logic (phân vùng) Trong máy tính, chúng tôi muốn nói đến bất kỳ phương tiện lưu trữ nào mà hệ điều hành hoạt động như một đối tượng duy nhất.

Tên ổ đĩa– chỉ định ổ đĩa logic; mục trong thư mục gốc.

Ổ đĩa logic (phân vùng) được ký hiệu bằng chữ cái Latinh A, B, C, D, E, ... (32 chữ cái từ A đến Z).

Các chữ cái A, B được dành riêng cho đĩa mềm.

C là ổ cứng mà hệ điều hành thường được tải từ đó.

Các chữ cái còn lại là ổ đĩa logic, đĩa CD, v.v. Số lượng ổ đĩa logic tối đa cho hệ điều hành Windows là vô hạn.

TRONG bảng phân vùng vị trí bắt đầu và kết thúc của phần này và số lượng các lĩnh vực trong phần này (vị trí và kích thước) được chỉ định.

Cấu trúc tệp của ổ đĩa logic

Để truy cập thông tin trên đĩa chứa trong một tệp, bạn cần biết địa chỉ vật lý của khu vực đầu tiên (số bề mặt + số rãnh + số khu vực), tổng số cụm mà tệp này chiếm giữ, địa chỉ của cụm tiếp theo nếu kích thước tệp lớn hơn kích thước của một cụm

Các phần tử cấu trúc tập tin:

    khu vực bắt đầu (khởi động ban đầu, Khu vực khởi động);

    bàn vị trícác tập tin (FAT – Bảng phân bổ tệp);

    thư mục gốc (Thư mục gốc);

    vùng dữ liệu (dung lượng đĩa trống còn lại).

Khởi động-ngành

Khởi động-ngành – khu vực đầu tiên (ban đầu) của đĩa. Nằm ở mặt 0, 0 rãnh.

Khu vực khởi động chứa thông tin dịch vụ:

    kích thước cụm đĩa (cụm là một khối kết hợp một số lĩnh vực thành một nhóm để giảm kích thước của bảng FAT);

    vị trí của bảng FAT (trong khu vực khởi động có một con trỏ tới vị trí của bảng FAT);

    kích thước bảng FAT;

    số lượng bảng FAT (luôn có ít nhất 2 bản sao của bảng để đảm bảo độ tin cậy và bảo mật, vì việc phá hủy FAT dẫn đến mất thông tin và khó phục hồi);

    địa chỉ đầu thư mục gốc và kích thước tối đa của nó.

Khu vực khởi động chứa khối khởi động (bộ nạp khởi động) - Bản ghi khởi động.

Trình tải là một chương trình dịch vụ đặt chương trình thực thi vào RAM và làm cho nó sẵn sàng để thực thi.

FAT (Bảng phân bổ tệp)

FAT (Bảng phân bổ tệp) – bảng phân bổ tệp. Nó xác định khu vực nào của đĩa thuộc về mỗi tệp. Vùng dữ liệu của đĩa được thể hiện trong HĐH dưới dạng một chuỗi các cụm được đánh số.

MẬP là một mảng các phần tử đánh địa chỉ các cụm của vùng dữ liệu đĩa. Mỗi cụm vùng dữ liệu tương ứng với một phần tử FAT. Các phần tử FAT đóng vai trò như một chuỗi tham chiếu đến các cụm tệp trong vùng dữ liệu.

Cấu trúc bảng phân bổ tệp:

FAT bao gồm các phần tử 16/32/64 bit. Tổng cộng, bảng có thể chứa tới 65520 phần tử như vậy, mỗi phần tử trong số chúng (ngoại trừ hai phần tử đầu tiên) tương ứng với một cụm đĩa. Cụm là đơn vị phân bổ không gian trong vùng dữ liệu trên đĩa cho các tệp và thư mục. Hai thành phần bảng đầu tiên (được đánh số 0 và 1) được dành riêng và mỗi thành phần bảng còn lại mô tả trạng thái của cụm đĩa có cùng số. Phần tử có thể chỉ ra rằng cụm đó là miễn phí, cụm đó bị lỗi, cụm đó thuộc về tệp và là cụm cuối cùng trong tệp. Nếu một cụm thuộc về một tệp và không phải là cụm cuối cùng của nó thì phần tử bảng chứa số của cụm tiếp theo trong tệp này.

MẬP– một yếu tố cực kỳ quan trọng của cấu trúc tập tin. Vi phạm FAT có thể dẫn đến mất toàn bộ hoặc một phần thông tin trên toàn bộ ổ đĩa logic. Đó là lý do tại sao hai bản sao FAT được lưu trữ trên đĩa. Có các chương trình đặc biệt theo dõi trạng thái của FAT và khắc phục các vi phạm.

Các hệ điều hành khác nhau yêu cầu các phiên bản FAT khác nhau

Windows 95 FAT 16, FAT 32

Windows NT (XP) NTFS

Phần mềm mạng Novell TurboFAT

UNIX NFS,ReiserFS

Cấu trúc logic của phương tiện lưu trữ

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 của mình (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 file. 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 đó. Như vậy, tên đầy đủ của một tệp 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 ngay tệp đó. 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 chuỗi tên bắt đầu. (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, do đó 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 mình). 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 vật lý tính toàn vẹn của nó bằ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, không thể loại trừ một tình huống khi 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 gì. 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 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 hệ thống đó đượ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.