Устройство файловой системы

Файловая система построена из трех основных компонентов (табл. 4.1):

r суперблок (superblock);

r массив индексных дескрипторов (inode list);

r блоки хранения данных.

 

Таблица 4.1. Устройство файловой системы

Магнитный диск
Суперблок Массив индексных дескрипторов Данные
Блок1 Блок2 Блок3 ... БлокN

Cуперблок содержит основную информацию, необходимую для монтирова- ния и работы файловой системы:

r тип файловой системы;

r размер и количество блоков в файловой системе;

r количество индексных дескрипторов;

r время последнего монтирования;

r информация о том, была ли отмонтирована файловая система;

r счетчик числа монтирований;

r список свободных блоков и индексных дескрипторов и т. п.

Если суперблок файловой системы испорчен, то монтирование файловой сис- темы без его восстановления невозможно. Современные файловые системы специально сохраняют в заранее известных блоках диска копии суперблока для возможности их использования при восстановлении файловой системы.

Индексные дескрипторы или, иначе, метаданные — это данные о самих фай- лах. В индексных дескрипторах сохраняются следующие сведения о файлах:

r владелец и группа пользователей файла;

r права доступа к файлу;

r тип файла;

r количество имен у файла (link count);

r дата доступа к файлу (файл открыт на чтение);


 

r дата модификации (файл открыт на запись);

r дата изменения метаданных;

r количество блоков, занятое файлом;

r указатели на блоки данных файла.

Каталоги предоставляют собой особый тип файлов, содержащих таблицу, в которой хранятся имена файлов, находящихся в данном каталоге, и соот- ветствующие им номера индексных дескрипторов (inode). Эти записи связы- вают имена файлов с их индексными дескрипторами, а те, в свою очередь, предоставляют информацию о местонахождении блоков данных файла. В блоках данных нет никакой информации, способной указать номер индекс- ного дескриптора файла, которому принадлежит этот блок данных. Точно так же, в индексном дескрипторе не хранится имя файла, который данный ин- дексный дескриптор описывает. Именно каталоги определяют положение файла в дереве файловой системы, т. к. сам файл не содержит информации о месте его нахождения.

На один и тот же индексный дескриптор может указывать несколько имен файлов. Это фиксируется счетчиком имен файла (link counter) в индексном дескрипторе. Если у файла имеется несколько имен, то говорят, что между этими именами существует жесткая связь (hard link). То есть разные имена файлов указывают на одни метаданные и, следовательно, на одни и те же блоки данных. Все имена файла абсолютно эквивалентны, и изменение со- держимого этих файлов будет совершенно синхронным. Нет никакой воз- можности определить, какое имя у файла было изначально, а какое появи- лось потом.

У каталогов имеются как минимум два имени:

r обычное имя каталога, находящееся в родительском каталоге (например,

/home/user1);

r имя "точка" (.) — имя текущего каталога.

При появлении в любом каталоге подкаталога количество имен у этого ката- лога увеличивается на единицу, т. к. в дочернем каталоге всегда содержится имя "две точки" (..) — имя родительского каталога.

Количество имен у файла можно определить с помощью команды ls -l, а полу- чить номера индексных дескрипторов можно, используя ls -i (пример 4.23).

 

Пример 4.23. Определение номера индексного дескриптора

 

$ ls -ldi /etc

6 drwxr-xr-x 87 root root 6064 Oct 14 00:13 /etc


 

Из полученного листинга видно, что номер inode каталога /etc равен 6, а ко- личество имен у него 87, следовательно, количество подкаталогов в нем рав- няется 85.

Подробную информацию об индексном дескрипторе файла можно получить, используя команду stat (пример 4.24).

 

Пример 4.24. Команда stat

 

$ stat /etc

 

File: `/etc'  
Size: Blocks: 12 IO Block: 4096 Directory
Device: 305h/773d Inode: 6 Links: 87  

Access: 2009-06-17 23:19:59.000000000
Modify: 2009-12-14 00:13:23.000000000
Change: 2009-12-14 00:13:23.000000000

 

Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

+0600

+0500

+0500

 

Зарезервированы три номера для индексных дескрипторов:

r 0 — свободный индексный дескриптор (для удаленных файлов в индекс- ный дескриптор записывается номер 0);

r 1 — зарезервировано для будущего использования, но в GNU/Linux ис- пользуются для файловых систем, порожденных ядром (проверьте катало- ги /proc и /sys);

r 2 — inode корневой файловой системы и точек монтирования файловых систем.

 








Дата добавления: 2015-06-12; просмотров: 691;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.