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.

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

НАУЧИ КОМПЬЮТЕР ВАРИТЬ КОФЕ

управление электрическими цепями с помощью компьютера
лучший подарок для техногика; только открытые программы
http://www.unicontrollers.com/products/unc01x

[#]  
geekless

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

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

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

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

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

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

** ()
[#] Ответ на: комментарий от Xenius 02.11.2011 15:31:14  

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

anonymous ()
[#] Ответ на: комментарий от Darth_Revan 02.11.2011 13:13:24  

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

+1

**** ()
[#]  
jcd

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

*** ()
[#]  

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

anonymous ()
[#] Ответ на: комментарий от Darth_Revan 02.11.2011 13:13:24  
geekless

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

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

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

** ()
[#] Ответ на: комментарий от terminator 02.11.2011 13:21:19  

> Или так: /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/

**** ()
[#] Ответ на: комментарий от geekless 02.11.2011 15:38:40  

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

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

$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__ 02.11.2011 14:08:42  
Jayrome

> Тоже не фига не понятно :(
> Ну ненужно к примеру теперь usr отдельно держать и что ?

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


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


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

***** ()
[#] Ответ на: комментарий от Xenius 02.11.2011 15:43:10  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

anonymous ()
[#] Ответ на: комментарий от geekless 02.11.2011 15:32:48  

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

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

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

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

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

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

anonymous ()
[#] Ответ на: комментарий от anonymous 02.11.2011 15:46:01  
geekless

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

> 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$ 
** ()
[#] Ответ на: комментарий от Dimez 02.11.2011 12:57:37  

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

> Шикааарно!

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

anonymous ()
[#] Ответ на: комментарий от anonymous 02.11.2011 15:50:12  
geekless

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

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

** ()
[#]  
CryptSpirit

Бред. Лучше бы подумали как файлы конфигураций воткнуть в один каталог. Например ~/.config

* ()
[#] Ответ на: комментарий от anonymous 02.11.2011 15:49:15  
Magister2k7

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

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

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

* ()
[#]  

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

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

()
[#]  
aim1159

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

БРАВО!

**** ()
[#] Ответ на: комментарий от anonymous 02.11.2011 15:49:15  

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

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

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

anonymous ()
[#] Ответ на: комментарий от geekless 02.11.2011 15:55:16  

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

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

anonymous ()
[#] Ответ на: комментарий от sin_a 02.11.2011 12:37:24  
Ingwar

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

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

***** ()
[#] Ответ на: комментарий от anonymous 02.11.2011 14:37:14  

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

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

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

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

***** ()
[#] Ответ на: комментарий от geekless 02.11.2011 15:52:29  

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

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

anonymous ()
[#] Ответ на: комментарий от anonymous 02.11.2011 15:59:56  

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

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

anonymous ()
[#] Ответ на: комментарий от liksys 02.11.2011 15:57:16  

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

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

anonymous ()
[#]  
le_legioner

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

* ()
[#] Ответ на: комментарий от Displacer 02.11.2011 12:40:06  

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

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

anonymous ()
[#] Ответ на: комментарий от anonymous 02.11.2011 16:05:43  
geekless

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

** ()
[#] Ответ на: комментарий от unsigned 02.11.2011 13:45:20  

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

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

**** ()
[#] Ответ на: Работает - НЕ ТРОЖЬ!! от splinter 02.11.2011 13:46:56  

> А давайте вообще сделаем один огромный бинарник?

man busybox же

**** ()
[#]  
thematt

совсем упоролись -_-

* ()
[#] Ответ на: комментарий от Axon 02.11.2011 13:28:00  

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

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

* ()
[#]  

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

** ()
[#]  

юзайте Windows_7 там нет таких проблем !!! О_О

()
[#]  

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

anonymous ()
[#]  

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

()
[#] Ответ на: комментарий от anonymous 02.11.2011 16:23:48  

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

anonymous ()
[#]  

по сабжу - ФЕДОРАКАПЕЦ!

anonymous ()
[#] Ответ на: комментарий от ts 02.11.2011 16:23:36  

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

anonymous ()
[#] Ответ на: комментарий от unsigned 02.11.2011 15:04:55  
qwe

>....

># 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

:)

** ()
[#]  

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

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

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

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

anonymous ()
[#] Ответ на: комментарий от unsigned 02.11.2011 15:04:55  
># 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)

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

** ()
[#]  

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

** ()
[#] Ответ на: комментарий от anonymous 02.11.2011 16:23:48  
qwe

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

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

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

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

** ()
[#]  
wasd

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

* ()
[#] Ответ на: комментарий от Darth_Revan 02.11.2011 13:13:24  

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

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

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

*** ()
[#]  

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

anonymous ()
[#] Ответ на: комментарий от CARS 02.11.2011 12:49:13  
wasd

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

* ()
[#] Ответ на: комментарий от qwe 02.11.2011 16:36:55  
geekless

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

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

** ()