Стандарт побудови файлової системи Квітень, 12, 2000
Вперед Що де є Назад

6. Особливості певних операційних систем

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

6.1 Linux

Ця частина стосується операційної системи Linux.

6.1.1 /: Кореневий каталог

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

6.1.2 /dev: Файли пристроїв та спеціальні файли

Всі пристрої та спеціальні файли в /dev повинні дотримуватися документу "Пристрої в Linux" (Linux Allocated Devices), що є серед вихідних текстів ядра Linux. Він супроводжується H. Peter Anvin <hpa@zytor.com>.

Символічні зв'язки не повинні розповсюджуватися з Linux системами за виключенням випадків обумовлених в документі "Пристрої в Linux".

Початок обгрунтування

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

Закінчено обгрунтування

6.1.3 /proc: Віртуальна файлова система з інформацією про ядро та процеси

Файлова система proc - фактично стандартний метод в Linux для розташування інформації про процеси та систему, скоріше ніж /dev/kmem та інші схожі методи. Ми дуже заохочуємо до використання її для збереження та отримання інформації про процеси та іншої інформації про ядро та пам'ять.

6.1.4 /sbin: Сутєві системні двійкові

В системах Linux, в /sbin розміщують такі додаткові файли:

  • Команди другої розширеної файлової системи (за бажанням):

    { badblocks, dumpe2fs, e2fsck, mke2fs, mklost+found, tune2fs }
  • Встановлювач мапи початкового завантаження:

    { lilo }
  • За бажанням в /sbin можна помістити:

  • Статичні двійкові:

    { ldconfig, sln, ssync }

    Постійні ln(sln) та sync(ssync) корисні коли справи пішли погано. Первинне використання sln (щоб відновити "зламані" символічні зв'язки в /lib після погано організованого поновлення) більше не головне застосування зараз, коли програма ldconfig (стандартно розташована в /usr/sbin) існує та може діяти як скеровуюча рука в поновленні динамічних бібліотек. Статична sync корисна в деяких аварійних ситуаціях. Зауважимо, що це не повинна, а може бути постійно зв'язана версія стандартних ln та sync.

    Двійковий ldconfig не обов'язковий для /sbin, оскільки в системі можуть обрати варіант запуску ldconfig під час завантаження, швидше ніж тільки після оновлення загальних бібліотек. (Це не є прозорим, чи дійсно варто запускати ldconfig під час кожного завантаження.) Навіть в цьому випадку, деякі люди полюбляють користуватися ldconfig в наступних (всі дуже загальні) ситуаціях:

    1. Я тільки що видалив /lib/<file>.
    2. Я не можу знайти назву бібліотеки оскільки ls динамічно зв'язана, а я використовую оболонку, що не має вбудованої ls і я не знаю про використання "echo *" як замінника.
    3. Я маю постійну sln, але я не знаю як викликати зв'язок.
  • Інше:

    { ctrlaltdel, kbdrate }

    Щоб впоратися з ситуацією, що деякі клавіатури постачаються з таким великим значенням швидкості повтору, що їх не можливо використовувати, kbdrate може встановлюватися в /sbin на окремих машинах.
    Оскільки стандартна дія для комбінації клавіш Ctrl-Alt-Del - термінове жорстке перезавантаження, взагалі бажано заборонити таку дію до монтування кореневої файлової системи в режимі на читання та запис. Деякі пакети init можуть забороняти Ctrl-Alt-Del, але інші можуть вимагати програми ctrlaltdel, що її можна встановити в /sbin на таких системах.
  • 6.1.5 /usr/include: Файли заголовків, що їх використовують програми на C

    Символічні посилання потрібні коли встановлено компілятор C або C++ та тільки для систем, що базуються не на glibc.

    /usr/include/asm -> /usr/src/linux/include/asm-<arch>
    /usr/include/linux -> /usr/src/linux/include/linux

    6.1.6 /usr/src: Вихідні коди

    Для систем, що побудовані на glibc, немає певних директив до цього каталогу. Для систем, що базуються на Linux libc варіантах старших за glibc, встановлено наступні вимоги та їх пояснення:

    Тільки до вихідних кодів ядра Linux є вимога на їх певне місце розташування в системі. Вини мають бути в /usr/src/linux.

    Коли в системі встановлено компілятор C або C++, але не встановлено повністю вихідні коди ядра Linux, то файли заголовків зі складу вихідних кодів ядра повинні бути в каталогах:

    /usr/src/linux/include/asm-<arch>
    /usr/src/linux/include/linux

    де <arch> - назва системної архітектури.

    Зауваження: /usr/src/linux може бути символічним посиланням на "дерево" вихідних кодів ядра.

    Початок обгрунтування

    Важливо щоб файли заголовків було розташовано в /usr/src/linux, а не в /usr/include, це не буде створювати проблем коли наглядачи за системою будуть робити поновлення їх версії ядра перший раз.

    Закінчено обгрунтування

    6.1.7 /var/spool/cron: завдання cron та at

    В цьому каталозі зберігаються змінні данні для програм cron та at.


    Перекладено А. М. Добровольським © 2001 р.
    Вперед Що де є Назад

    Made with 1st Page 2000 - Professional tools for real minds.