LINUX.ORG.RU

systemd 214

 ,


1

4

11 июня был представлен очередной релиз системного менеджера systemd, совмещающего в себе функции системы инициализации, обратно совместимой с SysV и LSB, ведения журнала и управления сессиями пользователей. systemd основан на модели зависимостей (в противовес событийной модели), производит отслеживание процессов запущенных сервисов при помощи механизма cgroups ядра Linux, поддерживает механизмы сокет- и dbus-активации и предоставляет удобный декларативный синтаксис unit-файлов для описания демонов и других сущностей, что позволяет производить агрессивную параллелизацию при запуске и остановке сервисов.

В рамках проекта также разрабатывается ряд легковесных приложений и демонов, выполняющих второстепенные, но распространённые задачи по управлению системой — от настройки подсистемы VT (systemd-vconsole-setup) до управления сетью (systemd-networkd) и профилирования загрузки (systemd-bootchart).

Основные изменения:

  • Демоны systemd-networkd, systemd-resolved и systemd-bus-proxyd теперь запускаются не от имени root'а и сбрасывают максимум привилегий.
  • Файл resolv.conf, генерируемый systemd-resolved, теперь находится в /run/systemd/resolve.
  • Убрана зависимость от библиотеки libattr, поскольку требуемый функционал уже значительное время предоставляется библиотекой glibc.
  • Код совместимости с System V init и LSB был вынесен из PID 1 в отдельный генератор unit-файлов.
  • Обнаружение виртуализации (systemd-detect-virt) теперь работает без CAP_SYS_PTRACE.
  • systemd-networkd теперь поддерживает создание виртуальных Ethernet-интерфейсов (veth), а также GRE- и VTI-туннелей.
  • systemd-networkd больше не пытается подгрузить модули, требуемые для некоторых типов туннелей, если ядро не делает этого автоматически.
    Если в вашем случае это так (ядро недостаточно новое), предлагается использовать /etc/modules-load.d для принудительной загрузки этих модулей.
  • В секции [Service] юнит-файлов добавлены опции ProtectedHome= и ProtectedSystem=, позволяющие запретить процессам сервиса запись в /home и / соответственно.
  • В секции [Socket] юнит-файлов добавлены опции SocketUser=, SocketGroup=, RemoveOnStop= и Symlinks=, предназначение которых очевидно из названия.
  • Для опции Restart= в секции [Service] добавлено новое значение on-abnormal, инструктирующее systemd перезапускать сервис только в случаях падения, таймаута запуска или срабатывания сторожевого таймера, но не в случае завершения с ненулевым кодом возврата.
    Рекомендуется использовать Restart=on-abnormal или Restart=on-failure для всех долгоживущих сервисов.
  • В systemd-tmpfiles было добавлено действие C (копирование файлов или директорий), а действие m (установка прав доступа и владения) теперь эквивалентно действию z (установка прав доступа, владения и контекста SELinux с поддержкой выбора файлов по маске).
  • Добавлена первичная поддержка перестроения /var при запуске системы, что в конечном итоге должно позволить запускать контейнеры, имея только немодифицируемый образ /usr и tmpfs в качестве корневой ФС (т. н. stateless system).
    Сопутствующий функционал добавлен в systemd-nspawn (ключ --tmpfs=<путь>) и systemd-tmpfiles (уже упомянутое действие C).

Изменения, касающиеся udev:

  • Во время выполнения действий, касающихся файлов блочных устройств, udev теперь блокирует эти файлы при помощи flock(LOCK_SH|LOCK_NB).
  • Пока файл блочного устройства заблокирован, например, с помощью flock(LOCK_EX), udev будет игнорировать все события для этого устройства — предполагается, что этот механизм будет задействован приложениями разметки дисков.
  • Если файл блочного устройства был открыт для записи, его закрытие вызовет повторное сканирование таблицы разделов и (при необходимости) генерацию событий класса change для файлов устройства и всех его разделов.
  • Файлы устройств /dev/fd* теперь принадлежат группе disk, а не floppy.

>>> Объявление о релизе

★★★★★

Проверено: fallout4all ()

Нужно! / drugandrop-2

anonymous ()

