咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
Linux系统启动流程简述如下:
1. 加电自检加载BIOS
这一步启动启动加载BIOS,BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等,系统在此读取boot选项读取从哪个设备启动,比如主板上的设置第一启动为硬盘,光盘,u盘等设备。
2. 读取MBR
MBR,即Master Boot Record,即主引导记录,在磁盘的的0磁道1扇区,大小为512字节,系统通过上面的步骤读取主机从哪个设备启动,根据上面的启动选项找到对应设备的MBR,如果第一个设备未找到MBR,将根据BIOS的设置去读取第二个设备的MBR。
3. 读取boot loader
由于各个操作系统格式不同,我们需要一个管理程序来处理核心档案加载问题即boot loader,每个用自己的loader扄能够加载属于自己的操作系统核心,其中Grub、Lilo和spfdisk是常见的Loader,linux中我们以grub为例,系统读取内存中的grub配置信息(一般为menu.lst或grub.lst)在Redhat系统中是在/boot/grub/grub.conf,根据此启动不同的操作系统。
4. 加载内核
根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
5. 启动第一个进程init
此步启动系统的第一个进程/sbin/init进程,读取配置文件为 /etc/inittab,此文件的id:5:initdefault决定了系统的启动级别为5级别。
注:各级别的意义
0):关机
1):单用户模式 类似于windows中的安全模式
2):无网络的多用户模式
3):有网络的多用户模式
4):预留
5):图形化界面
6):重启
如果设定为6,则系统会不停重启。
6. 执行系统的初始化脚本rc.sysinit脚本
此脚本是系统的初始化脚本,她做了很多工作,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc激活udev等等。
7. 启动内核模块
根据系统的配置文件etc/modules.conf文件或/etc/modules.d加载内核模块。
8. 执行不同级别的脚本程序
根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。
9. 执行/etc/rc.d/rc.local脚本内容
此脚本执行开机自启动的脚本,你可以将你准备开机启动的脚本写在此文件中,相当于winodows中的开启自动启动的功能。
10. 执行打印登录的程序/bin/login程序
到此系统算启动完毕,打印客户的登录界面mingetty程序待用户输入密码执行即可。