H Почему systemd — это плохо? в черновиках Из песочницы
Вокруг systemd уже несколько лет ходят «холивары». Systemd пришел к нам на замену System V Init в Linux. Есть как сторонники systemd, так и его противники. Давайте рассмотрим, чем же так плох systemd:
1. Systemd нарушает философию Unix «Делать одну вещь и при этом хорошо», представляя просто сложный набор малосвязных бинарников. Его зона ответственности давно уже выросла за рамки системы инициализации и начинает распространяться на управление питанием, устройствами, точками монтирования, cron-ом, шифровнием диска, API сокетов, журналами (syslog), конфигурацией сети, управлением сессиям, предчтение(readahead), определение разделов, регистрация контейнеров [виртуализация], управление именем хоста-временем-локалью, mDNS/DNS-SD, консоли Linux и прочие штуки — все в одном. На повестке дня — дальнейшее расширение systemd и его внедрение в среду GNU/Linux было выяснено во время «2014 GNOME Asia talk». Дайте нам KISS.
2. Журналы systemd (для journald) сохраняются в очень сложном бинарном формате и могут быть запрошены только journalctl. Это делает журналы потенциально повреждаемыми и они не имеют ACID-совместимых транзакций. Вы бы не хотели, чтобы с системными журналами что-то произошло. Совет от systemd разрабов? Забейте. Единственный путь создать традиционные логи — это запустить syslogd как rsyslog вместе с journald. Так же там есть встроенный HTTP сервер. QR коды тоже можно отдавать через него, с помощью libqrencode.
3. Так как systemd очень завязан на API ядра Linux, разные версии systemd несовместимы с разными ядрами и портируемость бессмысленно снижена в разных компонентах. Это политика изолирования [systemd], которая, конечно же, вгоняет экосистему Linux в свою собственную клетку, работая как препятствие в разработке портируемого ПО как с Linux, так и Unix-деривативами. Так же это пораждает трудности с бекпортированием изменений в системой длительной поддержки.
4. udev и dbus становятся обязательными зависимостями. По факту, udev был влит в ветку systemd очень давно. Интеграция менеджера «device node»( который был частью Linux ядра) — это нелегкое решение. Здесь высокая политическая подоплека (имеется в виду политика разработчиков) и много пакетов, зависящих от udev, стали зависимы от systemd, несмотря на форки вроде eudev. Начиная с systemd-209 разработчики ввели собственный нестандартный и малодокументированный sd-bus API, который замещает некоторые задачи libdbus. Далее они решили перенести udev на этот новый транспорт, заменили Netlink и сделали udev наглухо привязанным к systemd демоном. Эффект, конечно, значителен.
5. systemd представляет хелпер который снимает coredump-ы (дампы ядра) и перенаправляет их либо в /var/lib/systemd/coredump либо в journal, где они должны быть запрошены через coredumpctl. Последнее, причем — было поведением по умолчанию и его похоже вернут. Это означает, что пользователей и админов держат за идиотов, но более важно, в основе своей склонная к повреждениям природа логов journald превращает это в серьезную помеху и безответственный выбор при дизайне системы. Также это может создать усложнения в многопользовательских средах в плане привелегий.
6. Размер systemd (видимо, в файлах и мегабайтах — прим.пер.) превращает его в большую «единственную точку отказа». На момент написания systemd имел 9 отчетов CVE (уязвимости) с начала внедрения в марте 2010. Вроде и не много, но его всепроникающая (в плане ответственности за компоненты) и важная суть может стать лакомым кусочком для взломщиков, так как его широта поменьше чем ядро, но настолько же критично по последствиям (прим. пер. — по мне так это уже лицемерие и лукавство.)
7. systemd имеет вирусный характер, его расширения добавляют новые API, но продолжая зависеть именно от его инициализации. Его охват функциональности и расползание как зависимость по куче пакетов означает, что мейнтейнеры дистрибутивов будут обязаны вынуждать переход или сносить напрочь (старое). Например, GNOME обычно использует компоненты systemd вроде logind и поддержка не-systemd систем становится сложной. Под Wayland GNOME использует logind который снова заставляет использовать systemd. Все больше мейнтейнеров прописывают в зависимости systemd по этой причине. Быстрый рост в принятии в такие дистрибутивы, как Debian, Arch Linux, Ubuntu, Fedora, openSUSE показывает, что многие пытаются запрыгнуть в уходящий поезд, иногда бездумно (может тут не точно перевел). Например, странно, что от него зависят Weston compositor, Polkit, upower, udisks2, PackageKit, и тп. Так же ничего особо не дает то, что systemd не хочет запускаться под пользователем.
8. systemd запускает (clusters — теснится, толпится — прим. пер.) себя под PID 1, вместо того чтоб работать как отдельный гипервизор процессов. Так как он контролирует кучу компонентов, существует тьма вариантов, в которых он может помереть (закрашиться) и отправить в небытие всю систему (см. выше про точку отказа). Мы так же отмечаем, что чтобы снизить надобности перезагрузки, systemd предоставляет механизм для перезапуска systemctl в реальном времени. Но если с ним чего не так, то система опять идет крахом. Так же есть разные пути, как это может произойти, включая невозможность прочитать предыдущее несовместимое состояние. Это, похоже, другой пример SPOF (одна точка отказа) и ненужном бремени в и так уже критичном комноненте (init).
9. systemd разработан с glibc-в-уме и не особо поддерживает другие libc-ы. В общем, идея разрабов systemd в стандартной libc библиотеке — та, что баг-в-баг повторит glibc.
10. Сложная «душевная» организация systemd (метафора пер.) делает очень сложной расширение за пределами его собственных рамок (среды) разработки. В то время, как запустить шел скрипт из файлов модулей как-то можно, весьма сложно написать реализацию поведения, которая идет из коробки, с учетом всех этих крутых фич. Много пользователей чаще хотят написать сложные программы, которые прямо взаимодействуют с API systemd, или даже модифицировать (его исходники). Кто-то может побеспокоиться о большом количестве путей в коде в критичной для системы программе, включая возможность того что systemd не синхронизируется с шиной сообщений при загрузке и зависнет. Это противоположно традиционному иниту, который определяем и предсказуем по архитектуре.
11. В конечном счете, распространение systemd символично чуть больше чем просто systemd. Оно показывает радикальный сдвиг в мышлении сообщества Linux. И не обязательно позитивном. Это сдвиг по большей части оринтирован на десктоп, ограничивает выбор, изоляционистский, велосипедостройный и просто огромно-антипаттерный. Если ваша задача потворствовать наименьшему делителю, делайте это. Но мы посмотрим в какую-то другую сторону.
12. systemd вообще похоже не знает что за хренью он хочет быть. Он иногда описан как «system daemon» или как «базовый блок в пространстве пользователя чтобы сделать ОС», оба термина слишком неоднозначны. Он поглощает функциональность которая пренадлежала util-linux, беспроводным инструментам (wireless tools), syslog и прочим проектам. У него нет четкого направления, кроме как причуды самих же разработчиков. Что забавно, несмотря на цели по стандартизации дистрибутивов Linux, у него нет четкого стандарта и он по сути просто катится, как перекати-поле.
Чем плох systemd?

