Користувач:Pavlius Bodya/Чернетка

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

У Unix та операційних системах, створених нею, файлова система вважається центральним компонентом операційної системи. Це також була одна з перших частин системи, розроблена та реалізована Кеном Томпсоном у першій експериментальній версії Unix, датованій 1969 роком. Як і в інших операційних системах, файлова система забезпечує зберігання та пошук інформації, а також одну з кількох форм міжпроцесного зв'язку, оскільки багато невеликих програм, які традиційно утворюють систему Unix, можуть зберігати інформацію у файлах, щоб інші програми могли їх читати, хоча канали доповнив його в цій ролі, починаючи з третього видання. Крім того, файлова система надає доступ до інших ресурсів через так звані файли пристроїв, які є точками входу до терміналів, принтерів і мишей.

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

Принципи[ред. | ред. код]

Файлова система виглядає як одне кореневе дерево каталогів. Замість того, щоб адресувати окремі томи, такі як розділи дисків, знімні носії та мережеві спільні ресурси, як окремі дерева (як це робиться в DOS і Windows: кожен диск має літеру диска, яка позначає корінь його файлу системне дерево), такі томи можуть бути змонтовані в каталозі, внаслідок чого дерево файлової системи тома відображатиметься як цей каталог у більшому дереві. Корінь усього дерева позначається /.

У оригінальній системі Bell Labs Unix була звичайна установка на двох дисках, коли перший диск містив програми запуску, а другий — файли та програми користувачів. Цей другий диск був змонтований у порожньому каталозі з назвою usr на першому диску, внаслідок чого два диски відображалися як одна файлова система, а вміст другого диска можна було переглянути за адресою /usr.

Каталоги Unix не містять файлів. Натомість вони містять імена файлів у парі з посиланнями на так звані inodes, які, у свою чергу, містять як файл, так і його метадані (власник, дозволи, час останнього доступу тощо, але без імені). Кілька імен у файловій системі можуть посилатися на один і той же файл, функція, яка називається жорстким посиланням. Математичні властивості жорстких посилань роблять файлову систему обмеженим типом орієнтованого ациклічного графа, хоча каталоги все ще утворюють дерево, оскільки зазвичай можуть не бути жорстко пов'язаним. (Як спочатку передбачалося в 1969 році, файлова система Unix фактично використовуватиметься як загальний графік із жорсткими посиланнями на каталоги, що забезпечують навігацію, замість імен шляхів.)

Типи файлів[ред. | ред. код]

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

BSD також додав символічні посилання (часто звані «символьними посиланнями») до діапазону типів файлів, які є файлами, які посилаються на інші файли та доповнюють жорсткі посилання. Символьні посилання були змодельовані за аналогічною функцією в Multics і відрізняються від жорстких посилань тим, що вони можуть охоплювати файлові системи і що їх існування не залежить від цільового об’єкта. Інші системи Unix можуть підтримувати додаткові типи файлів.

Звичайний макет каталогу[ред. | ред. код]

Існують певні угоди щодо розташування деяких типів файлів, таких як програми, файли конфігурації системи та домашні каталоги користувачів. Вони вперше були задокументовані на сторінці керівництва hier(7) з версії 7 Unix; наступні версії, похідні та клони зазвичай мають подібну довідкову сторінку.

Деталі макета каталогу з часом змінювалися. Хоча макет файлової системи не є частиною Єдиної специфікації UNIX, існує кілька спроб стандартизувати її (частини), наприклад двійковий інтерфейс додатків System V, стандарт бінарної сумісності Intel, загальне середовище операційної системи та файлову систему Linux Foundation. Стандарт ієрархії (FHS).

Ось загальний огляд поширених місць розташування файлів в операційній системі Unix:

