【正经教程】Linux基础(十一):启动流程·模块管理与Loader
(一)系统启动过程(以CentOS为参考)
- 加载
BIOS(Basic Input Output System)的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备; - 读取并执行第一个启动设备内的
MBR(Master Boot Record)的boot Loader(即grub,spfdisk等程序) - 依据
boot loader的设置加载Kernel,Kernerl会开始检测硬件与加载驱动程序 - 在硬件驱动成功后,Kernel会主动调用
init进程,而init会取得run-level信息。 (不一定是init。这取决于操作系统。但是这个进程的PID=1) init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境(如网络,时区等)init执行run-level的各个服务的启动(script方式)init执行etc/rc.d/rc.local文件init执行终端机模拟程序mingetty来启动login进程,之后等待用户登录
(二) BIOS,boot loader 与 Kernel加载
1.BIOS的开机自测与MBR
1.BIOS程序加载CMOS,获取主机的硬件配置
2.BIOS进行开机自检(Power-on Self Test,POST),硬件初始化,配置PnP设备
3.BIOS读取第一启动设备的MBR,执行BootLoader
2.Boot Loader
BootLoader的最主要功能:
①是认识操作系统的文件格式,②加载内核进入内存去执行
(每种操作系统有自己不同的BootLoader)
BootLoader的保存位置:
①MBR区域 ②每个操作系统的文件系统的BootSector中
BootLoader所提供的多重引导:

3.有关MacOS的Boot文件
The Mac OS X boot loader is located in /System/Library/CoreServices/boot. efi. When loaded by the firmware, it displays a dark grey Apple logo on the screen. Then it loads the Darwin kernel from disk, as well as the essential driver extensions.
3.加载内核检测硬件与initrd
从这里开始,内核开始接管工作,并重新检测硬件。
Linux内核动态加载/lib/modules下的动态模块
·对于虚拟文件系统(InitialRAM Disk)的使用:

如上图所示,bootloader 可以加载kernel 与initrd ,然后在内存中让initrd解压缩成为根目录,内核就能够借此加载适当的驱动程序,最终释放虚拟文件系统,并挂载实际的根目录文件系统,从而开始后续的正常启动流程。
initrd解压完了就是一个小型根目录。
(三) systemd与default.target与runlevel
有一说一= = 我一个MacOS一个Ubuntu, 也就没有init这个程序了。
所以这一段内容的笔记是参考的第四版的书。内核主动调用的一号进程是systemd
systemd的默认启动服务集合路劲
/etc/systemd/system/default.target
runlevel
Linux通过设置run level来规定系统使用不同的服务来启动,好让Linux使用不同的环境。这里不同的环境指的是那种单用户啊,有网络啊,图形还是命令行啊之类的。但是systemd已经不用这套东西了。改成了 c操作环境target

我的Ubuntu里没有上面说的那个runlevel*.target文件,但是这个就先了解一下吧。这东西拓展开来那我真不知道何年何月才能看得完了。
systemd的处理流程
- 首先, 它会链接到/usr/lib/systemd/system/ 这个目录下去取得multi-user.target或graphic.target 这两个其中的一个
- 接下来s y s t e m d 会去找两个地方的设置, 即如下目录: • / e t c / s y s t e m d / s y s t e m / g r a p h i c a l . t a r g e t . w a n t s / : 用户设置加载的u n i t ; • / u s r / l i b / s y s t e m d / s y s t e m / g r a p h i c a l . t a 「 g e t . w a n t s / : 系统默认加载的u n i t 。
- 然后就不停地在这些文件里看到底还需要些什么,再去找相应的配置。直到所有的条件被满足。


浙公网安备 33010602011771号