-
Представлена systemd — новая событийная init-система для GNU/Linux
Леннарт Поттеринг (Lennart Poettering) из компании Red Hat представил свою личную инициативу по созданию новой событийной init-системы для операционной системы GNU/Linux — systemd («System D»).
Автор systemd опубликовал подробную статью, в которой объясняет, какие причины побудили его создать новую событийную init-систему, когда уже существует популярная реализация от проекта Ubuntu — Upstart. Что интересно, автор Upstart в свою очередь с интересом отнесся к появлению systemd и поделился радостью, что проблемой эффективного параллельного запуска служб занялись разработчики Linux-дистрибутивов Fedora и openSUSE, а также согласился с обозначенными Поттерингом проблемами в Upstart.
Какой-либо информации о кооперации systemd и Upstart пока нет, однако автор Upstart пообещал связаться с инициатором нового проекта. Поттеринг отмечает, что создавать systemd он начал из технических соображений, и никаких религиозных или политических мотивов (а также социального феномена NIH — «Not Invented Here») здесь искать не нужно.
Systemd запускает всю систему и управляет этим процессом. В ее основе — так называемые «единицы» (units), у каждой из которых есть свое название и тип (сервис / service, сокет / socket, устройство / device, точка монтирования / mount, точка автоматического монтирования / automount, цель / target, снимок / snapshot). У всех единиц могут быть зависимости между собой двух типов: «требует» (requires), «конфликтует» (conflicts). Более того, в systemd заложена минимальная система транзакций — приостановка не используемых в системе единиц, если конечную единицу, вызвавшую этот процесс, не удалось запустить.
Помимо Леннарта в разработке systemd активно участвовал Кэй Сиверс (Kay Sievers) из компании Novell, а также помогали представители компаний Red Hat, Intel, Nokia. Ожидается, что systemd войдет в состав Linux-дистрибутивов openSUSE и Fedora. Вполне возможно, что ее возьмут на вооружение и другие системы.
The worst foe lies within the self...
-
-
Будь в курсе!
Будь в курсе!
Надоело быть жертвой? Стань профи по информационной безопасности, получай самую свежую информацию об угрозах и средствах защиты от ведущего российского аналитического центра Anti-Malware.ru:
-
Вышла первая версия системы инициализации systemd
Леннарт Поттеринг (Lennart Poettering), сотрудник компании Red Hat, создавший в свое время звуковой сервер PulseAudio, официально представил первый релиз системного менеджера systemd. systemd является альтернативной системой инициализации Linux, вобравшей в себя достоинства классического System V init и более современных launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, Fedora), но при этом лишенной многих их недостатков.
systemd (system daemon) реализует принципиально новый подход к инициализации и контролю работы системы. Одним из ключевых новшеств этого подхода является высокая степень параллелизации запуска служб при инициализации системы, за счет активного использования возможностей сокетов, что в перспективе позволяет добиться гораздо более высокой скорости, чем традиционный подход с последовательным запуском взаимозависимых служб, используемый, например, в upstart. Другим важным моментом является контроль над точками монтирования (не-жизненно-важные файловые системы можно монтировать только при первом обращении к ним, не тратя на это время при инициализации системы) и устройствами (можно запускать и останавливать определенные службы и при появлении или удалении заданных устройств). Для отслеживания групп процессов используется механизм cgroups, который также может быть использован для ограничения потребляемых ими системных ресурсов.
С момента прошлого анонса Леннарт и его коллеги проделали огромную работу, и выход первого официального релиза является важной вехой в развитии проекта — теперь systemd готов к эксплуатации. Пакеты с systemd v1 уже включены в Fedora Rawhide и openSUSE Factory. Также подготовлены сборочные скрипты для дистрибутивов Arch и Gentoo. Проект Debian, как всегда, нетороплив — на данный момент в experimental находится git-снапшот месячной давности. Все эти дистрибутивы полностью поддерживаются systemd. Что касается Ubuntu, то разработчики этого дистрибутива не проявили никакой заинтересованности в проекте, и поэтому поддержка инфраструктуры и готовые пакеты для данного дистрибутива отсутствуют.
The worst foe lies within the self...
-
-
Отчет о развитии systemd
Леннарт Поттеринг, ведущий разработчик перспективной системы инициализации systemd, рассказал о ключевых достижениях в разработке данного программного продукта:
- В настоящее время systemd уже принят в состав выпуска Fedora 14 и отлично зарекомендовал себя в предварительном тестировании, поэтому скорее всего именно он будет использоваться в Fedora 14 в качестве системы инициализации по умолчанию.
- Добавлены новые конфигурационные единицы (юниты): timer-юниты для активации событий по таймеру (в стиле cron), swap-юниты, позволяющие централизованно управлять swap-разделами и swap-файлами, и path-юниты, обеспечивающие реагирование на события inotify (например, изменение заданного файла или появление файлов в определенном каталоге).
- Реализована поддержка SELinux: создаваемым объектам (каталогам, сокетам, FIFO) автоматически присваиваются корректные метки безопасности.
- Выполнена интеграция со стандартной аудит-подсистемой ядра Linux: systemd отчитывается обо всех операциях запуска/остановки служб.
- Добавлена поддержка TCP-оберток (wrappers) для обслуживаемых сокетов.
- Обеспечена поддержка PAM при запуске служб под отдельными пользователями (при открытии и завершении сеанса выполняются соответствующие хуки PAM).
- Реализована поддержка D-Bus: все D-Bus службы могут контролироваться systemd точно так же, как и обычные SysV-службы. За счет использования буферизующих возможностей шины и сокетов, обеспечивается эффективное распараллеливание запуска серверов и клиентов (перед запуском клиента уже необязательно дожидаться окончания запуска сервера — их можно запустить одновременно, и если запрос клиента придет раньше, чем сервер сможет его обработать, то этот запрос просто задержится в буфере до нужного момента).
- Обеспечен парсинг специфичных для Debian и openSUSE расширений формата SysV-скриптов (для Fedora такая поддержка была изначально).
- Завершена доработка управляющего D-Bus-интерфейса к systemd, обеспечивающего полный доступ к текущей конфигурации. Используя такие утилиты, как gdbus или d-feet, администратор может просматривать всю необходимую информацию и при необходимости отдавать команды.
- Добавлен PAM-модуль, который обеспечивает полный контроль над завершением всех пользовательских процессов по окончании сеанса (для отслеживания процессов используется механизм cgroups).
- Добавлена утилита systemd-cgls, выполняющая рекурсивный вывод иерархии контрольных групп (cgroups).
- Реализована сама иерархия контрольных групп (в настоящий момент управляющая псевдо-ФС, отражающая эту иерархию, монтируется в /cgroup/systemd, однако перед выпуском Fedora 14 ее планируется перенести в недра /sys/fs/).
- Поддерживается запуск getty для serial-консолей.
- Значительно улучшена основная управляющая утилита systemctl (например, поддерживается вывод графа зависимостей в формате Graphviz). Также улучшены средства, эмулирующие работу классических утилит SysV (halt, shutdown, runlevel, telinit) — теперь соответствующие программы из комплекта systemd могут работать не только под systemd, но также под Upstart и SysV, что должно упростить процесс миграции. Кроме того, обеспечена отправка уведомлений в том случае, если файлы конфигурации systemd были изменены, а команды перечитать их не поступало.
- Подготовлен пример реализации демона, эффективно использующего возможности, предоставляемые systemd.
- Также подготовлен комплект документации по основным компонентам systemd, включая рекомендации по разработке демонов с учетом специфики systemd.
- Некоторые программные продукты уже включает в комплект поставки конфигурационные файлы для systemd, что обеспечивает корректную работу таких программ в любом дистрибутиве, поддерживающем systemd. В планы Леннарта и его коллег входит унификация процесса загрузки и управления службами во всех этих дистрибутивах, и определенные результаты уже достигнуты. Кроме того, в ряд проектов уже приняты присланные разработчиками systemd патчи, обеспечивающие эффективное использование возможностей socket-based активации (в стиле inetd).
- Добавлено множество опций, определяющих среду исполнения процессов и сокетов (лимиты на системные ресурсы, ограничения безопасности и т.п.).
- Леннарт Поттеринг приступил к публикации цикла статей «systemd for Administrators».
- Функциональность практически всех скриптов, обеспечивающих запуск и остановку Fedora, реализована «с нуля» в отдельных быстрых, простых и компактных C-программах, и частично в самом systemd. И хотя многие из этих наработок, к сожалению, не будут задействованы в выпуске Fedora 14, все они включены в состав systemd, и их полная активация обеспечивает быструю, эффективно распараллеленную загрузку, прочем PID первого пользовательского терминала уже меньше пятисот. К выпуску Fedora 15 Леннарт и коллеги планируют подготовить полностью бескостыльный (shell-less) процесс загрузки.
- В systemd реализован уникальный механизм обеспечения работы регистратора /dev/log, в перспективе позволяющий сохранить все лог-записи, начиная от первого запуска systemd на раннем этапе загрузки и заканчивая моментом halt'а системы. Вкратце, идея состоит в следующем: в те периоды времени, когда syslog-демон недоступен (до его запуска в начале загрузки, после его остановки при завершении работы, во время его перезапуска и т.п.) регистрация событий производится средствами ядерного лог-буфера (kmsg). Если syslog-демон по какой-то причине становится неработоспособен, все системные события можно узнать из вывода dmesg. В дальнейшем, если syslog-демон все-таки поднимется, эта информация будет распределена по заданным в его конфигурации приемникам (лог-файлам, удаленным серверам логгирования и т.п.). В том случае, если подъем syslog-демона больше не ожидается (например, при остановке системы), содержимое ядерного лог-буфера может быть выведено на терминал (или serial console, или netconsole, и т.п.). Особый интерес эта возможность представляет для встраиваемых систем, в которых теперь можно обходиться вообще без демона системного лога (преимущества: меньше нагрузка на процессор, отсутствие дискового ввода-вывода, возможность доступа к логу через последовательную или сетевую консоль).
- Подготовлены конфигурационные файлы для монтирования средствами autofs ряда виртуальных файловых систем ядра (binfmt_misc, hugetlbfs и т.п.). Теперь эти файловые системы монтируются автоматически при первом обращении к ним, и программам, использующим данные ФС, больше не требуется самостоятельно подгружать соответствующие модули ядра перед началом работы. Во многих случаях это означает, что таким программам больше не нужны root-привилегии даже на этапе инициализации, что делает их более безопасными, и упрощает процесс их запуска.
- Огромное количество мелких исправлений и улучшений.
The worst foe lies within the self...
-