LINUX.ORG.RU

Разработчики Fedora обсуждают объединение каталогов для исполняемых файлов

 


0

0

Разработчики Fedora обсуждают возможное объединение каталогов /bin, /sbin/, /usr/bin и /usr/sbin: предлагается все исполняемые файлы помещать в каталог /usr/bin, а другие каталоги сделать символическими ссылками на него для совместимости.

Леннарт Поттеринг в списке рассылки разработчиков предоставляет список преимуществ такого подхода:

  • разделение на /bin и /sbin приводит к усложнению работы разработчиков, которые зачастую ошибаются с выбором каталога, либо бездумно помещают файлы в /usr/bin;
  • первоначальное назначение каталога /sbin (размещение статически собранных файлов, на что указывает буква «s») давно неактуально;
  • разделение на /bin и /sbin не имеет отношения к безопасности (это был бы глупый принцип «security by obscurity»);
  • разделение на /bin и /sbin имеет значение только для переменной $PATH, однако усложнять доступ пользователей к некоторым инструментам - плохая затея; к тому же для этого есть более подходящие каталоги;
  • разделение на /bin и /sbin в любом случае бессмысленно уже пару версий Fedora, поскольку оба каталога включены в переменную $PATH для всех пользователей;
  • разделение приводит к усложнению, а мы должны стремиться к упрощению;
  • различные дистрибутивы размещают некоторые бинарные файлы в различных каталогах, что приводит к проблемам с переносимостью скриптов;
  • разделение на /bin и /usr/bin в основном было сделано для этапа ранней загрузки системы - минимальный набор загрузочных файлов находится в /. Но это давно не работает, и соответствующая опция убрана из инсталлятора anaconda. Более того, размещение /usr на отдельной файловой системе вызывает проблемы при загрузе посредством systemd;
  • разделение на минимальную систему в / и полную в /usr также стало бессмысленно благодаря initrd, а содержание двух уровней «минимальной загрузочной системы» - дурацкая затея;
  • существенно упростится установка «read-only» системы: так, libc и другие системные библиотеки будут доступны только на чтение, а /etc - на чтение и запись;
  • снятие снапшотов станет действительно атомарной операцией. В настоящее время btrfs требует 5 снимков - /lib, /lib64, /bin, /sbin и /usr вместо одного, что неудобно и может приводить к состояниям гонки;
  • существенно упростятся сетевая и контейнерная установки;
  • сборочные скрипты упростятся: в частности, autoconf не знает о разделении на / и /usr, и для правильной работы с ними приходится прилагать специальные усилия;
  • эксперименты уже показали жизнеспособность предложенной схемы и отсутствие серьезных проблем;
  • есть разработчик (Harald Hoyer), готовый выполнить необходимую работу.

Таким образом, подобное изменение многое упрощает для разработчика, мейнтейнера и администратора. Если оно будет принято, то может быть реализовано уже в Fedora 17.

>>> Подробности

★★★★

Проверено: Shaman007 ()
Последнее исправление: JB (всего исправлений: 2)

Ответ на: комментарий от anonymous

Символические ссылки работать не будут. Нужно сделать ярлыки.

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

Леннарт просто по MS-DOS 1.0

ностальгирует. Просто решил изменения вносить постепенно.

Linux 3.11 for Workgroups всё ближе и ближе...

Arandelix
()

>предлагается все исполняемые файлы помещать в каталог C:\Program Files

fix

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

> Идея - плохая, а предложенная реализация - вообще *амно.

Если бы разделение на /bin, /sbin, /usr/bin и /usr/sbin сейчас не существовало, то легко ли было бы добиться его введения, многие бы согласились, что от этого есть какая-нибудь польза? Мне кажется, что большинство бы посчитало его ненужным, зря усложняющим систему.

Понятно, что привычно, что эти каталоги разделены, но если от такого разделения нет практической пользы сейчас, и если оно наверняка не потребуется в будущем, то наверное действительно стоит объединить эти каталоги?

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

> Если бы разделение на /bin, /sbin, /usr/bin и /usr/sbin сейчас не существовало, то легко ли было бы добиться его введения, многие бы согласились, что от этого есть какая-нибудь польза? Мне кажется, что большинство бы посчитало его ненужным, зря усложняющим систему.

Было бы как с /run, который не был обосран только ленивым. Хотя /run объективно нужен, а /bin — объективно нет.

geekless ★★
()

Все правильно сделали.

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

> Если бы разделение на /bin, /sbin, /usr/bin и /usr/sbin сейчас не существовало, то легко ли было бы добиться его введения, многие бы согласились, что от этого есть какая-нибудь польза?

Слышь, чудило малолетнее, ты когда-нибудь систему восстанавливал? Не переустанавливал, как рекомендует Micro$oft, а именно - восстанавливал?

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


