Launchd для FreeBSD
В 2010 году Леннарт Поттеринг представил первую версию системного менеджера systemd, одной из самых примечательных особенностей которого была система параллельного запуска сервисов при старте системы, основанная не на зависимостях между компонентами и целями, а на зависимостях ресурсов. Позже systemd оброс огромным количеством другой функциональности и превратился в объект насмешек, но архитектурно он остался прежним. И этой своей архитектурой он обязан ни много ни мало компании Apple — их системному менеджеру launchd, используемому в OS X.
Именно в 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, в рамках которого планируется довести имеющийся код до рабочего состояния и опубликовать его в системе портов.
Что может дать launchd пользователям FreeBSD? Все то же, что systemd дает линуксоидам, а именно рекордно быструю загрузку системы, возможности гибкого контроля за работой демонов, автоматический запуск демона только тогда, когда он действительно нужен (например, когда на его сетевой порт приходит запрос или в нем нуждается другой демон) и унифицированный интерфейс управления. В отличие от простых и лаконичных ini-файлов, используемых в systemd, launchd полагается на конфигурационные файлы в формате XML — что разработчики и пользователи, скорее всего, не примут ни в каком виде, однако никто не мешает сделать собственный формат конфигурационных файлов.
Пока работа по портированию находится в начальной стадии, но она идет, и, возможно, через год-другой системой уже можно будет пользоваться для загрузки хотя бы домашних систем. Если, конечно, Тайлер вновь все не бросит.
Смерть иксам
Первая версия сервера X Window появилась на свет еще в 1983 году как система удаленного запуска графических приложений для тонких клиентов. С тех пор прошло уже тридцать лет, но архитектура иксов практически не поменялась. Это все то же ПО для тонких клиентов, способное удовлетворить современные запросы только благодаря огромному количеству расширений, дополнений и костылей. По мнению специалистов,
X.org в своем современном виде представляет собой огромный кусок запутанного кода, большая часть которого висит мертвым грузом и не выпиливается только потому, что для его распутывания потребовалось бы колоссальное количество времени.
На протяжении последних двадцати лет предпринималось множество попыток полностью заменить иксы, но все они проваливались либо из-за того, что сторонние разработчики отказывали в поддержке, либо предложенные варианты не соответствовали предъявляемым требованиям. Скооперироваться и начать работу над заменой, удовлетворяющей всех, удалось только несколько лет назад со стартом проекта Wayland, участие в котором приняли ключевые разработчики самого
X.org.
Стабильной версии Wayland, тем не менее, достиг только в прошлом году и на текущий момент до сих пор остается экспериментальным вариантом, поверх которого может работать лишь небольшое количество софта, не говоря уже о полноценных графических окружениях вроде KDE, GNOME и Xfce. Зато полтора года назад начали корпеть над окружением Hawaii, изначально рассчитанным исключительно на Wayland без привязки к иксам.
25 декабря разработчики представили пригодную для использования версию Hawaii 0.2, построенную на тулките Qt5, который уже давно портирован на Wayland. Окружение включает в себя классический рабочий стол в стиле Windows с собственным менеджером окон (композитным сервером) Green Island, меню приложений, системой уведомлений, хранителем экрана, движком тем и поддержкой многомониторных конфигураций.
Нет комментариев