Доступен первый выпуск новой системы инициализации Epoch, позиционируемой в качестве легковесного решения для минималистичных дистрибутивов, которым необходимо обеспечить загрузку без нагромождения и лишних зависимостей. По сути, Epoch развивается в качестве альтернативы init-системы от проекта busybox, отличающейся более широкими возможностями и отказом от использования shell-скриптов для запуска сервисов. Настройки процесса загрузки определяются через единый файл конфигурации. Система написана на языке Си и распространяется как общественное достояние. Из зависимостей для работы Epoch требуется только Glibc, pthreads, ядро Linux и опционально /bin/sh.
Основные возможности Epoch:
- Для контроля порядка запуска и остановки сервисов используется система приоритетов, выступающая в роли упрощённого аналога зависимостей. Запуск сервисов в параллельном режиме не поддерживается;
- Встроенная система ведения лога, способная обеспечить запись информации о событиях, в том числе и на стадиях до монтирования дисковых разделов на запись и без ram-диска;
- Поддержка автоматического монтирования файловых систем подобных /dev, /proc, /sys, /dev/pts на стадии до начала запуска сервисов;
- Поддержка автоматического перезапуска остановленных сервисов при помощи опции AUTORESTART;
- Для управления сервисами предлагается команда 'epoch', позволяющая запускать и останавливать сервисы, активировать и отключать выполнение сервисов при загрузке, управлять уровнями выполнения (runlevel) без привлечения сторонних компонентов, таких как DBus и shell-скрипты инициализации;
- Отслеживание PID-файлов всех сервисов;
- Поддержка настройки имени хоста на стадии до начала запуска сервисов;
- Для обмена сообщениями с init-процессом применяется протокол membus, основанный на использовании разделяемой памяти. Протокол позволяет создавать сторонние инструменты и графические интерфейсы для управления работой системой инициализации;
- Поддерживаемые утилитой 'epoch' команды также доступны в форме отдельных псевдопрограмм, ссылающихся на один исполняемый файл (используются символические ссылки по аналогии с busybox);
- Повисший во время загрузки или остановки работы процесс можно принудительно завершить через нажатие клавиатурной комбинации Ctrl+Alt+Del;
- Поддержка настройки пользователей и групп.