Jump to content

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

(Перенаправлено из структуры каталогов Unix )
Структура файловой системы Unix версии 7 : подкаталоги «/» и «/usr».
Обзор Unix структуры файловой системы

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

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

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

Принципы

[ редактировать ]

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

В исходной версии Unix Bell Labs была обычной установка с двумя дисками, где первый диск содержал программы запуска, а второй — файлы и программы пользователей. Этот второй диск был смонтирован в пустой каталог с именем 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) справочная страница начиная с версии 7 Unix ; [ 6 ] последующие версии, производные и клоны обычно имеют аналогичную справочную страницу. [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ]

Детали структуры каталога со временем менялись. Хотя структура файловой системы не является частью Единой спецификации UNIX , существует несколько попыток стандартизировать ее (части), такие как System V бинарный интерфейс приложений , стандарт двоичной совместимости Intel , общая среда операционной системы и Linux Foundation . s Стандарт иерархии файловой системы (FHS). [ 13 ]

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

Каталог или файл Описание
/ Слэш / один только этот символ обозначает корень дерева файловой системы.
/bin
Означает двоичные файлы и содержит некоторые фундаментальные утилиты, такие как ls или cp, которые необходимы для монтирования /usr, если это отдельная файловая система, или для запуска в однопользовательском (административном) режиме, когда /usr невозможно смонтировать. В системе V.4 это символическая ссылка на /usr/bin. В противном случае он должен находиться в самой корневой файловой системе.
/boot
Содержит все файлы, необходимые для успешного процесса загрузки. В Research Unix это был один файл, а не каталог. [ 14 ] В настоящее время обычно в самой корневой файловой системе, если система, загрузчик и т. д. не требуют иного.
/dev
Подставки для устройств . Содержит файловые представления периферийных устройств и псевдоустройств . См. также: Служба присвоения имен и номеров Linux . Должен находиться в самой корневой файловой системе.
/etc
Содержит общесистемные файлы конфигурации и системные базы данных; название означает и так далее [ 14 ] лучшее расширение — это редактируемые текстовые конфигурации но теперь . Первоначально также содержал «опасные утилиты обслуживания», такие как init, [ 6 ] но обычно их перемещают в /sbin или где-то еще. Должен находиться в самой корневой файловой системе.
/home
Содержит домашние каталоги пользователей в Linux и некоторых других системах. В исходной версии Unix домашние каталоги находились в /usr вместо. [ 15 ] Некоторые системы до сих пор используют или использовали разные места: в macOS есть домашние каталоги. /Users, более старые версии BSD помещали их в /u, во FreeBSD есть /usr/home.
/lib
Первоначально необходимые библиотеки : C библиотеки , но не библиотеки Fortran . [ 14 ] В современных системах он содержит общие библиотеки, необходимые программам в /binи, возможно, загружаемый модуль ядра или драйверы устройств . Дистрибутивы Linux могут иметь варианты /lib32 и /lib64 для поддержки мультиархитектуры.
/media
Точка монтирования по умолчанию для съемных устройств, таких как USB-накопители, медиаплееры и т. д. По здравому смыслу сам каталог, подкаталоги которого являются точками монтирования, находится в самом корневом разделе.
/mnt
Подставки для крепления . Пустой каталог, обычно используемый системными администраторами в качестве временной точки монтирования. По здравому смыслу сам каталог, подкаталоги которого являются точками монтирования, находится в самом корневом разделе.
/opt
Содержит локально установленное программное обеспечение. Возник в System V , в которой есть менеджер пакетов , который устанавливает программное обеспечение в этот каталог (один подкаталог на пакет). [ 16 ]
/proc
procfs Виртуальная файловая система , показывающая информацию о процессах в виде файлов.
/root
Домашний каталог суперпользователя root то есть системного администратора. Домашний каталог этой учетной записи обычно находится в исходной файловой системе и, следовательно, не в /home (который может быть точкой монтирования для другой файловой системы) на случай, если потребуется выполнить определенное обслуживание, во время которого другие файловые системы недоступны. Такая ситуация может произойти, например, если жесткий диск вышел из строя и его невозможно правильно смонтировать.
/sbin
Означает « системные (или суперпользовательские) двоичные файлы » и содержит фундаментальные утилиты, такие как init, обычно требуется для запуска, обслуживания и восстановления системы. Должен находиться в самом корневом разделе.
/srv
Данные сервера (данные об услугах, предоставляемых системой).
/sys
В некоторых дистрибутивах Linux содержит sysfs виртуальную файловую систему , содержащую информацию, относящуюся к оборудованию и операционной системе. В системах BSD обычно это символическая ссылка на исходные коды ядра в /usr/src/sys.
/tmp
Место для временных файлов, которые не сохранятся после перезагрузки. Многие системы очищают этот каталог при запуске или используют для его реализации tmpfs .
/unix
Unix Ядро в Research Unix и System V. [ 14 ] С добавлением поддержки виртуальной памяти в 3BSD она была переименована. /vmunix.
/usr
«Файловая система пользователя»: первоначально каталог, содержащий домашние каталоги пользователей, [ 15 ] но уже к Третьему изданию Research Unix , ок. 1973 года, повторно использовался для разделения программ операционной системы на два диска (один из них представлял собой диск с фиксированной головкой емкостью 256 КБ), так что основные команды либо появлялись на /bin или /usr/bin. [ 17 ] Теперь он содержит исполняемые файлы, библиотеки и общие ресурсы, которые не являются критическими для системы, такие как система X Window , оконные менеджеры , языки сценариев и т. д. В старых системах Unix домашние каталоги пользователей все еще могут появляться в /usr наряду с каталогами, содержащими программы, хотя к 1984 году это зависело от местных обычаев. [ 14 ]
/usr/include
Хранит заголовки разработки, используемые во всей системе. Заголовочные файлы в основном используются #include директива на языке C , исторически именно так было выбрано имя этого каталога.
/usr/lib
Хранит необходимые библиотеки и файлы данных для программ, хранящихся внутри. /usr или где-то еще.
/usr/libexec
Содержит программы, предназначенные для выполнения другими программами, а не непосредственно пользователями. Например, Sendmail . в этом каталоге можно найти исполняемый файл [ 18 ] Не присутствует в FHS до 2011 года; [ 19 ] Дистрибутивы Linux традиционно перемещали содержимое этого каталога в /usr/lib, где они также находились в 4.3BSD.
/usr/local
Напоминает /usr по структуре, но его подкаталоги используются для дополнений, не являющихся частью дистрибутива операционной системы, таких как пользовательские программы или файлы из BSD коллекции портов . Обычно имеет подкаталоги, такие как /usr/local/lib или /usr/local/bin.
/usr/share
Данные программы, не зависящие от архитектуры. В Linux и современных производных BSD этот каталог имеет подкаталоги, такие как man для страниц руководства , которые раньше располагались непосредственно под /usr в старых версиях.
/var
Обозначает переменную . Место для файлов, которые могут часто меняться, особенно по размеру, например электронные письма, отправляемые пользователям системы, или файлы блокировки идентификатора процесса .
/var/log
Содержит файлы системного журнала.
/var/mail
Место, где хранится вся входящая почта. Пользователи (кроме root) могут получить доступ только к своей почте. Часто этот каталог представляет собой символическую ссылку на /var/spool/mail.
/var/spool
спула Каталог . Содержит задания печати, почтовые спулы и другие задачи, поставленные в очередь.
/var/src
Место, где находится некомпилированный исходный код некоторых программ.
/var/tmp
The /var/tmp Каталог — это место для временных файлов, которые следует сохранять между перезагрузками системы.

