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)

Вот самый главный аргумент:

разделение на минимальную систему в / и полную в /usr также стало бессмысленно благодаря initrd, а содержание двух уровней «минимальной загрузочной системы» - дурацкая затея;

Собственно, то, о чем я сегодня уже писал. (В другом треде, что ли... Развели дублирующихся тредов.)

Ну и это тоже важно:

снятие снапшотов станет действительно атомарной операцией. В настоящее время btrfs требует 5 снимков - /lib, /lib64, /bin, /sbin и /usr вместо одного, что неудобно и может приводить к состояниям гонки;

существенно упростятся сетевая и контейнерная установки;

Всё правильно сделали. А мозгогрызы, застрявшие в 80-х со своими «не нужно», могут дальше там и оставаться.

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

Так мы же как в винде делаем либы лежат там же в /bin.

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

> Зачем показывать непривелигерованному пользователю команды, которыми он всё равно не сможет воспользоваться?

+1

Xenius ★★★★★
()

другое предложение: { /usr/bin , /usr/sbin , /sbin } ---> /bin ; /usr/lib ---> /lib

jcd ★★★★★
()

Раньше можно было держать /usr на отдельном разделе... А теперь нельзя. Ибо таков закон. Закон Леннарта.

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

> Зачем показывать непривелигерованному пользователю команды, которыми он всё равно не сможет воспользоваться?

$ which mkfs
/sbin/mkfs
$ which qemu
/usr/bin/qemu

Ну ты понял, да?

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

> Или так: /etc, /setc (только для админов — зачем неискушённому пользователю все настройки показывать?)

/etc вообще только для админов, так что мимо.

А вообще, /etc надо бы разнести, например /etc/mtab вообще не нужен, ибо есть /proc/mounts

Надо разнести их по /etc, /usr/etc


Такого нет, зато есть /etc/X11/xorg.conf.d и /usr/share/X11/xorg.conf.d/

Кстати, решение неплохое — дефолтные настройки держать в отдельной директории, а модифицированные в отдельной. Что бы восстановить дефолтные настройки можно было удалением одного файла и что бы свою конфигурацию можно было переносить между машинами простым cp -a /etc /mnt/disk/

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

>Ну ты понял, да?

Вынимай руки из жопы, ага.

$which mkfs which: no mkfs in (/usr/share/colorgcc:/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/usr/lib/qt4/bin:/home/user/bin)

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

