系统启动和引导过程
当打开 Linux 计算机时会发生什么?
在几乎每种 Linux 配置中,引导过程都可以分为 9 个步骤:
安装好根文件系统之后,就可以开始初始化了。
实际上,此后的所有引导过程完全由文件 /etc/inittab 的内容控制。具体来说,脚本和工具一般按照某些约定运行,但是理论上完全可以通过修改 /etc/inittab 来运行不同的脚本。
/etc/inittab 中的一个特定设置特别关键。这一行像下面这样:
id:5:initdefault:
这一行一般出现在接近文件顶部的地方,它设置运行级别。运行级别控制 /etc/inittab 脚本其余部分中采取的操作。
在处理 /etc/inittab 脚本时发生了什么?具体来说,在这个过程中涉及哪些文件和目录?
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
在某些 Linux 系统上(大多数基于 Debian 的系统),还会看到:
si::sysinit:/etc/init.d/rcS
如果是后一种情况,/etc/init.d/rcS 是一个脚本,它只运行每个匹配 /etc/rcS.d/[Ss]??* 的脚本。另一方面,如果系统使用 /etc/rc.d/rc.sysinit,那么这个文件包含一个长脚本,用于执行所有 初始化过程。
l0:0:wait:/etc/rc.d/rc 0
# ...
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
脚本 /etc/rc.d/rc 将运行所有匹配 /etc/rc$1.d/[KkSs]??* 模式的文件。例如,在以运行级别 5 启动的示例系统上,会依次运行以下文件:
/etc/rc5.d/K15postgresql
/etc/rc5.d/S01switchprofile
/etc/rc5.d/S05harddrake
...
/etc/rc5.d/S55sshd
...
/etc/rc5.d/S99linuxconf
/etc/rc5.d/S99local
以 “K”或“k” 开头的文件是杀死脚本,它们结束进程或者清除进程的操作。以“S”或“s”开头的文件是启动脚本,它们一般启动新进程或者使系统准备在此运行级别上运行。这些文件大多数是 shell 脚本,而且大多数是链接(常常链接到 /etc/init.d/ 中的文件)。
在大多数情况下,当 Linux 系统在一个运行级别上运行之后,您希望作为用户登录进系统。为此,运行一个称为 getty 的程序来处理登录过程。发行版创建者们使用基本 getty 的许多变体,比如 agetty、mgetty 和 mingetty。这些程序基本上都做同样的工作。
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
第一个数字是运行 getty 的虚拟终端,后面的一组数字是采用此操作的几个运行级别(例如,在运行级别 2、3、4 和 5 上都启动 mingetty)。
接下来的步骤可能涉及启动更多服务、登录进一种图形化环境、恢复 UI 设置或者其他更个性化的细节,这超出了本教程的讨论范围。
2015职称计算机考试书PowerPoint2007中 .. 定价:¥45 优惠价:¥42 更多书籍 | |
2015年全国职称计算机考试教材(2007模 .. 定价:¥225 优惠价:¥213 更多书籍 |