Перекрестись. Когда попробуешь восстановить без {CD-ROM,DVD-ROM,floppy,USB,etc}, вот тогда и высказывай своё «компетентное» мнение.

Понятно, что привычно, что эти каталоги разделены, но если от такого разделения нет практической пользы сейчас, и если оно наверняка не потребуется в будущем, то наверное действительно стоит объединить эти каталоги?


- Давайте сделаем глупость! Ну, давайте! 21-й век на дворе!
- Давайте! А потом будем дружно плеваться и завидовать BSD-шникам!

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

>Пока ты только собственную несостоятельность демонстрируешь.

Да, признаю. Вытащить тебе руки из жопы я не в состоянии. На хирурга/костоправа или кого нужно там я не учился.

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

>А потом будем дружно плеваться и завидовать BSD-шникам!

Самое смешное, что раньше (лет 7 назад) я им сочувствовал. Сейчас вот паритет. Ещё пара таких вот закидонов и придётся на фрю переползать. Не спроста там сейчас оживление.

anonymous
()
Ответ на: комментарий от qwe

lrwxrwxrwx 1 root root 14 Aug 3 13:13 /usr/bin/awk -> ../../bin/gawk

Действительно :( Но там везде принципиально такие же зависимости.

В любом случае, статичных бинарников ни в /bin, ни в /sbin давно уже почти нет.

Вот, кстати, никогда не понимал, зачем такие симлинки. Примерно об этом и говорит Леннарт в первом пункте. Сабжевая идея, конечно, спорная, но то, что разведен бардак - бесспорно.

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

вот так на нормальной системе.

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

То, что ls в /usr/lib/ лезет - конечно, косяк. Но это ничего не меняет.

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

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

Развели бл* демократию тут. На президентских выборах будешь так рассуждать.

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


Ты дурак без опыта работы с unix-like системами в production?

anonymous
()

> первоначальное назначение каталога /sbin (размещение статически собранных файлов, на что указывает буква «s») давно неактуально

А я всегда думал, что s - от слова system.

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

>Было бы как с /run, который не был обосран только ленивым

А 20 лет назад поди также кричали «/var не нужен, верните /usr/spool и /usr/tmp взад!!!1111»

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

>Вот, кстати, никогда не понимал, зачем такие симлинки.

Потому что версий awk в системе может быть несколько, так же как и bash, а gawk находится в /bin, потому что им пользуются скрипты загрузки.

anonymous
()
Ответ на: комментарий от unsigned

>В любом случае, статичных бинарников ни в /bin, ни в /sbin давно уже почти нет.

А должны быть? Там лежат бинарники слинкованные с библиотеками исключительно из /lib. Для чего? Для того, чтобы можно было запустить минимальную систему ничего не монтируя. Например передав при запуске ядру параметры «root=/dev/sda1 init=/bin/sh» и далее разбираться «а что же там всё-таки грохнулось».

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

> отлично! вместо того чтобы починить systemd давайте соберём все бинари в кучу и навсегда лишим пользователей шанса нормально работать.

Ты не поверишь: пользователям насрать, в каком каталоге лежат «команды». Они как работали нормально в своих гномах-kde, так и дальше будут работать.

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

>Ты всё еще не осилил использовать mkfs не от рута? Иди тренируйся.

Мы же знаем, что это не так. Но если тебе угодно, я могу показать вид, что смутился. Люблю любоваться на довольных идиотов.

anonymous
()
Ответ на: комментарий от unsigned

>То, что ls в /usr/lib/ лезет - конечно, косяк.

Да там наверняка ссылка символьная на библиотеку в /lib. Не будет смонтирован /usr полезет в /lib.

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

># ldd /bin/ls

...

libattr.so.1 => /usr/lib/libattr.so.1 (0x4018d000)


...



А это что за дистрибутив, если не секрет?

anonymous
()
Ответ на: комментарий от Jayrome

>Ты не поверишь: пользователям насрать, в каком каталоге лежат «команды». Они как работали нормально в своих гномах-kde, так и дальше будут работать

Ага, и как переустанавливали ШINDOШS, так и Linux будут.

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

А должны быть?

Нет, я с аноном спорил. А обоснование уже неактуально - initrd.

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

> МСВС

Кусок фекальных выделений. На него равнятся не нужно, на 90% уверен, что те, кто его делали, не понимали, для чего нужен /usr :-)

liksys ★★★★
()

Дело пишут, тоже об этом думал. Жаль, это коснётся только RPM-подобных дистров(Fedore - полигон для обкатки идей для Red Hat и Oracle Linux).

lucentcode ★★★★★
()

пилять. краткое резюме:

0. кроме федоры нет других систем.

0.1. следствие 0 — мэйнтейнерам федоры стало слишком мало работы, надо бы подкинуть

1. встраиваемых систем нет

2. загрузки по сети, с разделяемым /usr, нет

3. R/O корня нет

