Физическая организация данных

Физическая организация данных Linux file System ( UFS ) была разработана на основе файловой системы S5 ( одной из ранних версий LINUX ) и расширяет возможности S5 по поддержке больших дисков и файлов. В ОС LINUX физическая организация данных имеет название ext2, ext3 и основана на файловой организации данных UFS. Диск разделен на блоки ( кластеры ), обычно по 8 кбайт.

 

Загрузочный блок  
Superblock Содержит служебную информацию: - Размер области индексных дескрипторов; - Число индексных дескрипторов; - Список свободных блоков; - Список свободных индексных дескрипторов;  
Область индексных дескрипторов ИД расположены по порядку номеров
Область данных Содержит данные: Обычные файлы; Каталоги; Файлы устройств представлены записью спец. формата  

 

Основной особенностью физической организации данных UFS является отделение имени файла от его характеристик. Характеристика файла хранятся в отдельной структуре – индексном дескрипторе, который содержит:

- Тип файла;

- Владельца файла;

- Атрибуты файла ( права доступа );

- Время создания, последней модификации, последнего обращения;

- Размер файла в байтах;

- Номера блоков на диске, которые занимает этот файл.

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

Система ведет список свободных номеров ИД, при создании файла ему выделяется номер из этого списка, при уничтожении файла номер ИД возвращается в список свободных.

Для хранения адреса выделено 15 полей по 4 байта. В первые 12 полей записываются номера блоков, в которых хранятся данные файла – прямая адресация.

 

 

         

 


Если 12 блоков недостаточно, т. е. файл имеет длину более 12 * 8 кбайт = 98304 байт, то выделяется еще одно поле, в котором содержится адрес следующих 12 полей. Используется косвенная адресация.

 

           

 


Косвенная адресация

 

Если тринадцать блоков недостаточно, то первые двенадцать блоков содержат адреса данных – прямая адресация. Тринадцатый блок содержит адрес следующих двенадцати полей, в которых содержатся данные – косвенная адресация. Четырнадцатый блок содержит адрес следующих 12 полей, в которых записаны адреса блоков, которые содержат адреса следующих 12 полей, которые содержат уже адреса данных - двойная косвенная адресация.

Для очень больших файлов может использоваться тройная косвенная адресация, максимальный размер файла - 7 * 10 13 байт.