2020-07-17 15:25:53
1、加载bios硬件信息,并获取第一个启动设备的代号
2、读取第一个启动设备的mbr到物理内存,物理内存的内容就是Boot Loader了。
3、运行Boot Loader(如grub,lilo等),初始化硬件设备,建立内存空间映射图。
4、根据Boot Loader设定的内核映像路径,系统读取内存映像,解压内核,尝试驱动所有硬件设备。
5、运行第一个程序/sbin/init。
6、执行第一个/etc/rc.d/rc.sysinit脚本程序
7、依据/etc/modules.conf装载内核模块。
8、执行不同运行级别的脚本程序
9、执行/etc/rc.d/rc.local脚本程序
10、执行/bin/login,进入等待用户登录状态。
当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。
众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息。
系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0x7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。
Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。
Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。
我们以Grub为例来讲解吧,毕竟用lilo和spfdisk的人并不多。
系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。
根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。
内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。
其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启
关于/etc/inittab文件的学问,其实还有很多,在后序文章中设计到的,卖个关子,敬请期待,呵呵
在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件,里面的脚本够你看几天的:P
具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。
根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。
你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然:
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.
rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。
此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了。:)
转自:http://roclinux.cn/?p=1301
Linux alias设置指令的别名命令详解
07-18
Linux ar建立或修改备存文件命令详解
06-23
Linux aumix设置音效装置命令详解
07-05
Linux dump备份文件系统命令详解
06-14
Linux insmod载入模块命令详解
07-04
Linux lsmod显示已载入系统的模块命令详解
07-24
Linux screen多重视窗管理程序命令详解
07-05
Linux smbd Samba服务器程序命令详解
06-28
Linux tar备份文件命令详解
06-21
Linux userconf用户帐号设置程序命令详解
06-19
Linux vsftpd启动,停止,重启脚本
07-23
Linux Apache开启gzip压缩提高网页下载速度
07-15
Linux CentOS 7 重置root用户密码
07-12
Linux 的系统服务及其配置
07-07
Linux网站压力测试工具webbench
06-25
启动时,自动弹出“Windows高级选项菜单”的处理思路
06-12
ADSL拨号上网错误代码详解
06-13
B305一体机,在Windows XP系统下,摄像头驱动下载及安装过程
05-11
B500一体机在Windows XP系统下蓝牙驱动下载及安装过程
06-18
B500一体机,在Windows XP系统下,声卡驱动下载及安装过程
07-02
QmmpLinux音乐播放器中文版 v0.11.2
16.1MB
下载Startup Delayer(启动项管理软件) 3.0.365 中文免费版
5.64 MB
下载U帮忙U盘启动盘制作工具UEFI版 V7.8 最新官方免费版
549.1M
下载vistabootpro(启动菜单辅助工具)3.3官方版
1.2M
下载win7PE(u盘启动制作工具) v1.3 免费版
149.6M
下载大白菜超级U盘启动制作工具UEFI版 v8.0.17.117 中文官方免费版
331M
下载晨枫U盘维护工具(U盘启动盘制作软件) 2.0 正式版
301MB
下载电脑店u盘启动盘制作工具 V6.2 官方版
258.94M
下载瞬启盒子(快速启动软件)绿色版 v2.0
1.9M
下载矮人dos工具箱 (dos启动软件)v5.3.0 u盘版
9.2M
下载Claunch下载
3.2M
下载Grub2Win下载
1.2M
下载bcdautofix下载
393KB
下载centos 下载
3.85GB
下载usboot1.7下载
0.35MB
下载visualroute
7.06 MB
下载天意PE三分区特别版下载
11.3MB
下载好视通云会议下载
44.3MB
下载