4. задержек по доступу к файлам, сваленным в одну большую кучу в одной директории, нет

5. ФС на всех разделах всегда одинаковая

d4s
()
Ответ на: комментарий от qwe

> Например передав при запуске ядру параметры «root=/dev/sda1 init=/bin/sh» и далее разбираться «а что же там всё-таки грохнулось».

я тоже так думал, пока не понял, что у меня нет никаких /dev/sda1, а уже LVM торчит во все стороны

anonymous
()
Ответ на: комментарий от bbk123

первоначальное назначение каталога /sbin (размещение статически собранных файлов, на что указывает буква «s»)

А я всегда думал, что s - от слова system.

Та же фигня. System, SuperUser, но ни разу не Static

Всегда думал, что предполагалась схема из четырёх машин в сети (десктоп + 3 сервера):

/                - локальный mount, базовая система
/usr/          - удаленный mount.nsf на сервер с типовым ПО
/usr/local/   - удалённый mount.nsf на сервер со специализированным ПО
/home/       - удалённый mount.nsf на сервер с хомяками пользователей

anonymous
()
Ответ на: комментарий от d4s

> 0. кроме федоры нет других систем.

Истина!

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

Совершенно внезапно, /run был сделан потому, что /var может грузиться с другого раздела. А теперь надо убрать /bin, чтобы /usr не мог грузиться с другого раздела?

anonymous
()
Ответ на: комментарий от anonymous
/                - локальный mount, базовая система
/usr/          - mount.nfs на удаленный сервер с типовым ПО
/usr/local/   - mount.nfs на удалённый сервер, либо на локальный раздел, со специализированным ПО
/home/       - mount.nfs на удалённый сервер с хомяками пользователей
anonymous
()
Ответ на: комментарий от anonymous

>я тоже так думал, пока не понял, что у меня нет никаких /dev/sda1, а уже LVM торчит во все стороны

root=/dev/mapper/main-root init=/bin/bash

anonymous
()
Ответ на: комментарий от d4s

1. встраиваемых систем нет

Как это им помешает?

2. загрузки по сети, с разделяемым /usr, нет

/usr и будет разделяемым. Еще разделяемей, чем сейчас.

4. задержек по доступу к файлам, сваленным в одну большую кучу в одной директории, нет

Куча уже лежит в /usr/bin, в остальных каталогах крохи.

5. ФС на всех разделах всегда одинаковая

Зачем разные ФС на / и /usr?

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

> root=/dev/mapper/main-root init=/bin/bash

1. я про это не знал, и узнать тогда мне было негде; единственная машина с инетом как раз сломалась;
2. а это правда будет работать на голой системе, где есть только ядро и шелл? кто создаст этот девайс? initrd разве только?
3. сейчас посмотрел у себя - даже на рабочей системе этого нет:
# ll /dev/mapper/main-root
ls: невозможно получить доступ к /dev/mapper/main-root: Нет такого файла или каталога

anonymous
()

Я вообще не системное предпочитаю в /opt складывать от греха подальше. Помниться даже RFC такой есть только похоже на них забили.

indifferent
()

Утомили идиотские новшества.

dusia
()
Ответ на: комментарий от anonymous

>Совершенно внезапно, /run был сделан потому, что /var может грузиться с другого раздела. А теперь надо убрать /bin, чтобы /usr не мог грузиться с другого раздела?

Поскольку запрет выделения /var в отдельный раздел был для кривых софтописателей слишком революционной идеей, а корректно решить проблему они не смогли, то пришлось перенести /var/run в /run; затем они не смогли корректно выделить необходимый набор программ для минимальной загрузки, и они запретили /usr в отдельный раздел; им надоело разбираться системная программа или пользовательская, минимальная загрузка или нет, и они объединили все в /usr/bin. Исходя из того, что я знаю про btrft, следующим логичным шагом будет полный отказ от разделов для локальных fs.

anonymous
()

+1 , а /bin + /sbin, частично давно уже пора законсервировать в ведро.

anonymous
()

Ненависть. Этот Пётеринг сначла насовал своей дряни везде - пульса просто хлам, который работает исключительно случайно. И теперь ему уже не нравятся основы. systemd - совершенно не критерий целесообразности. если кому что мешает в РАБОТАЮЩЕЙ системе, пусть займётся сельским хозяйствои и вывозит навоз на поля. Никакого смысла менять существующий порядок. кроме воплей нескольких гиков «мы сделали и у нас не работает» не усматриваю. пусть идут лесом

hawai
()
Ответ на: комментарий от lazyklimm

>ну там же лежат конфиги в /etc и /usr/local/etc

И не только там. Вот почему такой подход идиотичен и маразматичен по своей сути.

terminator
()
Ответ на: комментарий от anonymous

> Если тебе отрезать *йца, ты что, перестанешь жить?

Ах! Снимаю шляпу, я повержен.

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