Debian和Devuan联手sysvinit

几天前经典Unix / Linux初始化系统sysvinit 2.92 下一个版本提前发布了。 前一个版本2.91发行于一个多月前。


开发


旧的初始化系统(SI)的次要版本的发布有什么特别之处,几乎所有现代Linux发行版都拒绝了它,这对于开源社区和Debian Linux用户来说是一种欢乐吗?


这一集很有趣,因为发行是Debian和Devuan两个对抗性开发团队的共同努力,由于systemd的情况,该团队在4年前分裂了。 但是让我们按顺序进行。


对systemd进行三重表决


在Debian Jessie发布前几个月,项目负责人面临着决定初始化系统的需求。 当时, systemd已经开始流行,并且是主要竞争者之一。 总共有四个SI参加了比赛。


  • 系统的
  • 暴发户
  • openrc;
  • sysvinit。

投票还选择了“需要进一步讨论”。


第一轮的结果显示upstartsystemd之间保持平衡,他们每个人获得4票。 要做出决定,需要2:1的投票比例。


此后2周,2014年2月上旬进行了第二轮,其中基本上没有发生新的变化。 声音以相同的比例分配,并决定进一步辩论。


赞成系统投票:


  • Bdale Garbee-技术委员会主席;
  • 唐·阿姆斯特朗
  • 目前在Valve工作的X专家Keith Packard;
  • 拉斯·阿尔贝里。

对于新贵投票:


  • 柯林·沃森;
  • 史蒂夫·兰加塞克(Steve Langasek);
  • 伊恩·杰克逊(Ian Jackson);
  • 安德烈亚斯·巴斯(Andreas Barth)。

TC第三次投票,大大简化了规则并提出了问题。 从议程中消除所有次要问题并将决策门槛降低到简单多数,委员会投票赞成在第三次呼吁中使用systemd


不,没有新贵支持者搬到对面的阵营,投票的结果是由技术委员会主席Bidel Garby 的另一票决定的,而Debian Linux的SI问题只用一票就解决了以前的4:4意见平衡。


Linus在LinuxConf 2009上剃了Bideil Garby


刮胡子


投票的结果在systemd的反对者中引起了强烈的痛苦,失望和不公正的感觉。 在Debian邮件列表中,热情高涨。


Ian Jackson 呼吁 Bideil Garby辞去TC主席的职务。 然后释放力量,我决定暂时放弃参加TC的事务。


在2月11日的几天后,很明显,最终决定是为Debian Linux做出的,并且在可预见的将来,将配置主要的发行初始化系统。


德万


Debian Linux发行版的开发人员不同意这种状况,很久没有痛苦 ,在发布相同的第8版之前六个月, 他们systvinit的基础上创建了自己的fork ,并将其命名为Devuan ,从词组Dev one开始


分发工具包的亮点以及与父操作系统的主要区别是引起了极大的关注。 Devuan Linux选择sysvinit作为SI。 通常,发行版的诞生引起了Linux用户的极大热情,但并不排除俄语部分。


6月发行套件第二个版本以其祖先的最新版本-Debian Stretch的软件包发行。 除了sysvinit之外 ,您还可以选择openrc作为SI。


让我们尝试了解是什么原因导致了Debian开发人员环境中的这种分裂,以及实际上是Linux操作系统各种变体的大量用户之间的分裂。 确实,在GNU / Linux的历史上,曾经有过艰难的决定和危险的转折: GPLv3与否UEFI SecureBoot等。那么,为什么这一切都无法解决


围绕系统的争议


如果将所有争执的实质简化为一个论点,那么我们可以说systemd意味着交换对系统及其服务的初始化的最完全控制,从而完全拒绝了Unix哲学。


第一个被systemd的反对者激烈争论,但是没有人反对第二个。 并非所有人都同意systemd使管理员的生活更轻松,但是很少有人可以认为systemd和Unix Way是两个极端。


systemd提供强大的并行化功能,使用D-Bus套接字和激活来运行服务,提供需要启动的守护程序,使用Linux控制组监视进程,支持系统状态的快照和还原,挂载和挂载点,并实现基于依赖项控制复杂交易流程的逻辑

在哪里需要这样一个全面的系统来控制OS及其过程的初始化? 我不相信阴谋论,因此认为原因在于 sysvinit和其他SI的缺陷


