Чи обмежує POSIX кількість каталогів у корені OS?


12

Я намагаюся вивчити стандарт POSIX. При використанні Unix, я /bin, /etc, /dev, /media, і , як правило /opt, але в тому , що стандартизовані або до вашої специфікації реалізації? Чи може бути багато каталогів у корені чи це обмежено стандартом?


3
POSIX не торкається цієї області.
Томас Дікі

Відповіді:


17

Відповідно до опублікованого стандарту The Open Group , єдині необхідні каталоги:

  • /
  • /dev, В якому міститься console, nullіtty
  • /tmp, гарантоване для запису, але не обов'язково зберігається.

Фундація Linux підтримує стандарт ієрархії файлової системи (FHS), який розширює це, включаючи каталоги, які ви зазвичай бачите в системі Linux:

  • /bin: Основні бінарні команди команд
  • /boot: Статичні файли завантажувача
  • /dev: Файли пристроїв
  • /etc: Конфігурація системи, що залежить від хоста
  • /home: Домашні каталоги користувачів (необов’язково)
  • /lib: Основні спільні бібліотеки та модулі ядра
  • /lib<qual>: Основні спільні бібліотеки альтернативного формату (необов’язково)
  • /media: Точка кріплення для знімних носіїв
  • /mnt: Точка кріплення для тимчасово встановленої файлової системи
  • /opt: Додаткові пакети прикладних програм
  • /root: Домашній каталог для кореневого користувача (необов’язково)
  • /run: Дані змінної часу виконання
  • /sbin: Системні бінарні файли
  • /srv: Дані для послуг, що надаються цією системою
  • /tmp: Тимчасові файли
  • А також /usrієрархія та /varієрархія

FHS був розроблений таким чином, щоб бути максимально загальним, щоб забезпечити можливість включення в будь-яку систему UNIX. Додаткові каталоги, ймовірно, існують у будь-якій розумній системі, але POSIX цього не вимагає.

Однак зауважте, що Відкрита група також це стверджує

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

Оскільки каталоги насправді є лише файлами, це означає, що суворо відповідна програма не створюватиме файлів чи каталогів на рівні коренів. Отже, POSIX не обов'язково обмежує те, що може бути розміщений на кореневому рівні, але, схоже, заявляє, що програма, що відповідає його специфікації, не може припускати, що це зможе.


5
Питання полягало не в тому, які каталоги є стандартними , але запитували, чи є обмеження . POSIX не відповідає на це запитання.
Томас Дікі

Він додає думку, не вказуючи на цитату POSIX.
Томас Дікі

Останній абзац - це те, про що я згадував: "здається, заявляє". POSIX уникає згадування обмеження в цій області, зосереджуючись на спільності, а не на відмінностях.
Томас Дікі

1
Дякую Фокс. Вашою відповіддю була інформація, яку я шукав.
Ніклас

13

У 10.1 Структура та файли каталогів POSIX перераховує каталоги, які повинні існувати. Але він не вказує обмеження на кількість інших каталогів, які можуть існувати на кореневому рівні файлової системи.

З цього питання, здається, не розміщувати обмежень щодо розміру інших каталогів.

Увага POSIX у цій галузі зосереджена на спільності, а не на відмінностях.


Оскільки в системі * nix потенційно кожен каталог (в тому числі /) може бути кореневим каталогом, було б досить нерозумно накладати верхню межу кількості записів у кореневому каталозі. /не особливо особливий у цьому плані, тому випливає, що було б досить однаково глупо встановити верхню межу кількості записів /конкретно.
CVn

8

Немає обмежень у кількості записів у каталозі, ні в POSIX, ні в типових реалізаціях Unix. Можливо, існує непрямий ліміт кількості підкаталогів, який є максимальним числом жорстких посилань (запис кожного підкаталога ..- це посилання на каталог); це 2 16 для багатьох поширених файлових систем, що обмежує каталог до 65533 підкаталогів (принаймні для тих файлових систем, які ..явно зберігають записи). Ви почнете вражати низьку продуктивність до цього. Згідно з POSIX, реалізація може підтримувати лише 8 жорстких посилань на файл ( _POSIX_LINK_MAX), але жодна реальна реалізація не обмежується 6 підкаталогами. І в будь-якому випадку, у багатьох файлових системах, включаючи ext4, кількість жорстких посилань не підтримується.. записів, тому єдиним обмеженням є кількість місця або кількість входів у файловій системі.

POSIX не дуже багато говорить про організацію файлів у системі. Він лише вимагає наявності кількох файлів . Єдиними обов'язковими записами в кореневому каталозі є /devі /tmp. Інші звичні записи Unix , такі як /usr, /var, /bin, /etc, /lib, /homeі т.д., Unix конвенцій, що не кодифіковані POSIX.

У Linux FHS кодифікує класику та ще пару. Більшість дистрибутивів Linux дотримуються записів FHS. Інші системи Unix, як правило, мають однакові записи, можливо, з кількома відмінностями, але кількість приблизно однакова.

Системні адміністратори можуть створювати більше, хоча це перешкоджає: є більш чітко визначені місця для більшості речей (програмне забезпечення перебуває під, /usrабо /optсистемні дані підпадають /var, дані користувачів підпадають /net, точки монтажу йдуть під /mediaабо /mntтощо), тому рідко будь-яка вагома причина для створення нових каталогів на найвищому рівні.


Це неправильно. Більшість "розумних" файлових систем мають максимальну кількість підкаталогів у каталозі або максимальну кількість входів на пристрій. Однак зазвичай це непристойно велике відносно кількості каталогів, які ви, ймовірно, побачите в корені диска.
Кевін

@Kevin О, хороший момент, у звичайних файлових системах ви спочатку досягнете максимального числа жорстких посилань, і це може бути аж 16 біт.
Жил "ТАК - перестань бути злим"

@Kevin Хоча це не так у ext4, не може бути обмежено кількість підкаталогів, окрім наявного простору (блоків чи вкладів). Чи думали ви про якесь інше обмеження кількості підкаталогів у каталозі?
Жил "ТАК - перестань бути злим"

Правильно розроблена файлова система не створює жорстких посилань на записи каталогу ... У правильно розробленій файловій системі кількість посилань каталогів дорівнює 1, якщо немає жорстких посилань, створених вручну.
шилі

1
Ні, такого обмеження у 100% сумісній POSIX файловій системі немає. Як вже було сказано, POSIX не вимагає. і .. бути твердими посиланнями на інші каталоги. Якщо вони є, це детальна інформація про реалізацію, яка є результатом хаків, введених у файлову систему V7. Є й інші файлові системи, сумісні з POSIX, які працюють зовсім інше.
шилі

2

на відміну від FAT, файлові системи, що використовуються UNIX, не мають спеціального обмеження розміру в кореневій директорії, але як тільки розділ буде заповнений, ви не зможете додати більше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.