Launchd для FreeBSD

Сео-блог

В 2010 году Леннарт Поттеринг представил первую версию системного менеджера systemd, одной из самых примечательных особенностей которого была система параллельного запуска сервисов при старте системы, основанная не на зависимостях между компонентами и целями, а на зависимостях ресурсов. Позже systemd оброс огромным количеством другой функциональности и превратился в объект насмешек, но архитектурно он остался прежним. И этой своей архитектурой он обязан ни много ни мало компании Apple — их системному менеджеру launchd, используемому bOSX.

Именно в launchd впервые появился функционал, позволивший systemd стать стандартом, даже несмотря на все свои противоречия. Его разработчики выдвинули, не побоюсь этого слова, гениальную идею использовать заранее созданные UNIX-сокеты системных сервисов для заблаговременного запуска системных служб (демон syslog, например, зависит вовсе не от cron, а от его UNIX-сокета, к которому он подключается при запуске,
поэтому предварительное создание этого сокета позволяет запустить syslog и cron одновременно). Именно в launchd, хоть и не впервые, появилась идея объединить в одном демоне службы init, inetd, atd, crond и watchdogd, что позволило скоординировать автоматический запуск служб при подключении к ним по сети, запуск при старте, по расписанию и отслеживание состояния служб в одном демоне и объединить их интерфейсы управления. Launchd позволил скоординировать запуск разрозненных системных служб и сделать этот процесс действительно быстрым.

Компания Apple открыла код launchd еще в 2005-м, и тогда же были предприняты первые попытки портировать его в FreeBSD. Это взял на себя студент Тайлер Круа и в рамках программы Google Summer of Code создал наполовину работоспособный порт. После этого о проекте успешно забыли, но в конце 2013 года автор решил продолжить начатое и запустил проект Open Launchd (wiki.freebsd.org/launchdV в рамках которого планируется довести имеющийся код до рабочего состояния и опубликовать его в системе портов.

ЧИТАТЬ ЕЩЁ:  Splunk против хакеров

Что может дать launchd пользователям FreeBSD? Все то же, что systemd дает линуксои-дам, а именно рекордно быструю загрузку системы, возможности гибкого контроля за работой демонов, автоматический запуск демона только тогда, когда он действительно нужен (например, когда на его сетевой порт приходит запрос или в нем нуждается другой демон), и унифицированный интерфейс управления. В отличие от простых и лаконичных ini-файлов, используемых в systemd, launchd полагается на конфигурационные файлы в формате XML — что разработчики и пользователи, скорее всего, не примут ни в каком виде, однако никто не мешает сделать собственный формат конфигурационных файлов.

Пока работа по портированию находится в начальной стадии, но она идет, и, возможно, через год-другой системой уже можно будет пользоваться для загрузки хотя бы домашних систем. Если, конечно, Тайлер вновь все не бросит.

Оцените статью