Посмотрел недавний обзор Мэддисона про игры серии FIFA. Ему больше всех понравилась 98, возможно потому что детство, возможно потому что последующие игры и правда были не такие весёлые. Такие же впечатления у меня от Oblivion и Skyrim. Такие же впечатления бывают от музыкальных групп. Что происходит? Появляются люди и делают продукт, вкладывая всю душу. Понятное дело что не по принципу инди игр, понятное дело что под строгими стандартами качества. А потом вдруг внезапно с последующими продуктами становится что-то не так. Что это? Осознание безысходности и того что «а какая разница, мы же всё равно все умрём»? Или может первый раз ребята испытали эйфорию от осознания того что 10 000 купили их игру/альбом, а спустя 5 лет не могут испытать ничего такого и от 10 000 000 проданных копий?

Вот и разработчики Open Source. В правильную же сторону начинали! Казалось бы, ну дошлифуйте _уже и без того идеальный десктоп_, и все будут вами довольны! Но нет. А ведь любой из разработчиков Systemd может сделать для нас то, чего нам не хватало от дестопного линукса раньше, в 2003 или 2005. Они же генерируют много качественого кода. Но вместо этого они делают велосипеды за деньги Red Hat-а.

В мире Windows то же самое. В конце 90-х все грезили шлемами виртуальной реальности, интерфейсом компа, как в фантастических фильмах. Microsoft вместо этого просто-напросто делает велосипеды, только на этот раз «это написали они, поэтому надо переписать».

Я бы ещё понял, если с тех пор люди в проектах были одни и те же. Страх неизвестности, страх двигаться дальше, страх от осознания того что полмира пользуется твоей программой. Но нет, штат разросся в 10-100 раз, а эффективность упала во столько же. Напоминает одну компанию, названия которой я не буду называть. Её программисты в 90-е написали весьма качественные программы, которыми компания пользуется и сейчас. Но программа с тех пор не менялась, потому что программисты теперь в Америке, и их время стоит очень дорого. Текущая команда программистов может вносить только незначительные изменения в код. Или ID Software: когда делали Doom вдесятером, сделали хорошо. Когда делали Doom III тысячами людей, получилось средне.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 3)

ждём ебилдов

anonymous ()

Сыстемд - НЕТ!

Хорошо что есть OpenRC - вполне хватает.

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

Задачи стали другие, мы выходим на принципиально новое качество. Социальные сети (тупо удобнее чем e-mail и newsgroups), надежность, независимость от диктата потенциального врага - вот где изменения. RedHat имеет дело с умопомрачителоно дорогими центрами обработки данных, а там продолжается медленное но верное переползание с X86 на ARM. И шаг за шагом ближе к обывателю дешевые умные очки, часы, кольца и прочая. Вот в этих областях и происходят события.

Про Doom: вранье про «делали вдесятером». Десятки институтов разрабатывали алгоритмы 3D, Dolby проводили эксперименты с психофизиологичискими особенностями 3D звука, Гигер жрал опиум и рисовал прикольные картинки, а эти «десятеро» просто сделали свой БолгенОС. Америкосы вообще очень большие мастера оборачивать в красивую обертку и подавать чужое, пора уже не вестить на эти разводы.

anonymous ()

Когда ж у них Features Freeze? Расскажите Поттерингу про паттерн «Ползучий улучшизм», кто-нибудь.

LongLiveUbuntu ★★★★★ ()

С каждым релизом добавляют нужные и полезные вещи (помимо не нужных и бесполезных).

unikum ★★★★★ ()

Файл resolv.conf, генерируемый systemd-resolved, теперь находится в /run/systemd/resolve.

Чем им /etc/resolv.conf не угодил. Сделать то же самое но чуточку иначе...

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

тем, что постоянно писать в /etc - дурная манера

anonymous ()

Однако как чума растёт, симптомы те же!

Woofywoof ()

Пока файл блочного устройства заблокирован, например, с помощью flock(LOCK_EX), udev будет игнорировать все события для этого устройства — предполагается, что этот механизм будет задействован приложениями разметки дисков.

Давно пора

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

Слишком большая концентрация 4.2 в одном посте

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

тем, что постоянно писать в /etc - дурная манера

У меня OpenRC

