欢迎来到天天文库
浏览记录
ID:37711541
大小:1.05 MB
页数:19页
时间:2019-05-29
《Linux启动全过程-由bootloader到fs》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux启动过程许多人对Linux的启动过程感到很神秘,因为所有的启动信息都在屏幕上一闪而过。其实Linux的启动过程并不象启动信息所显示的那样复杂,它主要分成两个阶段: 1.启动内核。在这个阶段,内核装入内存并在初始化每个设备驱动器时打印信息。 2.执行程序init。装入内核并初始化设备后,运行init程序。init程序处理所有程序的启动,包括重要系统精灵程序和其它指定在启动时装入的软件。 下面以RedHat为例简单介绍一下Linux的启动过程。 一、启动内核 首先介绍启动内核部分。电脑启动时,BIOS装载MBR,然后从当前活动分区启动,LILO获得引导过程的控制权后,会显
2、示LILO提示符。此时如果用户不进行任何操作,LILO将在等待制定时间后自动引导默认的操作系统,而如果在此期间按下TAB键,则可以看到一个可引导的操作系统列表,选择相应的操作系统名称就能进入相应的操作系统。当用户选择启动LINUX操作系统时,LILO就会根据事先设置好的信息从ROOT文件系统所在的分区读取LINUX映象,然后装入内核映象并将控制权交给LINUX内核。LINUX内核获得控制权后,以如下步骤继续引导系统: 1.LINUX内核一般是压缩保存的,因此,它首先要进行自身的解压缩。内核映象前面的一些代码完成解压缩。 2.如果系统中安装有可支持特殊文本模式的、且LINUX可识别的
3、SVGA卡,LINUX会提示用户选择适当的文本显示模式。但如果在内核的编译过程中预先设置了文本模式,则不会提示选择显示模式。该显示模式可通过LILO或RDEV工具程序设置。 3.内核接下来检测其他的硬件设备,例如硬盘、软盘和网卡等,并对相应的设备驱动程序进行配置。这时,显示器上出现内核运行输出的一些硬件信息。 4.接下来,内核装载ROOT文件系统。ROOT文件系统的位置可在编译内核时指定,也可通过LILO或RDEV指定。文件系统的类型可自动检测。如果由于某些原因装载失败,则内核启动失败,最终会终止系统。 二、执行init程序 其次介绍init程序,利用init程序可以方便地定制
4、启动其间装入哪些程序。init的任务是启动新进程和退出时重新启动其它进程。例如,在大多数Linux系统中,启动时最初装入六个虚拟的控制台进程,退出控制台窗口时,进程死亡,然后init启动新的虚拟登录控制台,因而总是提供六个虚拟登陆控控制台进程。控制init程序操作的规则存放在文件/etc/inittab中。RedHatLinux缺省的inittab文件如下: # #inittabThisfiledescribeshowtheINITprocessshouldsetupthesysteminacertain #run-level. # # #Defaultrunlevel.T
5、herunlevelsusedbyRHSare: #0-halt(DoNOTsetinitdefaulttothis) #1-Singleusermode #2-Multiuser,withoutNFS(thesameas3,ifyoudonothavenetworking) #3-Fullmultiusermode #4-unused #5-X11 #6-reboot(DoNOTsetinitdefaulttothis) # id:3:initdefault: #systeminitialization si::sysinit:/etc/rc.d/rc.sy
6、sinit 10:0:wait:/etc/rc.d/rc0 11:1:wait:/etc/rc.d/rc1 12:2:wait:/etc/rc.d/rc2 13:3:wait:/etc/rc.d/rc3 14:4:wait:/etc/rc.d/rc4 15:5:wait:/etc/rc.d/rc5 16:6:wait:/etc/rc.d/rc6 #Thingstorunineveryrunlevel ud:once:/sbin/update #TrapCTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown-t3-rnow
7、 #WhenourUPStellsuspowerhasfailed,assumewehaveafewminutesof powerleft.Schedulea #shutdownfor2minutesfromnow. #Thisdoes,ofcourse,assumeyouhavepoweredinstalledandyourUPS connectedandworking #correctly. pf::powerfail:/sb
此文档下载收益归作者所有