LINUX.ORG.RU

Systemd


166

31

Всего сообщений: 134

Arch Linux перешёл на systemd полностью

Группа Linux General

С сегодняшнего дня все новые установки Arch Linux будут поставляться с systemd по умолчанию, что означает завершение перехода на systemd. Поддержка initscripts как пакета и системы загрузки сохранится для совместимости на неопределённое время.

Изменение заключается в добавлении пакета systemd-sysvcompat в группу base, которая автоматически полностью устанавливается всем новым пользователям Арча.

Не все пакеты ещё готовы к переходу, так что тем, кто не может написать к ним systemd-юнит, предлагается установить initscripts и использовать массив DAEMONS в /etc/rc.conf (пакет нужно установить для поддержки в systemd чтения этого файла).

Существующие системы могут перейти на systemd вручную.

>>> Подробности

 ,

DoctorSinus
()

Systemd 194, теперь с HTTP-сервером и генератором QR-кодов

Группа Linux General

Выход очередной версии init-демона systemd продолжает радовать пользователей новыми встроенными функциями.

( Однако две из них привлекли особое внимание… )

>>> Леннарт про FSS и QR-код

 

anonymous
()

Релиз systemd 190

Группа Linux General

Леннарт Поттеринг рад представить очередной релиз загрузочного менеджера systemd.

Новшества:

  • Всякое изменение статуса юнита заносится в журнал и доступно для просмотра по команде «systemctl status».
  • ConditionPathIsMountPoint= теперь может правильно определять точки, смонтированные через bind.
  • Отныне по умолчанию монтируются cgroup-контроллеры cpu, cpuacct и cpuset, а также контроллеры net_cls и net_prio.
  • Контейнеры nspawn теперь имеют виртуализированный загрузочный ID: /proc/sys/kernel/random/boot_id монтируется со случайным ID при инициализации контейнера.
  • Новый режим вывода «json-pretty», при котором блоки JSON для более удобного восприятия оформляются с отступами по одному объекту на строку.
  • Удалены все явные вызовы sync() из кода выключения системы, так как ядро само использует эти вызовы при reboot().
  • Добавлена поддержка виртуального reboot() в контейнерах, поддерживаемого новыми ядрами.
  • journalctl по умолчанию показывает локальный лог. Для просмотра удалённых логов следует использовать ключ --merge (-m).
  • Для libsystemd-journal создан вызов sd_journal_get_usage() для определения текущего использования диска всеми файлами журнала. Опция доступна через команду «journalctl --disk-usage».
  • journald получил в journald.conf новую опцию SplitMode= для разбиения конфигурационного файла на части.
  • Новое условие ConditionFileNotEmpty= для проверки состояния файлов.
  • Добавлены биндинги Python для работы с журналом (пока реализованы частично). Официально будет поддерживаться только Python, но сторонние разработчики могут добавить биндинги к другим языкам (например, уже существуют биндинги Lua и PHP).
  • journald теперь предупреждает о невозможности доставки сообщения демону логирования при занятом сокете.
  • journald больше не изменяет /etc/localtime.
  • Теперь logind всегда резервирует один виртуальный терминал (по умолчанию — VT6) для текстового входа.
  • udev автоматически информирует ядерную подсистему btrfs на предмет доступных компонентов btrfs RAID.
  • Ограничение RLIMIT_NOFILE для PID 1 (но не его потомков!) повышено до 64 тысяч. Это сделано для возможности прослушивания большего количества сокетов.
  • При попытке монтирования журнала поверх непустого каталога администратор получает извещение.
  • Для юнит-файлов добавлена поддержка макроподстановок с именем хоста (%H), идентификатором машины (%m) и идентификатором загрузки (%b).
  • systemd теперь всегда конфигурирует часовой пояс для ядра при загрузке. timedated делает то же при изменении /etc/localtime.
  • Обновлена логика logind.

Скачать архив

>>> Подробности

 

Kindly_Cat
()

В Journald добавлена поддержка криптографической защиты журналов

Группа Red Hat

Леннарт Поттеринг (Lennart Poettering) из RedHat представил новую систему FSS, являющуюся дополнением к системе ведения логов Journald, входящей в состав системы инициализации Systemd. Данная инновация войдет в состав Fedora 18.