> Тоже не фига не понятно :(

Ну ненужно к примеру теперь usr отдельно держать и что ?

Ведь тот же lib почему то на отдельной парции не держут ...



Просто нужно написать рекомендацию что usr теперь нельзя делать на отдельной партиции и ВСЕ !


Да!.. и объяснить, что такое «партиции»!

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

Кстати, решение неплохое — дефолтные настройки держать в отдельной директории, а модифицированные в отдельной. Что бы восстановить дефолтные настройки можно было удалением одного файла и что бы свою конфигурацию можно было переносить между машинами простым cp -a /etc /mnt/disk/

А вот это реально хорошая, годная идея.

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

>> разделение на минимальную систему в / и полную в /usr также стало бессмысленно благодаря initrd, а содержание двух уровней «минимальной загрузочной системы» - дурацкая затея;

Собственно, то, о чем я сегодня уже писал. (В другом треде, что ли... Развели дублирующихся тредов.)

Ну как fsck, ifconfig, iptables и многое другое в initrd запихают, тогда и поговорим.

снятие снапшотов станет действительно атомарной операцией. В настоящее время btrfs требует 5 снимков - /lib, /lib64, /bin, /sbin и /usr вместо одного, что неудобно и может приводить к состояниям гонки; существенно упростятся сетевая и контейнерная установки;

Всё правильно сделали. А мозгогрызы, застрявшие в 80-х со своими «не нужно», могут дальше там и оставаться.

пилите Шура, пилите lvm-snapshot существуют уже как порядка 5 лет, а воз и ныне там, хотя что взять от криворучек... Состояния гонки у них, не умеете - не беритесь, а то давайте упростим систему до такой степени, что наша программистская импотенция не будет заметна.

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

> Зачем показывать непривелигерованному пользователю команды, которыми он всё равно не сможет воспользоваться?

mkfs

Анон, ты без прав админа не можешь воспользоваться mkfs? Ну тогда воспользуйся своим советом:

Вынимай руки из жопы, ага.

vadim@host3:~/tmp$ dd if=/dev/zero of=img1 bs=1M count=200
200+0 записей считано
200+0 записей написано
 скопировано 209715200 байт (210 MB), 4,39475 c, 47,7 MB/c
vadim@host3:~/tmp$ mkfs.ext3 img1
mke2fs 1.41.14 (22-Dec-2010)
img1 is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
vadim@host3:~/tmp$ file img1
img1: Linux rev 1.0 ext3 filesystem data, UUID=a4bb4f7d-cc2a-4f4a-953b-1fee2b631db9
vadim@host3:~/tmp$ 
geekless ★★
()
Ответ на: комментарий от Deleted

>> Более того, размещение /usr на отдельной файловой системе вызывает проблемы при загрузе посредством systemd;

Шикааарно!

изначально было «использование systemd вызывает проблемы при загрузке», но евреи быстро назначили «стрелочника».

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

> не умеете - не беритесь, а то давайте упростим систему до такой степени, что наша программистская импотенция не будет заметна.

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

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

>>Кстати, решение неплохое — дефолтные настройки держать в отдельной директории, а модифицированные в отдельной.

А вот это реально хорошая, годная идея.

aufs (а наверное и unionfs) решает. что-то типа /etc-original (read-only) + /etc-overlay (rw) => /etc измененные настройки будут в /etc-overlay.

Magister2k7
()

Леннарт - тупорылый идиот с руками из жопы. Мало того, что его поделки defected by design, так вместо того, чтобы признать это, он объявляет весь остальной юникс кривым. Отлично.

Мне вот интересно, когда его ссаными тряпками из редхата погонят?

liksys ★★★★
()

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

БРАВО!

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

>> Кстати, решение неплохое — дефолтные настройки держать в отдельной директории, а модифицированные в отдельной. Что бы восстановить дефолтные настройки можно было удалением одного файла и что бы свою конфигурацию можно было переносить между машинами простым cp -a /etc /mnt/disk/

А вот это реально хорошая, годная идея.

Дефолтные настройки и так хранятся в исходниках программ. Всё что не по умолчанию отражено в конфигах в /etc. Всё что per-user в ~/.<что-то>. Кто сейчас мешает делать cp -a /etc /mnt/disk?

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

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

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

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

>А началось со смены опроса...

Взмах крыла бабочки вызовает на другом конце земного шара цунами :)

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

> Чтобы ты знал, — так, на секундочку, — Леннарт — автор этого стандарта.

Леннарт — автор FHS? LOL

> А о том, кто страдает никому не нужной херней, можешь почитать в комментах к своим новостям.

анонимус не торт, раньше на личности переходили эдак к 10-той итерации перепалки

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

>Анон, ты без прав админа не можешь воспользоваться mkfs? Ну тогда воспользуйся своим советом:

Вытащить тебе руки из жопы? Нет, не буду. Моё дело показать несостоятельность твоего аргумента, что я с блеском и осуществил.

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

>Как обычно вылезет толстый тролль, в теме не разбирается, аргументы не читает, да и у самого аргументов 0, только и может что выпятить свою анальную фиксацию.

Да забей ты. Это тайный член клуба обожателей Поттера.

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

>Мне вот интересно, когда его ссаными тряпками из редхата погонят?

Да что-то не случается это ни как. Видимо связи.

anonymous
()

Разрабам GoboLinux теперь найдётся работёнка в федоре.

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

Если usr умер, то система мертва. В федоре уже невозможно запуститься без /usr на него стало слишком много всего завязано.

По теме - давно пора этот зоопарк бинарников упорядочить.

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

> Проблема в том, что многие программы лезут в /usr до его монтирования. Неполный список программ:

А вот надо как-то пофиксить эти программы, в частности udev — что бы он до монтирования /usr запускал только необходимое. Или просто перенести базу данных в /lib

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

>Тогда что вы делаете в интернете?

Читаю я там. И чем меньше кликов нужно делать для того, чтобы читать, тем лучше.