Каталог або файл Опис
/ Символ похилий риски / лише позначає корінь дерева файлової системи.
/bin
Означає двійкові файли та містить певні основні утиліти, такі як ls або cp, які необхідні для монтування /usr, якщо це окрема файлова система , або для запуску в режимі одного користувача (адміністративного), коли /usr неможливо змонтувати. У системі V.4 це символічне посилання на /usr/bin. В іншому випадку він повинен знаходитися в самій кореневій файловій системі.
/boot
Містить усі файли, необхідні для успішного процесу завантаження. У Research Unix це був один файл, а не каталог. Зараз зазвичай на самій кореневій файловій системі, якщо система, завантажувач тощо не вимагають іншого.
/dev
Stands for devices. Contains file representations of peripheral devices and [[Device file and pseudo-devices. See also: Linux Assigned Names and Numbers Authority]. Needs to be on the root filesystem itself.
/etc
Містить загальносистемні файли конфігурації та системні бази даних; назва означає і так далі, але тепер кращим розширенням є editable-text-configurations. Спочатку також містили «небезпечні утиліти обслуговування», такі як init, але зазвичай вони були переміщені в /sbin або в інше місце. Має бути в самій кореневій файловій системі.
/home
Містить домашні каталоги користувачів у Linux та деяких інших системах. У початковій версії Unix домашні каталоги були в /usr. Деякі системи використовують або досі використовували інші місця розташування: macOS має домашні каталоги в /Users, старіші версії BSD розміщують їх у /u, FreeBSD має /usr/home .
/lib
Спочатку основні бібліотеки: бібліотеки C, але не Fortran. У сучасних системах він містить необхідні спільні бібліотеки програмами в /bin і, можливо, модуль ядра, що завантажується або драйвер пристрою. Дистрибутиви Linux можуть мати варіанти /lib32 і /lib64 для підтримки кількох архітектур.|-
/media
Точка монтування за замовчуванням для знімних пристроїв, таких як USB-накопичувачі, медіаплеєри тощо. За здоровим глуздом сам каталог, підкаталоги якого є точками монтування, знаходиться на самому кореневому розділі.
/mnt
Розшифровується як mount. Порожній каталог, який зазвичай використовується системними адміністраторами як тимчасова точка монтування. За здоровим глуздом сам каталог, підкаталоги якого є точками монтування, знаходиться на самому кореневому розділі.
/opt
Містить локально встановлене програмне забезпечення. Виникла в System V, яка має менеджер пакетів, який встановлює програмне забезпечення до цього каталогу (один підкаталог на пакет).
/proc
procfs віртуальна файлова система, що відображає інформацію про процеси у вигляді файлів.
/root
Домашній каталог для root суперкористувача, тобто системного адміністратора. Домашній каталог цього облікового запису зазвичай знаходиться в початковій файловій системі, а отже, не в /home (яка може бути точкою монтування іншої файлової системи), якщо необхідно виконати особливе обслуговування, під час якого інші файлові системи недоступні. Такий випадок може статися, наприклад, якщо жорсткий диск виходить з ладу і його неможливо правильно змонтувати. За умовою, цей каталог знаходиться на самому кореневому розділі; у будь-якому випадку, це не посилання на /home/root або щось подібне.
/sbin
Розшифровується як "системні (або суперкористувач) двійкові файли" і містить основні утиліти, такі як init, зазвичай необхідні для запуску, підтримки та відновлення системи. Має бути на самому кореневому розділі.
/srv
Дані сервера (дані про послуги, що надаються системою).
/sys
файлова система, що містить інформацію, пов’язану з обладнанням та операційною системою. У системах BSD зазвичай символьне посилання на джерела ядра в /usr/src/sys.
/tmp
Місце для тимчасових файлів, які не витримають перезавантаження. Багато систем очищають цей каталог під час запуску або використовують tmpfs для його реалізації.
/unix
3BSD]], це було перейменовано в /vmunix.
/usr
«Файлова система користувача»: спочатку каталог, що містив домашні каталоги користувачів, але вже до третього видання Research Unix, бл. 1973, повторно використаний для розділення програм операційної системи на два диски (один з них 256K диск з фіксованою головкою), щоб основні команди з'являлися в /bin або /usr/bin.M. Д. Макілрой (1987). Reader Research Unix: анотовані витяги з Посібника програміста, 1971–1986. CSTR 139, Bell Labs. Тепер він містить виконувані файли, бібліотеки та спільні ресурси, які не є критичними для системи, як-от X Window System, KDE, Perl тощо. У старих системах Unix домашні каталоги користувачів все ще могли з'являтися в /usr поряд з каталогами, що містять програми, хоча до 1984 року це залежало від місцевих звичаїв.
/include
Зберігає заголовки розробки, які використовуються в усій системі. Файли Header file здебільшого використовуються директивою #include у мові C, якою раніше було обрано назву цього каталогу.
/lib
Зберігає необхідні бібліотеки та файли даних для програм, що зберігаються в /usr або в іншому місці.
/libexec
Зберігає програми, призначені для виконання іншими програмами, а не безпосередньо користувачами. Наприклад, у цьому каталозі можна знайти виконуваний файл Sendmail. Немає в FHS до 2011 року; Дистрибутиви Linux традиційно переміщують вміст цього каталогу в /usr/lib, де вони також перебувають у 4.3BSD.
/local
Resembles /usr in structure, but its subdirectories are used for additions not part of the operating system distribution, such as custom programs or files from a BSD Ports collection. Usually has subdirectories such as /usr/local/lib or /usr/local/bin.
/share
Незалежні від архітектури програмні дані. У Linux і сучасних похідних BSD цей каталог має підкаталоги, такі як man для manpages, які раніше відображалися безпосередньо під /usr у старих версіях.
/var
Розшифровується як «змінна». Місце для файлів, які можуть часто змінюватися – особливо за розміром, наприклад електронні листи, надіслані користувачам у системі, або ідентифікатори процесу lock file.
/log
Містить файли системного журналу.
/mail
Місце, де зберігається вся вхідна пошта. Користувачі (окрім root) мають доступ лише до власної пошти. Часто цей каталог є символічним посиланням для /var/spool/mail.
/spool
Spool каталог. Містить завдання друку, спулювання пошти та інші завдання в черзі.
/src
Місце, де знаходиться некомпільований вихідний код деяких програм.
/tmp
Каталог /var/tmp – це місце для тимчасових файлів, які повинні зберігатися між перезавантаженнями системи.

Дивись також[ред. | ред. код]

Посилання[ред. | ред. код]