Файловая система UNIX V7

Даже в ранних версиях системы UNIX применялась довольно сложная многопользовательская файловая система, так как в основе этой системы лежала операционная система MULTICS. Далее будет рассмотрена файловая система V7, разработанная для компьютера PDP-11, сделавшего систему UNIX знаменитой.
Современная файловая система UNIX будет рассмотрена в контексте операционной системы Linux в главе 10.

Файловая система представляет собой дерево, начинающееся в корневом каталоге, с добавлением связей, формирующих направленный ациклический граф. Имена файлов могут содержать до 14 любых символов ASCII, кроме слеша (поскольку он служит разделителем компонентов пути) и символа NUL (поскольку он используется для дополнения имен короче 14 символов). Символ NUL имеет числовое значение 0.

Каталог UNIX содержит по одной записи для каждого файла этого каталога. Каждая запись каталога максимально проста, так как в системе UNIX используется система i-узлов (см. рис. 4.10). Запись каталога, как показано на рис. 4.27, состоит всего из двух полей: имени файла (14 байт) и номера i-узла для этого файла (2 байта). Эти параметры ограничивают количество файлов в файловой системе до 64 К.

Рис. 4.27. Запись каталога файловой системы UNIX V7

Подобно Ьузлу на рис. 4.10 ^узлы системы UNIX содержат некоторые атрибуты, которые содержат размер файла, три указателя времени (создания, последнего доступа и последнего изменения), идентификатор владельца, группы, информацию о защите и счетчик указывающих на этот Ьузел записей в каталогах. Последнее поле необходимо для установления связей. При добавлении к Ьузлу новой связи счетчик в Ьузле увеличивается на единицу. При удалении связи счетчик в ^узле уменьшается на единицу. Когда значение счетчика достигает нуля, Ьузел освобождается, а дисковые блоки возвращаются в список свободных блоков.

Для учета дисковых блоков файла используется общий принцип, показанный на рис. 4.10, позволяющий работать с очень большими файлами. Первые 10 дисковых адресов хранятся в самом ^узле, поэтому для небольших файлов вся необходимая информация содержится непосредственно в ^узле, считываемом с диска в оперативную память при открытии файла. Для файлов большего размера один из адресов в ^узле представляет собой адрес блока диска, называемого однократным косвенным блоком. Этот блок содержит дополнительные дисковые адреса. Если и этого недостаточно, используется другой адрес в Ьузле, называемый двукратным косвенным блоком и содержащий адрес блока, в котором хранятся адреса однократных косвенных блоков.

Если и этого мало, используется трехкратный косвенный блок. Полная схема показана на рис. 4.28.

Рис. 4.28. I-узел UNIX


При открытии файла файловая система по предоставленному имени файла должна найти его блоки на диске. Рассмотрим, как происходит поиск по абсолютному имени /usr/ast/mbox. В этом примере будет использоваться файловая система UNIX, хотя для всех иерархических каталоговых систем применяется в основном такой же алгоритм. Сначала файловая система определяет местоположение корневого каталога. В системе UNIX его ^узел размещается в фиксированном месте на диске. По этому Ьузлу система определяет местоположение корневого каталога, который может находиться в любом месте диска, в данном примере — в блоке 1.

Затем файловая система считывает корневой каталог и ищет в нем первый компонент пути, usr, чтобы определить номер Ьузла файла /usr. Определить местоположение Ьузла по его номеру несложно, поскольку у каждого из них есть свое фиксированное место на диске. По этому ^узлу файловая система определяет местоположение каталога для Д^г и ищет в нем следующий компонент, ast. Найдя описатель ast, файловая система получает Ьузел для каталога /usr/ast. По этому Ьузлу она может найти сам каталог и искать в нем файл mbox. При этом ^узел файла mbox считывается в память и остается там, пока файл не будет закрыт. Процесс поиска показан на рис. 4.29.

Рис. 4.29. Этапы поиска /usr/ast/mbox


Поиск по относительным именам путей ведется так же, как и по абсолютным, с той лишь разницей, что алгоритм начинает работу не с корневого, а с рабочего каталога. В каждом каталоге есть элементы «.» и «..», помещаемые в каталог в момент его создания. Элемент «.» содержит номер i-узла текущего каталога, а элемент «..» — номер i-узла родительского каталога. Таким образом, процедура, ведущая поиск файла ../dick/prog.c, просто находит «..» в рабочем каталоге, разыскивает в нем номер i-узла родительского каталога, в котором ищет описатель каталога dick. Для обработки этих имен не требуется никакого специального механизма. Что касается системы каталогов, она представляет собой обыкновенные ASCII-строки, ничем не отличающиеся от любых других имен. Единственная тонкость в том, что элемент «..» в корневом каталоге указывает на сам этот каталог.

4.5.3.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Файловая система UNIX V7:

  1. § 39 Классификация договоров в отдельных видах. – Римская классификация. – Система прусского закона, французского и австрийского кодекса. – Система русского свода. – Система настоящего изложения.
  2. Тема 15 Правова система і система права. Система законодавства та систематизація нормативно-правових актів
  3. Глава 4. Система права и система законодательства
  4. §5. Система военных судов в РФ как часть системы судов общей юрисдикции
  5. Единство и взаимосвязь правовой системы и системы правового общества
  6. § 1.3. Система трудового права і система трудового законодавства
  7. Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание, 2007
  8. § 33 Общее правило о переходе наследства к детям. – Отличие отделенных от неотделенных. – Право представления. – Право родительское. – Право боковых родственников. – Римская система определения прав по классам и степеням. – Германская система определения прав по линиям и коленам.
  9. § 14 Отношения супругов по имуществу. – Германское начало общения имуществ в браке и римская система приданого. – Особое имущество жены. – Разнообразные системы западных законодательств. – Раздел имуществ по прекращении брака. – Ограничения брачных договоров и сделок между супругами. – Английский закон об отношениях супругов по имуществу.
  10. § 34 Смешанные системы в новейших законодательствах. – Происходящее от различия сих систем различие в порядке раздела и в допущении права представления. – Ограничение наследственного права пределами родства. – Ограничение женщин. – Разделение наследства между родами. – Возвращение подаренного родителями. – Наследование супругов и незаконных детей и родителей. – Закон наследования в Англии.
  11. Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ, 2015
  12. СИСТЕМА
  13. СИСТЕМА НЕРВНАЯ