沈阳蓝德网站建设网站对齐原则
web/
2025/10/3 0:18:23/
文章来源:
沈阳蓝德网站建设,网站对齐原则,电子商务网站开发项目策划书,上海设计公司排名前十强20linux系统启动过程
启动过程可以分为6步#xff1a;POST–BIOS–MBR(GRUB)–Kernel–Init–Runlevel。POST为Power On Self test#xff0c;MBR(GRUB)其实也可以分开来讲#xff0c;MBR的作用是去引导记录#xff0c;为GRUB做准备。
各过程解析
POS…linux系统启动过程
启动过程可以分为6步POST–BIOS–MBR(GRUB)–Kernel–Init–Runlevel。POST为Power On Self testMBR(GRUB)其实也可以分开来讲MBR的作用是去引导记录为GRUB做准备。
各过程解析
POST
POST为加电自检的过程检查cpu、内存、磁盘等硬件单元。一般来说这个步骤可以归类到BIOS中。
BIOS
BIOS全称Basic Input/Output System基本输入输出系统该系统存储于主板的ROM芯片上计算机在开机时会最先读取该系统然后会有一个加电自检的过程然后会加载bios程序到内存中BIOS一个主要的功能就是存储磁盘的启动顺序BIOS会按照启动顺序去查找第一个磁盘头的MBR信息并加载和执行MBR中的BootLoader程序若第一个磁盘不存在MBR则会查找第二个磁盘一旦BootLoader程序被检测并加载内存中BIOS就将控制权交接给了BootLoader程序。
MBR
MBR全称Master Boot RecordMBR存储于磁盘的头部大小为512bytes其中446bytes用于存储BootLoader程序64bytes用于存储分区表信息最后2bytes用于MBR的有效性检查。
GRUB
GRUB(Grand Unified Bootloader)多系统启动程序其执行过程可分为三个步骤
Stage1这个其实就是MBR它的主要工作就是查找并加载第二段Bootloader程序(stage2)但系统在没启动时MBR根本找不到文件系统也就找不到stage2所存放的位置因此就有了stage1_5Stage1_5该步骤就是为了识别文件系统Stage2GRUB程序会根据/boot/grub/grub.conf文件查找Kernel的信息然后开始加载Kernel程序当Kernel程序被检测并在加载到内存中GRUB就将控制权交接给了Kernel程序。 PS实际上这个步骤/boot还没被挂载GRUB直接识别grub所在磁盘的文件系统所以实际上应该是/grub/grub.conf文件 grub.conf #boot/dev/sdadefault0 #设定默认启动的title的编号从0开始timeout5 #等待用户选择的超时时间splashimage(hd0,0)/boot/grub/splash.xpm.gz #GRUB的背景图片hiddenmenu #隐藏菜单title CentOS (2.6.18-194.el5PAE) #内核标题root (hd0,0) #内核文件所在的设备kernel /vmlinuz-2.6.18-194.el5PAE ro rootLABEL/ #内核文件路径以及传递给内核的参数initrd /initrd-2.6.18-194.el5PAE.img #ramdisk文件路径kernel
Kernel内核Kernel是Linux系统最主要的程序实际上Kernel的文件很小只保留了最基本的模块并以压缩的文件形式存储在硬盘中当GRUB将Kernel读进内存内存开始解压缩内核文件。讲内核启动应该先讲下initrd这个文件initrd(Initial RAM Disk)它在stage2这个步骤就被拷贝到了内存中这个文件是在安装系统时产生的是一个临时的根文件系统(rootfs)。因为Kernel为了精简只保留了最基本的模块因此Kernel上并没有各种硬件的驱动程序也就无法识rootfs所在的设备故产生了initrd这个文件该文件装载了必要的驱动模块当Kernel启动时可以从initrd文件中装载驱动模块直到挂载真正的rootfs然后将initrd从内存中移除。 Kernel会以只读方式挂载根文件系统当根文件系统被挂载后开始装载第一个进程(用户空间的进程)执行/sbin/init之后就将控制权交接给了init程序。
Init
init初始化顾名思义该程序就是进行OS初始化操作实际上是根据/etc/inittab(定义了系统默认运行级别)设定的动作进行脚本的执行第一个被执行的脚本为/etc/rc.d/rc.sysinit这个是真正的OS初始化脚本简单讲下这个脚本的任务(可以去看看实际脚本看看都做了什么)
激活udev和selinux根据/etc/sysctl.conf文件来设定内核参数设定系统时钟装载硬盘映射启用交换分区设置主机名根文件系统检测并以读写方式重新挂载根文件系统激活RAID和LVM设备启用磁盘配额根据/etc/fstab检查并挂载其他文件系统清理过期的锁和PID文件
执行完后根据配置的启动级别执行对应目录底下的脚本最后执行/etc/rc.d/rc.local这个脚本至此系统启动完成。
Runlevel
runlevel运行级别不同的级别会启动的服务不一样init会根据定义的级别去执行相应目录下的脚本Linux的启动级别分为以下几种
0关机模式
1单一用户模式(直接以管理员身份进入)
2多用户模式无网络
3多用户模式命令行
4保留
5多用户模式图形界面
6重启
在不同的运行级别下/etc/rc.d/rc这个脚本会分别执行不同目录下的脚本
Run level 0 – /etc/rc.d/rc0.d/ Run level 1 – /etc/rc.d/rc1.d/ Run level 2 – /etc/rc.d/rc2.d/ Run level 3 – /etc/rc.d/rc3.d/ Run level 4 – /etc/rc.d/rc4.d/ Run level 5 – /etc/rc.d/rc5.d/ Run level 6 – /etc/rc.d/rc6.d/ 这些目录下的脚本只有K和S开头的文件K开头的文件为开机需要执行关闭的服务S开头的文件为开机需要执行开启的服务。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85907.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!