如今,电脑在我们生活中扮演的角色越来越重要;一旦出现任何问题,都会影响我们的心情和幽默感,哈哈。当然,Windows 用户更容易陷入恐慌:病毒(Linux 万岁!)、硬盘碎片整理、寻找并安装Clean Master(虽然 Linux 用户也需要清理系统;BleachBit 是比较受欢迎的选择之一)。最近,一些 Linux 用户也遇到了一个令人头疼的问题,那就是systemd。
总之,言归正传,我读了一篇关于systemd 的有趣文章,它最近似乎非常流行。
有些人认为systemd是“万能的”,(我借用一下我朋友的说法)……而另一些人则对此漠不关心;只要电脑运行正常,他们不在乎 init 执行的是 X 还是 Y,也不在乎是否使用了 systemd。至于我嘛……这么说吧,我更喜欢 init;我觉得它更简单。
我将文章留在这里:
在开始之前,我必须声明,我非常不喜欢 Debian 做出的这些改变,但我无意放弃我挚爱的螺旋式开发。我只是想确保,如果我们要讨论某个话题,我们能尽可能做好充分的准备,即便我本人并不支持 systemd。为了揭开 systemd 的神秘面纱,我将参考一个开发者分享观点的网站。这个网站是我的一位同事推荐的,他虽然不是 Debian 用户,但似乎支持 systemd。综上所述,我想我可以开始尝试解释一下关于 systemd 的各种说法了。
systemd是基于二进制的
也许这是最令我们震惊的方面之一,如果一切都基于二进制,那么我们如何通过日志监视通常执行的操作? 我不知道这个神话是如何诞生的,但这不是绝对正确的。
systemd几乎是通过纯文本文件专门配置的。 也可以使用内核命令行和环境变量来更改某些设置。 您的配置中没有二进制文件(甚至没有XML)。 只是一个简单,直接且易于阅读的文本文件。
那东西是整体的,可以控制一切
在访问上述网站之前,我承认我本人是这样认为的,但是在阅读了开发人员的意见后,我的看法已经改变了……
如果启用所有配置选项构建 systemd,将会生成69 个独立的二进制文件。这些二进制文件服务于不同的任务,并且出于多种原因被精心划分。例如,systemd 的设计以安全性为核心;因此,大多数守护进程以最低权限运行(例如使用内核权限),并且只负责非常具体的任务,从而最大限度地降低其安全风险和影响。此外,systemd 比以往任何解决方案都更高效地并行化启动过程。这种“并行化”是通过并行运行多个进程实现的。由此可见,systemd 被很好地划分为许多二进制文件,进而划分为多个进程。事实上,其中许多二进制文件划分得如此清晰,以至于它们在 systemd 之外也非常有用。
包含 69 个独立二进制文件的软件包很难称得上是单体架构。然而,与以往方案不同的是,我们将更多组件打包到一个 tar 包中,并将它们链接在一起,放在同一个仓库中,采用统一的发布周期。
看起来不像Unix
这肯定有一些道理。 systemd源文件不包含原始UNIX行中的一行代码。 但是,灵感是从UNIX派生的,因此systemd中有很多UNIX。 一个示例就是UNIX理念“一切都是文件”,这反映在systemd中,所有服务都在运行时在内核文件系统中公开,即 cgroupfs。 因此,UNIX的原始功能之一是基于内置终端支持的多座支持。 借助systemd,我们再次带来了本机的多座支持,但这一次完全支持当今的硬件,包括图形,鼠标,音频,网络摄像头等。 实际上,将systemd设计为一组集成工具,每个工具都有其各自的用途,但一起使用时,不仅要考虑各个部分的总和,这或多或少是UNIX哲学的核心。 因此,我们的项目的处理方式(即将大多数操作系统内核保存在单个git存储库中)非常接近BSD模型(这是真正的UNIX,而不是Linux)来完成任务(大多数核心操作系统保存在单个CVS / SVN存储库中)这在Linux上是从来没有的。
最终,有关某物是否为UNIX的问题几乎没有多大意义。 从技术上讲,它并不是UNIX独有的。 对于我们来说,UNIX是一个重要的影响力(实际上是最大的影响力),但是我们还有其他影响力。 因此,在某些领域中systemd将是非常UNIX的,而在其他领域则少一些。
那是非常复杂的...
这肯定有一些道理。 现代计算机是复杂的野兽,在它们上面运行的操作系统显然也将是复杂的,因此它们必须是复杂的。 但是,systemd当然不会比以前相同组件的实现复杂。 它更简单,并且冗余少。 另一方面,构建一个简单的基于systemd的操作系统所涉及的软件包将比传统Linux使用的软件包少得多。 更少的软件包使构建系统变得更加容易,它摆脱了相互依赖性以及所涉及的所有组件的许多不同行为。
那不会让我使用shell脚本
这完全是错误的。我们只是因为认为 shell 脚本并非启动过程中的最佳选择,所以才没有在启动过程中使用它们,但这并不意味着 systemd 与 shell 脚本不兼容。您可以轻松地将 shell 脚本作为 systemd 服务或守护进程运行;您可以将任何语言编写的脚本作为 systemd 服务运行,因为 systemd 完全不关心可执行文件的内容。此外,我们自身也广泛使用 shell 脚本:用于安装、构建和测试 systemd。您可以将脚本粘贴到启动过程的早期阶段,将其用于常规服务,或在最终关机时运行它们——几乎没有任何限制。
至此,我想一些主要观点应该已经澄清了。虽然我并不认为自己是变革的拥护者,而且对“一统天下”的理念也持保留意见,但我认为最终没有人会断言它完全无效。我甚至认识一些用户注意到,使用 systemd 后“电脑运行速度更快”,但这又是另一个值得探讨的话题了。目前,我只能邀请大家在此就许多发行版都采用的 init 系统展开讨论,尽管目前最强烈的反响来自 Debian 社区,甚至因此衍生出了一个新的分支。你是否喜欢它完全取决于个人喜好;就我而言,我只是想尽我所能地揭开 systemd 的神秘面纱,它最终将会出现在 Debian 的下一个稳定版本 Jessie 中。
我在GUTL上看到了那篇文章(这篇文章又转载自DesdeAbreus)。

系统电流?
当某件事引起如此多的争议时,我是不会阅读大量新闻的人之一,我更喜欢关注更多的技术细节。事情是……。有时我觉得某些话题不再是纯粹的技术讨论或辩论,而变得像那些演艺界的八卦之一
首先,一位用户公开抨击 systemd,名为systemd VS intelligence;然后 Linus Torvalds 说systemd 并没有人们说的那么糟糕(而且他说的也有道理);接着出现了一个名为uselessd 的分支……无话可说……长话短说,最后出现了Devuan。
我不会说它到底像他们说的那样糟糕、没那么糟糕还是更糟。对我来说,这套系统运行良好,不过我个人更喜欢 init,因为我喜欢它组织各种东西(比如日志)的方式。但是,如果 systemd 真的要被誉为“赛马”,并且必须取代 init(它会成为我们的主力军,承担所有工作但速度很慢吗?),那么……只要变化不是太大,用户能够轻松适应,而且系统运行得更好(是的,更好,也许这对我来说还不够!),那就欢迎它!😉