В Linux-сообществе неизменно шумно. Свободная ОС на то и свободная, дабы любой желающий имел возможность вмешаться в её эволюцию либо по крайней мере высказать собственное вывод относительно того, куда надлежит направляться потом. Парадоксальным образом броуновское это перемещение как правило преобразуется в перемещение поступательное — само собой разумеется, не без острых моментов, в каковые две либо более точек зрения образуют около себя многотысячные противостоящие лагеря.
Но за почти двадцать пользования и лёт наблюдения «Линуксом» Я не припомню раскола более ужасного, чем тот, что появился сейчас. По одну сторону поднялись приверженцы классических UNIX-сокровищ, по другую — те, кто уверен в том, что настала пора распрощаться с устаревшим философским наследием, покинутым отцами-основателями. И всё это — конфликт init против systemd.
Дабы читателю, далёкому от технических нюансов, было понятней, о чём обращение, стоит сделать краткий экскурс в недра Linux. Самым ответственным компонентом данной совокупности считается Ядро: комплект функций, которыми пользуются программы, дабы руководить компьютером и общаться с человеком. Но перед тем как какая-то работа по большому счету начнётся, нужно привести машину в работоспособное состояние, т.е. совершить инициализацию. Этим в UNIX занимается процесс с говорящим за себя заглавием init. Пара упрощая возможно заявить, что «Линуксу» init достался в наследство от всамделишной UNIX System V. В ходе инициализации последовательно выполняются ответственные испытания, запускаются нужные системные процессы, а позже и приложения, конкретно взаимодействующие с пользователем. В то время, когда же работа закончена, как раз init выключает компьютер. Таковой вот незаметный, но очень ответственный процесс, соперничающий, возможно сообщить, с самим ядром совокупности!
Трудись Архимед в Linux, он имел возможность бы сообщить и без того: «Разрешите войти в консоль и я переверну мир!».
Нужно кроме этого знать, что хороший инициализатор выстроен в полном соответствии с философией UNIX. Не забывайте эти правила, сформулированные ещё Томпсоном и Ричи? Составлять сложное из готовых несложных «кубиков», не изобретать велосипед — вот к чему они сводятся, в случае если быть кратким. Linux, как прямая наследница UNIX, и имеется комплект таких кубиков, любой из которых делает всего одно дело, но делает его прекрасно. Мощь данной ОС (её надёжность, защищённость, удобство, функциональность) произрастает не из свойств какой-то одной — суперинтеллектуальной, суперфункциональной — программы, а из сотрудничества тех самых мелких примитивных компонент, каковые несложны, а потому понятны, общаются на едином «языке» в форме простого текста, прекрасно отлажены, взаимозаменяемы, смогут соединяться приятель с дружкой нескончаемое число раз. Так же и init собран из кубиков, связанных несложными скриптами.
Большинство разработчиков Linux и сейчас придерживаются UNIX-философии. Но не все. «Старики» брюзжат: всё чаще молодёжь вместо того, дабы опираться на готовые «кубики», пробует решать в далеком прошлом решённые задачи самостоятельно и выдаёт страдающие ожирением программы типа «всё в одном». А общепризнанным фаворитом данной волны «велосипедов 2.0» стал демон systemd — улучшенная замена init.
Изначально systemd вспоминал как более стремительная и элегантная альтернатива хорошему инициализатору: скорость достигается за счёт параллельного (а не последовательного) запуска процессов, «элегантность» же проистекает из более «высокоуровневой», «дружелюбной к пользователю» архитектуры (к примеру, скрипты тут заменены конфигурационными файлами). Это была не первая попытка для того чтобы рода, но именно она приобрела публики и наибольшую поддержку разработчиков. Но за пять лет существования systemd собрал ровно столько же и неприятелей!
Кроме того, что его идеологи задумали починить то, что не ломалось (прямое нарушение UNIX-философии), systemd разрастается как будто бы раковая опухоль, вбирая в себя всё новые функции, привязывая к себе более высокоуровневые программы. Соперники не в серьез именуют его «вторым Ядром». Сейчас systemd — уже не только инциализатор совокупности. Это сложнейший многокомпонентный механизм, пробующий собственными силами решать многие стандартные системные задачи (к примеру, руководить устройствами), причём и настройка, и контроль, и общение между его компонентами реализованы средствами, далёкими от предлагаемых UNIX-философией.
по поводу «простоты» UNIX, но, также имеется различные точки зрения.
Init был комплектом элементарных скриптов, каковые возможно просматривать и править в любом текстовом процессоре; systemd — непрозрачная аморфная масса, кроме того для чтения конфигурационных логов и файлов которой требуются особые инструменты, внутреннюю работу которой практически нереально проконтролировать. Баги при таком подходе, конечно, множатся экспоненциально (кто сообщил «небезопасно»?), а манера начальников проекта проигнорировать их (и подавлять инакомыслие) вывела из себя кроме того Линуса Торвальдса. Что в наше время весной практически практически послал одного из главных девелоперов systemd на три буквы: дескать, пока не обучитесь нормально реагировать на жалобы, принимать от вас ничего не стану.
Но, вывод Линуса и других «пуристов-староверов» (Эрика Реймонда, к примеру) — не истина в последней инстанции. Весьма многие в Linux-сообществе вычисляют systemd достаточно увлекательным проектом, дабы в нём поучаствовать и его плодами воспользоваться. Так что Linux-вселенная раскололась на две части. Авторы одних программных продуктов и дистрибутивов уже решили опереться на systemd: на него завязан GNOME, перешла Fedora, Arch Linux, частично Debian, планирует Ubuntu, прошлым летом мигрировала Red Hat (Леннарт Поттеринг, основатель systemd, кстати, в том месте трудится). Но Slackware, Gentoo, CRUX не перешли. И число соперников systemd отнюдь не значительно уменьшается со временем.
Повторюсь, само по себе бурление мозгов в Linux-сообществе — явление привычное, естественное. Но при с демоном инициализации итог раскола обещает быть очень тяжёлым. Особенность тут в том, что systemd не только начинает, поддерживает и заканчивает работу совокупности, но и пробует оказывать влияние на приложения, так что дистрибутивы с таким инициализатором могут быть несовместимыми с дистрибутивами, каковые его не приняли.
В лучшем случае варианты Linux, не принявшие systemd, выделятся в особенную категорию, увы, немногочисленную (так как большая часть популярных дистро на systemd уже перешли). В нехорошем — провалятся сквозь землю вовсе, а их пользователи покинут лагерь Linux, променяв его, к примеру, на FreeBSD. Где философию UNIX до тех пор пока ещё не забывают и ценят.