См. также

[ редактировать ]
  1. ^ Jump up to: а б с д и Ричи, DM ; Томпсон, К. (июль 1978 г.). «Система разделения времени UNIX». Белл Систем Тех. Дж . 57 (6): 1905–1929. CiteSeerX   10.1.1.112.595 . дои : 10.1002/j.1538-7305.1978.tb02136.x .
  2. ^ Jump up to: а б Ричи, Деннис М. (1979). Эволюция системы разделения времени Unix . Конференция по языковому дизайну и методологии программирования.
  3. ^ Jump up to: а б Леффлер, Сэмюэл Дж .; МакКьюсик, Маршалл Кирк ; Карелс, Майкл Дж .; Квартерман, Джон С. (октябрь 1989 г.). Проектирование и реализация операционной системы UNIX 4.3BSD . Аддисон-Уэсли . ISBN  978-0-201-06196-3 .
  4. ^ МакКьюсик, Маршалл Кирк; и др. «Быстрая файловая система для Unix» (PDF) . Freebsd.org . CSRG, Калифорнийский университет в Беркли . Проверено 16 ноября 2016 г.
  5. ^ stat(2) Linux программиста Руководство – Системные вызовы
  6. ^ Jump up to: а б 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-журнал . Проверено 13 ноября 2014 г.
  14. ^ Jump up to: а б с д и Керниган, Брайан В .; Пайк, Роб (1984). Среда программирования UNIX . Прентис-Холл. стр. 63–65 . Бибкод : 1984upe..book.....K .
  15. ^ Jump up to: а б Ричи, Деннис. «Заметки Unix от 1972 года» . Проверено 14 января 2018 г.
  16. ^ Двоичный интерфейс приложения System V , версия 4.1 (18 марта 1997 г.)
  17. ^ Доктор медицины Макилрой (1987). «Исследовательская программа для чтения Unix: аннотированные выдержки из Руководства программиста, 1971–1986» (PDF) . Лаборатории Белла. ЦСТР 139.
  18. ^ «Глава 7. sendmail» . UNICOS /mp Администрирование сетевых средств . Крей . Проверено 14 сентября 2013 г.
  19. ^ «версия fhs-spec 44» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: eaac86c9302520bb98ba301b60b751c7__1710649980
URL1:https://arc.ask3.ru/arc/aa/ea/c7/eaac86c9302520bb98ba301b60b751c7.html
Заголовок, (Title) документа по адресу, URL1:
Unix filesystem - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)