Операционные системы/Примеры реализаций файловых систем. Организация файловой системы OC UNIX
Материал из eSyr's wiki.
Появление ФС UNIX совершило революцию в файловых системах по нескольким направлениям – в системном программном обеспечении, в организации ОС.
Причины:
- UNIX был первой ОС, разработанной с помощью языка высокого уровня.
- Элегантная и развитая система управления процессами.
- Древовидная организация ФС. (Древовидная в общем случае, но есть средства нарушающие древовидность). Такая организация впервые появилась не в UNIX, это было заимствовано из Multix, однако UNIX - первая файловая система с древовидной организацией, которая получила широкое распространение.
- Использование концепции файлов. Все представляется в виде файлов. Все работает через унифицированный интерфейс.
Содержание |
[править] Организация ФС Unix
Файловая система операционной системы UNIX является примером многопользовательской иерархической файловой системы с трехуровневой организацией прав доступа к содержимому файлов.
Файл Unix – это специальным образом именованный набор данных, размещенный в файловой системе. Типы файлов в UNIX:
- обычный файл (regular file) – традиционный тип файла, содержащий данные пользователя. Интерпретация содержимого файла производится программой, обрабатывающей файл.
OC Unix трактует понятие файла шире традиционного. В частности, в системе в качестве файла рассматриваются:
- каталог (directory) – специальный файл, обеспечивающий иерархическую организацию файловой системы. С каталогом ассоциируются все файлы, которые принадлежат данному каталогу.
- специальный файл устройста (special device file) – cистема позволяет ассоциировать внешние устройства с драйверами и предоставляет доступ к внешним устройствам, согласно общим интерфейсам работы с файлами.
- именованный канал (named pipe) – специальная разновидность файлов, позволяющая организовывать передачу данных между взаимодействующими процессами;
- ссылка (link) – позволяет создавать дополнительные ссылки к содержимому файла из различных точек файловой системы; Они могут нарушать древовидность организации ФС.
- сокет (socket) – средство взаимодействия процессов в пределах сети ЭВМ.
[править] Права доступа
Категории пользователей:
- пользователь (владелец)
- группа (всепользователи, которые принадлежат группе владельца за исключением самого владельца)
- остальные (все пользователи системы, за исключением группы владельца и самого владельца)
Права
- на чтение
- на запись
- на исполнение (исполняемым файлом может быть только файл, полученный в результате сборки или командный файл)
Интерпретация этих прав зависит от типа файла.
Так для обычных файлов это традиционные права на чтение, запись данных файла и исполнение содержимого файла в качестве процесса. Интерпретация прав доступа для других типов файлов может различаться. Например, для файлов каталогов это:
- право на чтение каталога – получение списка имен файлов;
- право на исполнение каталога – получение дополнительной информации о файлах (т.е. тогда, когда требуется информация, большая чем имя файла), право на использование каталога в качестве текущего, возможность использования имени каталога внутри имени файла;
- право на запись – возможность создания, переименования и удаления файла в каталоге.
[править] Логическая структура каталогов
Все UNIX-системы имеют соглашения о логической структуре каталогов, расположенных в корне файловой системы. Это упрощает работу операционной системы, ее обслуживание и переносимость. Эти соглашения используются при работе почтовой системы, системы печати и т.д.
Содержимое основных каталогов:
- Корневой каталог / является основой любой файловой системы ОС UNIX. Все остальные файлы и каталоги располагаются в рамках структуры, порожденной корневым каталогом, независимо от их физического положения на диске.
- /unix - файл загрузки ядра ОС.
- /bin - файлы, реализующие общедоступные команды системы.
- /etc - в этом каталоге находятся файлы, определяющие настройки системы (в частности, файл passwd), а также команды, необходимые для управления содержимым подобных специальных файлов.
- /tmp - каталог для хранения временных системных файлов. При перезагрузке системы не гарантируется сохранение его содержимого. Обычно этот каталог открыт на запись для всех пользователей системы.
- /mnt - каталог, к которому осуществляется монтирование дополнительных физических файловых систем для получения единого дерева логической файловой системы. Заметим, что это лишь соглашение, в общем случае можно примонтировать к любому каталогу.
- /dev - каталог содержит специальные файлы устройств, с которыми ассоциированы драйверы устройств. Каждый из файлов имеет ссылку на соответствующий драйвер и указание типа устройства (блок- или байт-ориентированные). Этот каталог может содержать несколько подкаталогов, группирующих специальные файлы по типам. Таким образом, имеется возможность легко добавлять и удалять новые устройства в систему.
- /lib - здесь находятся библиотечные файлы языка Си и других языков программирования.
- /usr - размещается вся информация, связанная с обеспечением работы пользователей. Здесь также имеется
- подкаталог, содержащий часть библиотечных файлов (/usr/lib),
- подкаталог /usr/users (или /usr/home), который становится текущим при входе пользователя в систему,
- подкаталог, где находятся дополнительные команды (/usr/bin),
- подкаталог, содержащий файлы заголовков (/usr/include), в котором, в свою очередь, подкаталог, содержащий include-файлы, характеризующие работу системы (например, signal.h - интерпретация сигналов).