Forward Secure Sealing (FSS) позволяет накладывать криптографические отпечатки на журнал системных логов. Таким образом, злоумышленники не смогут изменить журнал (однако, смогут полностью удалить его). Это работает путем создания пары криптографических ключей (ключ отпечатков и верификационный ключ). Первый остается на машине, сохранность журналов которой необходимо гарантировать, и автоматически меняется через определенные интервалы времени (старый ключ удаляется без возможности восстановления). Второй ключ записывается на бумагу, мобильный телефон или в другое защищенное место (это означает, что он не должен храниться на машине, журналы которой необходимо защищать). Имея верификационный ключ, вы можете проверить журналы и, в случае успешной проверки, быть уверенным в целостности логов (даже, если бы машина была взломана).

( Читать дальше )

>>> Подробности на Google+

 , , ,

unfo
()

Разработчики Arch Linux начали обсуждение возможности перехода от SysV к systemd в ближайшем будущем

Группа Linux General

14-го августа в списках рассылки arch-dev-public Стефан Гадреальт (Stéphane Gaudreault) предложил в ближайшее время перевести систему инициализации Arch Linux с классического SysV на прогрессивный systemd. В качестве причин, Стефан указывает на наличие у последнего лучшего дизайна, дополнительных средств администрирования и минимального времени загрузки. Аллан МакРей (Allan McRae), Андреа Скарпино (Andrea Scarpino) и другие разработчики Arch Linux поддержали инициативу Стефана.

>>> Подробности

 ,

oniguruma
()

Fedora 18: большинство обновлений потребует перезагрузку

Группа Red Hat

На днях FESCo одобрил для внедрения в следующий, восемнадцатый, релиз Fedora очередную революционную новинку от продюсера pulseaudio, systemd и journal. Речь идет об оффлайновых обновлениях системы.

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

Для начала, предлагается всё, что несет с собой desktop-файл и появляется в меню, считать приложением, а всё остальное — обновлением системы. В дальнейшем, возможно, будут внедрены дополнительные подсказки в метаданных пакетов. Поскольку основная часть пакетов не включает в себя desktop-файлы, очевидно, что любое обновление, включая, например, установку другого ядра, будет требовать две перезагрузки только чтобы установить сам пакет.

Дополнительно реализована загрузка системных обновлений в фоновом режиме с уведомлением пользователя о наличии обновлений только тогда, когда всё уже готово к их установке. Механизма управления загрузками системных обновлений пока не предусмотрено, вернее, это отдано на откуп будущих высокоуровневых менеджеров обновлений в GNOME.

Ссылки:
Перевод критической статьи в IT world.
Страница новой технологии в Fedora wiki.

P.S. Новый механизм обновлений завязан на systemd, PackageKit и Gnome-shell. Пользователей командной строки и других DE просят не беспокоиться.

>>> Перевод страницы новой технологии из Fedora wiki

 , ,

AVL2
()

Управление пользовательской сессией из systemd

Группа Linux General

Анонсирована совместная работа инженеров Intel и Samsung по переносу логики менеджеров сессий (gnome-session, startxfce4 и т.п.) в systemd.

>>> Подробности

 ,

catap
()

Слияние кодовой базы udev и systemd

Группа Linux General

Будущее исходных текстов Udev. Обращение разработчиков.

Мы собираемся объединить исходные коды Udev с systemd. После этого, в следующей версии systemd будет продолжена нумерация версий Udev, т.е. после версии 45 сразу будет версия 184 systemd.

После слияния Udev с systemd вы можете собрать его (udev) без systemd, и мы будем поддерживать эту возможность официально. На самом деле, мы будем поддерживать её в течение длительного промежутка времени, так как это необходимо, для функционирования initrd (т.к. в нём не нужен systemd) должным образом. Дистрибутивы, не желающие использовать systemd могут собирать Udev так же как и раньше, однако следует использовать архив с исходными текстами systemd, вместо архива с исходными текстами Udev и пакеты, необходимые для сборки.

Сегодня «Init» нуждается в полной поддержке горячего подключения; udev управляющий устройствами и знание жизненного цикла устройства является неотъемлемой частью systemd, а не изолированы от неё. В связи с этим, для сведения к минимуму нашей административной нагрузки, уменьшения дублирования кода, и разрешения циклических зависимостей в ядре ОС, у нас принято решение об объединении двух проектов.

