最近阅读了一篇《Systemd vs. the Linux Kernel》感觉写的很不错,因此翻译了过来。本文详细的阐述了Systemd与Linux内核的关系和区别。如有翻译不正确的地方,请指正。
incident 最开始是 Linux内核旨在限制与其他用户的权限,尤其是root身份运行的二进制文件的行为的一个补丁。在Linux内核邮件列表中经常会出现不同的策略和时机。
Red Hat现在维护的systemd在过去几年中成为大多数主要Linux发行版的标准配置。它是替代init,即系统启动时运行的第一个进程,以及所有其他进程的父进程。由于技术和个人原因,许多核心内核开发人员似乎也是一个烦恼的源头。
与init或upstart不同,Ubuntu的内部init替换,systemd也是一个用于管理系统资源和日志活动的多用途工具。虽然许多支持系统的效率,但有些人认为它打破了非官方的Unix保持程序简单,限于单一功能的理念。一些甚至谴责系统,作为其赞助商红帽企图控制Linux内核。
但是,自从实施以来,对系统的反对已经大大消退。少数分布,包括Slackware的,还没有切换到它,并且新的发行版本,比如Devuan 和最新发布的antiX 都开始提供在使用init系统。
而且,一段时间以来,系统威胁要将Mono跨平台的.Net框架成为阴谋论者的主要目标,而抵制系统网站 借用臭名昭着的反Mono抵制Novell网站的名字。然而,对于大多数用户来说,这个问题是死的,毫无疑问,因为一般用户的切换是不可见的。
在这样的背景下,Torvalds的评论似乎意想不到。Torvalds在概述了他对修补程序的首选策略后,补充说可以看到几种方法,“绝对没有任何一种方法涉及随机的”从init获取一些值“。是的,其中很大一部分可能是,我不再觉得我可以信任'init'来做这个理智的事情。“
“init”的提及清楚地表示systemd,由于补丁的效果在以root身份运行时尤其重要,所以它与systemd的交互是一个自然的关切。然而,除了这些明显的事实外,这种解释非常依赖于以前的预期。有些人想知道Torvalds是否提到systemd中最近发现的超出范围的bug,并且是对systemd代码质量的评论。
其他博主认为,Torvalds是离散的,因为Red Hat是他的雇主Linux基金会的主要贡献者。许多人认为这个评论是Torvalds反对systemd的证据。直接问道,Torvalds是简洁的:“我不认为我曾经批评systemd。我一直非常批评那些打破事件的开发人员,然后驳回其他人的破坏。
换句话说,它是系统开发人员的行为,而不是系统本身,他所指的是一个符合Torvalds的一般标准和许多Linux内核和系统开发人员之间的过去互动的解释。
背后的一些故事
虽然经常被指责为自己,但Torvalds很少造成人身攻击。例如,在2014年,系统公司联合创始人Lennart Poettering将Torvalds的大部分责任归咎于开放源代码开发中,Torvalds 没有作出任何回应。就他对其他类似指控的回应而言,他大多只是说这是他的方式。
相反,Torvalds为内核贡献者保留了他最尖锐的批评,他们忽略了他的基本规则,例如用补丁打破用户应用程序,提供一个缺乏思考的解决方案,或拒绝承担修复错误的责任。在2012年,当内核贡献者Mauro Carvalho Chehab指责Pulse Audio(波音)早期项目之一的错误时,Torvalds回答说:
毛罗,SHUT THE FUCK UP!这是一个错误 – 在内核中。你是维持多久了?而且你还没有学习第一个内核维护规则?如果更改导致用户程序中断,那么这是内核中的一个错误。我们永远不会责怪用户程序。这难以理解?
虽然Torvalds向记者Steven J. Vaughan-Nichols 承认:“我认为某些设计细节(在systemd中)是疯狂的(我不喜欢二进制日志),但这些都是细节,而不是大问题。”然而,他是正确的,认为他没有谴责整个系统的概念。
Torvalds的关于systemd保留到了顶点在2014年的时候,他拒绝接受进一步的贡献卡伊·西弗斯,systemd的另一位创始人。在Linux内核邮件列表中,Torvalds告诉Sievers,他厌倦了您无法修复代码* *中的问题,因此内核必须解决您导致的问题。 ]这已经进行了*年,*,似乎没有变得更好[…]我不愿意合并某些维护者知道不关心错误和回归的东西,然后强迫别人在其他项目修复他们的项目“。
然而,这种批评似乎是合法的。例如,Poettering不是使用Linux现有的安装系统,而是向systemd添加了一个新的mount命令。同样,内核开发人员Theodore T'so也抱怨GooglePlus ,而不是写入自己的日志系统,systemd正在为内核写入dmesg缓冲区。T'so抱怨说,“dmesg缓冲区不属于systemd。该界面最初是为少量的信息而设计的[…] Dmesg从来没有被设计为Syslog替换,这似乎是系统滥用的。
Torvalds在评论T'so的主题时,详细阐述:“让我(和其他人)感到不安的是,当一个错误被报告时,解释和建议如何解决它,Kay刚刚关闭了错误报告,声称不是一个bug […]而且这不是一个孤立的事件。这是Kay过去处理过的其他错误。直到几个月的停滞,关闭错误报告,并指责他人造成的问题的其他人和项目,告诉他们如何改变他们的项目,因为他打破了一些东西,显然这不能是他的错。
显然,Torvalds在系统开发人员的行为中看到持续的模式,使他们不信任他。
并不是每个内核开发人员都以与Torvalds和T'so相同的方式做出反应。例如,Chebab作为司机的作者,定期提供垫片来帮助将systemd与内核集成。同样,Torvalds的中尉Greg Kroah-Hartman也参加了系统的攻击,他与Poettering,Sievers和其他系统开发人员一起在愚蠢的帽子里徘徊。
但是对于Torvalds来说,特别是系统开发人员一直违反了使得交互式开发成为可能的不成文的代码,这么多次表现出不负责任的态度,他对下一步可能会做些什么。如果他的态度很热,谁能怪他呢?毕竟,他的生命的工作是什么,如果有人不能热情,他们能保卫什么?
本文翻译自:Systemd vs. the Linux Kernel
: » Systemd与Linux Kernel(Linux内核)
原创文章,作者:Carrie001128,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/252524.html