第1步: 开机自检,加载BIOS
第二步: 阅读MBR
第3步: Boot Loadergrub引导菜单
第四步: 加载内核内核
第五步: init进程根据inittab文件夹设置运行级别
第六步: 初始化进程执行rc.sysinit
第7步: 启动内核模块
第8步: 以不同的运行级别执行脚本程序
第9步: 执行/etc/rc.d/rc.local
步骤10: 执行/ bin / login程序,启动mingetty,然后进入登录状态
第1步: 开机自检,加载BIOS
打开计算机电源时,我们会听到一声滴答声,并且自检开始. 这个过程主要是检查我们的计算机硬件设备(例如: CPU,内存
第二步: 阅读MBR
BIOS自检,首先,它将在启动顺序程序中搜索可以启动系统的启动设备(例如,有时我们在BIOS中设置为从硬盘或硬盘启动). CD-ROM等)
如果BIOS此时无法找到可引导设备和相关程序,它将无法启动. 如果顺序找到了相关设备的硬盘驱动器,BIOS将把控制权移交给启动设备中的MBR(主启动记录).
MBR的大小为512字节,并存储引导前信息,分区表和其他信息,
第3步: Boot Loadergrub引导菜单
在MBR程序中找到BootLoader的前446个字节
Boot Loader是一个小程序,在操作系统内核运行之前运行. 通过这个小程序,我们可以初始化硬件设备并建立内存空间映射,从而使系统的硬件和软件环境达到合适的状态,从而为最终调用操作系统内核做好一切准备.
Boot Loader有几种类型,其中Grub,Lilo和spfdisk是常见的Loader.
系统读取内存中的grub配置信息(通常是menu.lst或grub.lst),并根据此配置信息启动不同的操作系统.
[root@iter ~]# cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password --md5 $1$cjB7p0q.$9fauA6mvALyXw96vmy.q41
title CentOS (2.6.18-348.12.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-348.12.1.el5 ro root=LABEL=/
initrd /initrd-2.6.18-348.12.1.el5.img
title CentOS (2.6.18-308.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/
initrd /initrd-2.6.18-308.el5.img
第四步: 加载内核内核
根据grub设置的内核映像的路径,系统读取内存映像并将其解压缩. 这时,屏幕通常会输出“ Uncompressing Linux”提示. 内核解压缩完成后,屏幕显示“确定,正在启动内核”.
系统将解压缩的内核放入内存中,并调用start_kernel()函数以启动一系列初始化函数并初始化各种设备以完成Linux核心环境的建立. 至此,Linux内核已经建立,基于Linux的程序应该能够正常运行.
从全局启动过程start_kernel开始,
内核完成的主要任务是:
特殊硬件测试
硬件驱动程序的初始化,
安装根文件系统(根开关)
开始初始化过程.
系统启动后内核的功能是预先介绍的:
进程调度,内存管理,文件系统管理,硬件驱动程序,网络等
初始化内核本身之后linux系统启动日志,开始下一步
第五步: init进程根据inittab文件夹设置运行级别
在加载内核之后,要运行的第一个程序是/ sbin / init. 该文件将读取/ etc / inittab文件并基于该文件执行初始化.
实际上,/ etc / inittab文件的主要功能是设置Linux的运行级别. 其设置格式为“: id: 5: initdefault: ”,表示Linux需要在5级上运行. Linux的运行级别设置如下:
0: -停止关机
1: -单用户模式
2: -多用户,没有NFS,没有网络支持的多用户模式类似于以下运行级别3
3: -完整的多用户模式具有网络支持的多用户模式
4: -未使用的保留,未使用的
5: -X11具有网络支持,X-Window支持多用户模式
6: -reboot重新启动系统,即重新启动
cat / etc / inittab视图/ etc / inittab相关设置
第六步: 初始化进程执行rc.sysinit
设置运行级别后,Linux系统执行的第一个用户层文件是/etc/rc.d/rc.sysinit脚本程序. 它做了很多工作,包括设置PATH和设置网络配置(/ etc / sysconfig / network),启动交换分区,设置/ proc等. 如果您有兴趣,可以在以下位置检查rc.sysinit文件: /etc/rc.d,其中的脚本足以让您观看几天
第7步: 启动内核模块
具体而言,根据/etc/modules.conf文件或/etc/modules.d目录中的文件加载内核模块.
第8步: 以不同的运行级别执行脚本程序
根据运行级别的不同,系统将从rc0.d到rc6.d运行相应的脚本程序,以完成相应的初始化工作并启动相应的服务
第9步: 执行/etc/rc.d/rc.local
如果打开此文件,则其中有一个句子. 阅读后,您将一目了然地看到此命令的效果:
#该脚本将在所有其他初始化脚本之后*执行.
#如果没有,您可以在这里放置自己的初始化内容
#想做完整的Sys V风格的初始化工作.
rc.local是所有初始化工作完成后留给用户进行个性化Linux的地方. 您可以放置要设置的内容,然后从这里开始.
步骤10: 执行/ bin / login程序,启动mingetty,然后进入登录状态
简要描述启动系统的启动过程
1. 开机BIOS自检
2. MBR引导
硬盘0柱面0磁道1扇区的第一个446byte
3. grub启动菜单
猫/etc/grub.conf
4. 加载内核内核
5. 开始初始化过程
[root @ dingjian rc.d]#ps -ef | grep init
root 1 0 0 Oct23? 00:00:02初始化[3]
6. 读取inittab文件并执行脚本,例如rc.sysinit.rc
/ etc / inittab
/etc/rc.d/rc.sysinit
/etc/rc.d/rc3.d/ <==文本模式
7. 启动mingetty. 进入系统登录界面
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-262466-1.html