Linux启动过程详解:从BIOS到Kernel Boot

需积分: 9 7 下载量 95 浏览量 更新于2024-08-25 收藏 235KB PPT 举报
本文主要探讨了Linux系统的启动过程,包括BIOS引导、GRUB加载、内核启动、Init系统及后续服务的启动等关键步骤。其中详细解释了各个阶段的功能和作用。 Linux启动过程通常从BIOS(Basic Input/Output System)开始。BIOS在系统加电后执行自检(POST),初始化硬件设备,并寻找驱动器和启动扇区。一旦找到MBR(主引导记录),它会加载MBR中的引导加载程序。MBR是磁盘上的第一个扇区,包含了分区表和一个小的引导加载程序。 GRUB(Grand Unified Bootloader)作为常见的引导加载程序,其有两个阶段。Stage1通常安装在MBR中,负责加载Stage2,如果需要支持文件系统,还可能有Stage1.5。Stage2显示引导菜单,允许用户选择要启动的操作系统或内核。 GRUB的配置文件`menu.lst`用于定义引导选项。当选择启动Linux内核时,内核开始加载。内核加载分为几个阶段,首先是古老的_start()函数,它将自身移动到内存的特定位置并调用setup()。 setup()阶段则负责重新初始化硬件,设置内核运行环境,保存系统参数,并调用video.S来检测和设置显示器。然后,系统进入保护模式,启动startup_32()函数。startup_32()会建立基本的运行环境,解压缩bzImage内核到内存,并跳转到内核的入口点。 内核加载完成后,初始化进程(Init)开始运行。在经典的Linux启动过程中,Init可能是/sbin/init。Init根据配置文件(如`/etc/inittab`)定义的运行级别启动一系列服务,这些服务通常在`/etc/init.d/`目录下。例如,`/etc/init.d/rc`脚本会启动系统的基本服务。 进一步的,Init会启动getty进程(如agetty)来创建终端会话,然后运行/bin/login程序,用户可以输入用户名和密码进行登录。登录成功后,用户会进入shell环境,至此,操作系统启动完成,用户可以开始使用Linux系统。 Linux启动过程的每一个步骤都至关重要,理解这些步骤有助于我们更好地管理和维护Linux系统,尤其是在解决启动问题时能提供宝贵的线索。