启动程序:init 深入解析
在 Linux 系统启动过程中,init 程序扮演着至关重要的角色,它是系统启动后的第一个用户级进程,负责初始化系统环境、启动各种服务等。本文将详细介绍 System V init 和 systemd 这两种常见的 init 系统,探讨它们的工作原理、配置方法以及如何添加自定义服务。
1. System V init 概述
System V init 是 Buildroot 和 Yocto Project 中的一个选项。在这两个项目中,init 脚本都去除了任何 Bash shell 特定的内容,因此它们可以与 BusyBox ash shell 一起工作。不过,Buildroot 做了一些“取巧”的操作,它用 System V init 替换了 BusyBox init 程序,并添加了模仿 BusyBox 行为的 inittab。需要注意的是,Buildroot 没有实现完整的运行级别,除了切换到级别 0 或 6 会分别停止或重启系统。
2. inittab 文件解析
init 程序首先会读取 /etc/inittab 文件,该文件包含定义每个运行级别下执行操作的条目。其格式是 BusyBox inittab 的扩展版本,这并不奇怪,因为 BusyBox 最初就是从 System V 借鉴而来的。
inittab 中每行的格式如下:
id:runlevels:action:process
各字段含义如下:
| 字段 | 描述 |
|
超级会员免费看
订阅专栏 解锁全文
5156

被折叠的 条评论
为什么被折叠?



