Linux系统启动:自下而上地发展(linuxifup)
Linux系统启动是指将Linux操作系统从BIOS到正式运行用户程序所经过的初始化和启动过程,每一步都至关重要,但介绍本文只聚焦于操作系统启动的技术原理,通过伪代码和实例说明从启动到装载系统—-主要分成几个阶段。
1、Bootloader启动
Bootloader,即引导程序,主要作用是检测硬件设备,读取硬盘上的内核镜像,并将其装载到内存中,以便在内存中运行,最常用的引导程序有GRUB2和GRand Unified Bootloader。
伪代码:
Bootloader 启动
while (bios 进行自检){
装载 bootloader 到内存
检测硬盘,选择内核镜像文件
读取内核的镜像文件,解析并装载到内存
}
2、Bootloader 执行
bootloader初始化操作完毕后,启动内核,由内核将系统从物理设施转变为可操作功能,负责初始化内存、创建进程,并进入用户空间。
伪代码:
bootloader执行
while (bootloader装载内核){
完成初始化操作
创建内核进程
执行内核代码
}
3、 内核启动
内核启动后,又被称之为实模式,进入实模式后就是内核的工作,检测硬件环境,加载所有设备驱动程序,开启虚拟空间,加载启动用户空间进程,最后就能看到桌面或者命令行等界面了。
伪代码:
内核启动
while (booting 实模式){
检测硬件环境,加载设备驱动程序
设置总线,中断等设备
激活虚拟内存系统
加载基本驱动,如网卡驱动
加载系统文件,如init、etc
加载系统应用程序
创建用户会话,比如桌面或命令行界面
}
综上所述,Linux系统的启动从下而上,从底层的bios,都到最上层的用户空间进程,操作系统的启动是一个复杂的过程,但正因此,Linux是以强大的完善性著称,满足用户高效安全、可靠地使用计算机。