

Debian技术委员会主席Bdale Garbee在邮件列表上表达了支持systemd的立场,使得委员会中支持systemd的人数超过了upstart。Debian GNU/Linux 项目负责人Lucas Nussbaum去年11月要求技术委员会决定下个版本默认使用的init系统。
主要有三个候选init系统:Red Hat的systemd,Canonical 的upstart,以及OpenRC。此前已表明立场的技术委员会成员中,有四人支持upstart——包括前Canonical雇员Ian Jackson、现Canonical雇员 Colin Watson和Steve Langasek,以及Don Armstrong;而支持systemd的人数同样是四人。
在Debian技术委员会选择systemd作为Debian Jessie默认使用的init系统后,基于Debian的下游发行版Ubuntu宣布将紧跟上游发行版切换到systemd。
Ubuntu创始人Mark Shuttleworth在个人博客上表示,虽然upstart是Canonical领导的一个项目,但既然Debian决定选择systemd,那么作为Debian家族的核心成员,Ubuntu将支持这一决定,他将要求Ubuntu社区成员有效的执行这一决定。
Linux作者Linus Torvalds在许多事情上以其鲜明的立场著称,但对于颇受争议的初始化系统Systemd,Torvalds的立场却是中立的。iTWire采访了Linux之父,询问了Systemd、Git和IT教育等方面的问题。Torvalds说,他对Systemd没有特别的看法,事实上他的笔记本和台式机都运行 Systemd。Torvalds指出,传统的Unix哲学“程序应该只关注一个目标,并尽可能把它做好”并不是现实的反映,除非工作是流水线式的,复杂系统很早就不采用“做一件事而且把它做得很好”的Unix模型。Unix的简化哲学在某种程度上仍然有用,但显而易见的是它没有真的描述多数的现实。对于 Git,他称核心部分没发生多少变化,他所惊讶的是它的流行。他认为平板是一种纯消费工具,认为教育的真正问题不是是否缺乏IT教育,而是优秀的教师。Torvalds不称自己是项目经理,而是了解技术的技术负责人。
systemd是一个init程序,根据之前Upstart的一些介绍大家应该简要了解了传统Sysvinit系统的不足之处。不过这次的systemd的设计思想更为超前,也可以说是借鉴了OSX上launchd的思路。
Russ Allbery和Colin Watson退出Debian技术委员会
围绕Debian选择初始化系统systemd所引发的争论让两名资深成员先后宣布从Debian技术委员会辞职。Russ Allbery和Colin Watson在Debian邮件列表上宣布了辞职声明。选择systemd的决定最早是由技术委员会作出的,Russ Allbery说,委员会几乎每一个决策的决定都受到巨大的压力,他感到没有精力能处理这些事情,他也觉得自己在技术委员会的工作对整个项目没什么帮助。之前另一位Debian的systemd维护团队成员也宣布了辞职。
systemd项目看起来让Debian社区产生了分裂,技术委员会主席Bdale Garbee宣布启动寻找新成员的工作。
Upstart 将被放弃,Ubuntu 投入 Systemd 怀抱
2016年08月 Canonical 的 Martin Pitt 宣布将不再使用他们自己的 Upstart 初始化系统来启动 Ubuntu 桌面会话,取而代之的是更现代化的、却仍有争议的 Systemd。
每次 Systemd 发布,我们都对发现这个所谓的“初始化系统”又做了比原来的设计目标还要多得多的工作。它慢慢地接管了 GNU/Linux 操作系统越来越多的内部组件的工作,甚至我们毫不怀疑,它将会完全取代它们,而这一天并不远了,或许将来你会看到 Systemd/Linux 操作系统——除了 Linux 内核,其它的都叫 Systemd。
Upstart 是 Canonical/Ubuntu 自己的项目,它同 Systemd 一样,目标都是取代传统的初始化系统,用在几乎所有的 Ubuntu Linux 上。然而从 Ubuntu 15.04 开始,Ubuntu 开始逐步使用 Systemd 替代 Upstart 初始化系统,这让许多用户很愤怒。
目前,Upstart 仍被用来控制各种启动过程中的服务和任务的运行和停止,比如桌面会话的启动还是使用 Upstart 控制的。不过 Canonical 计划使用 Systemd 来替代 Upstart 来管理桌面会话。“按照 Ubuntu 开发者峰会上的讨论,我们准备放弃用 Upstart 来启动图形桌面会话,而使用 Systemd 来管理它,”Martin Pitt 说,“这样,一半的桌面会话将会由 Systemd unit 来管理。”
主要是将 /usr/share/xsessions/*.desktop 里面的 Exec= 行切换为 Systemd 管理,显示管理器使用它们来显示哪些桌面会话可用,以及了解如何启动它们。这会影响到 Ubuntu 16.10 的 ubuntu-desktop 3.18.1.2-1ubuntu5 和 xubuntu-default-settings 16.10.1 软件包。Unity 、HUD 和指示器这些目前仍然由 Upstart 运行,它们会在之后的 CI 过程中转换,此外,dbus、gnome-session 等 Upstart 管理的任务还会继续由 Upstart 运行。
风波再起-Debian 正在投票是否支持非 systemd 初始化系统
有关初始化系统 systemd 的话题一直以来都是争论不断,然而持续多年的争论并没有让大家达成共识。现在Debian 又要开始重新考虑支持 systemd 之外的其它初始化系统。近日Debian 开发团队的邮件列表显示他们正在投票决定是否要支持非 systemd 初始化系统。投票时间为 2019年12.7-12.27,总共 20 天,投票资格仅限 Debian 开发者。
根据开发团队公开的邮件,投票总共包括 8 个选项:
继续专注于 systemd
选择 systemd 但同时探索替代方案
支持多个初始化系统很重要
支持非 systemd 初始化系统,但避免影响进度
支持可移植性,避免影响进度
支持多个初始化系统是必要的
支持可移植性和多个初始化系统
需要进一步讨论
Debian 技术委员会在 2014 年采用 systemd 作为初始化系统的决定引发了许多争议,围绕此事的争论达到了空前的热度,并最终导致 Debian 阵营开始分裂 -- 反对者创建了一个不使用 systemd 的分支 Devuan。
systemd 的反对者普遍认为它违背了 Unix 的设计哲学(Do one thing and Do it well),创建了一个十分庞大且复杂的工具,使得系统不再稳定和可靠。当然systemd 的作者 Lennart 不认同这种说法,他写了一篇文章《The Biggest Myths》进行解释。
2019年12月初,Debian 开发团队发起投票以决定是否要支持非 systemd 初始化系统。现在投票已结束,投票结果也已公布。
根据 Debian 公布的结果,最终获胜的投票选项为:
"Systemd but we support exploring alternatives."
(选择 systemd 但同时探索替代方案)
对于这个选项,发起此提案的开发者也讲述了他的想法:
Debian 项目认识到 systemd 服务单元是用于描述如何启动守护程序/服务的首选配置。但是Debian仍然是一个环境,开发者和用户可以在其中探索和开发替代的初始化(init)系统和 systemd 功能的替代方案。
那些对探索此类替代方案感兴趣的人需要提供必要的开发和打包资源来完成这项工作。在运行依赖于某些 systemd 接口的软件时,有助于探索替代方案的诸如 elogind 之类的技术对于 Debian 仍然很重要。更重要的是,Debian 团队必须支持开发此类技术的开发者的工作,这些技术与 Debian 项目的其余部分之间存在重叠,例如,及时检查补丁并参与讨论。
软件包应包括服务单元或启动脚本,以启动守护程序和服务。软件包可以由软件包维护者自行决定使用任何 systemd 工具,只要这与其他策略要求一致,并且通常建议软件包不应依赖于其他软件包的实验性或不受支持的(在 Debian 中)功能。软件包可能会包括对 systemd 以外的其他 init 系统的支持,并且可能包括其使用的任何 systemd 特定接口的替代物。维护人员使用其常规的程序来确定要引入的补丁。
Debian 致力于使用对 init 系统做出不同选择的衍生产品。和我们与下游的所有交互一样,相关的维护人员将与下游一起工作,以找出哪些变化适合加入到 Debian 中,哪些变化应该完全保留在派生工具中。