/etc c / монтируются ro - и месяцами туда никто не пишет! Да, десктопы и сервера!!!

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

Вот и разработчики Open Source. В правильную же сторону начинали! Казалось бы, ну дошлифуйте _уже и без того идеальный десктоп_, и все будут вами довольны! Но нет. А ведь любой из разработчиков Systemd может сделать для нас то, чего нам не хватало от дестопного линукса раньше, в 2003 или 2005. Они же генерируют много качественого кода. Но вместо этого они делают велосипеды за деньги Red Hat-а.

А на лоре есть такие спецы, которые потянут допил того что есть? Что мешает тогда собраться? Ну вот не просто так собраться, а:

1) расписать по пунктам чего хотеть 2) прикинуть бюджеты, расходы 3) метнуться на кикстартер (и что там еще есть) если того позволяет концепт 4) открыться под ИП или ООО, если того стоит (а на этом этапе уже и видно будет) 5) оказывать официально услуги по внедрению/обслуживанию ПО/железа

Вообще от балды пишу, мысль двух минут, но всеже, продумать, есть ли смысл и т.д..

deep-purple ★★★★★ ()
Ответ на: комментарий от Woofywoof

И некоторые дистры уже смертельно инфицированы! Там эту хрень практически не выпилишь.. В некоторый еще можно провести операцию «История Успеха».

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

Почему не /run/etc/resolv.conf? Зачем в пути снова слово systemd? И да dns настраивается единожды при настройки сети, никакой нужны в пересоздании файла при старте нет.

bhfq ★★★★★ ()
Последнее исправление: bhfq (всего исправлений: 1)
Ответ на: комментарий от bhfq

а тебе что от этого, плохо стало? всё, что к systemd - в один каталог

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

некоторые дистры уже смертельно инфицированы!
Там эту хрень практически не выпилишь

Спокойствие, выпилить таки можно. Причём без пересборки over 9000 пакетов. Состряпал себе в ArchLinux один пакет с поддельными библами systemГ, все экспортируемые функции в которых возвращают ошибку ENOMEM :) Правда помучиться пришлось изрядно т.к. эта тенохрень имеет внутренний контроль версий. Пакеты? Нет, Поцтеринг о них не слышал. И лучше ему не рассказывать, а то в следующем релизе systemГ ещё и управление пакетами появится. В новом передовом формате, разумеется - ведь у RPM есть фатальный недостаток...

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

systemd-nspawn уже можно использовать вместо LXC/Docker?

makoven ★★★★★ ()

Оно ещё не сколлапсировало под собственной тяжестью?

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

а то в следующем релизе systemГ ещё и управление пакетами появится

ПоявИться недостаточно. Надо проникнуть во все популярные дистрибутивы. Было бы ништяк иметь универсальный пакетный менеджер и общий для всех дистров репозиторий (хотя-бы дополнительно к дистропецифичному пакетному менеджеру и репозиторию). Может тогда и DEVELOPERS в подтянутся в линукс (а не только в убунту)

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

Было бы ништяк иметь универсальный пакетный менеджер и общий для всех дистров репозиторий (хотя-бы дополнительно к дистропецифичному пакетному менеджеру и репозиторию).

+100500

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

Было бы ништяк иметь универсальный пакетный менеджер

Он уже есть однако - pacman. Лучший маганер пакетов из всех ныне существующих. Пруфы:

1) Не перегружен костылями как deb: Установить пакет? apt-get. Поискать пакет? aptitude. Что в пакете? dpkg. И вот так на каждый чих свой костыль с треугольными колёсами, даже для редактирования changelog отдельный helper, что уж совсем за гранью.

2) Не пытается быть умнее меня как RPM. Долго не забуду как потратил полдня чтобы понять почему в CentOS пакеты Python компилятся в байт-код не Python 2.7 как явно сказано в SPEC, а системным 2.6? Потом заметил мааленькую строчку что если rpmbuild находит в пакете что-то питонное, то автоматом пересобирает это системным Питоном, положив прибором на всё что там написано в SPEC. И это поведение по-умолчанию, выпиливается только через хитро закрученные define'ы. Блеск!

3) Работает быстрее чем deb и rpm вместе взятые.

