rhel系统启动过程_Linux启动过程的详细说明

第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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值