LinuxForum.Fans
Тема

Выпуск systemd 217 c реализацией консоли в пространстве пользователя

Автор: verg 56 сообщений 6533 просмотров
29.10.2014 12:28 #398893

Леннарт Поттеринг (Lennart Poettering) представил выпуск системного менеджера systemd 217, который сочетает в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Для определения параметров сервисов в Systemd используется набор конфигурационных unit-файлов, вместо оформления сценариев запуска в виде shell-скриптов. Система нацелена на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, старые версии Fedora). В настоящее время на использование systemd уже перешли такие дистрибутивы, как Fedora, openSUSE, Mandriva и Arch Linux, одобрен переход дистрибутивов Debian и Ubuntu по умолчанию на systemd.

Наиболее существенные изменения:

  • В состав включён демон systemd-consoled с реализацией эмулятора терминала для замены штатных консолей (kernel-console, linux-console), при сборке ядра без поддержки виртуальных терминалов (CONFIG_VT=n), т.е. позволяющий использовать kmscon в качестве реализации консоли в пространстве пользователя. В настоящее время systemd-consoled позиционируется как экспериментальная возможность, предоставляющая по одному терминалу для пользователей, в настройках которых указано "Desktop=systemd-console";
  • По умолчанию включен алгоритм управления очередями ожидающих отправки пакетов fq_codel (Fair Queuing Controlled Delay), разработанный в рамках инициативы по борьбе с негативным влиянием промежуточной буферизации пакетов (Bufferbloat) сетевым оборудованием. В sysctl.d/ добавлен вызов "net.core.default_qdisc = fq_codel";
  • Реализовано определение контейнеров Docker в качестве отдельного типа виртуализации;
  • Поддержка формата базы активных учётных записей UNIX utmp теперь может быть активирована на этапе сборки для поддержки устаревших систем;
  • Добавлена обработка опции "rescue", указываемой при загрузке ядра Linux. Если данная опция установлена, то system будет загружен в режиме защиты от сбоев (rescue.target). Ранее вызов данного режима требовал нажатия 1 или указания опции ядра "systemd.unit=rescue.target";
  • Добавлена обработка опции командной строки ядра "mount.usr=", "mount.usrflags=" и "mount.usrfstype=", которые обрабатываются по аналогии с опциями "root=", "rootflags=" и "rootfstype=", но для раздела /usr;
  • Добавлена поддержка нового сообщения D-Bus ALLOW_INTERACTIVE_AUTHORIZATION, позволяющего организовать процесс интерактивной авторизации с использованием PolicyKit при выполнении многих привилегированных операций, включая включение и выключение юнит-файлов;
  • В journalctl добавлены новые опции "-t/--identifier=" для выборки по идентификатору/тегу syslog и "--utc" для показа времени в GMT/UTC. Для отключения обрезания вывода по числу символов в строке теперь можно указать "-n/--lines=all";
  • Службы теперь могут заранее уведомлять управляющий процесс о предстоящем перезапуске (RELOADING=1) или прекращении работы (STOPPING=1), что позволяет отследить и показать внутреннее состояние подконтрольного процесса, а также избежать состояния гонки, когда процесс ещё полностью не завершился, но уже закрыл соединение D-Bus;
  • Пользовательские unit-ы теперь также могут загружаться из директории $XDG_RUNTIME_DIR/systemd/user/, что позволяет явно переопределить путь для ранее поддерживаемой директории /run/systemd/user;
  • Добавлена поддержка завершения работы или перезагрузки в случае истечения таймаута нахождения задания в очереди запуска (JobTimeoutAction= и JobTimeoutRebootArgument=). Подобная возможность может быть задействована например для перезапуска в случае зависания на этапе загрузки или ипрекращения работы при случайном включении ноутбука в сумке и остановившегося на этапе ввода пароля доступа к зашифрованным дисковым разделам. По умолчанию сейчас инициируется завершение работы при неполном выполнении basic.target в течение 15 минут;
  • Система управления пользовательскими сеансами systemd-logind теперь может быть настроена для обработки событий закрытия/открытия крышки ноутбука даже при подключении дополнительного монитора или подсоединения к док-станции (HandleLidSwitchDocked=);
  • В systemd-networkd добавлена возможность указания метрик маршрутизации для маршрутов, добавленных через DHCP;
  • Добавлена опция SELinuxContextFromNet=, позволяющая устанавливать контекст SELinux для сервисов активации по сокету на основе данных, предоставленных сетевым стеком;
  • Прекращена поддержка средств загрузки прошивок в пространстве пользоватея, в связи с чем версия минимально поддерживаемого ядра Linux повышена до выпуска 3.7;
  • Для udev-правил добавлена возможность удаления тегов для устройств при помощи опции TAG-="foobar";
  • Удалена реализация технологии readahead для заполнения дискового кэша при выполнении операций чтения, так как она во многих ситуациях не даёт ожидаемого выигрыша в производительности даже для НЖМД, а также бессмыслена для SSD-накопителей;
  • Протокол Password Agent добавлена поддержка запросов, при которых отображается пользовательский ввод, что полезно, например, для контроля ввода имени пользователя. Данный режим включается при запуске systemd-ask-password с опцией "--echo";
  • При наличии поддержки kdbus для сервисных юнитов теперь доступна опция BusPolicy=, позволяющая привязать все сервисные процессы к специальной более защищённой шине, к которой ограничен доступ других сервисов;
  • В утилите networkctl обеспечен показ файлов .network и .link, задействованных для определённого сетевого интерфейса;
  • В утилиту systemctl добавлена поддержка новых команд "add-wants" и "add-requires" для упрощения задействования в юнитах специфичных целей;
  • Удалена утилита "multi-seat-x", так как её функциональность теперь интегрирована в X Server 1.16;
  • В команду "udevadm hwdb --update" добавлена поддержка опции "--usr" для размещения перестроенной базы оборудования в разделе /usr, вместо /etc;
  • В .time-юниты добавлена возможность указания строкового определения периодов "semi-annually", "quarterly" и "minutely" в дополнение к ранее доступным "anually" и "hourly".