4) Создать свой репозиторий - проще некуда. Накидал пакетов в первый попавшийся каталог, добавил его в конфиги, затем repo-add qwe.db.tar.gz *.pkg.tar.xz, pacman -Sy - готово, можно юзать.

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

Да хоть pacman, хоть rpm, apt, guix - все хороши. Их слабость в том, что каждый дистиб сидит с своем болоте. И только у Лёни-Из-Редхата яйца достаточно большие чтобы встрепетнуть болото несовместимых между собой дистрибов, собрать их под единым знаменем Systemd..

makoven ★★★★★ ()
Последнее исправление: makoven (всего исправлений: 1)
Ответ на: комментарий от anonymous

Спокойствие, выпилить таки можно. Причём без пересборки over 9000 пакетов. Состряпал себе в ArchLinux один пакет с поддельными библами systemГ, все экспортируемые функции в которых возвращают ошибку ENOMEM :) Правда помучиться пришлось изрядно т.к. эта тенохрень имеет внутренний контроль версий. Пакеты? Нет, Поцтеринг о них не слышал. И лучше ему не рассказывать, а то в следующем релизе systemГ ещё и управление пакетами появится. В новом передовом формате, разумеется - ведь у RPM есть фатальный недостаток...

спасибо, улыбнуло:)

про пакета да, согласен))

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

На самом деле не тривиально. Этот файл вручную не редактируется. Поэтому ему там не место. Меня лично сбивало столку нахождения этого файла в директории etc в самом начале знакомтва с линукс.

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

Плохо стало тем, что это не они, разработчики systemd подстраиваются под устоявшиеся десятилетиями правила, а заставляют миллионы людей подстраиваться под них. Понятно, что каждый разраб считает что именно его софт на сервере - самый важный, но чтобы до такой степени плевать на пользователей! Пупы земли они, не иначе. Даже Microsoft в этом плане куда лучше, я начинаю людить Microsoft и презирать Linux после этих веяний

anonymous ()

А dhcp client где сейчас реализовано?

Или все крутиться на старом добром пакете?

vitalikp ()

обновлятся на новую версию повременю, а тем временем планирую отключить максимум ненужного в systemd — сделать легковесный вариант.

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

ну хоть что-то хорошее)

а как дергается запрос IP адреса? там есть API или утилита какая для этого предназначена?

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

networkd сейчас не имеет никакого API, он для очень статичных конфигураций (а-ля «комп с всегда одним и тем же воткнутым патчкордом»). Но скоро должны запилить нормальный D-Bus API.

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

Арчем не пользовался, вполне возможно, что хороший. Но проблема в том разные форматы пакетов не позволяют нормально пользоватся чем то одним. Вот если бы появилась спицификация формата пакетов, который потом использовались в большинстве дистрибутивов и как следствие репозитории стали бы более однородными. А так приходится пользоватся тем пакетным менеджером, который предлагает дистрибутив.

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

Это и есть /etc/resolv.conf. Если хочешь, чтобы твоим resolv.conf управлял systemd, надо сделать симлинк из /etc в /run/systemd/resolve. (Ну или натравить dnsmasq непосредственно на этот файл, как я и делаю.)

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

а как мне, например, сделать запрос получить ip для моей машины через dhcp?

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

А. Идёшь в /etc/systemd/network и там создаёшь файл вида my-dhcp.network (синтаксис — man 5 systemd.network) с содержанием вида

[Match]
Name=eth*

[Network]
DHCP=yes

И потом включаешь/запускаешь systemd-networkd (systemctl enable systemd-networkd, systemctl start systemd-networkd).

Отдельно включаешь/запускаешь systemd-resolved, если хочешь, чтобы из полученных по DHCP адресов DNS-серверов генерировался resolv.conf, и делаешь симлинк (я выше написал, что и куда).

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)

ёлы-палы, каждый чих поттеринга теперь будет освещаться? «поттеринг поел», «поттеринг сходил по большому»...

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

Меня интересует протокол BOOTP.

Ранее это всегда делал dhclient, но его удалил по понятным причинам. Замену ему не нашел, поэтому айпи адреса вбиваю пока вручную.

Какая там механика в этом вопросе?

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

init scripts требует, а я его выкосил полностью.

он один их требовал у меня на машине.

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