LINUX.ORG.RU
ФорумTalks

[поттеринг] [много букв] [фантомас разбушевался] Весь мир насилья мы разрушим до основанья, а затем...


0

0

Ъ

Разработчики дистрибутива Fedora Linux рассматривают возможность перемещения всех имеющихся в системе исполняемых файлов в одну директорию. Иными словами, предлагается размещать исполняемые файлы только в каталоге /usr/bin, а директории /bin, /sbin и /usr/sbin преобразовать в символические ссылки, указывающие на /usr/bin. По аналогии предлагается упразднить /lib и помещать все системные библиотеки только в директории /usr/lib. В случае одобрения предложения, изменения могут вступить в силу уже в весеннем релизе Fedora 17.

Перенос всех файлов и библиотек в иерархию /usr открывает очень интересные перспективы: так как все необходимые для работы компоненты будут присутствовать в рамках одного дискового раздела, появляется возможность обособленного использования нескольких разделов /usr для загрузки разных версий или состояний дистрибутива (например, через создание снапшотов в процессе обновления) и, что особенно интересно, становится возможным использование одного смонтированного в режиме только для чтения самодостаточного раздела /usr одновременно на нескольких компьютерах. Ранее, при монтировании /usr по сети, у администраторов возникали проблемы с обновлением содержимого /bin, /sbin и /lib на конечных машинах, с самодостаточным /usr поддерживать большое число типовых машин станет значительно проще и безопаснее (/usr предлагается монтировать в режиме только для чтения).

В соответствии с новым подходом, все устанавливаемые из RPM-пакетов компоненты будут сосредоточены только внутри раздела /usr и не будут встречаться за его пределами. Файлы и каталоги, присутствие которых необходимо вне иерархии /usr предлагается связывать при помощи символических ссылок. В корне останутся только файлы, имеющие непосредственное отношение к текущему компьютеру, например, файлы конфигурации, логи и файлы с меняющимися данными (/etc, /root, /var, /run).

Разделение /bin и /usr/bin было актуальным во времена раздельного монтирования корня и раздела /usr, в случае невозможности примонтировать /usr, наличие каталогов /bin и /lib позволяло сохранить минимально работающую систему, которую можно было использовать в качестве базы для дальнейшего восстановления. В настоящее время дистрибутив нереально загрузить без /usr (/usr монтируется из initramfs до запуска процесса инициализации и содержит необходимые для загрузки компоненты), что в сочетании с распространением практики разбиения диска на один большой раздел и подготовкой установочного образа в виде Live-системы, позволяет отнести к анахронизмам разделение бинарных файлов по разным частям файловой системы.

В пользу объединения sbin и bin упоминается то, что во многих дистрибутивах данные директории одновременно включены в путь по умолчанию, а также то, что в sbin можно найти программы, которыми пользуются и обычные пользователи. Тем не менее, среди разработчиков Fedora нашлось много противников объединения sbin и bin, которые считают логичным разделение пользовательского ПО и требующих повышенных привилегий программ для администратора (изначально каталог sbin предназначался для статически собранных программ). Также упоминается то, что объединение sbin и bin вызовет необходимость действий со стороны разработчиков upstream-проектов.

>>> Пруфлинк

★★★★☆

Fedora собралась забить на FHS?

FiXer ★★☆☆☆ ()

/bin - бинарники
/etc - конфиги
/log - логи
/run - временные lock-, pid-, run-файлы и пр.
/usr - всякий хлам, типа документации, config examples и пр.

blackst0ne ★★★★★ ()

Слава Богу, у меня Gentoo. Хотя /usr/portage/distfiles/ надо бы перенести в /var/cache/portage/, да и вообще, /usr/portage перенести в /var

Chaser_Andrey ★★★★★ ()

В SCO Open Server, кажись было нечто подобное. Там практически все бинарники были симлинками и смотрели в глубоко закопанные каталоги.

Будет ли новый процесс SCO vs Red Hat?

ansky ★★★★★ ()
Ответ на: комментарий от Deleted

>Поэтому в Windows'е есть аккуратный PATH, который содержит 100500 разных путей километровой длины и перекрывает бинарники разных программ :}

Переменную окружения PATH трогают только авторы кривейшего энтерпрайза, правильное решение заключается в использовании App Paths:

http://msdn.microsoft.com/ru-ru/ee872121.aspx — документация

http://blogs.msdn.com/b/oldnewthing/archive/2011/07/25/10189298.aspx — исторический экскурс

anonymfus ★★★★ ()
Ответ на: комментарий от Deleted

> А /media?

/media не нужна. /mnt достаточно. Или другое название, не важно. А важно, чтобы их не зоопарк был, а один каталог.

blackst0ne ★★★★★ ()
Ответ на: комментарий от Deleted

На компьютере, с которого пишу, в PATH прописаны: AMD APP, PowerShell, ATI.ACE, Acronis. Всё.

