русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-09; просмотров: 1450; Нарушение авторских прав


Файловая система построена из трех основных компонентов (табл. 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 корневой файловой системы и точек монтирования файловых систем.

 



<== предыдущая лекция | следующая лекция ==>
Определение содержимого файла | Использование жестких связей


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.568 сек.