Udev собранный из дерева исходных текстов systemd останется совместимым с системами, имеющими систему инициализации отличную от systemd в течение длительного времени. Эти изменения заключаются в основном в изменении схемы сборки, а не изменении направления развития или интерфейсов. Соответственно изменения в инфраструктуре сборки не затронули libudev API. Для нас совместимость является ключевым моментом.

>>> Подробности

 , ,

kostik87
()

Релиз systemd v38 c поддержкой Journal, замены системе syslog

Группа Open Source

Леннарт Поттеринг (Lennart Poettering) анонсировал новый экспериментальный релиз системного менеджера systemd v38, примечательный интеграцией наработок проекта Journal, в рамках которого развивается подсистема, призванная заменить собой службу syslog и другие сопутствующие сервисы журналирования событий. Подробный обзор особенностей Journal и отличий от syslog можно прочитать в первом анонсе проекта.

Сообщается, что работа над Journal уже близка к завершению, остаётся нереализованными лишь несколько значительных функций и недостаточно проработана документация. Наиболее заметно наличие Journal при выполнении для сервисов команды 'systemctl status', которая теперь выдаёт в том числе и последние сообщения лога для указанного сервиса. Для совместимости с классическим syslog в systemd интегрирована специальная прослойка, которая использует сокет /run/systemd/journal/syslog для приема сообщений, включая перенаправление сообщений из /dev/log.

Данные сохраняются в /var/log/journal, если такая директория создана, в противном случае лог сохраняется в /run/log/journal. Для просмотра журнала следует использовать утилиту systemd-journalctl, которая по умолчанию генерирует вывод, полностью аналогичный формату /var/log/messages. Используя опции "-o verbose", "-o short-monotonic" или "-o json" можно менять детализацию и формат вывода. Для эмуляции поведения «tail -f» предусмотрена опция "-f".

>>> Подробности

 , , ,

Darth_Revan
()

The Journal: жизнь после syslog

Группа Open Source

В своей новой статье Леннарт Поттеринг (Lennart Poettering), известный разработкой звукового сервера PulseAudio и системы загрузки systemd, объяснил, чем его не устраивает syslog, и предложил свою универсальную реализацию системного журнала в Linux.

Среди всего прочего, в этой реализации syslog нет поддержки протокола передачи syslog и вообще нет поддержки сети, зато вместо текстовых логов используются бинарные форматы данных, для доступа к которым предлагается отдельная разделяемая библиотека.

Поскольку данная разработка Леннарта войдёт в Fedora 17 и далее, скорее всего, разойдётся по всем дистрибутивам, я взял на себя труд перевести и предложить вашему вниманию эту статью.

>>> Перевод статьи

 , ,

AVL2
()

Systemd 29

Группа Linux General

16 июня, тихо и незаметно вышла 29-ая версия новой системы инициализации для Linux. Среди её возможностей основными являются:

  • событийно-ориентированная система параллельного запуска сервисов;
  • управление через dbus;
  • упразднение загрузочных bash-скриптов и замена схожим по функциональности кодом на C для управления консолью, установки локали, запуска fsck, монтирования файловых систем и др.;
  • возможность запуска сервисов по появлению данных в сокете, запуску или остановке других сервисов, наличию подключённых устройств или смонтированных файловых систем;
  • встроенное упреждающее чтение с диска;
  • интеграция с cgroups;
  • совместимость со старыми скриптами, предназначенных для использования с SysVinit.

Всё это даёт возможность загружать систему за время порядка 10 секунд и выключать за 1 секунду.

В новой версии были незначительно изменены Makefile-ы, и было добавлено 2 пункта в TODO:

  • посылать сигнал, когда загрузка завершена;
  • при неудачном запуске сервиса попытаться перезапустить его.

Будем надеяться, что в следующей 30 версии мы увидим эти новые фичи.

Исходники

О systemd и ссылки

>>> Подробности

 , ,

gentoo_root
()

Кодовое имя Fedora 15 — Lovelock

Группа Red Hat

Кодовое имя следующего выпуска дистрибутива Fedora Linux под гордым номером «15» определено — это Loveloсk, название города в американском штате Невада.

