摘要:介绍linux开机到你登录帐号再到shell界面打开的过程
启动流程:
![](https://img-blog.csdn.net/20161120171832948?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
启动流程:
->1.power on
->2.BIOS载入
BIOS(基本输入输出系统)就是一段程序,它存在计算机主板内的一个ROM内存中。在通电后计算机CPU自动会读入ROM里面程序BIOS。
BIOS作用:
BIOS进行“硬件自检”,识别CPU,内存,硬盘一些基本信息。
设置启动顺序,确定“下一阶段启动程序”在哪个存储设备(硬盘)(的MBR)中。
(在装windos时用U盘装系统设置的从U盘启动就是在BIOS设置)
->3.读取MBR
MBR就是存储设备(硬盘)的第一个扇区。(扇区是硬盘的最基本的存储单位)
MBR里面就存储Boot loader程序。
->4.读取Boot loader
Boot loader主要作用是
认识操作系统的文件格式后载入核心到内存中去执
行,也就是载入系统内核kernel(也就进入了硬盘里的其他分区)。
当然如果你装的是双系统\,你的boot loader(假设linux boater)也可以指向其他系统的boot loader(windose boot loaer).
(不同操作系同的boot loader不一样,linux当然用的是linux boot loader)
(你下载的linux系统镜像就包含有 boot loader.)
![](https://img-blog.csdn.net/20161120171912283?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
->5.加载kernel (这一步才算真正就开始操作系统)
就是在加载/boot里面的kernel的内容。然后调用第一个程序(进程)/sbin/init。
->6.用户登录前的运行
/sbin/init
->
调用/etc/inittab 确定运行级别。(可查看inittab文件了解)
->调用/etc/rc.d/rc.sysinit
/etc/rc(num).d
系统初始化
->调用
/etc/init 各种服务初始化启动......
->用户登录
->7.用户登录后执行
从/etc/profile进入,设置一系列环境变量(具体见《shell编程之bash变量》)
![](https://img-blog.csdn.net/20161120171928315?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
参考文档:
《鸟哥的私房菜》