Источник: http://www.opennet.ru/opennews/art.shtml?num=40960

29.10.2014 14:22 #398939

Ничигонепонял.

"verg" написал:
демон systemd-consoled с реализацией эмулятора терминала для замены штатных консолей

Но все равно ересь и не нужно))

29.10.2014 15:38 #398956

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

29.10.2014 16:06 · отредактировано #398961
"Vascom" написал:
подготовка к выкидыванию из ядра левых функций вроде терминалов

С такой точки зрения - вроде и правильно. Но тогда это уже не "система инициализации", а.. эээ.. как тогда вы назовете этот компонент?
С другой стороны ключевой вопрос даже не в этом, а в том, как это будет сделано? А здесь я старине Леннарту ну ничуть не доверяю.

29.10.2014 16:10 #398962

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

Но можно пойти и дальше. В Summary к пакету systemd написано: A System and Service Manager.
systemd-consoled - это просто ещё один демон, который можно запустить с помощью systemd (а можно и не запускать). Это же не монолит!!!

29.10.2014 16:18 #398963
"Vascom" написал:
Это же не монолит!!!

- хвала аллаху, что не.

"Vascom" написал:
systemd-consoled - это просто ещё один демон, который можно запустить с помощью systemd (а можно и не запускать)

что-то вот тут такое.. нет, это не "просто еще один демон", т. к. его можно запустить только с помощью systemd. А для запуска просто-демона достаточно чего? правильно, только sh.

Оффтопик: а вас не Федора случайно? :)

29.10.2014 16:22 · отредактировано #398966

Кто мешает портировать под другие системы запуска?
Не нравится - не пользуйтесь. Но если не можете ничего изменить в своём дистрибутиве, то не надо на Федору бочку катить. Ругайте ваших маинтейнеров.

А помимо запуска через sh есть ещё актвация через сокеты и многое другое востребованное индустрией. Так что не надо думать, что система инициализации это метод автостарта bash-скриптиков.

29.10.2014 16:38 #398971

Вот именно "метод автостарта bash-скриптиков" бывает чаще всего и нужен. Впрочем, действительно - никто же не запрещает создать свою параллельную систему инициализации. Это даже мысль!

P. S. Не качу никаких бочек, у самого OpenSUSE.

29.10.2014 16:41 #398973

Боюсь ваше "чаще всего" может сильно отличаться от мирового.

29.10.2014 22:14 #399046

Vascom, и уж тем более, от вашего с поттерингом.

30.10.2014 07:14 #399090

От моего - согласен. А вот системд от Поттеринга уже во многих дистрибутивах и очень востребовано.
И только yars в бессильной злобе поливает меня грязью :)

30.10.2014 11:04 #399109

"Vascom" написал:
и очень востребовано.
Скорее очень навязываемо.
30.10.2014 12:36 #399119

Есть доказательства навязывания?

30.10.2014 17:14 #399148

Vascom, реклама :)

30.10.2014 17:25 #399151

Vascom, есть, иначе, в -надцатый раз повторяю, этого поделия не было нигде кроме федоры. И не надо мне в -надцатый раз доказывать, что переход был в добровольном порядке. Решение о слиянии кодовой базы systemd и udev продиктовано исключительно политическими и причинами, но не техническими. Единственный не-rpm дистрибутив, по собственной воле перешедший на systemd - Arch. А вот Debian и основанные на нем - вынуждены.

30.10.2014 17:40 #399156
"yars" написал:
этого поделия не было нигде кроме федоры

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

30.10.2014 19:27 · отредактировано #399183
"yars" написал:
Vascom, есть, иначе, в -надцатый раз повторяю, этого поделия не было нигде кроме федоры. И не надо мне в -надцатый раз доказывать, что переход был в добровольном порядке. Решение о слиянии кодовой базы systemd и udev продиктовано исключительно политическими и причинами, но не техническими. Единственный не-rpm дистрибутив, по собственной воле перешедший на systemd - Arch. А вот Debian и основанные на нем - вынуждены.

злые дяди в красных шляпах пришли с распечатанными на 3д принтерах автоматами в руках, и заставили всех бедняжек перейти на systemd. Все именно так и было.



Просто мейнтейнеры, те кто практичен а не фанатичен, прекрасно понимают что без возможностей systemd, их дистры окажутся далеко позади Fedora/RHEL на серверных установках, а пока что именно серверы и линукс на них, содержит зоопарк дистров в живом состоянии

30.10.2014 19:49 #399193

Как я уже и говорил, вы просто не имеете никакого влияния на свои дистрибутивы.

31.10.2014 01:45 #399223

А вы имеете?

31.10.2014 11:11 #399250

Имею.
Например недавно отстоял классический внешний вид программы top по умолчанию. Вот https://bugzilla.redhat.com/show_bug.cgi?id=1153049
И являюсь маинтейнером нескольких пакетов в Fedora.

Войдите или зарегистрируйтесь, чтобы ответить.