Wizard_ ★★★★★
()

пульс, системд, гном-шелл... Теперь это. Жду линуксокапец к 2015 году.

Lennier ★★★★
()

Вот интересно. 4 страницы комментов в духе «будет невозможно нормально работать», «зачем показывать юзеру то, к чему у него нет прав» и «это не правильно!», и хоть бы кто по существу, внятно и спокойно попытался опровергнуть по пунктам все заявления. Возразить-то нечего, я так понимаю? Просто не хочется отвыкать пусть от бардака и помойки, но привычной помойки.

anonymous
()

Я в принципе считаю плохой идеей, позволять разработчикам выбирать, куда пихать их проги и конфиги к ним. Захотел в /opt, захотел в /usr, а можно еще и в другие места.

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

анонимус не читатель, анонимус писатель?

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

Вот не надо про виндовс. Там тоже есть криворукие уроды, которые норовят свои исполняемые файлы закинуть не в Program Files, а в %USERPROFILE%\Application Data. Апдейтер гуглософта, например. Причем, при установке не спрашивают куда покласть свое гумно.

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

....

># ldd /usr/bin/awk
>        libm.so.6 => /lib/libm.so.6 (0x40021000)
>        libdl.so.2 => /lib/libdl.so.2 (0x40043000)
>        libc.so.6 => /lib/libc.so.6 (0x40046000)
>        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

В чем аноним видит разницу?

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

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

:)

qwe ★★★
()

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

Как аргумент использовать: «приводит к усложнению работы разработчиков, которые зачастую ошибаются» — верх идиотизма. Для таких, «которые зачастую ошибаются», существует простой /usr/local/.

P.S. Есть такое мнение, предложить Леннарту запилить свой собственный дистрибутив, доказать на практике преимущества предложенных нововведений, перестать уродовать Fedora и найти себе бабу, в конце-концов.

P.P.S. Походу, у разработчиков Fedora творческий климакс.

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

# ldd /bin/ls

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

ldd /bin/ls linux-vdso.so.1 => (0x00007ffffcfff000) librt.so.1 => /lib64/librt.so.1 (0x00007f66a2c9a000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f66a2a94000) libacl.so.1 => /lib64/libacl.so.1 (0x00007f66a288b000) libc.so.6 => /lib64/libc.so.6 (0x00007f66a251c000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f66a22ff000) /lib64/ld-linux-x86-64.so.2 (0x00007f66a2ea3000) libattr.so.1 => /lib64/libattr.so.1 (0x00007f66a20fa000)

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

samy_volosaty ★★★★★
()

ликвидировать человеков /usr , скрестив его с машиной.

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

>... и хоть бы кто по существу, внятно и спокойно попытался опровергнуть по пунктам все заявления. Возразить-то нечего, я так понимаю?

anonymous не читатель?

...Просто не хочется отвыкать пусть от бардака и помойки, но привычной помойки.

Э-э-эм... Как-то всё у Вас кверху ногами. Сделать бардак и помойку из продуманной системы.

qwe ★★★
()

Сделали бы уж Program Files

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

> Зачем показывать непривелигерованному пользователю команды, которыми он всё равно не сможет воспользоваться?

С другой стороны, зачем их от него скрывать?

Тем более, что команды из каталогов /sbin и /usr/sbin могут быть полезны и обычному пользователю, тот же ifconfig например.

askh ★★★★
()

Вкорне неверное предложение.
/Linux/system32
Что также позволит избавться /ib и /usr/lib.
/Program\ Files тоже совершенно необходим.
Только так можно сделать систему управляемой и радикально облегчить поддержку.
И никаких «символическими ссылками на него для совместимости» - что ещё за полумеры!

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

В нормальных системах сторонний софт размещают в префиксе

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

> Э-э-эм... Как-то всё у Вас кверху ногами. Сделать бардак и помойку из продуманной системы.

Нету продуманной системы. Есть устаревшая фича, которая никому не нужна. Функционально система делится на ro-файлы с кодом и данными, управляемые пакетником (/usr), конфигурацию хоста (/etc) и изменяемые данные хоста (/var). Отсюда и надо плясать.

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