'init'和'systemd'背后的故事:为什么'init'需要在Linux中替换为'systemd'

我订阅了与各种Linux分发和应用程序相关的几个邮件列表,只是为了保持自己的更新与发生在哪里。 什么是新的bug? 发布的补丁是什么? 下一版本中预期有什么? 和一大堆其他的东西。 这些日子,邮件列表中大量填充“在Linux分区选择你的方面”,主要是在Debian邮件列表以及其他一些。

systemd替换init

什么“选择你的方面在Linux Divide”是关于?

init守护进程将与守护systemd一些Linux发行版的更换,而他们中的很多已经付诸实施。 这将/将在传统的Unix / Linux Guard和新的Linux Guard - 程序员和系统管理员之间造成巨大的差距。

在本文中,我们将逐一讨论和解决所有查询。

  1. 什么是初始化?
  2. 什么是systemd?
  3. 为什么需要替换init?
  4. systemd将拥有什么功能。

什么是init?

在Linux中,init将是一个初始化的缩写。 init是一个守护进程,尽快启动,在计算机启动并继续运行,直到,它也将关闭。 在初始化的事实是,当计算机启动,使其成为所有正在运行的进程的父进程直接或间接,因此通常它被赋予“PID = 1”开头的第一个过程。

如果莫名其妙的init守护程序无法启动,没有任何进程将启动,系统将达到一个名为“ 内核恐慌 ”阶段。 init的最通常被称为System V启动 系统V是第一个商业UNIX操作系统设计和大多数今天的Linux发行INIT的用法与System V OS一样使用BSD风格,并使用自定义的Gentoo初始化像Slackware的几个例外。

从更长的时间内感觉到需要用更完美的东西来替换init,并且从时间到时间开发了几种替代方案,其中一些替代方案成为分布的本地初始替换,其中一些是:

  1. Upstart -在Ubuntu GNU / Linux的实现和设计,以异步启动过程的初始化更换守护进程。
  2. 时代 -一个替代的init守护身边的简单性和服务管理建设,旨在为启动过程单线程的。
  3. Mudar -用Python写的一个替代的init守护进程,金钱豹上的GNU / Linux的实现和设计,以异步启动过程。
  4. systemd -一个替代的init守护设计开始并行处理,在一些标准的分布来实现-的Fedora,OpenSuSE的,拱门,RHEL,CentOS的,等等。

什么是systemd?

一个systemd是UNIX约定命名系统管理守护进程在后台进程的末尾添加'D'。 所以,他们可以很容易地认出。 最初它是在GNU通用公共许可证下发布的,但现在的版本是在GNU Lesser通用公共许可证下发布的。 类似的init,systemd是所有其他进程的父直接或间接的,并且是在开始启动的第一道工序,因此通常被分配一个“PID = 1”。

一个systemd,可以指所有的软件包,实用程序和库周围守护进程。 它的目的是克服init的缺点。 它本身是一个后台进程,它被设计为并行启动进程,从而减少启动时间和计算开销。 与init相比,它有很多其他功能。

为什么需要替换init?

init进程连续启动,即,一个任务只有在最后一个任务启动成功后才启动,并且它被加载到内存中。 这通常导致延迟和长的启动时间。 然而,systemd不是为速度而设计的,而是为了使事情完美地完成,这反过来避免了所有的联合国必要的延迟。

systemd的特性
  1. 清洁,状态和高效的设计。
  2. 更简单的引导过程。
  3. 启动时并发和并行处理。
  4. 更好的API。
  5. 简单单位语法。
  6. 能够删除可选组件。
  7. 低内存占用。
  8. 改进的表示依赖关系的技术。
  9. 初始化指令写在配置文件中而不是在shell脚本中。
  10. 利用Unix Domain Socket。
  11. 使用systemd日程表的作业计划。
  12. 使用journald事件日志记录。
  13. 选择日志记录使用systemd和syslog的系统事件。
  14. 日志存储在二进制文件中。
  15. systemd状态可以保留以后在以后调用。
  16. 跟踪进程使用内核的cgroup而不是PID。
  17. 由systemd-logind管理的用户登录。
  18. 更好地与Gnome集成以实现互操作性。
瓶颈系统
  1. 一切都在一个地方。
  2. 不是POSIX标准。

系统和Distro集成

Linux发行版 积分
Fedora 是的,第一个发行版采用systemd
红帽
CentOS
Debian 是的,Debian 8 codename Jessie默认会有systemd
Gentoo 是的,但需要下载,安装和配置端与自定义init
OpenSUSE
松弛 没有(虽然到目前为止还没有采用slackware,Patric Volkerding没有显示是否采用)
Ubuntu 是,需要安装并配置Upstream。
争议

Linus Torvalds,Linux内核的首席架构师,感觉systemd的关键开发者的态度对用户和bug报告似乎不确定。 还有报道说,系统哲学是奇怪的,是控制系统过程的外国方式。 Patric Volkerding和其他着名的Linux用户和开发人员以及在线论坛,时间记录也是如此。

systemd和init

特征 在里面 systemd
DBus依赖性 - 必需 没有
基于设备的激活 没有
使用udev进行设备依赖性配置 没有
基于定时器的激活 Cron / at 所有权
配额管理 没有
自动服务依赖性处理 没有
杀死用户在注销时处理 没有
交换管理 没有
SELinux集成 没有
支持加密HDD 没有
静态内核模块加载 没有
GUI 没有
列出所有子进程 没有
Sysv兼容
交互式启动 没有
便携式到非x86 没有
通过了 几个Distro 几个Distro
并行服务启动 没有
每个服务的资源限制 没有
易扩展启动脚本 没有
单独的代码和配置文件 没有
自动依赖性计算 没有
详细调试 没有
N / A V44 +
尺寸 560 KB N / A
文件数 75文件 900文件+ glib + DBus
代码行 - LOC 15000(约) 224000(约)(inc代码,注释和空格)125000(约)(实际代码)

结论

任何以pid = 1运行的东西都不能破坏,不能是混乱的,必须由用户有效和高效地控制。 许多用户认为,替代init的systemd只是重新发明轮每次作为Linux的副作用。 但这是Linux的多样性。 这是因为Linux是那么强大。 变化是好的,我们必须感谢它,如果它是一个好的理由。

目前为止就这样了。 我会在这里再次与另一个有趣的文章,你会爱上阅读。 直到然后,保持调整和连接到youcl。 不要忘记在下面的评论中向我们提供您宝贵的反馈。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