sysvinit创建于1983年,无法解决许多重要任务,例如:


  • 并行启动流程;
  • 检测可移动媒体
  • 激活基于套接字的服务;
  • 可靠地控制不同流程和服务之间的依赖关系
  • 通过/dev/log记录早期事件。

所有这些以及其他许多不便之处终于在systemd中得到解决。 配置文件的标准化,语法的统一以及基于cgroups的服务依赖关系的管理,可以使商业Linux发行版的供应商简化管理员的工作,并降低管理服务器园区的成本


但是价格是多少? 根据一些奇怪的设计,Lennart Pottering的想法已经从常规的SI变成了“ Linux系统的构建模块集”。 从项目主页引用。 一种状态,它控制设备的连接,文件系统的入口点,网络连接,系统时间服务,用户会话,系统日志等。


同时,许多DE开发人员,尤其是Gnome,开始将图形环境的元素绑定到systemd


  • 电源管理;
  • 用户会话管理;
  • 查看杂志;
  • 如果您关闭笔记本电脑的屏幕,则事件将不会被处理;
  • 韦兰

如果您选择除systemd之外的其他SI,那么在没有特殊补丁的情况下,所有这一切在Gnome中都无法实现。


出现这种情况的原因是,对于许多程序集,很难同时支持两个选项:一个带有systemd ,另一个没有。 结果,当无法在Linux发行版中选择另一个SI时,就会出现这种情况。


在Twitter上systemd周围的关键字标签云


系统的


好吧,没有办法选择SI,真的那么重要吗? 我认为,如果没有选择OS加载程序或DHCP客户端的可能性,这不会让我感到非常沮丧。


事实证明,对于许多用户来说, systemd困扰了很多事情。 从启动之初就尽早对系统事件进行完整记录当然是一件好事,但是您怎么能想象一个带有二进制日志文件的Linux系统呢?


伦纳特·波特(Lennart Pottering)可能是一个优秀的程序员,但他的沟通方式以及对发现的缺陷的反应,对批评的批评都是最重要的。 这是他对缺陷5644的反应。


缺陷本身。


 # mkdir -p /foo/dir{1,2} # touch /foo/.bar{1,2} # cat /etc/tmpfiles.d/test.conf R! /foo/.* - - - - - Reboot. 

Lennart Pottering评论。


我不确定我会考虑这么多的问题。 是的,这是UNIX的陷阱,但是“ rm -rf /foo/.*”将以完全相同的方式工作,不是吗?

这不是一个孤立的案例,这种沟通方式为他赢得了极客们的不良声誉。 这只是针对systemd及其作者的主张的一部分。 由于其范围,规模和复杂性,系统作为SI(其主要功能)可能比较脆弱


即便如此, systemd在功能上仍优于所有主要的SI,但问题仍然存在。 为什么普通的localhost管理员没有机会选择使用和调试SI更简单的Debian Linux和其他发行版? 确实,并非每个人都需要并行启动流程和配额管理。


我对systemd情况的理解是, 对那些需要和不需要的人强加了一个更复杂的,但同时,许多不合理,复杂和不透明的SI 。 许多Linux用户不喜欢这种方式,他们开始抱怨说,现在Linux已经变得像Windows,但只有开放源代码。


DnD在sysvinit上共同努力


现在终于是个好消息了! 最近,Debian和Devuan SI开发团队之间发生了转移。 决定在几个领域进行共同努力。


  • 对于准备使用Debian Linux且不受所有限制(包括没有图形环境)的用户,请保留sysvinit。 在准备Debian的第十版(称为Buster)时 ,需要Devuan的帮助。
  • 由于这种异花授粉,Debian学者帮助他们的Devuan同事为sysvinit 2.92的发布做准备。 如此一来,就减少了工作量,而且问题就发生在NG之前,就像帖子开头所说的那样。

如果常识盛行,那么两个开发小组都将能够为所有Debian / Devuan用户设置和实现更相关的目标-实现对Devuan Linux的多个SI的完全支持: openrcs6runitnoshnosh Linux也具有完全的支持。至少有一个不同于systemd的 SI无疑将受益。


PS第一届Devuan Linux会议将于 2019年4月5日至7 在阿姆斯丹举行


补充阅读


Source: https://habr.com/ru/post/zh-CN431202/


All Articles