Diewuxi

Belive tomorrow will be better, love science and technology, support communication and understanding, always ready for thought turn.

Blog / engineering_technology / computer / software / os / linux / Linux 初始化系统简介

Blog


Article^ Parent

Linux 初始化系统简介


Date: 2017-10-02 00:00:00
Description: Linux 几种初始化系统简介。
Keywords: Linux, 初始化, sysvinit, upstart, systemd
Category: engineering_technology/computer/software/os/linux
Tag: linux, init
Link: https://www.diewuxi.com/blog/article/56.html

Changelog

* 2017-10-02
    * Done
                        

sysvinit

/etc/inittab file definition

initdefault         default level
<定义级别>
<组合键定义>
<电源 fail/restore>
<getty 控制台>
                        

运行级别:

级别    功能
-----   ------
0       关机
1       单用户
2
3
4
5
6       重启
S
s
                        

overview process

* /etc/inittab
* /etc/rc.d/rc.sysinit(udev, selinux, 内核参数(/etc/sysctl.conf), 时钟, keymaps, 交换分区, hostname, 分区, 磁盘, 文件系统, clear)
* /etc/rc.d/rc, `/etc/rc.d/rc{<X>}.d/*`
* /etc/rc.local
* Display manager
                        

rc.d

                            soft link
/etc/rc.d/rc{X}.d/*         ---------->         /etc/init.d/*
                  S<><>...
                  K<><>...
                  start/stop some service
                        

tools

  • halt, init, killall, last, lastb, mesg, pidof
  • poweroff, runlevel, sulogin, telinit, utmplp, wall
  • reboot
  • shutdown

UpStart

sysvinit 启动频繁(串行慢),硬件繁多(一次加载很多服务)

UpStart 事件机制,动态启动和停止服务。

Job

task job            system job          event
service job         session job           |
abstract job                              V
                                         job

                                    waiting
                                    strting
                                    pre-start
                                    spawned
状态                                post-start
(状态即将发生变化时产生 event)      running
                                    pre-stop
                                    stopping
                                    killed
                                    post-stop

start
started     ===> 引起init发送事件
stopping
stoped
                        

Event

  • Singnls 非阻塞
  • Methods 阻塞
  • Hooks 阻塞

    init (发出)--> event (触发)--> job (触发)--> event (触发)--> job ... event (触发)--> job

Job 配置

/etc/init/*
expect block: fork 相关,派生次数
exec, script
start on/stop on
                        

会话

tools

Systemd

其中很多概念来自于 OSX launchd, 兼容 Upstart, sysvinit

  • 更少的进程
  • 更多的并行
  • 按需启动
  • 自动挂载
  • 状态快照,快照恢复
  • 日志服务
    • journald 替换了 syslog

Unit

  • 类型

    • service
    • socket
    • device
    • mount
    • automount
    • swap
    • target
    • timer
    • snapshot
  • 依赖: require 语句

  • 事务
  • target 和 运行级别可等效

并发启动原理

  • socket 依赖解除
  • D-Bus 依赖解除
  • 文件系统依赖解除

配置文件

[Unit]
...
[Service]
...
[Install]
...
                        

工具

systemctl

Last modified: 2017-10-02

Comments [0]

There is no comments now.

Write comment(* is necessary, and email is not shown to public)


Diewuxi 2017--2024