Systemd在Linux社区引起了无限争议。一些Linux用户对systemd的反对绝不屈从,还有一些Linux用户对systemd喜爱有加,还有很多人满不在乎。近日,关于systemd的话题又出现在社区中,很多人分享了自己的想法。一时兴起,笔者梳理了几个比较经典的回答。
为什么不喜欢systemd?
不断地听到很多人抱怨systemd有多么不好,但它还是被极大地普及了,并且我在网上所读到的很多文章都在介绍systemd的好处,比如更快的启动时间和更完善的日志记录,据说过去在fedora-13上开机速度测试,upstart是27秒,而systemd仅用了24秒。
有人认为unix是做一件事,就把它做好,而systemd则是把pid 1扩张到最大化。这可能是很多人讨厌systemd的重大原因。也有其他人认为,systemd的日志记录并不是很好,二进制日志被很多人所诟病,虽然systemd提供了更快的索引,但二进制日志本身就有问题,而且systemd的日志损坏也不是第一次发生了。而且systemd真正令人反感的是设计不够灵活,对很多人而言,systemd阻止了他们的选择自由,考虑到kFreeBSD分支的软件源无法纳入systemd,为与其他分支保持一致,Debian的开发者尽力避免纳入systemd。但Lennart Poettering本人对此并不在意,并称“Debian GNU/kFreeBSD不过是玩具系统”。
systemd目前还处于中间发展阶段,那些想要超级安全或超级小或超快速系统的人都不适合使用。事实的真相是,systemd的很多反对者并不真正关心“底层”,只是抱怨systemd的各种不方便,比如命令太长,不熟悉daemon报错等。systemd几乎没有所需的外部依赖,它们主要由glibc(或兼容的libc),setcap和libmount组成。
由于systemd项目合并了udev, logind等基础设施,以及Gnome/KDE积极与systemd集成,这给其它开源内核的桌面用户(以及Debian这样的多内核发行版)造成了困扰。
想想systemd最开始出现时,还是以一个纯粹的init软件的身份,之后短短的时间内大肆攻城略地,合并了很多进程,与Gnome暧昧不清,还设置了API锁定。虽然我可以理解很多linux用户为什么不喜欢复杂的桌面环境,但还是有很多人希望选择一个完整的桌面环境。
init系统中,虽然你可以轻松地选择桌面环境和窗口管理器,但在大多数发行版中,你几乎不能更改init系统。然而对大多数不深入sysadmining的用户来说,使用哪个init系统并不重要。
当然,每个经验丰富的Linux用户都有自己的看法。这里就不一一列举出来了,Linux社区充满了很多精通技术的开发人员,他们对Linux应该如何发展和成长有着自己的意见。这些观点大多数是不相关的,取决于具体的工作需求。即便很多人投诉systemd,但却没有更完美的替代品出现,这也是systemd迅速扩张的原因。
我发现systemd单元和服务文件很容易维护,更重要的是,它可以很容易地转让给别人。systemd的拥护者给出了支持其的原因,比如很稳定,有一个容易的可配置的方式管理服务,也有一些中立人士不强烈反对systemd,但它的扩展速度实在令人担忧。它接管了很多不需要任何修复的功能。
很多人都想知道systemd什么时候可以停止扩张,笔者也希望得到一个确切的答案。到今天,systemd已经相当流行了,如今各大发行版包括Arch,Debian,Ububtu都已经切换到systemd或正在切换。systemd的反对者们创建了一个分支——uselessd,本来有望成为一个简单的init程序,但结果还是死了。本来尝鲜安装了systemd的用户,可能没想到自己得到的不仅仅是一个init软件,而是一个如此庞大的软件,不过发行版的维护者越发懒惰,systemd没准会让维护工作变得异常简单。