Операционные системы/Примеры реализаций файловых систем. Организация файловой системы OC UNIX

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Появление ФС UNIX совершило революцию в файловых системах по нескольким направлениям – в системном программном обеспечении, в организации ОС.

Причины:

  1. UNIX был первой ОС, разработанной с помощью языка высокого уровня.
  2. Элегантная и развитая система управления процессами.
  3. Древовидная организация ФС. (Древовидная в общем случае, но есть средства нарушающие древовидность). Такая организация впервые появилась не в UNIX, это было заимствовано из Multix, однако UNIX - первая файловая система с древовидной организацией, которая получила широкое распространение.
  4. Использование концепции файлов. Все представляется в виде файлов. Все работает через унифицированный интерфейс.

Содержание

[править] Организация ФС Unix

Файловая система операционной системы UNIX является примером многопользовательской иерархической файловой системы с трехуровневой организацией прав доступа к содержимому файлов.

Файл Unix – это специальным образом именованный набор данных, размещенный в файловой системе. Типы файлов в UNIX:

  • обычный файл (regular file) – традиционный тип файла, содержащий данные пользователя. Интерпретация содержимого файла производится программой, обрабатывающей файл.

OC Unix трактует понятие файла шире традиционного. В частности, в системе в качестве файла рассматриваются:

  • каталог (directory) – специальный файл, обеспечивающий иерархическую организацию файловой системы. С каталогом ассоциируются все файлы, которые принадлежат данному каталогу.
  • специальный файл устройста (special device file) – cистема позволяет ассоциировать внешние устройства с драйверами и предоставляет доступ к внешним устройствам, согласно общим интерфейсам работы с файлами.
  • именованный канал (named pipe) – специальная разновидность файлов, позволяющая организовывать передачу данных между взаимодействующими процессами;
  • ссылка (link) – позволяет создавать дополнительные ссылки к содержимому файла из различных точек файловой системы; Они могут нарушать древовидность организации ФС.
  • сокет (socket) – средство взаимодействия процессов в пределах сети ЭВМ.

[править] Права доступа

Категории пользователей:

  1. пользователь (владелец)
  2. группа (всепользователи, которые принадлежат группе владельца за исключением самого владельца)
  3. остальные (все пользователи системы, за исключением группы владельца и самого владельца)

Права

  1. на чтение
  2. на запись
  3. на исполнение (исполняемым файлом может быть только файл, полученный в результате сборки или командный файл)

Интерпретация этих прав зависит от типа файла.

Так для обычных файлов это традиционные права на чтение, запись данных файла и исполнение содержимого файла в качестве процесса. Интерпретация прав доступа для других типов файлов может различаться. Например, для файлов каталогов это:

  • право на чтение каталога – получение списка имен файлов;
  • право на исполнение каталога – получение дополнительной информации о файлах (т.е. тогда, когда требуется информация, большая чем имя файла), право на использование каталога в качестве текущего, возможность использования имени каталога внутри имени файла;
  • право на запись – возможность создания, переименования и удаления файла в каталоге.

[править] Логическая структура каталогов

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

Содержимое основных каталогов:

  • Корневой каталог / является основой любой файловой системы ОС UNIX. Все остальные файлы и каталоги располагаются в рамках структуры, порожденной корневым каталогом, независимо от их физического положения на диске.
  • /unix - файл загрузки ядра ОС.
  • /bin - файлы, реализующие общедоступные команды системы.
  • /etc - в этом каталоге находятся файлы, определяющие настройки системы (в частности, файл passwd), а также команды, необходимые для управления содержимым подобных специальных файлов.
  • /tmp - каталог для хранения временных системных файлов. При перезагрузке системы не гарантируется сохранение его содержимого. Обычно этот каталог открыт на запись для всех пользователей системы.
  • /mnt - каталог, к которому осуществляется монтирование дополнительных физических файловых систем для получения единого дерева логической файловой системы. Заметим, что это лишь соглашение, в общем случае можно примонтировать к любому каталогу.
  • /dev - каталог содержит специальные файлы устройств, с которыми ассоциированы драйверы устройств. Каждый из файлов имеет ссылку на соответствующий драйвер и указание типа устройства (блок- или байт-ориентированные). Этот каталог может содержать несколько подкаталогов, группирующих специальные файлы по типам. Таким образом, имеется возможность легко добавлять и удалять новые устройства в систему.
  • /lib - здесь находятся библиотечные файлы языка Си и других языков программирования.
  • /usr - размещается вся информация, связанная с обеспечением работы пользователей. Здесь также имеется
    • подкаталог, содержащий часть библиотечных файлов (/usr/lib),
    • подкаталог /usr/users (или /usr/home), который становится текущим при входе пользователя в систему,
    • подкаталог, где находятся дополнительные команды (/usr/bin),
    • подкаталог, содержащий файлы заголовков (/usr/include), в котором, в свою очередь, подкаталог, содержащий include-файлы, характеризующие работу системы (например, signal.h - интерпретация сигналов).
Личные инструменты
Разделы