15-ая версия этого популярного дистрибутива включает:

  • избавление от suid-бита в пользу «capabilities»;
  • каталоги /var/lock и /var/run будут смонтированы в tmpfs;
  • осуществлён переход на использование LZMA в качестве формата сжатия для LiveCD;
  • выбрана принципиально новая система загрузки и завершения работы системы — systemd;
  • произведено обновление версий пакетов;
  • и многое другое.

>>> Подробности

 , , , ,

uju
()

Fedora: на пути к 14

Группа Red Hat

В проекте Fedora сразу три новости, которые наверняка обрадуют всех:

  1. Fedora перевела всю свою инфраструктуру на Git. Ранее для управления версиями RPM-спеков, патчей и исходников использовался cvs.
  2. Systemd интегрирован в Rawhide. Теперь он может использоваться вместо upstart. Осталась временная возможность выбирать при загрузке систему инициализации через параметр init=/bin/systemd или init=/sbin/upstart. В дальнейшем upstart будет убран из системы.
  3. Fedora 14 выделена в отдельную ветку репозитория из Rawhide. Теперь принимаются только улучшения, связанные с повышением стабильности и закрытием багов. Новые возможности приниматься не будут. Релиз назначен на 26 октября.

Переход на Git

Systemd теперь новая система инициализации по умолчанию

>>> Выделена ветка Fedora 14

 , ,

DoctorSinus
()

systemd — новый подход к инициализации системы

Группа Open Source

Lennart Poettering, сотрудник компании Red Hat, представил концепцию принципиально нового механизма управления инициализацией системы — systemd (system daemon), которая вобрала в себя достоинства классического System V init и более современных launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, Fedora), но при этом лишена многих их недостатков. В разработке этого проекта ему помогали сотрудники Red Hat, Novell, IBM, Intel и Nokia.

systemd опирается на современные linux-технологии: cgroups, AutoFS, D-Bus, и при этом совместим с исторически устоявшимися механизмами: init-скриптами, стандартными командами shutdown, poweroff и т.п. Предоставляемый systemd функционал позволяет заменить не только систему инициализации, но и ряд других подсистем, в частности, cron, (x)inetd, xdm/kdm/gdm/..., частично даже SELinux.

Основные идеи, использованные при создании systemd:

  • Контроль над сокетами. Многие демоны, запускаемые при инициализации, взаимодействуют с другими демонами через unix domain и сетевые сокеты, и большинство существующих систем инициализации запускают демона-клиента только после того, как демон-сервер запустится и создаст сокет. Вместо этого, systemd создает сокеты, а затем запускает демонов, передавая им эти сокеты. Даже если демон-клиент запустится быстрее и начнет использовать сокет раньше сервера, ничего страшного не произойдет: его запрос будет буферизован и передан серверу, как только тот сможет его обработать. Такой подход уже используется в Mac OS X (launchd), позволяя этой ОС достигать впечатляющей скорости загрузки.

    Аналогичный принцип используется systemd и при запуске служб, использующих шину D-Bus.

    Кроме того, возможен автоматический запуск служб при обращении к заданным сокетам (см. ниже).

  • Фоновое монтирование. Такие операции, как монтирование, проверка и активация квот файловых систем, занимают весьма значительную долю загрузочного времени. В большинстве современных систем они выполняются последовательно, до запуска всех демонов. systemd же предлагает монтировать не-жизненно-важные ФС только тогда, когда они кому-то понадобятся. Для этого используется механизм AutoFS. Например, многие служебные демоны вовсе не обязаны ждать, пока смонтируется огромный и к тому же зашифрованный /home.

    Разумеется, этот подход неприменим к /, /proc, /sys и т.п.

  • Минимизация числа вспомогательных процессов. В настоящее время значительная часть работ по инициализации производится шелл-скриптами, что приводит к колоссальным времязатратам. В частности, Леннарт пишет:

    On my system the scripts in /etc/init.d call grep at least 77 times. awk is called 92 times, cut 23 and sed 74,

    при этом замечая, что почти каждый такой запуск влечет накладные расходы на поиск библиотек, подгрузку данных интернационализации (i18n) и т.п.

    В качестве альтернативы Леннарт предлагает предлагает переписать критичные участки на C, а также вынести часть функционала в самих демонов и в systemd. Сейчас для systemd уже готовы написанные на C подсистемы монтирования и установки имени хоста. До полной победы, отмечает Леннарт, работа предстоит огромная, но результат того стоит.

  • Отслеживание процессов. В ныне используемых системах инициализации в принципе возможна такая ситуация, когда при неправильном форке процесс может «потеряться». Например, так может произойти с некорректно написанным CGI-приложением, и процесс останется работать даже после остановки веб-сервера.

    Для предотвращения таких ситуаций systemd использует интегрированный в ядро Linux механизм контрольных групп (cgroups). Если приложение не имеет доступа к псевдо-ФС, управляющей работой cgroups, то оно не может самостоятельно покинуть свою группу и «потеряться».

    Также к этой группе задач относится и автоматический перезапуск демонов, перенаправление их stdout/stderr на выбранные TTY или в системный журнал, регистрация всех запусков и остановок служб, и многое другое.

  • Ограничение процессов. systemd предоставляет множество возможностей ограничить или расширить полномочия процессов, контролируя такие параметры, как uid, gid, umask, рабочий и корневой каталоги, класс и приоритет CPU и I/O, наличие доступа на чтение и запись к смонтированным файловым системам и отдельным каталогам и т.п. Также можно использовать возможности по ограничению ресурсов, предоставляемые cgroups.

