开机流程
BIOS:
(BasicInputOutputSystem)基本输入输出系统,它是一组固化到计算机内显卡上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,可从CMOS中读写系统设置的具体信息。
MBR:MasterBootRecord,主要引导记录区。
BootLoader:启动引导程序。
开机详尽流程
第一步:加载BIOS
打开计算机电源,计算机硬件会手动加载BIOS,读取BIOS内相关硬件信息及进行硬件系统的自检,随即按照BIOS配置找到第一个有引导程序的的设备。
第二步:读取MBR
硬碟上第0扇区第一个磁道被称为MBR,即主引导记录linux怎么查看系统版本,大小是512字节,储存了预启动信息、分区表信息。系统找到BIOS所指定的硬碟的MBR后,都会将其复制到化学显存中,被复制到化学显存的内容就是BootLoader(lilo或则grub)。
第三步:启动BootLoader
BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立显存空间的映射图,因而将系统的软硬件环境带到一个合适的状态,便于为最终调用操作系统内核做好一切打算。BootLoader有若干种,其中Grub、Lilo是常见的Loader。本文以Grub为例讲解,grub功能:提供一个菜单,容许用户选择要启动的系统或不同的内核版本;把用户选取的内核装载到RAM中的特定空间中,解压、展开。
系统读取显存中的grub配置信息(通常为menu.lst或grub.conf),并根据此配置信息来加载指定内核。
第四步:加载内核
grub把系统控制权移交给内核,内核开始侦测可辨识到的所有硬件设备及尝试挂载根目录以获取其驱动程序。此时就须要首先加载c盘驱动程序便于读取c盘,而c盘驱动程序又保存在c盘内linux 开机启动应用程序,这样才会造成linux未能启动。此时须要通过伪文件系统来解决这一问题。
虚拟文件系统(InitialRAMDisk)即/boot/initramfs-release.img,这个文件的特色是,能否通过bootloader来加载到显存中,之后这个文件会被解压缩而且在显存当中模拟成一个根目录,且此模拟在显存当中的文件系统才能提供一支可运行的程序,透过该程序来加载启动过程中所最须要的核心模块,一般这种模块就是U盘,RAID,LVM,SCSI等文件系统与c盘的驱动程序。等加载完成后,会帮助核心重新呼叫/sbin/init来开始后续的正常启动流程。
注:RamDisk是辅助性文件linux 开机启动应用程序,并非必须,取决于内核是否能直接驱动根文件系统所在的设备。
第五步:运行/sbin/init程序,设定linux的运行等级
内核加载完毕后,运行用户空间内第一个应用程序就是/sbin/init,之后读取/etc/inttab文件,根据文件配置设定系统运行等级;
第六步:init进程执行rc.sysinit
设定了运行等级后linux rar,Linux系统执行/etc/rc.d/rc.sysinit系统初始化脚本程序。初始化包括:设置主机名、设置欢迎信息、激活Udex和seliux、挂载/etc/fstab文件中定义的所有文件系统、检测根文件系统、设置系统时钟、根据/etc/sysctl.conf文件来设置内核参数、激活LVM及软RAID设备、激活swap设备、加载额外设备的驱动程序、执行清除操作。
第七步:启动内核模块
具体是根据/etc/sysconfig/modules文件目录下的文件来装载内核模块。第八步:执行run-level的各个服务启动(script形式)
按照运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。
第九步:执行/etc/rc.d/rc.local
rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放在这儿。
第十步:执行/bin/login程序,步入登陆状态
Linux都会启动终端机或则是XWindow来等待使用者登入。
来源:/zhangpenglinux/1760206
【年薪30w工程师呕血整理资料大合辑】
发放IT资料大合辑:/counselor.html