Релиз системного менеджера Systemd 197

09.01.2013 10:39

Леннарт Поттеринг (Lennart Poettering) представил релиз системного менеджера systemd 197, примечательный использованием нового механизма предсказуемого именования сетевых интерфейсов, интеграцией функциональности пакета bootchart, оптимизациями для увеличения скорости загрузки на разделах с Btrfs, уходом от использования особенностей, специфичных для конкретных дистрибутивов.

Systemd сочетает в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Для определения параметров сервисов в Systemd используется набор конфигурационных unit-файлов, вместо оформления сценариев запуска в виде shell-скриптов. Система нацелена на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, старые версии Fedora). В настоящее время на использование systemd уже перешли такие дистрибутивы, как Fedora, openSUSE, Mandriva и Arch Linux.

Из наиболее интересных новшеств можно отметить:

  • Systemd теперь позиционируется как полностью обособленная и независящая от Linux-дистрибутивов система. Из состава Systemd исключён код для определения и задействования возможностей и файлов конфигурации, специфичных для отдельных дистрибутивов. Вместо использования собственных файлов конфигурации разработчикам дистрибутивов предлагается использовать модель управления конфигурацией, входящую в состав Systemd, на которую уже перешло большинство использующих Systemd дистрибутивов. Тем не менее, многие из специфичных возможностей остаются доступны через активацию соответствующих настроек через скрипт configure на этапе сборки.
  • В udev добавлена поддержка различных схем предсказуемого выбора имён для сетевых интерфейсов, при которых сетевому адаптеру назначается фиксированное имя, которое не изменится при добавлении/удалении других адаптеров. По умолчанию имена устройств будут формироваться в зависимости от возможностей прошивки. Если прошивка/BIOS предоставляет индексированные номера интерфейсов, то для встроенных сетевых интерфейсов будет использовано имя "enoN", а для PCI-плат - "ensN". Иначе будет выбрано именование enpNsM, учитывающее физическое соединение устройства, а если параметры подобного размещения будут недоступны - будет использована классическая схема ethX. Кроме того, для использования доступен вариант использования в имени интерфейса данных из MAC-адреса (например, enx78e7d1ea46da);
  • В состав включена альтернативная минималистичная реализация утилиты bootchart, созданная Auke Kok из компании Intel. Bootchart позволяет измерить и наглядно оценить время загрузки различных компонентов системы;
  • Логика упреждающей загрузки компонентов адаптирована для определения и использования особенностей файловой системы Btrfs, в том числе с использованием оптимизаций как для SSD-накопителей, так и для жестких дисков;
  • Поддержка вызова системных событий в привязке к календарному времени, а не только к повторяющимся интервалам времени. В частности, можно инициировать запуск unit-а в заданное время, указав в параметрах, например, "Thu,Fri 2013-*-1,5 11:12:13" для запуска в 11 часов 12 минут 13 секунд каждый первый и пятый день месяца в 2013 году, при условии, что эти дни приходятся на четверг или пятницу. С поддержкой данной возможности Systemd уже позволяет взять на себя большинство функций системы cron и избавиться от необходимости запуска дополнительного демона crond;
  • Интеграция в состав дерева исходных текстов Systemd программы nss-myhostname, которая гарантирует, что имя локального хоста всегда будет доступно для резолвинга через NSS;
  • В udev добавлена поддержка загрузки параметров устройств из базы IAB в дополнение к базе OUI. В базу также добавлены идентификаторы производителей Bluetooth устройств;
  • Процесс nspawn теперь запускается без привязки к управляющему терминалу, что позволяет запускать его как отдельный сервис и использовать для создания простых контейнерных серверных систем. Для подобных контейнеров также теперь доступна активация через сокет, что позволяет автоматически запускать целиком образы ОС при поступлении первого обращения к привязанным к ним службам SSH или HTTP;
  • В logind добавлена возможность автоматического выключения или перехода в спящий/ждущий режим при определённом времени неактивности системы;
  • Через /etc/machine-info и hostnamed теперь можно определить тип текущего устройства (ПК, ноутбук, планшет, карманный ПК);
  • Для Unit-файлов добавлена новая условная опция "ConditionACPower=" для выбора настроек в зависимости от того, подключено ли устройства к стационарной сети питания или работает автономно. Кроме того, в опции "EnvironmentFile=" теперь допустимо использование маски для определения группы имён файлов.