stringtranslate.com

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

Структура файловой системы Unix версии 7 : подкаталоги "/" и "/usr"
Обзор структуры файловой системы Unix

В Unix и операционных системах, созданных на его основе, файловая система считается центральным компонентом операционной системы. [1] Она также была одной из первых частей системы, разработанной и реализованной Кеном Томпсоном в первой экспериментальной версии Unix, датированной 1969 годом . [2]

Как и в других операционных системах, файловая система обеспечивает хранение и извлечение информации, а также одну из нескольких форм межпроцессного взаимодействия , в том смысле, что множество небольших программ, которые традиционно образуют систему Unix, могут хранить информацию в файлах, чтобы другие программы могли ее читать, хотя каналы дополняли ее в этой роли, начиная с третьего издания . Кроме того, файловая система обеспечивает доступ к другим ресурсам через так называемые файлы устройств , которые являются точками входа для терминалов , принтеров и мышей .

В остальной части статьи Unix используется как общее название для обозначения как оригинальной операционной системы Unix, так и ее многочисленных аналогов .

Принципы

Файловая система выглядит как одно корневое дерево каталогов. [1] Вместо того, чтобы обращаться к отдельным томам, таким как разделы диска , съемные носители и сетевые папки , как к отдельным деревьям (как это делается в DOS и Windows : каждый диск имеет букву диска, которая обозначает корень его дерева файловой системы), такие тома можно монтировать в каталог, в результате чего дерево файловой системы тома будет отображаться как этот каталог в более крупном дереве. [1] Корень всего дерева обозначается /.

В оригинальной Bell Labs Unix была принята двухдисковая конфигурация, где первый диск содержал программы запуска, а второй — файлы и программы пользователей. Этот второй диск был смонтирован в пустой каталог, указанный usrна первом диске, в результате чего два диска отображались как одна файловая система, а содержимое второго диска можно было просмотреть по адресу /usr.

Каталоги Unix не содержат файлов. Вместо этого они содержат имена файлов в паре со ссылками на так называемые inodes , которые в свою очередь содержат как файл, так и его метаданные (владелец, разрешения, время последнего доступа и т. д., но не имя). Несколько имен в файловой системе могут ссылаться на один и тот же файл, эта функция называется жесткой ссылкой . [1] Математические характеристики жестких ссылок делают файловую систему ограниченным типом направленного ациклического графа , хотя каталоги по-прежнему образуют дерево, поскольку они, как правило, не могут быть жестко связаны. (Как первоначально предполагалось в 1969 году, файловая система Unix фактически будет использоваться как общий граф с жесткими ссылками на каталоги, предоставляющие навигацию, вместо имен путей. [2] )

Типы файлов

Первоначальная файловая система Unix поддерживала три типа файлов: обычные файлы, каталоги и «специальные файлы», также называемые файлами устройств. [1] Berkeley Software Distribution (BSD) и System V добавили тип файла, который использовался для межпроцессного взаимодействия : BSD добавила сокеты , [3] а System V добавила файлы FIFO .

BSD также добавила символические ссылки (часто называемые «симлинками») к диапазону типов файлов, которые являются файлами, ссылающимися на другие файлы, и дополняют жесткие ссылки. [3] Символические ссылки были смоделированы по образцу аналогичной функции в Multics , [4] и отличаются от жестких ссылок тем, что они могут охватывать файловые системы и что их существование не зависит от целевого объекта. Другие системы Unix могут поддерживать дополнительные типы файлов. [5]

Традиционная структура каталога

Существуют определенные соглашения для поиска некоторых видов файлов, таких как программы, файлы конфигурации системы и домашние каталоги пользователей . Они были впервые задокументированы в hier(7) man-странице начиная с версии 7 Unix ; [6] последующие версии, производные и клоны обычно имеют похожую man-страницу. [7] [8] [9] [10] [11] [12]

Детали структуры каталогов со временем менялись. Хотя структура файловой системы не является частью спецификации Single UNIX , существует несколько попыток стандартизировать (части) ее, например, System V Application Binary Interface , Intel Binary Compatibility Standard , Common Operating System Environment и Linux Foundation Filesystem Hierarchy Standard (FHS). [13]

Ниже представлен обобщенный обзор типичных расположений файлов в операционной системе Unix:

Смотрите также

Ссылки

  1. ^ abcde Ritchie, DM ; Thompson, K. (июль 1978 г.). "Система разделения времени UNIX". Bell System Tech. J . 57 (6): 1905–1929. CiteSeerX  10.1.1.112.595 . doi :10.1002/j.1538-7305.1978.tb02136.x.
  2. ^ ab Ritchie, Dennis M. (1979). Эволюция системы разделения времени Unix. Конференция по проектированию языков и методологии программирования.
  3. ^ ab Leffler, Samuel J. ; McKusick, Marshall Kirk ; Karels, Michael J. ; Quarterman, John S. (октябрь 1989 г.). Проектирование и реализация операционной системы 4.3BSD UNIX . Addison-Wesley . ISBN 978-0-201-06196-3.
  4. ^ МакКьюсик, Маршалл Кирк и др. «Быстрая файловая система для Unix» (PDF) . Freebsd.org . CSRG, Калифорнийский университет в Беркли . Получено 16 ноября 2016 г.
  5. ^ stat(2)  –  Руководство программиста Linux – Системные вызовы
  6. ^ ab hier(7) –  Руководство программиста Unix версии 7
  7. ^ hier(7)  –  Руководство по FreeBSD. Разная информация
  8. ^ hier(7)  –  Руководство по различным сведениям OpenBSD
  9. ^ "страница руководства hier(7) для 2.9.1 BSD".
  10. ^ "Справочная страница hier(7) для ULTRIX 4.2" .
  11. ^ "страница руководства hier(7) для SunOS 4.1.3".
  12. ^ hier(7)  –  Руководство программиста Linux – Обзор, соглашения и разное
  13. Джордж Крафт IV (1 ноября 2000 г.). «Где установить мои продукты в Linux?». Linux Journal . Получено 13 ноября 2014 г.
  14. ^ abcde Керниган, Брайан В .; Пайк, Роб (1984). Среда программирования UNIX . Prentice-Hall. стр. 63–65. Bibcode :1984upe..book.....K.
  15. ^ ab Ritchie, Dennis. "Unix Notes from 1972" . Получено 14 января 2018 г. .
  16. System V Application Binary Interface Edition 4.1 (1997-03-18)
  17. ^ МД Макилрой (1987). «Исследовательский ридер Unix: аннотированные выдержки из Руководства программиста, 1971–1986» (PDF) . Bell Labs. CSTR 139.
  18. ^ "Глава 7. sendmail". UNICOS /mp Networking Facilities Administration . Cray . Получено 14 сентября 2013 г. .
  19. ^ "fhs-spec revision 44".