Кто «все»? Просто они орут громко, вот и кажется, что их много.
anonymous
( 03.07.17 18:38:47 MSK )
Haters gonna hate. Не обращай внимания.
vq156 ★★
( 03.07.17 18:46:38 MSK )

ados ★★★★★
( 03.07.17 18:47:17 MSK )

На правах бывшего хейтера.
systemd не столько плох, сколько слишком яро проталкивается в качестве дефолта. Кому-то пофигу, у кого-то на OpenRC/sysvinit уже давно всё реализовано, всё работает, нет смысла менять инит и всё настраивать с нуля, часто на десятках, сотнях машин. Вот у таких админов бомбит вполне справедливо, когда им принудительно меняют инит. На десктопе вообще плевать, что там в качестве инита, кому-то менее плевать, но не так критично. Большинство на ЛОРе бугуртит просто потому, что ЛОР.
Я перешёл на systemd осознанно (ибо Gentoo), и особых неудобств не испытываю. Возвращаться обратно на OpenRC не хочу (так как для этого нужно приложить усилия, а по сути шило на мыло, ибо десктоп), но если снова буду ставить генту, то инит менять не стану (опять же только потому, что телодвижения).
r3lgar ★★★★★
( 03.07.17 18:48:13 MSK )

- Он слишком жирный, pid1 должен быть максимально прост.
- Написан криво, есть баги, которые автор в силу скудоумия не считает ни багами ни уязвимостями. Разобраться в коде неподготовленному очень тяжело, в отличие от альтернатив.
- Он слишком сложен. Другие init-системы (даже пресловутый SysVinit, не говоря о более современных типа runit) не требуют многочасового изучения манов для написания «юнитов», достаточно лишь беглого ознакомления и знания bash.
- Он слишком агрессивно пропихивается во все дистрибутивы, фактически не оставляя юзеру выбора. При том, что без него всё прекрасно работало.
- Он гвоздями прибит к Linux и не работает под другими unix-like системами, в отличие от остальных инитов.
- Есть претензии к отдельным его компонентам, которые к тому же без него не работают (пресловутые бинарные логи и гуглозонд в DNS).
P. S. Юзер systemd. Но думаю (неспешно) либо перевести свой арч на runit (это вроде не так уж сложно, когда не так уж много демонов), либо переехать на Void (слежу за развитием, но как-то пока стрёмно).
Psych218 ★★★★★
( 03.07.17 18:50:07 MSK )
Последнее исправление: Psych218 03.07.17 18:52:48 MSK (всего исправлений: 1)
Вот тут ещё глянь, крокодил очень доходчиво разъясняет своё мнение: systemd 219 (комментарий) systemd 219 (комментарий)
anonymous
( 03.07.17 19:45:04 MSK )

pekmop1024 ★★★★★
( 03.07.17 19:47:00 MSK )

Раз в месяц как-то редко, давайте каждую неделю такой вопрос задавать. Чем для меня может быть плох systemd?
redgremlin ★★★★★
( 03.07.17 19:56:54 MSK )
У тебя тут два вопроса в одном:
- Почему так не любят systemd (т.е., почему столько эмоций)?
- Какие реальные факты и недостатки?
И на первый вопрос ответ прост: очень агрессивно пропихивается всюду, пускает корни в другие части системы, пытается подмять под себя всё, не оставляя юзеру никакого выбора (кроме смены дистрибутива). В результате хейтерами становятся те, кто привыкли сами рулить своей системой, а тут пришёл systemd и сказал, что теперь он тут будет всем рулить. Короче, systemd — один из главных признаков виндоизации линукса.
anonymous
( 03.07.17 20:05:41 MSK )
Ответ на: комментарий от Psych218 03.07.17 18:50:07 MSK
либо переехать на Void (слежу за развитием, но как-то пока стрёмно)
А что именно тебе стрёмно?
Я вот маме вместо тихо умершей винхп на стареньком компе поставил войд, для интернетов и офиса. Вроде не жалуется, обновляю раз в несколько месяцев.
Правда, я там никаких тяжёлых ДЕ не ставил. Только IceWM с темой, максимально похожей на почившую XP.
Ну и дома у меня серверочек для всякого на войде. Десктоп на круксе, если что.
anonymous
( 03.07.17 20:27:45 MSK )

