systemd 为啥会有那么大的争议?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了systemd 为啥会有那么大的争议?相关的知识,希望对你有一定的参考价值。

看报道说现在 systemd 非常的有争议,已经有人发起抵制了,还创建了分支Uselessd。systemd 的作者 Lennart Poettering 又在 Google+ 上发帖,说他收到了恐吓,又抨击了开源社区和 Linus Torvalds。很多主流发行版都迁移到了或者正在迁移到 systemd,但也有一些人却反对 systemd。


作为 systemd 的拥护者,我前半部分尽量客观的陈述:
systemd 本来是一个先进的init程序,除了管理 daemon 之外,还实现了 socket-activation 来支持按需加载服务。
就架构上来说完胜现有的任何系统上的任何服务管理体系(我可以很负责很客观的说),但是反对的意见主要是:不遵循 UNIX 原则。


    systemd 在设计之初就不考虑 Linux 以外的平台,不遵循 POSIX 标准,而且很多功能根本就是 Linux 特有的,无法移植到 Linux 之外的平台,这尤其让 BSD 爱好者们很受伤,在 Debian 7 以前,一直维护着Linux和FreeBSD两个内核,只不过后者没什么人用,Debian 8 为了支持systemd 不得不放弃支持 Debian kFreeBSD。

    接管了太多设施,如 syslog 被 systemd-journal 取代,crond 也被 systemd 的 timer 单元取代,udev 也准备集成到 systemd 中来,未来甚至还可能取代 /etc/fstab。尽管这些新的服务大部分都是独立于主进程的,但是还是有整个系统被红帽控制住的感觉(systemd的作者Lennart Poettering 就职于红帽,systemd 也主要是红帽的 Fedora 首先在推,OpenSUSE 后面跟随)。这在开源社区看来是件政治不正确的事情。

    有人怀疑 systemd 的可靠程度。然后就是很多管理员以前积攒的脚本全报废了(这也是管理员反对的主因吧)。

参考技术A 多的不说,就一点,systemd之前 运行时靠代码区分各个linux发行版实在是太麻烦了,redhat有redhat-release,suse有。。。,ubuntu有。。。。,关键尼玛各个文件内部的格式还不统一,要在代码里准确解析发行版名称和版本号不知道要拉多大一坨if/else, 后来出了个lsb但根本扶不上墙 systemd提供了统一格式的/etc/os-release文件,一切变得so easy 变动太大,管理员认为没啥必要 之前的init用的好好的。各个软件有熟悉的配置。现在systemd干的活有点太多了,syslogd的工作也做,udevd的工作也做,连lxc的工作都想抢,自带nspawn,甚至霸道到要求只能通过systemd来管理cgroup。管理员们需要从头再学习如何配置linux,而且文档还很少,新的配置又令人很迷惑,比如pts的配置,想搞懂只能去读代码。 我个人站在开发角度觉得systemd tm太难debug了,扯上个dbus,还要去研究dbus如何调试。

以上是关于systemd 为啥会有那么大的争议?的主要内容,如果未能解决你的问题,请参考以下文章

备受争议的systemd如今飞入寻常百姓家

为啥那么多人讨厌systemd

systemd为啥会kill进程

yolov5为啥不被官方认可

Linux开机后 systemd 自动启动 ceph osd mon进程

为啥正则表达式如此有争议? [关闭]