centos5系统的启动流程
POST: 加电自检,检查硬件是否存在,通过ROM里COMS的BIOS(basic input and output system)
bootsequence(BIOS):按次查找各引导设备,选择第一个设备,加载里面的引导程序即为本次启动要用的程序即bootloader(MBR),这个bootloader(MBR)会把自身的第二阶段的代码加载到内存中,它不受MBR管理,它能提供一个提供一个菜单、背景图片、交换式接口,允许用户选择要启动的内核版本及其他设置;把用户选定的内核装载到RAM中的特定空间中,对其进行解压、展开,而后把系统控制权移交给内核。
注意:kernel只能放到基本分区上
kernel:kernel接到控制权后自身初始化: 探测可识别到的所有硬件设备。加载硬件驱动程序(有可能借助于randisk加载驱动),完成后以只读方式挂载文件系统,之后运行用户空间的第一个应用程序:/sbin/init
init程序的类型:
centos 5 :sysv init
配置文件:/etc/inittab
centos 6:upstart
配置文件:/etc/inittab或/etc/init/*.conf
centos 7 :systemd
配置文件:/usr/lib/systemd/system/, /etc/systemd/system
ramdisk介绍:
linux内核的特性之一:使用缓冲和缓存来加速对磁盘上的文件访问
需要把ramdisk换成ramfs那就不需要在次缓冲,用于提高效率
centos 5:initrd
可以用:mkinitrd
centos 6,7:initramfs
可以用:dracut,mkinitrd
/sbin/init:init会先根据/etc/inittab里的默认级别,运行系统初始化脚本完成对主机名的设置、欢迎信息的设置、激活udev和selinux、挂载/etc/fstab文件中定义的所有文件系统、检测根文件系统并以读写方式重新挂载根文件系统、设置系统时钟、根据/etc/sysctl.conf文件来设置内核参数、激活lvm及软raid设备、加载额外设备的驱动程序、清理操作,完成系统初始化,关闭与之对应级别下需要停止的服务,依次启动对应级别下需要开启的服务,设置登录终端。