LINUX.ORG.RU

systemd 216

 , ,


1

2

systemd — это менеджер системы и сессий для Linux. systemd совместим со скриптами инициализации SysV и LSB. Он предоставляет возможности агрессивного распараллеливания, использует для запуска сервисов сокеты и D-Bus активацию, позволяет запускать демоны по требованию, реализует транзакционную зависимостную логику управления сервисами, отслеживает процессы с использованием Linux cgroups, поддерживает создание снимков и восстановление, а также заведует монтированием и точками автомонтирования.

Это мажорный выпуск. Помимо прочих изменений, systemd-resolved теперь гармонично дополняет распознаватель заглушек кэширования DNS и LLMNR.

  • timedated больше не читает имена юнитов реализации NTP из /usr/lib/systemd/ntp-units.d/*.list. Альтернативная реализация NTP добавляет
    Conflicts=systemd-timesyncd.service
    в их юнит-файлы, заменяя собой функциональность NTP systemd по умолчанию.
  • systemd-sysusers получила новый тип строки «r» для настройки того, из каких диапазонов UID/GID выделять системных пользователей/группы. Строки типа «u» теперь могут добавлять дополнительную колонку для обозначения домашней директории создаваемого пользователя. Кроме этого, systemd-sysusers теперь может опционально считывать пользовательскую информацию из STDIN вместо файла. Это полезно вызове её из предустановочных скриптлетов RPM, которым нужно создать пользователей перед установкой первого файла RPM, так как этим файлам может требоваться владение этими пользователями. Новый макрос RPM %sysusers_create_inline представлен именно для этой задачи. systemd-sysusers теперь обновляет теневые файлы наряду с базами пользователей/групп, что улучшает совместимость с некоторыми инструментами, например, grpck.
  • Ряд шинных API PID 1 теперь опционально запрашивает у PolicyKit, предоставить ли доступ считающимся непривилегированными клиентам при определённых условиях. Имейте в виду, что интерактивная аутентификация в данный момент пока не поддерживается, но в конечном счёте ожидается добавление и её.
  • /etc/machine-info теперь обладает новыми полями для настройки среды развёртывания машины, а также месторасположения машины. hostnamectl обновлён и снабжён новой командой для обновления этих полей.
  • systemd-timesyncd обновлён до автоматического запроса информации о NTP-сервере у systemd-networkd, который можно обнаружить по DHCP.
  • systemd-resolved теперь включает распознаватель заглушек кэширования DNS и полную реализацию разрешения имён LLMNR. Добавлен новый модуль NSS «nss-resolve», позволяющий использовать собственный «nss-dns» glibc для обнаружения имён хостов через systemd-resolved. Имена хостов, адреса и произвольные RR'ы можно распознавать через D-Bus API systemd-resolved. В отличие от внутреннего распознавателя glibc, systemd-resolved умеет работать с многодомными системами и удерживает DNS-сервера и кэши отдельно и поинтерфейсно. Запросы посылаются одновременно на все интерфейсы, имеющие настроенные DNS-сервера, для корректной обработки VPN и локальных LAN, которые могут распознавать отдельные наборы доменных имён. systemd-resolved может запрашивать информацию о DNS-серверах у systemd-networkd автоматически, который, в свою очередь, может находить её по DHCP. Нововведённый инструмент «systemd-resolve-host» можно использовать для запроса логического DNS у resolved. systemd-resolved реализует IDNA и автоматически использует IDNA или кодировку UTF-8 в зависимости от того, используется ли в качестве транспорта классический DNS или LLMNR. В следующих выпусках планируется добавить в systemd-resolved реализацию DNSSEC и mDNS/DNS-SD.
  • Добавлен новый модуль NSS nss-mymachines, автоматически распознающий имена всех локально зарегистрированных контейнеров по соответствующим IP-адресам.
  • Добавлен новый клиентский инструмент для systemd-networkd — «networkctl». В настоящий момент он полностью пассивен и запрашивает сетевую конфигурацию у udev, rtnetlink и networkd, предоставляя её пользователю дружественным способом. В будущем планируется расширить его до полноценной утилиты для управления networkd.
  • .socket-юниты получили новую настройку DeferAcceptSec=, управляющую sockopt ядра TCP_DEFER_ACCEPT для TCP. Аналогично, для управления TCP Keep-Alive добавлены KeepAliveTimeSec=, KeepAliveIntervalSec= и KeepAliveProbes=. Также поддерживается отключение алгоритма Nagle для TCP (NoDelay=).
  • logind обучен новому типу сессий «web» для использования в проектах наподобие Cockpit, регистрирующих web-клиентов как PAM-сессии.
  • Юниты-таймеры с как минимум одной настройкой OnCalendar= теперь будут запускаться только после достижения timer-sync.target. Таким образом, они не будут проходить перед подстройкой системных часов локальным NTP-клиентом или чем-то подобным. Отчасти это полезно на встраиваемых системах без RTC, запускающимся со сбитыми системными часами.
  • Ключ systemd-nspawn --network-veth= теперь приводит к стабильным MAC-адресам как на внешней, так и на внутренней стороне соединения.
  • systemd-nspawn получил новый ключ --volatile= для запуска экземпляров контейнеров с незаполненными /etc или /var.
  • Клиентский код kdbus обновлён для использования новой подсистемы Linux 3.17 memfd вместо старой, kdbus-специфичной.
  • DHCP-клиент и -сервер systemd-networkd теперь поддерживают FORCENEW. Также есть новые параметры конфигурации для настройки клиентского идентификатора поставщика и режима вещания для DHCP.
  • systemd больше не будет уведомлять ядро о текущем часовом поясе, так как это в любом случае неверно и колоритно, поскольку ядру неведом DST и подобные понятия. Как следствие, временные метки FAT будут всегда считаться UTC, примерно как это уже делает Android. Помимо этого, когда RTC настроены на локальное время (отличное от UTC), systemd никогда не будет синхронизировать их обратно, так как это может смутить Windows при последующей загрузке.
  • systemd-analyze получил новую команду «verify» для оффлайн-валидации юнит-файлов.
  • systemd-networkd получил поддержку парочки дополнительных настроек для слития настроек сети. Также теперь можно настраивать метрику статично настроенных маршрутов. Для сетевых интерфейсов в случае необходимости можно настроить IP-адрес пира.
  • DHCP-сервер systemd-networkd больше не будет запрашивать вещание по умолчанию, так как это роняло некоторые сети. Для оборудования, где вещание необходимо, возможность можно включить обратно с помощью RequestBroadcast=yes.
  • systemd-networkd теперь задаёт адреса IPv4LL (если включено) даже если DHCP успешно настроен.
  • udev теперь по умолчанию отдаёт предпочтение именам сетевых устройств, предоставляемым ядром, если ядро указывает, что они предсказуемы. Это поведение можно изменить изменением NamePolicy= в соответствующем .link-файле.
  • Добавлена новая библиотека systemd-terminal, реализующая полную обработку и отображение TTY-потоков. Эту библиотеку планируется использовать в будущем для реализации подсистемы виртуальных терминалов целиком в пространстве пользователя, взамен текущей реализации в ядре.
  • Добавлен новый инструмент systemd-journald-upload для передачи данных журнала на удалённую систему с запущенным systemd-journal-remote.
  • journald больше не будет передавать все локальные данные другому запущенному syslog-демону. Это изменение сделано, поскольку rsyslog (являющийся на сегодняшний день наиболее широкоиспользуемой реализацией rsyslog) их больше не использует, и вместо этого вытягивает из журнала в свой собственный. Поскольку передача сообщений несуществующему syslog-серверу слишком затратна, было решено просто выключить её. Если у вас запущен syslog-сервер, отличный от последней версии rsyslog, эту опцию нужно снова включить (ForwardToSyslog= в journald.conf).
  • journald опционально поддерживает LZ4-компрессор для больших полей журнала. Этот компрессор работает намного лучше XZ, который использовался по умолчанию ранее.
  • machinectl теперь показывает IP-адреса локальных контейнеров, если знает их, плюс имя интерфейса контейнера.
  • Добавлен новый инструмент «systemd-escape», позволяющий легко экранировать строки для создания имён юнитов и т. п.
  • Сообщения sd_notify() теперь могут содержать новое поле ERRNO=, которое обрабатывается и сохраняется systemd, чтобы потом его можно было отобразить в выводе «systemctl status» для сервиса.
  • Добавлен новый компонент «systemd-firstboot», интерактивно запрашивающий для systemd наиболее базовую информацию (часовой пояс, имя хоста, пароль root) при первой загрузке. Ещё его можно использовать для предоставления этих вещей оффлайн в образах ФС, установленных в директории.
  • Сниппеты sysctl.d/ по умолчанию теперь выставляют net.ipv4.conf.default.promote_secondaries=1. Это позволяет не сбрасывать вторичные IP-адреса, когда первичные удалены.

>>> Источник

★☆

Проверено: fallout4all ()
Последнее исправление: JB (всего исправлений: 4)

Попову Подтерингу не дали своим говнокодом засирать ядро, так он решил отыграться на юзерспейсе сполна..

Indexator ★★★
()
Ответ на: комментарий от anonymous

НАФЕЙХОА?!! Зачем оно нужно, изменения ради изменений? TTY - одна из самых стабильных частей ядра

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

zloelamo ★★★★
()
Ответ на: комментарий от anonymous

Догадываюсь, что они хотят вынести TTY в юзерспейс, чтобы потом навставлять туда свистелок

не догадывайся а иди читать про микроядра

anonymous
()
Ответ на: комментарий от anonymous

TTY - одна из самых стабильных частей ядра

Во-первых, не tty, а VT. VT — одна из самых костыльных частей ядра, куда разработчики уже просто боятся лезть..

intelfx ★★★★★
()
Ответ на: комментарий от DeadEye

Даже при нем, если оставить udev будет вытаскиватся и собираться с кучей навоза. Над е нему еще сделать emerge --unmerge sys-fs/udev , а следом emerge sys-fs/eudev %))

cheez ★★★
()

Добавлен новый инструмент systemd-journald-upload для передачи данных журнала на удалённую систему с запущенным systemd-journal-remote.

Наконец-то до него дошло кто в этой цепочке сервер.

zloelamo ★★★★
()
Ответ на: комментарий от anonymous

При чём тут ЛП? MiniRoboDancer написал новость быстрее меня (что и логично, т. к. он тупо перевёл чейнджлог).

intelfx ★★★★★
()

Они что, собрались запихнуть все стандартные службы базовой системы линукса в systemd? Может они еще и само ядро запихнут в systemd? Все ведь начиналось с обычной системы инициализации и ничего не предвещало беды, но теперь все больше и больше дистрибутивов переходят на systemd. Стандартизация - это хорошо, но не ограничит ли это свободу выбора? Ведь абсолютное большинство будет подстраиваться только под эту систему. Интересно, к чему это приведет?

uGerman
()
Ответ на: комментарий от uGerman

Все ведь начиналось с обычной системы инициализации и ничего не предвещало беды

Повторюсь. К сожалению, линия невозврата уже перейдена. Система инициализации, «инструментарий для управления демонами» - были всего лишь промежуточными проектами, скорее, для предварительной обкатки и отвода глаз федороидов. Теперь идет переделка [идеи] всей системы.

anonymous
()
Ответ на: комментарий от anonymous

они хотят вынести TTY в юзерспейс, чтобы потом навставлять туда свистелок, но зачем конченному юзеру голая консоль со свистелками?

https://github.com/dvdhrm/kmscon

На самом деле штука довольно таки годная, и обычный TTY оно никуда не убирает.

hateyoufeel ★★★★★
()
Ответ на: комментарий от intelfx

Кстати, вот идея новостеписателям: запилить специальную страничку на ЛОРе (например, на Wiki), где любой пользователь может добавить запрос на новость (в духе «ау, Wine 1.17.24.1 уже два часа как вышел, а новости все еще нет»), а будущий автор отмечается о прогрессе. Это позволит избежать дублей.

mtk
()
Ответ на: комментарий от anonymous

какие нахрен ограничения свободы при открытых исходниках

Ага, ага.. рынок порешает.

anonymous
()
Ответ на: комментарий от anonymous

какие нахрен ограничения свободы при открытых исходниках

В чём проблема? Как будто тебе кто-то в них коммитить даст. А форками можно разве что подтереться ввиду недостатка у тебя живой силы.

hateyoufeel ★★★★★
()
Ответ на: комментарий от anonymous

Ограничение свободы выбора. Открытые исходники не имеют значения.

uGerman
()

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

anonymous
()
Ответ на: комментарий от uGerman

Поттеринг говорил, что «systemd is supposed to be an implementation of the plumbing layer of an operating system». Так что да, именно это они и собрались сделать. ИМХО, стандартизация — это прекрасно.

intelfx ★★★★★
()
Ответ на: комментарий от anonymous

К сожалению, сдохнет он вместе с линуксом. Либо же, остановит развитие на несколь5ко лет. Когда придется выпиливать сыстемдусю и заодно переписывать части ядра, адаптированные для работы поцтерингового голема.

anonymous
()

до чего ж раздутая хрень, отвратительно.

anonymous
()
Ответ на: комментарий от geks

ядро опухло от драйверов ... а не от нужного функционала

это ты опух

anonymous
()
Ответ на: комментарий от intelfx

ИМХО, стандартизация — это прекрасно.

ИМХО не стоит применять слова, значение которых вам до конца не понятно ;)

anonymous
()
Ответ на: комментарий от plm

Отличная новость. Единая платформа Linux все ближе.

Мне это почему-то напоминает выражение из вселенной Dead Space: «Сделай нас единым!»

Indexator ★★★
()
Ответ на: комментарий от intelfx

стандартизация — это прекрасно

тут не стандартизация. стандартизация и так была: man LSB, POSIX, SUS, FHS. тут идет привязка к реализации

Lincor
()
Ответ на: комментарий от Lincor

Нет, ты не прав. Все внешние API systemd и его компонентов прекрасно документированы и допускают альтернативные реализации.

OpenBSD и его проект по написанию альтернативной реализации этих API (http://www.openbsdfoundation.org/gsoc2014.html#systemd) — тому доказательство.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

допускают альтернативные реализации

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

Lincor
()
Ответ на: комментарий от intelfx

ИМХО, стандартизация — это прекрасно.

Ви таки экстремист? Как же Лор будет жить без срачиков?

zloelamo ★★★★
()
Ответ на: комментарий от Lincor

иными словами, реализовать systemd под другими ОС можно, но для этого другим ОС придется стать клонами линукса.

Lincor
()

Тут видимо действительно смысл не в том, чтобы создать удобную в использовании систему, а в том, чтобы создать «Единую платформу Linux» под началом «добрых и хороших» людей из одной американской компании.

glider
()
Ответ на: комментарий от Lincor

У systemd (конкретной реализации этих API) — да. У альтернативных реализаций — кто сказал, что должны быть такие же требования к системе?

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

каким боком документирование (трудно назвать «прекрасно», если для того что понять как это работает надо ползать по исходникам...) относится к стандартизации?

Каким боком допущение (э.. да.. ну допустим) альтернативной реализации относится к стандартизации?

Вы не понимаете значение слова. :)

anonymous
()
Ответ на: комментарий от Lincor

Если так получается, что API systemd затруднительно реализовать с помощью чистого POSIX — это проблема POSIX, во всех смыслах.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

потому что не все из стандарта systemd реально запилить на альтернативной системе. если и реально, то, как я уже заметил, придется копировать Linux.

Lincor
()
Ответ на: комментарий от Deleted

Мне совсем не интересно, какой NTP сервер указывает провайдер, у меня есть свои варианты.

Выход очевиден - собственный Лунапарксамому стать провайдером ;)

AlexM ★★★★★
()
Ответ на: комментарий от uGerman

Ведь абсолютное большинство будет подстраиваться только под эту систему. Интересно, к чему это приведет?

к тому что всё будет замечательно работать и меньше ломаться.. [sarcasm]О БОЖЕ! НЕТ! ТОЛЬКО НЕ ЭТО!![/sarcasm] :-)

user_id_68054 ★★★★★
()
Ответ на: комментарий от anonymous

Я прекрасно понимаю значение этого слова.

Было предложено некоторое количество API для управления различными аспектами операционной системы, вместе с референсной реализацией этих API.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

вообще-то это проблема systemd. POSIX подстраиваться не обязан. systemd обязан, потому что POSIX - вековой стандарт. если его сломать, мир *nix падет.

Lincor
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.