Это новая технология, которую сейчас принудительно пихают везде. У многих людей есть боязнь всего нового, они стараются этого избегать. К тому же, надо учиться работать с новой системой, что вызывает ещё больше недовольства.
Не все, просто недовольные всегда громко кричат. Довольные спокойно работают и никому не мешают.
Ghostwolf ★★★★
( 03.07.17 20:45:20 MSK )
Ответ на: комментарий от Ghostwolf 03.07.17 20:45:20 MSK

Настолько новая, что была еще в Debian 7.
Polugnom ★★★★★
( 03.07.17 20:48:14 MSK )
Ответ на: комментарий от Polugnom 03.07.17 20:48:14 MSK
11 релизов назад.
alpha ★★★★★
( 03.07.17 20:56:30 MSK )
Ответ на: комментарий от Ghostwolf 03.07.17 20:45:20 MSK

У многих людей есть боязнь всего нового, они стараются этого избегать.
Я думаю, таких меньшинство даже среди хейтеров системд. У меня, например, нет боязни нового: я жду, когда нормально заработает Wayland и хочу начать его юзать, потому что это и правда более правильный подход по сравнению с монструозными иксами (которые как раз напоминают системд — огромный комбайн, в который встроено всё что только можно), до этого я с огромным удовольствием перешёл на x86_64, а ещё до этого на utf8, например, который тоже хейтили любители старья (двое даже на лоре до сих пор остались, но это музейные экспонаты), я был несказанно рад закапыванию флеша и появлению видео, аудио и прочего в html5. Это всё новые технологие, решающие существующие проблемы, либо просто предоставляющие нечто лучшее. А с systemd дело вовсе не в новизне, а в том, что с ним стало хуже, чем было, к тому же он просто откровенно плох что в дизайне, что в реализации, прибит гвоздями к линуксу, ну и конечно важную роль сыграло его агрессивное пропихивание (иначе мне было бы просто всё равно, есть он или нет, как сейчас на какой-нибудь там гном или кеды, или там, не знаю, SELinux — я просто не пользуюсь, а кто пользуется, те сами это выбрали). Если кому-то не нравится что-то новое, это вовсе не означает, что причина этого в новизне, оно просто не нравится и новое, а не не нравится потому что новое, вроде предпосылки-то правильные, а вывод от истины всё же далёк. Хотя думаю, есть и такие, кому не нравится именно по этой причине.
Линус Торвальдс: systemd не так уж и плох
Возможно, у нас до сих пор не было мнения Ричарда Столмена о systemd, но Линус снова высказал свое мнение. в интервью Сэму Варгезу из ITWire, где он также говорит о других вещах.
Что касается systemd, они ожидают, что у меня будет много ярких мнений, но нет. Меня лично не волнует systemd, на самом деле мой основной компьютер и ноутбук используют его. Я не лажу с некоторыми разработчиками (имеется в виду инцидент с Кей Сиверс), и я думаю, что они немного беззаботны, когда дело доходит до ошибок и совместимости, но я не очень отношусь к лагерю людей, которые ненавидят идеи systemd тоже нет.
Согласны ли вы с мыслью, что systemd уходит от идеи простоты UNIX-систем? Это плохо?.
Я считаю, что многие «оригинальные идеи» UNIX — это скорее вопрос мышления, чем отражение реальности. По-прежнему есть ценность в понимании традиционной модели «делай одно дело и делай это хорошо», но сложные системы работают не так, и большие приложения разрабатывались не так долгое время. Это полезное упрощение, которое верно на «определенном» уровне, но явно не описывает большую часть реальности. И systemd ни в коем случае не является частью старого устаревшего UNIX. Графические приложения редко работают таким образом, и, конечно же, существует традиционный контрпример GNU Emacs, который никогда не был простой моделью UNIX, а представлял собой большую новую инфраструктуру, такую как systemd. Конечно, я достаточно взрослый, чтобы любить журналы в текстовом, а не в двоичном формате. Иногда мне кажется, что systemd не обязательно обладает лучшим вкусом, но это детали.
Были ли вы раньше в подобных ситуациях, когда введение нового образа действий вызывало столько горечи и крайних реакций?
О, да. Vi против Emacs, сравнения между рабочими столами или для более близкого случая с systemd, SysV init против BSD init. Я не уверен, насколько разные бои systemd. Это технический вопрос, но его разработчики, безусловно, очень хорошо умели отчуждать людей на личном уровне. Это не что-то новое под солнцем, войны между теми, кто защищает GPL и BSD, больше касались вовлеченных людей и их раздражения, чем других различий.
Что бы вы сказали, если бы кто-то утверждал, что systemd создает точку отказа, которая не позволяет системе загружаться в случае сбоя? Он централизует множество служб, и в случае сбоя одна система становится бесполезной.
Если это причина, им тоже не следует использовать ядро. Очевидно, что это что-то особенное, что его инженеры — лучшие люди, и что, возможно, было бы несправедливо сравнивать нечто столь благородное, как ядро, с более приземленными проектами. Но если вы посмотрите на медленные и тяжелые проекты, такие как glibc, то, когда они проваливаются, все пострадают.
Я спросил об этом, потому что видел статьи о людях, переходящих на BSD на серверах. Я не видел такого экстремального поведения, но я использую Linux только с 98 года.
Обычно я не слежу за этими штормами, но я также думаю, что меняется одно: люди, возможно, очень серьезно относятся к культуре острой популистской паники. Это не только в технической прессе, но и в техническом мире есть много «мнений» и других связанных с этим преувеличений. И у людей из BSD есть термин для этого: «рисование на велосипеде» *, означающее, что случайные люди считают, что они способны обсуждать поверхностные вопросы, потому что каждый чувствует, что может высказать свое мнение по поводу выбора цвета. Так что у поверхностных вопросов больше шума. Но когда дело доходит до сложных и глубоко технических решений, они обнаруживают (иногда), что недостаточно знают, и поэтому не говорят так много.
Вы читали Новый документ Леннарта Поеттеринга об организации дистрибутивов с файловой системой Btrfs по умолчанию? Если так, что ты думаешь?
Я не уверен, что это правильный способ делать что-то, но на самом деле я очень рад, что люди работают в этом направлении. Текущая модель упаковки не работает для сторонних приложений, и я не уверен, что она так хороша даже для проектов, которые распространяются в дистрибутивах Linux как часть их ядра. Являются ли точные сведения о том, как использовать Btrfs для реализации этого правильного решения? Без понятия. Это сложная проблема, которую нельзя решить в одночасье с помощью какой-то радикальной новизны, и я с подозрением отношусь к новым сложным моделям, которые меняют все и говорят, что они решают проблемы (возможно, новизна, сложность и сложные детали не позволяют сказать что у них «нет» проблем, которые есть в существующих системах, поэтому это рассматривается как аргумент в пользу того, что проблем больше не существует — не потому, что они ушли навсегда, а потому, что их стало так трудно обсуждать, потому что так много изменилось ). Но я думаю, что это проблема, на которую стоит обратить внимание.
* покраска навеса для велосипедов будет переводом на испанский язык. Больше информации здесь y здесь
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Из Linux » новости » Линус Торвальдс: systemd не так уж и плох
46 комментариев, оставьте свой
Оставьте свой комментарий Отменить ответ
элиотайм3000 сказал
тому назад 9 лет
И с этим он на мгновение гасит пламя (потому что Линус также создал свое пламя вместе с Танембауном в отношении монолитных ядер и микроядер).
Cristian сказал
тому назад 9 лет
Линус всегда любит войны
Думаю, это больше, чем злость, это способ выйти на шоу: смеется Впрочем, вполне понятно и аргументировано, что он поднимает.
Синфлаг сказал
тому назад 9 лет
Я думаю, что Линус был равнодушен в интервью, затем я вижу, как он агрессивно оскорбляет Кея в списках рассылки с уважительной причиной, поэтому я думаю, что он сказал все это, чтобы не увеличивать пламя. Мне кажется, что ему достаточно ядра, модификаций, запрошенных Google, systemd, чтобы вникать в вещи, которые ему не соответствуют, на самом деле он никогда не попадал в системы запуска, но, я думаю, что он должен своими средствами, принять меры по этому поводу, в тексте говорится о журнале…. и Линус не тот человек, который говорит «ну, правильно, что мы собираемся делать, давай продолжим сосать», так что либо эта гага, и он должен сделать шаг в сторону, он даже не пишет код или собирается что-то делать, все режимы ……. На серверах 1 огурец имеет значение для меня, что он создает, если ВСЕ дистрибутивы переданы на systemd, нужно будет перейти на BSD, так просто, мне все равно, что он делает или нет, точно так же, как мне все равно, что происходит с Хёрдом, кстати, ничего. В любом случае, купите много вазелина, потому что придет время, когда RPM будет зависеть от systemd, точно так же, как сейчас они хотят поставить brtfs . Боже мой . Я не знаю, Google, Microsoft или redhat хуже
Роло сказал
тому назад 9 лет
SynFlag = «покраска велосипедного навеса»
амулет_linux сказал
тому назад 9 лет
Есть еще Gentoo и Slackware, похоже, они еще долго будут использовать свои системы инициализации по умолчанию.
Мистер Бот сказал
тому назад 9 лет
С надеждой. Думаю, пора стандартизировать.
Я не знаю, что за ненависть к RPM, когда, как я понимаю, сам Столлман предпочитал их там. Мне все равно, если DEB, если RPM, да . что угодно, но стандартизация хороша для всех. Как сказал Линус, настало время для пользователей Linux Desktop, которых мало заботят технические различия между DEP и RPM, если вы дважды щелкните по нему, и он установится.
Joakoej сказал
тому назад 9 лет
Вы были хороши, но в конце концов вы облажались
элиотайм3000 сказал
тому назад 9 лет
Про RPM и SystemD… напомню, что он существует Alien чтобы преобразовать пакеты .rpm в нужный вам пакет. Что касается BTRFS, это просто предложение, потому что есть люди, которые действительно не хотят использовать другие файловые системы, которые настолько посредственны, что они напоминают им FAT32 или NTFS, и они предпочитают более надежные системы (например, XFS) или те, которые предлагаются большинство (EXT4).
x11тете11x сказал
тому назад 9 лет
: ‘) когда я ставлю Торвальдса, как он правильно говорит, и я полностью разделяю, некоторые из аргументов против Systemd являются философскими, и, как я уже сказал ранее, теперь «все надевают рубашку BSD, Solaris, Haiku, HURD и сколько там чудаков «. следуя» философии «Торвальдса, который не любит форкнуть или создавать что-то новое . .. Кто-то меня обманет, и я не только пользователь Linux, и RedHat не платит мне денег xD, но я оставляю это, чтобы еще немного разжечь пламя http://www.phoronix.com/scan.php?page=news_item&px=MTI4NDc и мне особенно нравится эта фраза, посвященная тем, кто думает, что Systemd должен набирать скорость во время загрузки «Systemd — это о скорости — Леннарт говорит, что скорость systemd — это всего лишь побочный эффект правильного проектирования…» и сумо, некоторые из инициалов или наборов приложений (я говорю, потому что, поскольку он «не соответствует» инициализации) позволяют это:
http://diegocg.blogspot.com/2014/02/por-que-kdbus.html
http://diegocg.blogspot.com/2014/07/avanzando-golpe-de-actualizaciones-de.html и по поводу включения btrfs .. они жалуются, но поняли почему? …. http://www.phoronix.com/scan.php?page=news_item&px=MTc3NzU
x11тете11x сказал
тому назад 9 лет
Исправление: «и я не только пользователь Linux, и RedHat не платит мне ручку xD»> «и я всего лишь пользователь Linux, и RedHat не платит мне ручку xD»
амулет_linux сказал
тому назад 9 лет
btrfs Мне очень нравится, как он работает, его функции, но он не так хорош, как ext4, чтобы восстанавливать себя, когда он поврежден, мне пришлось его переформатировать, я смог восстановить информацию, но не восстановил систему. С другой стороны, то же самое случилось со мной с ext4 и с готовой fsck и как с новой.
элиотайм3000 сказал
тому назад 9 лет
Проблема в том, что никто не хочет форкнуть SystemD, как это сделал Тео де Раадт с OpenSSL. На самом деле, к сожалению, никто не понимает причин, по которым не прилагает минимальных усилий для улучшения SystemD в качестве соавтора этого проекта. В любом случае сейчас обновлю Opera Blink до бета-ветки.
элиотайм3000 сказал
тому назад 9 лет
И вуаля: обновился до бета-версии Opera Blink 25.
элиотайм3000 сказал
тому назад 9 лет
@амулет_линукс: Кроме того, у меня на нетбуке есть XFS, и до сих пор он потребляет меньше энергии батареи на Debian Wheezy. Правда в том, что BTRFS по-прежнему остается зеленой во многих отношениях, поэтому я выбрал более консервативное решение для ноутбуков, таких как нетбуки. Все равно Ext4 хорош, но с переносимостью не справляюсь.
элиотайм3000 сказал
тому назад 9 лет
И полный глоссарий идеально подходит для хорошего пламени.
Joakoej сказал
тому назад 9 лет
И почему Red Hat платит вам? ты трахаешь меня
Эдо сказал
тому назад 9 лет
Всегда есть кто-то, кто не понимает, что они хотят иметь в виду
Elav сказал
тому назад 9 лет
Очевидно, что это что-то особенное, что его инженеры — лучшие люди, и, возможно, было бы несправедливо сравнивать нечто столь благородное, как ядро, с более приземленными проектами.
ХАХАХА . иди с двумя шарами: Ядро — лучший, а SystemD — дерьмовый проект .. Этот парень (Торвальдс), если он знает, как использовать слова хахаха.
элиотайм3000 сказал
тому назад 9 лет
По-христиански: он Pro-Unix, хотя ему нравятся графические интерфейсы.
Мираж сказал
тому назад 9 лет
на самом деле более чем pro unix — друг того, что работает. он будет брать из Unix то, что работает, и если остальное не служит для решения текущих проблем или потребностей, и вам нужно использовать что-то радикально иное, это вас нисколько не беспокоит
johnfgs сказал
тому назад 9 лет
И systemd ни в коем случае не является частью старого устаревшего UNIX. Графические приложения редко работают так »
В миллиард раз больше. Все те, кто всегда обвиняет какое-либо программное обеспечение в нарушении принципов UNIX, я надеюсь, что они делают это из сценария bash, который загружает веб-страницы с помощью wget, читает их с меньшим количеством ресурсов и публикует через curl, иначе их мнение не имеет силы.
элиотайм3000 сказал
тому назад 9 лет
CC-Combo Breaker!
путешественник сказал
тому назад 9 лет
Это скорее фатальный XD. Философия UNIX хороша для некоторых вещей, но я думаю, что, поскольку она относится к веб-браузеру, все ей следуют, они не являются чем-то неразрывно монолитным, они представляют собой смесь http-клиента, движков html, интерпретаторов javascript, плагинов, SSL . Все они выполняют одну задачу, и делают ее (более или менее) хорошо.
johnfgs сказал
тому назад 9 лет
Да, но знаете ли вы, что браузеры, такие как firefox, сохраняют свою историю загрузок в sqlite? а sqlite — это… ДВОИЧНЫЙ ФОРМАТ! КТО-ТО НАЗВАТЬ ДЕННИСА РИТЧИ, FIREFOX СОБИРАЕТСЯ СЪЕСТИ МОЕЙ СОБАКИ! FUD FUD FUD, единственное, что говорит о SystemD.
Персонал сказал
тому назад 9 лет
@juanfgs
Я начинаю с пояснения, что я согласен с тем, что пришло время заменить init, и что systemd кажется мне лучшим, что у нас есть сегодня для этого.
Но не поэтому мы собираемся отрицать его недостатки, обвинять любого, кто разоблачает их, в создании FUD, не говоря уже о том, чтобы бороться с FUD против FUD. SQLite — это база данных, формат, который содержат эти данные, зависит от разработчика, вы можете иметь int, text, которые идеально подходят как обычный текст, или двоичные двоичные объекты.
Но в том любопытном случае, о котором вы упомянули, вы несколько заблудились, вы можете легко открыть файл Firefox с помощью текстового редактора и увидеть адреса как простой текст, то есть все скопированные, потому что редакторы не знают структуру SQLite, но да. Вы хотите читать их по порядку в столбцах. Из Firefox вы загружаете плагин под названием SQLite manager и видите их без проблем.
В отличие от того, что происходит с SystemD, который заставляет вас использовать journald для его чтения.
Вы должны принимать продажи и проблемы, поэтому вы можете работать над их решением.
johnfgs сказал
тому назад 9 лет
вы можете легко открыть файл Firefox с помощью текстового редактора и просмотреть адреса как обычный текст,
Это неверно, я предлагаю вам попробовать, на экране появится другая строка, очевидно, но SQLite — это двоичный формат, как и тысячи других двоичных форматов, которые мы используем каждый день. Невооруженным глазом это не читается. Я не знаю, откуда вы взяли, что вы собираетесь видеть адреса в виде обычного текста, строки будут прыгать, но вы не сможете надежно прочитать файл в текстовом режиме.
В отличие от того, что происходит с SystemD, который заставляет вас использовать journald для его чтения.
По вашей собственной логике SQLite Заставляет вас использовать какое-либо программное обеспечение для чтения его содержимого, и это потому, что двоичные файлы такие. То, что существует только journald для чтения двоичных журналов SystemD, просто означает, что существует только одна реализация читателя этого формата файла, а не то, что lennart, torvalds и иллюминаты пытаются преобразовать Linux в Windows, как предлагает кампания бойкота SystemD. Проблема в том, что когда мы думаем, что двоичный файл — это «дьявол», я спрашиваю вас, если вы не заметили, что если мы применим ту же философию недоброжелателей SystemD к другим системам, он развалится. Реальность заключается в том, что такие проекты, как SystemD или другие, необходимо анализировать с точки зрения других программных продуктов, а не с точки зрения «это противоречит тому, что мы всегда делали, и поэтому это правильный путь». Благодаря такому менталитету мы долго не думали даже о возможности замены init (потом люди в runit и многие другие начали это переосмысливать).
Персонал сказал
тому назад 9 лет
@juanfgs
Я не знаю, знакомы ли вы с концепцией базы данных, но это то, что не имеет формата, у них много ТИПОВ ДАННЫХ, и это те, которые есть.
Вы можете идеально иметь текстовые строки, цифры или даже изображения в одной базе данных. Каждый в разных форматах. Имея это в виду (я надеюсь), вы понимаете, что было бы ошибкой говорить, что SQLite является двоичным форматом, поскольку это не файл как таковой, вы не говорите о текстовом документе, .pdf или .jpg. Мне смешно, что вы приглашаете меня попробовать что-то такое, чего, как вы видите, вы еще не делали.
Вот мои доказательства: http://i.imgur.com/zR7PEWl.png Ваш?
Дело не в том, что «какая-то другая строка» видна, это полные адреса, и они читабельны. Если нам ясно, что такое база данных, мы будем знать, что правильно сказать, что в этом случае «ДАННЫЕ ХРАНИТСЯ КАК ПЛОСКИЙ ТЕКСТ».
Я не знаю, насколько надежным вы этого хотите. Эта упрощенная логика, которую вы приписываете мне, заключается в том, что вы неверно истолковали мои слова.
Если бы я следил за ним, я бы сказал, что даже простые тексты ПРИНУЖДАЮТ использовать какое-то программное обеспечение для чтения их содержимого, и это было бы правдой, или как бы вы их прочитали, не используя Kate, Notepad, nano .
Вы не поняли, что журналы SystemD можно читать ТОЛЬКО с помощью journalct / journald. В отличие от истории Firefox, вы можете читать ее беспорядочно с любым текстовым редактором или аккуратно с широким спектром программ:
http://www.sqlite.org/cvstrac/wiki?p=ManagementTools Повторяю на случай, если вы не читали с первого раза:
«Я согласен с тем, что пришло время заменить init, и что SystemD кажется лучшим, что у нас есть сегодня для этого».
И я полностью понимаю преимущества использования двоичных файлов (меньший риск повреждения данных, более быстрый поиск . ), но также и его недостатки (зависимости, гораздо труднее восстановить в случае повреждения данных . ) Отрицание этих недостатков — это если и нет, но по крайней мере так же абсурдно, как без учета преимуществ.
johnfgs сказал
тому назад 9 лет
То, что вы видите строки, не означает, что файл поддается синтаксическому анализу. Не позволяйте Кейт также показывать вам промежуточных персонажей. http://imgur.com/GfUxpcf В любом случае спецификации для файлов журнала systemd являются общедоступными, поэтому написание вашей реализации читателя journald тривиально, даже если вы не хотите использовать C API, который они предоставляют для этого случая. Помимо бесчисленных двоичных форматов с открытым исходным кодом, для обработки в вашей программе предоставляются API и библиотеки. Преимущества и недостатки, да, конечно, они есть, но здесь появляется субъективное, я нахожу неприличным, как недоброжелатели преувеличивают это до «systemd поглотит все», «они заставляют нас использовать systemd», «linux будут окна »,« Билль Гейтс войдет в ваш дом и убьет вашу семью », и это FUD, как вы выразились, он не решает проблему, о которой идет речь, но пытается вас напугать.
элиотайм3000 сказал
тому назад 9 лет
@juanfgs: Ты, блять, издеваешься надо мной? Я хорошо вижу операторы SQL в двоичном файле в файле .sqlite в GNU Nano. И цитируя @staff:
[…] В отличие от истории Firefox, вы можете прочитать его в любом текстовом редакторе Или заказываете с большим выбором программ:
http://www.sqlite.org/cvstrac/wiki?p=ManagementTools%5B. ]
Это происходит из-за незнания, как обращаться с MySQL / MariaDB. PS: MS SQL Server хуже.
johnfgs сказал
тому назад 9 лет
Это происходит из-за незнания, как обращаться с MySQL / MariaDB.
Я могу читать / писать SQL, в основном это головная боль, чтобы читать sqlite в текстовом режиме для любого практического использования, вот что я имею в виду, и в этом случае он стоит столько же, сколько двоичный файл, вам нужен инструменты для практического доступа к нему и инструменты, которые они доступны. То же самое для журналов systemd, двоичная спецификация доступна, и вы можете написать читатель (даже если это не рекомендуется) по своему усмотрению, или использовать существующий инструмент для доступа к нему, или использовать существующий C API. И если мы хотим разместить примеры других двоичных файлов, у вас есть rpmdbs и множество других приложений, которые сохраняют настройки, кеши и другие данные в двоичном формате (MariaDB также делает это, необязательно из-за преимуществ, упомянутых @staff), но это обсуждение стал разговором об уходе от предмета разговора самым техническим способом.
Персонал сказал
тому назад 9 лет
@juanfgs То, что вы видите строки, не означает, что файл поддается синтаксическому анализу. Не позволяйте Кейт также показывать вам промежуточных персонажей. »
Это совсем другое дело, вы сказали, что это двоичный формат, и уже было показано, даже с вашим собственным захватом, что это ложь.
Теперь вы меняете свой аргумент с «Это двоичный файл, и то, что он говорит, не может быть прочитан» на «Он двоичный, его можно читать, но он не может быть проанализирован», и снова вы попадаете в ошибку, поскольку причина, по которой вы не можете анализировать систематически is: почему вы не знаете его структуру.
Например:
Возьмите файл CSV в виде простого текста, откройте его с помощью Кейт, и вы увидите, что он также не упорядочен в удобном для чтения виде. Для этого нужно знать его структуру.
Поэтому я думаю, что проблема здесь в том, что вы не очень понимаете, что такое базы данных, или разницу между форматом и кодировкой. «… Так что написать свою реализацию читателя журнала — тривиальная задача…»
Для начала, ничего тривиального, потому что речь не идет о написании читателя. Если у вас нет зависимости, вы можете создать тысячу читателей, но journalctl / journald ОБЯЗАТЕЛЬНЫ, потому что именно они пишут эти журналы. «И это FUD, как ни крути, он не решает проблему, но пытается вас напугать».
Из своего первого комментария я очень ясно дал понять, что есть много правды, есть FUD против SystemD, но вы не видите того, что делаете то же самое.
Вы генерируете FUD, говоря неправду по отдельным темам, вместо того, чтобы атаковать технический вопрос.
Сказать, что у SystemD есть проблема X, но это нормально, потому что она есть у многих других компонентов системы, — ужасное заблуждение.
«Зло многих, утешение глупым», — говорят здесь. И мне кажется невероятным, что как proSystemD я должен защищать «хулителей, которые преувеличивают», от «промоутеров, которые преуменьшают».
Трагедия systemd
Согласно Википедии, трагедия — это «форма драмы, основанная на человеческих страданиях, которая вызывает в аудитории сопутствующий катарсис или удовольствие». Из этого определения почерпнул вдохновение Бенно Райс в своём выступлении на конференции 2019 linux.conf.au. Его доклад посвящён истории systemd, в которой немало страданий. А аудитория точно получила удовольствие, так что всё сходится. В целом, это сочувственный и тонкий взгляд на одну бурную главу в истории системы Linux.
Райса также вдохновила статья Ауринна Шоу о так называемой «культуре презрения». По словам Шоу, люди проявляют презрение (например, к разработчикам, которые используют другой язык программирования) в качестве социального знака, способа показать, что они принадлежат к правильной группе.
Безусловно, в этой истории есть такая культура: большие группы сообща проявляют общее презрения к systemd и к тем, кто использует эту систему. Отсюда вытекает концепция изменения или сопротивления. Да, знакомые вещи удобны. Но они не обязательно хороши, особенно если ничего не меняется уже много лет.
Истоки трагедии
По словам Райса, происхождение systemd связано с корнями самой системы Unix, которая была «счастливой случайностью» — реакцией на внешнюю сложность прежних систем. Unix был кардинально упрощён во всех отношениях, включая загрузку пользовательского пространства. Подсистема init заведовала всем «хозяйством», включая монтирование файловых систем и запуск демонов. Хотя это совершенно разные задачи, но их объединили в один процесс.
В те дни важных демонов было мало: cron , update (чья работа заключалась в том, чтобы иногда выписывать суперблоки файловой системы), и сам процесс init . К моменту выхода 4BSD у Unix и появился правильный демон getty , сетевые демоны вроде routed и telnetd , а также «супердемон» inetd . Именно здесь ситуация начала становиться интересной, но некоторое время всё это работало достаточно хорошо.
А потом случился Интернет. Хотя inetd нормально справлялся с небольшими объёмами трафика, но не мог создавать новый процесс на каждое входящее соединение. Тем временем веб-сайты обзавелись базами данных и другими системами с сохранением состояния между соединениями. Представление о демоне сместилось в сторону «сервиса», а это совсем другой зверь. Старый init мог только запустить сервис, но после этого становился практически бесполезен.
Частично проблема заключалась в объединении сервисов и конфигурации. Такие задачи, как монтирование файловых систем, относятся к последней разновидности; они обычно выполняются один раз во время загрузки, после чего забываются. Но такого подхода недостаточно для автоматизированного управления сервисами, которое требует постоянного внимания. Вот так на свет появились сервис-ориентированные системы, такие как Upstart и systemd. Здесь Unix пошла по пути, проторенному другими ОС. По словам Райса, у Windows NT с самого начала была сильная сервисная модель, а у Mac OS она до сих пор работает в виде launchd . Другим системам приходилось догонять.
Apple выпустила launchd в версии Tiger, где он заменил целую серию демонов обработки событий, включая init , cron и inetd . Таким образом, systemd стал попыткой позаимствовать хорошие идеи, реализованные в launchd . Когда Леннарт Пёттеринг начал решать эту проблему, он сначала посмотрел в сторону Upstart — системы, основанной на событиях. Она ещё работала на скриптах, но Пёттеринг пришёл к выводу, что сможет сделать лучше. В своей статье Rethinking PID 1 он называет launchd одним из образцов для работы. Он думал о повышении скорости загрузки и необходимости настройки системы инициализации на аппаратные и программные изменения в работающей системе. Во время создания init системы были статичными, но современная среда гораздо динамичнее, чем тогда.
Сервисный уровень
Классические Unix-подобные системы делятся на два основных компонента: ядро и пользовательское пространство. Но ядра со временем стали более динамичными и изменчивыми, подстраиваясь под оборудование, на котором они работают. Это привело к необходимости создания нового «сервисного слоя» (service layer) между ядром и пользовательским пространством. Этот слой включает в себя компоненты вроде udev и Network Manager, но systemd стремится обеспечить комплексный сервисный уровень; именно поэтому со временем он вбирал в себя функциональность таких компонентов как udev. Процесс шёл довольно успешно и был принят большинством (но не всеми) дистрибутивами Linux, хотя часто сопровождался язвительностью со стороны сообщества.
Против демона systemd часто звучат одни и те же аргументы: например, что он нарушает философию Unix. Райс предполагает, что этот аргумент основан на понятии, что systemd представляет собой единый монолитный двоичный файл. На самом деле systemd структурирован иначе: это много отдельных двоичных файлов, поддерживаемых в рамках одного проекта. Как «человек BSD» (он входил в число основных разработчиков FreeBSD), Райс находит смысл в таком объединении смежных концепций. Systemd — вовсе не раздутая и монолитная система, как считают некоторые критики.
Говорят, что в systemd много багов. «Это же софт», конечно, в нём будут баги, сказал Райс. Представление о том, что в отличие от любой другой системы systemd должен быть совершенным, поднимает планку слишком высоко. По крайней мере, у systemd практически всегда разумный режим работы при отказе, сказал он.
В той или иной форме часто повторяется одна жалоба, которую можно сформулировать так: «Не выношу Леннарта Пёттеринга». Райс отказался защищать стиль общения Пёттеринга, но сказал, что нельзя не восхититься силой воли и решимостью Пёттеринга. Не каждый сможет пройти через всё это.
Systemd не стремится к портируемости на системы, отличные от Linux, что приводит к отдельному классу жалоб. Если systemd станет стандартом, существует риск того, что операционные системы за пределами Linux станут ещё более изолированными. Многие хотят, чтобы systemd придерживался стандартных для Unix интерфейсов, но у Райса для них простой ответ: «Unix мёртв». Когда-то Unix был упражнением в предельной переносимости и имел реальный успех. Но теперь мы живём «в мире Linux с небольшими ошибками округления» (что человеку от FreeBSD больно говорить), и нет смысла придерживаться классических интерфейсов Unix. Нынешняя ситуация является «патологической монокультурой», где Linux может диктовать условия.
Systemd много выиграл в такой ситуации. Например, контрольные группы — высокоэффективный и интересный механизм управления процессами, без них было бы гораздо труднее решать эти задачи. Они гораздо более мощные и детальные, чем джейлы FreeBSD. Разработчики систем типа FreeBSD могут видеть угрозу в непереносимости systemd. Но эта ситуация также даёт им возможность свободно работать и искать собственные решения этих проблем.
Перемены и трагедия
Райс говорит, что миссия systemd сводится к большим разрушительным изменениям — вот где начинается трагедия. У нас нердов сложное отношение к изменениям. Да, это потрясающе, когда мы сами их создаём, но изменениям нельзя доверять, если они приходят извне. Systemd представляет тот вид внешне навязанных изменений, который люди находят угрожающим. Люди противятся таким изменениям даже от приятных разработчиков, не говоря уже о Пёттеринге, который не особо сочувствует окружающим. Это приводит к рефлекторным реакциям. Но людям нужно отступить и подумать, что они делают. «Никто не должен угрожать Леннарту смертью из-за какого-то программного обеспечения», — говорит Райс. Презрение — это не круто.
Вместо этого стоит подумать: почему вообще появился systemd и почему это важно? Какую проблему он решает? Для критиков одним из решением может быть попытка создать собственную альтернативу: они поймут, насколько весёлая эта задача. Кроме всего прочего, эта история показывает разницу в мышлении у нового поколения, которое рассуждает о системах больше с точки зрения API и контейнеров, например.
Итак, какие выводы можно сделать из истории systemd? Один из выводов: нельзя недооценивать транспорт сообщений. Systemd интенсивно использует шину D-Bus, которая во многом обеспечивает его гибкость. Райс не сторонник D-Bus, но большой сторонник шин для обмена сообщениями между процессами. В своё время он лоббировал создание такой нативной шины в BSD-системах, желательно встроенной в ядро и с лучшей безопасностью, чем у D-Bus. Поверх неё можно сделать надлежащую систему удалённого вызова процедур, где компоненты ядра и пользовательское пространство будут работать на одном уровне. В правильно спроектированной системе процесс просто отправит запрос API, не беспокоясь о том, где и как этот запрос будет обработан.
Среди прочих уроков — важность поддержки надлежащего жизненного цикла службы без необходимости установки дополнительных систем управления службами. Важно наладить автоматизацию обслуживания через API; и systemd обеспечивает многое из этого. Поддержка контейнеров также важна: это полезный способ инкапсуляции приложений.
Итак, в современных Linux-системах systemd выполняет роль сервисного слоя. Это хорошая платформа для управления службами, но она не должна быть единственной альтернативой. В systemd есть ряд полезных функций, включая удобные пользовательские юниты, последовательное именование устройств и даже хорошую модель журналирования, сказал Райс. Двоичные журналы — неплохая вещь, пока у вас есть инструменты, чтобы вытащить оттуда информацию. И systemd предоставляет новую модель приложения. Вместо одного двоичного файла приложение становится кучей модулей в одном контейнере.
Мир вокруг нас меняется, сказал Райс. Мы можем либо отдаться течению, либо сопротивляться ему. В первом случае, вероятно, плыть будет проще, чем во втором. Райс предложил всем, кто критикует systemd, более пристально изучить эту систему и попытался найти в ней хорошие вещи. Возможно, тогда завершится фаза катарсиса нашей трагедии — и мы сможем двигаться дальше.