Linux:
核心:/boot/vmlinuz-3.10.0-862.el7.x86_64
模块:/lib/modules/3.10.0-862.el7.x86_64/kernel
3.10.0-862.el7.x86_64是内核版本号
vmlinuz:内核
initrd:临时文件系统
centos5:initrd:模拟一个磁盘
centos6:initramfs:模拟一个文件系统(性能更好)
通电自检-----bios启动盘选择------mbr找到主引导记录-------加载vmlinuz、initrd到内存----------识别和挂载根文件系统(只读方式挂载)-------通过init完成系统初始化
启动流程说明:
第一步: POST(power on and self test,通电自检,通电后读取主板上CMOS芯片上的BIOS信息完成计算机设备自检)
CMOS芯片是一种低耗电存储器,其主要作用是用来存放BIOS中的设置信息以及系统时间日期
BIOS(basic input and output system):让系统自检、设置系统的启动项,指定哪个设备来启动系统。从指定的设备上找MBR,主要是需要Bootloader【主引导记录(MBR,Master Boot Record)】
第二步:
通过bootloader加载磁盘上的内核文件(vmlinuz)、initramfs临时文件(此文件包含bin sbin usr home root等目录,保存有磁盘等驱动文件),将这两个文件加载到内存中,内核文件(vmlinuz)就能获取到驱动,然后内核就能开始重新挂载根文件系统到正真磁盘,在挂载过程中只以只读方式挂载。
第三步:
在文件系统中找到并启动第一个程序(init),通过init完成系统初始化。注意:
【centos 5:init程序(/etc/init.d/下的sysV脚本文件),centos 6:upstart(也是sysV脚本文件,启动速度略有提升,近似并行启动),
centos 7:systemd,(借鉴苹果的启动方式,启动速度快)】
init功能:完成系统的初始化:
1.将根重新挂载为读写状态
2.将那些设置为自启动的程序启动起来
3.设置运行级别
4.显示登录界面 。。。。。。
init配置文件:
centos 5:/etc/inittab
centos6:/etc/inittab(主,定义运行级别,指定初始化脚本)、/etc/init/*.conf(附)
centos 7:/usr/lib/systemd/system 、/etc/systemd/system
主要顺序就是:
1.通电,bios自检
2.通过bios指定的磁盘找到引导程序mbr
3.通过引导文件加载内核
4. 启动初始化进程
5. 确定运行级别
6. 加载开机启动程序
7. 用户登录