Базовым элементом systemd являются модули (units), которые связаны между собой и имеют определенный тип. Каждый модуль может требовать для своей работы другие модули, конфликтовать с модулями, запускаться только после или до определенного модуля (директивы конфигурации Requires, Conflicts, Before, After, Wants). Из типов модулей определены:

  • service — обычный демон, поддерживающий операции start, stop, restart, reload. Может быть представлен родным (native) файлом конфигурации systemd или System V init-скриптом.
  • socket. При обращении к сокету генерируется событие, для которого можно настроить обработчик. Например, автоматически запускать определенные службы при обращении к заданному сокету. В этом отношении systemd похож на давно известный (x)inetd, однако при этом поддерживает unix domain сокеты и FIFO.
  • device. Отметив нужные устройства в конфигурации udev, впоследствии можно использовать такие события, как появление и удаление устройства, в качестве событий systemd, назначив на них обработчики. Например, при появлении устройства bluetooth будет запущена соответствующая служба.
  • mount. systemd контролирует все точки монтирования файловых систем. В целях обратной совместимости поддерживается сбор информации о точках монтирования из /etc/fstab.
  • automount. Для помеченных таким образом точек монтирования, монтирование выполняется только при обращении к ним.
  • target. Более гибкий аналог уровней исполнения (runlevels), используемых в System V init. Представляет собой группу служб, объединенных по функциональному назначению. Например, multi-user.target идентичен runlevel 5, а bluetooth.target приводит к инициализации подсистемы bluetooth.
  • snapshot — во многом похож на target. Позволяет «запомнить» существующую конфигурацию units (запущенных служб, открытых сокетов, смонтированных ФС) с тем, чтобы в дальнейшем восстановить это состояние. Позволяет, например, перейти в emergency shell (сейчас это init 1), а затем полностью восстановить набор запущенных служб. Другой пример — выход системы из состояния suspend.

Надо заметить, что systemd отличается от SMF, во-первых, тем, что позволяет оперировать не только зависимостями между службами, но и событиями, например, «готовность устройства» или «обращение к сокету». Во-вторых, systemd использует более простой формат файлов конфигурации (.desktop aka .INI против XML в SMF).

От upstart же systemd отличается более высокой степенью параллелизации, и как следствие, более высокой скоростью загрузки. Например, если демон A требует для работы сокет, открытый демоном B, то upstart сначала запустит демона B, а затем демона A, в то время как systemd создаст сокет сам и запустит обоих демонов одновременно, что занимает примерно в два раза меньше времени. Используемый в upstart принцип, когда ключевыми событиями является лишь запуск и остановка демона, Леннарт и его коллеги считают изначально неэффективным.

Well, the point of the part about Upstart above was to show that the core design of Upstart is flawed, in our opinion. Starting completely from scratch suggests itself if the existing solution appears flawed in its core. However, note that we took a lot of inspiration from Upstart's code-base otherwise.

>>> Подробности

 , , smf, ,

nnz
()