Linux学习1.0(系统启动流程)

shell 壳 把用户指令翻译成内核kernel可以读取的信息

系统启动流程
1,bios 自检:
基本输入输出系统,保存在主板上的BIOS芯片中
功能:1)检查硬件,2)查找可启动设备(可在bios设置启动顺序)

2,MBR (硬盘最开始的部分,共512字节)磁盘引导代码:
bios 找到可启动设备后执行其引导代码
引导代码为MBR的前446字节

3,执行引导程序 GRUB (windows中ntldr):
GRUB是linux使用的主流引导程序
可以用来引导现在几乎所有的系统
加载过程–stage1,stage1_5,stage2.

4,加载内核
MBR 的引导代码负责找到并加载linux内核
Linux内核保存在/boot/vmlinuz-2.6.32-279.el6.i686
一般还会加载内核模块打包文件:/boot/initramfs-2.6.32-279.el6.i686.img
linux为了保持kernel的精简将一些不常用的驱动,功能编译为模块,在需要的时候动态加载,而这些模块被打包存为一个initramfs文件
早期版本的Linux使用initrd文件,initrafs是initrd的替代版,比initrd更灵活
命令dmesg可以查看本次启动时内核的输出信息(vat/log/mesg里一样)

5,执行init(进程ID是1 )
init是Linux操作系统起的第一个进程
调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并根据运行级别启动相应服务

6,运行级别:
0 关机,6 重启,1 单用户,2 不带网络的多用户
3 多用户模式 5 图形化的多用户模式
通过配置文件/etc/inittab(/etc/init) 来控制默认的运行级别
每个级别对应的启动服务保存在/etc/rc.d/rc(1-6).d中
runlevel 查看上一个和当前运行级别
init - n 切换到n级别

猜你喜欢

转载自blog.csdn.net/weixin_42054244/article/details/82023367