В AppPath: 7zip, WinRAR, Zune, Firefox, Java, Notepad++, PowerShell, Visual Studio, весь софт от Adobe, весь Microsoft Office... И, наверное, что-то ещё, что я среди стандартных программ не разглядел.

anonymfus ★★★★ ()
Ответ на: комментарий от anonymfus

Это весь софт, что тебе нужен? Ничего, бывает. А некоторые пользуются ещё и другим софтом, и не только Адобы и МС. А тебе посмотри, что делают с этим вирусы :}

Deleted ()
Ответ на: комментарий от Cancellor

>Мне вот только не совсем понятно: а почему, собственно, не в корень?
Такие гениальные идеи сразу не доходят, погоди.

zgen ★★★★★ ()
Ответ на: комментарий от Axon

Не дёргайся, скоро введёт каталоги system32, Program Files и пользователи федоры заживут нормальной полноценной жизнью.

darkshvein ☆☆ ()
Ответ на: комментарий от Cancellor

Миллионов слишком мелко для едра. Миллиардов.

Yareg ★★★ ()
Ответ на: комментарий от Deleted

> В твоём списке её нет :}

А мой список и не полный. Я только осветил основные моменты.

blackst0ne ★★★★★ ()
Ответ на: комментарий от Axon

На самом деле, его идеи подчас кажутся не такими уж и бредовыми.
Например, в Mesa уже убирают DRI1, оставляют только поддержку KMS. Значит, скоро Mesa станет Linux-only. Может, ещё какой ключевой софт завяжут на Linux'отехнологии.
В этой связи, может, даже и разумна мысль о том, чтобы не соблюдать весь POSIX. А то и вовсе, чтобы продвигать systemd и завязать на него какой-нибудь GNOME.
Граница между гениальностью и сумасшествием тонка.

carasin ★★★★★ ()

Идиотизм. Директория /bin - для исполняемых файлов базовой системы. /sbin - только для доступных руту. /usr - устанавливаемые программы и файлы данных для программ, не относящиеся к базовой системе. В федоре неосиляторы работают что-ли? А вот лишние диреатокрии из корня почикать надобно, типа /srv.

Quasar ★★★★★ ()
Ответ на: комментарий от Nebuchadnezzar

Nebuchadnezzar> Реквестирую «Program Files», а также «Linux/system32», ну и «Documents and Settings» чегоужтам :)

Уже сделано. См. GoboLinux

Quasar ★★★★★ ()
Ответ на: комментарий от uju

uju> тогда /usr/local надо переименовать в /system/usr

Собственно в ведроиде так и сделано.

Quasar ★★★★★ ()
Ответ на: комментарий от uju

Да отказ от традиций - это хорошо. Когда в этом есть надобность.

У федоры в этом надобности нет.

Quasar ★★★★★ ()

Ад в комментах. А между тем, они всё правильно делают. Разделение на бинарники в корне и бинарники в /usr уже давно никому не уперлось.

geekless ★★ ()
Ответ на: комментарий от stevejobs

> home у тебя тоже не на отдельном разделе?

Я вообще злостно нарушаю FHS, и хомяки реальных аккаунтов у меня лежат в /media/work. Так что если это считать home-разделом, то на отдельном.

и tmp?

tmpfs

и swap в файле поди?

Представь себе, да. Потому что своп нужен исключительно для того, чтобы система без оверкоммита работала стабильно.

А теперь вместо демагогии, расскажи о необходимости разделения бинарников корня и бинарников /usr.

geekless ★★ ()
Ответ на: комментарий от geekless

Ну, у меня в хомячке (~) есть папки /bin, /opt, /tmp, итп. Это удобно. Можно даже скомпилировать весь линукс (кроме ядра) в тот хомячок. Получается, часть системы админится самим пользователем, а не администратором.

Сам не пользовался, но по идее разделение в / тоже может быть полезным. Отдельная директория для минимальной системы, отдельная — для основных утилит администрирования, отдельная — для того, что требует обязательного рута, отдельная — для юзверьских программ. Там ведь еще ранлевелы есть. Можно загрузить минимальный ранлевел только с базовой системой. Можно загрузить полный ранлевел, но не монтировать юзверьские программы. Можно не монтировать админские программы, или спрятать раздел с тем, что гарантированно требует sudo. Ну итп.

Причем, если все компьютеры с одинаковой архитектурой и ОС, можно эти разделы шарить между ними. Например. можно расшарить между разными компьютерами /home. Или подключать различные наборы админских программ всего лишь перемонтируя /usr/sbin. Итп

stevejobs ★★★★☆ ()

Гарринг Поттеринг и Тайнинг Комнатинг

Они там что, ех^W о^W упоролись?

Нет, мне тоже, лет десять назад, такие идеи в голову приходили. Типа /system и /home. Но только тем, кому это имеет значение - всё равно не видно в общем случае это хозяйство, как в том же андроиде, например (и, кстати, они пользователю запись в корень разрешат?). А тем, кому имеет значение - скорее всего неплохо и так, как уже есть.

