Разработчики Fedora обсуждают объединение каталогов для исполняемых файлов
Разработчики 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), готовый выполнить необходимую работу.
Подробнее