Linux系统启动过程详解

需积分: 15 1 下载量 124 浏览量 更新于2024-09-15 收藏 1.2MB PDF 举报
"《Linux标准学习教程》(1).pdf" 在深入理解Linux系统的启动过程时,首先要明白的是,这个过程是由多个阶段组成的,从硬件的初始化到操作系统的实际运行。以下是Linux系统启动的关键步骤: 1. **BIOS自检**: - 当计算机开机时,BIOS(基本输入输出系统)首先执行POST(加电自检),检查硬件是否正常工作。 - POST完成后,BIOS继续执行本地设备的枚举和初始化,为后续的操作提供服务。 - BIOS的运行时服务存储在内存中,供操作系统使用,如读取CMOS设置等。 2. **引导设备选择**: - BIOS根据CMOS设置的引导顺序寻找活动且可引导的设备,如硬盘、软盘、CD-ROM、网络设备或USB设备。 - 在现代系统中,通常从硬盘上的MBR(主引导记录)启动。 3. **主引导记录(MBR)**: - MBR位于硬盘的第一个扇区(0道0柱面1扇区),大小为512字节,包含主引导加载程序。 - MBR被加载到内存后,BIOS将控制权转移给MBR。 4. **引导加载器**: - MBR中的加载程序负责找到操作系统内核的位置,并将其加载到内存中。 - 在Linux系统中,常见的引导加载器有LILO和GRUB,它们允许用户选择要启动的操作系统或者内核版本。 5. **加载内核**: - 引导加载器读取内核映像文件并将其加载到内存特定位置,同时传递必要的参数。 - 内核开始初始化,包括识别硬件、设置中断处理、初始化驱动程序等。 6. **初始化ramdisk或initrd**: - 在某些情况下,Linux内核会先加载一个临时的ramdisk或initrd(初始化ramdisk),用于加载额外的驱动程序和文件系统工具,以便访问主文件系统。 7. **挂载根文件系统**: - 一旦内核准备好,它将挂载根文件系统,这是操作系统启动过程中的关键步骤,因为根文件系统包含了操作系统运行所需的大部分文件和目录。 8. **启动init进程**: - 内核启动第一个用户空间进程——init,它根据/etc/inittab配置文件指定的运行级别,启动相应的服务和程序。 9. **系统服务启动**: - 根据运行级别,init启动各种系统服务,如网络服务、守护进程等。 10. **用户登录**: - 系统进入多用户模式,等待用户通过控制台或网络进行登录。 通过以上步骤,Linux系统完成了从硬件到软件的全面初始化,为用户提供了一个可用的操作环境。了解这些启动过程对于系统管理和故障排查非常重要,因为任何环节出错都可能导致系统无法正常启动。为了查看MBR内容,可以使用如`dd`和`od`这样的命令行工具,这对于诊断启动问题非常有用。