Для Fedora 17 одобрен перенос компонентов из корня в /usr и переход на Btrfs

2011-12-05

Комитет FESCo (Fedora Engineering Steering Committee), отвечающий за техническую часть разработки дистрибутива Fedora Linux, утвердил план по использованию в Fedora 17 по умолчанию файловой системы Btrfs и перенос содержимого /bin и /lib в директорию /usr. Следует отметить, что конечное решение о реализации данных возможностей будет зависеть от степени готовности намеченных функций к моменту начала заморозки кода перед релизом. Например, переход на Btrfs по умолчанию изначально планировался в Fedora 16 но был отменён из-за неготовности утилиты для проверки целостности и восстановления файловой системы после сбоя.

В отличие от прошлого плана, представленного при подготовке Fedora 16, в Fedora 17 утверждено использование вместо LVM встроенного в Btrfs менеджера логических разделов и задействование интегрированных в Btrfs функций по обеспечению работы RAID. В инсталляторе запланирована поддержка управления подразделами, опциональное включение сжатия, использование RAID, преобразование в Btrfs существующих разделов Ext3/4. Поддержка сохранения контрольных сумм для всех блоков данных и метаданных позволяет при использовании Btrfs достигнуть более высокого уровня обеспечения целостности данных. Поддержка снапшотов открывает двери для создания новых инструментов для резервного копирования и управления данными. Например, уже входящий в состав дистрибутива плагин yum-plugin-fs-snapshot позволяет использовать снапшоты Btrfs для возврата системы в первоначальное состояние после неудачной установки пакетов или обновления.

Вторым важным решением является перенос всех исполняемых файлов и библиотек из корня в директорию /usr. В частности, содержимое /bin планируется перенести в /usr/bin, /sbin в /usr/sbin, /lib в /usr/lib и /lib64 в /usr/lib64. Для обеспечения совместимости вместо перемещенных из корня директорий будут размещены символические ссылки на аналогичные директории внутри иерархии /usr. Предложенная ранее идея объединения содержимого директорий bin и sbin не получила одобрения.

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

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

Среди других новшества, одобренных для реализации в Fedora 17, релиз которого намечен на май 2012 года:

  • Обеспечение работы GNOME Shell без 3D-драйверов. Возможность работы без 3D-драйверов будет обеспечена благодаря использованию входящего в последние версии Mesa Gallium3D-драйвера llvmpipe, предназначенного для осуществления программного рендеринга путём использования LLVM для динамической компиляции шейдеров, обработки вершин и растеризации точек/линий/треугольников. Требующие привлечения GPU операции преобразуются в промежуточное представление LLVM и затем транслируются в стандартный машинный код для архитектур x86 или x86-64, без необходимости задействования GPU;
  • Поставка только DRI2 3D-драйверов. В Mesa уже прекращена поддержка DRI1, поэтому в Fedora более не будут поставляться такие устаревшие DRI1-драйверы, как i810, mga, r128, savage, sis, tdfx и unichrome. Изменение коснётся только 3D-драйверов поставляемых в комплекте с Mesa (пакет mesa-dri-drivers-dri1), поддержка 2D-драйверов будет оставлена неизменной. Для обеспечения работы OpenGL 2.x на старых и неподдерживаемых картах можно будет использовать программный драйвер llvmpipe;
  • Удаление ConsoleKit с целью упрощения управления пользовательскими сессиями (функциональность дублируется с systemd). Обеспечение автоматической настройки multi-seat конфигураций, позволяющих организовать одновременную работу нескольких пользователей за одним ПК (у каждого пользователя свои монитор, мышь и клавиатура).
  • Продолжение портирования скриптов инициализации sysVinit в формат unit-файлов systemd. Использование новых сервис-файлов systemd позволяет увеличить скорость загрузки и предоставить администраторам дополнительные возможности по управлению сервисами;
  • Включение в состав дистрибутива пакета ns-3, позволяющего симулировать работу компьютерных сетей;
  • Обновление библиотеки Boost до версии 1.48.