Linux系统启动流程:
POST-->BIOS(Boot Sequce)--》MBR(bootloader)-->Kernel(CentOS5:initrd,CentOS6:initramfs)-->/sbin/init(CentOS5:/etc/inittab, CentOS6:/etc/inittab, /etc/init/*.conf)
启动详解:
1.POST自检:第一步就是CPU加电然后寻址,而CPU寻址所需的代码指令
问题POST自检完成!将工作移交给BIOS去处理
2.BIOS:(Boot Sequence)加载可选择的启动设备->固件厂商制造
3.MBR:硬盘的主引导记录,存在于0磁道第0扇区,共512字节。其中Bootloader占据
4.Bootloader(内核加载器)位于第0磁道第0扇区的446字节是最前边
第一步
grub将内核文件Vmlinz 和 grub自己加载到了/boot上,
同时也在/boot上存放了所有模块的驱动程序xxx.img文件
用ll /boot 查看
grub目录中存放着grub.conf自身配置文件,device.map磁盘映射图(映射分区/boot和/根分区)
第二步 上边我们已经提到grub目录中存放着device.map磁盘映射分区,接下来我们去查看
映射的根分区/(内核真正挂载的分区)中的各种模块所在的路径
接下来查看路径下的各个模块.ko文件
Kernerl
Linux属于单核系统:Kernel+各种外围模块组成
通过grub加载内核后,内核开始自我解压并工作
通过虚拟根文件系统initrfs 调用init工作
/etc/rc.d 目录中存放着123456运行级别的目录
以rc3.d为例,目录中存放着进程, 进程运行级别 ,进程状态(K为开启、S为关闭)――>
init就是控制进程是K还是S得总管 (当系统在1 2 3 4 5 6 之间切换时由父进程fork而来的
子进程就会在K与S之间切换状态)