sin_a ★★★★★ ()
Ответ на: комментарий от Komintern

Ага, и чтоб как в bsd, в /usr/local была еще одна система. Чтоб если уж искать что–нибудь, так сразу в двух местах.

madgnu ★★★★★ ()
Ответ на: комментарий от stevejobs

Назначение выделения /usr — монтирование по сети. Оставим в стороне тот факт, что этим почти никто не пользуется, и попробуем подумать, что будет происходить, если этим всё же пользуются.

Открываем спецификацию, читаем:

/usr is the second major section of the filesystem. /usr is shareable, read-only data. That means that /usr should be shareable between various FHS-compliant hosts and must not be written to. Any information that is host-specific or varies with time is stored elsewhere.

Бинарники в /bin и /sbin полностью подходят под эти требования.

Теперь открываем спецификацию на главе про /bin, читаем:

/bin contains commands that may be used by both the system administrator and by users, but which are required when no other filesystems are mounted (e.g. in single user mode). It may also contain commands which are used indirectly by scripts.

Итак, что мы имеем в случае «классического» юникса. В корне лежит конфигурация машины в /etc и весь необходимый набор бинарников в /bin, /lib, /sbin, чтобы машина инициализировалась до работоспособного состояния — как минимум, до доступа к оболочке и поднятия основных сетевых служб.

Сами по себе /bin, /lib, /sbin не являются host-specific и управляются обычно тем же пакетником, что и /usr/*. Логически, это такой авангард дерева /usr, выдвинутый на конкретную машину. Разделение на «базовую систему» и «всё остальное» в линуксе не используется, т.к. весь доступный набор 100500 пакетов — это и есть вся система.

Так что напрашивается очевидное решение: физически перенести их в /usr/*, а для конкретного хоста содержимое /bin, /lib, /sbin заполнять автоматически копиями. И ВНЕЗАПНО... у нас уже есть такое автоматически заполняемое бинарниками дерево — образ initrd для ядра.

Вот и получается, что /bin, /lib, /sbin не нужны. Всё, что относится к инициализации машины до поднятия сети, можно затолкать автоматически в initrd. Остальное засунуть в /usr.

geekless ★★ ()
Ответ на: комментарий от Chaser_Andrey

>/usr/portage перенести в /var
+1

/usr/portage/distfiles/ надо бы перенести в /var/cache/portage/

Зачем cache? /var/portage/distfiles/

GAMer ★★★★★ ()
Ответ на: комментарий от ansky

>>В SCO Open Server
Ты бы ещё гомо^H^Hболинукс вспомнил...

GAMer ★★★★★ ()
Ответ на: комментарий от geekless

>Открываем спецификацию, читаем:

/usr is shareable, read-only data.

Ну гон же, есть же /usr/local/(bin), которая не шарится и действительно shareable - /usr/share.
Есть правда ещё /usr/local/share...

GAMer ★★★★★ ()

И вообще это всё полумеры, ломать, так ломать, даёшь тегированную ФС без каталогов! =)

GAMer ★★★★★ ()
Ответ на: комментарий от geekless

>Почитай стандарты, ага?
Стандартов тоже не одна версия, угу?
Потому и делали local, что нельзя шарить например бинари для разных архитектур.

GAMer ★★★★★ ()

А еще есть GoboLinux...

ls-h ★★★★ ()
Ответ на: комментарий от GAMer

Актуальный стандарт FHS только один — последний. Да, там полно нелогичностей. Именно поэтому в слепом следовании FHS нет ничего хорошего, надо думать о том, как это подходит к конкретной системе и её use cases.

geekless ★★ ()
Ответ на: комментарий от geekless

> Разделение на «базовую систему» и «всё остальное» в линуксе не используется, т.к. весь доступный набор 100500 пакетов — это и есть вся система.

а жаль, потому что на деле получается свалка из 100500 пакетов

кстати, пакеты можно и не использовать (по крайней мере rpm- и deb-style, которые провоцируют неразделяемую свалку из 100500), и тогда пойдет совсем другой разговор.

stevejobs ★★★★☆ ()
Ответ на: комментарий от geekless

>>Актуальный стандарт FHS только один — последний.
Ну в контексте топика речь идёт, как я понимаю, как раз об эволюции, а кто истории не помнит, будет вынужден повторять ошибки =)

GAMer ★★★★★ ()
Ответ на: комментарий от thunar

в linux - хз, во freebsd есть четкое разделение на базовую систему и остальное. как уже выше сказали, в linux нужно еще определиться.

Komintern ★★★★★ ()

Давно пора, кроме хомяка выносить нет смысла на другой жесткий. Хотя счас прибегут райзеровцы4 и будут кричать что юзр должен быть на их чудо-фс, а в хомяк её лучше не класть ибо ад будет.

druganddrop-2 ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.