Linux 的启动,管理:systemd

本贴最后更新于 2006 天前,其中的信息可能已经斗转星移

1.systemd 的项目简介(sysvinit | UpStart | systemd)

    目前Linux的初始化init系统有sysvinit,UpStart以及systemd,现在sysvinit逐渐的推出历史舞台,越来越多的Linux发行版使用systemd来作为默认的初始化init系统。

    Systemd是Linux系统中最新的初始化系统(init),它主要的设计目标是克服sysvinit固有的缺点,提高系统的启动速度。systemd和ubuntu的upstart 是竞争对手,预计会取代UpStart,目前Ubuntu的最新发行版也采用systemd作为其标准的系统初始化系统。Systemd的很多概念来源于苹果Mac OS操作系统上的launchd,不过launchd专用于苹果系统,因此长期未能获得应有的广泛关注,Systemd借鉴了很多launchd的思想。

     我们知道,在内核加载完成后,内核会启动init进程(系统1#进程),init进程会根据/etc/inittab来启动一系列的系统服务。而现在systemd是用来替代init进程的,目前很多的Linux系统发行版都默认使用了systemd,例如RedHat从版本7开始默认使用systemd作为初始化进程。systemd的设计目标是为系统的启动和管理提供一套完整的解决方案。systemd和init有好大的差别,主要体现在如下几个方面:

(1)init 只需要从/etc/rc*.d/中启动一些服务就可以了,而 systemd 出了会启动服务外,还提供了丰富的服务管理、日志管理等等功能

(2)init 启动各个服务是串行的,而 systemd 启动各个服务按照一定的策略,可以并行地启动一些服务,提升了系统的启动速度。

从具体的一些配置上看 init 和 systemd 的区别如下:

(1)默认的 RunLevel(在/etc/inittab 文件设置)现在被默认的 Target 取代,位置是/etc/systemd/system/default.target,通常符号链接到 graphical.target(图形界面)或者 multi-user.target(多用户命令行)。

(2)启动脚本的位置,以前是/etc/init.d 目录,被软链接到不同的 RunLevel 目录 (比如/etc/rc3.d、/etc/rc5.d 等),现在各个服务的启动配置文件放在/usr/lib/systemd/system 目录中,被软链接到 /etc/systemd/system 目录中。

2.使用 systemd 后 linux 启动过程

(1)BIOS 开机自检

(2)BootLoader 加载内核

(3)kernel 会启动 systemd 进程,成为系统的 1#进程

(4)systemd 会从/etc/systemd/system 中读取系统启动时,需要使用的 Target(也就是由/etc/systemd/system/default.target 指定的 Target),从而确定要启动哪些服务。而/etc/systemd/system 目录中有很多软链接,是链接到/usr/lib/systemd/system/目录中的 Unit 配置文件的。

3.更多详细的关于 systemd 的知识请点击直达链接

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    914 引用 • 930 回帖 • 1 关注
  • Systemd
    3 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...