Леннарт Поттеринг (Lennart Poettering) представил релиз системного менеджера systemd 196, сочетающего в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Systemd нацелен на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, Fedora), и избавившись от оформления сценариев запуска в виде shell-скриптов. В настоящее время на использование systemd уже перешли такие дистрибутивы, как Fedora, openSUSE, Mandriva и Arch Linux.
Из наиболее интересных новшеств можно отметить:
- Поддержка каталога сообщений ("Message Catalog"), структурированной базы данных для хранения детализированной информацию о сообщениях, записываемых в системный журнал. Каждая запись в каталоге состоит из набора полей, которые могут содержать данные, как в текстовом, так и в бинарном представлении. Данные могут связываться с информацией из внешних источников, например, могут приводится ссылки на документацию. Ключевые данные в каталоге индексируются для обеспечения оптимальной выборки;
- В udev добавлена поддержка загрузки дополнительных параметров устройств из индексированной БД "hwdb", манипулирующей данными в формате ключ/значение. В качестве ключа выступает идентификатор устройства в форме "vendor/product ID". В настоящее время в hwdb размещены данные из существующих баз идентификаторов PCI- и USB-устройств, а также дополнительные сведения, связанные с PNP, ACPI и OID. В будущем БД будет наполняться дополнительными данными, что в конечном итоге превратит её в централизованную БД для второстепенных метаданных, связанных с устройствами. Использование индексированной БД позволяет существенно повысить скорость выборки данных, в отличие от ранее используемых линейных списков параметров, требующих в процессе выборки полного перебора;
- Обеспечена поддержка сборки udev и systemd без поддержки blkid и kmod, что может быть востребовано разработчиками встраиваемых систем, желающих свести к минимуму число используемых зависимостей;
- В Python-биндинги для подсистемы Journal добавлена поддержка стандартного фреймворка Python для ведения логов.
- Поддержка гибридного спящего режима ("hybrid sleep"), появившегося в ядре Linux 3.6 и комбинирующего спящий и ждущий режимы. Переход в ждущий режим осуществляется после предварительного сохранения образа памяти на диск. В ситуации когда запас аккумулятора иссяк, новый режим позволяет восстановить работу через загрузку с диска дампа памяти, как при спящем режиме. Если запас энергии не исчерпан, восстановление будет совершено почти мгновенно, как при ждущем режиме. Для использования нового режима следует использовать команду "systemctl hybrid-sleep";
- По умолчанию обеспечено монтирование файловых систем, содержащих компоненты для загрузки через EFI;
- В socket-юниты добавлена поддержка привязки к задачам и блокам данных меток системы мандатного контроля доступа SMACK;
- Прекращена поддержка различный устаревших и специфичных для определённых дистрибутивов концепций, таких как insserv, /etc/rc.conf (ArchLinux) и загружаемые на начальной стадии загрузки сервисы SysV (например, нестандартные уровни запуска 'b' и 'S');
- Journal API расширен новыми функциями для проверки наличия в используемой для хранения журнала ФС средств для уведомления об изменениях файлов. Если таких средств нет, то будет использоваться периодическая проверка изменения файлов через определённые промежутки времени;
- Многие из компонентов systemd теперь пропускают проверки на наличие прав root через PolicyKit, если PolicyKit не найден в системе. Указанное изменение решает многие проблемы, возникающие при использовании systemd на системах без PolicyKit;
- Команда "systemctl switch-root" теперь может осуществлять переключение на корневую ФС более одного раза, что может быть использовано для реализации схем offline-обновлений систем через предварительное применение обновления для синхронизированного второго корневого раздела с последующим перемонтированием разделов;
- Стало возможным указание нулевого значения в поле с временем жизни временного фала ("age"), что указывает на необходимость удаления подпадающих по маску файлов при каждой чистке директорий;
- В утилиту coredumpctl добавлена команда "gdb" для вызова отладчика gdb с целью инспектирования выбранного дампа;
- В утилиту journalctl добавлена опция "--full" для вывода длинных сообщений в неизменном виде.