linux系统基础:grub
文章图片
文章图片
想要更好的了解Linux系统的运行原理 , 了解系统启动的流程是非常有必要的 。
通常 , 我们按过开机电源之后 , 会听到机箱内发出“滴”的一声 , 接着屏幕上开始打印出一些字符 , 然后开始显示出图形界面 , 最后屏幕上会显示需要输入用户名和密码的登陆界面 。其实不管是Linux还是Windows , 从用户感官的体验来说 , 启动顺序都是大同小异的 。下面我会详细描述一下Linux系统的启动流程 。
01相关概念
GNUGRUB(GRandUnifiedBootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序 。GRUB是多启动规范的实现 , 它允许用户可以在计算机内同时拥有多个操作系统 , 并在计算机启动时选择希望运行的操作系统 。GRUB可用于选择操作系统分区上的不同内核 , 也可用于向这些内核传递启动参数 。
Linux中默认又7个运行级别 , 从0到6每个运行级别的含义如下:运行级别0:关机运行级别1:单用户模式 , 如系统出现问题 , 可使用这种模式进入系统进行维护(如忘记root密码)运行级别2:多用户模式 , 但是没有网络连接 。运行级别3:完全多用户模式 。默认运行级别运行级别4:保留未使用 。运行级别5:窗口模式 , 支持多用户 , 支持网络 。运行级别6:重启 。
任何时候Linux只能在一张runlevel下运行 。
当我们按过开机按钮之后 , 计算机会加载BIOS , 这是计算机上最接近硬件的软件 。每家主板制作商都会开发适合自家主板的BIOS , 而BIOS的一项很重要的功能就是对自身的硬件做一次健康检查 , 只有硬件没有问题才会运行软件 。
【linux系统基础:grub】PS:操作系统也是一种软件
这种通电后开始的自检过程被称做“加电自检(PowerOnSelfTest)”简称POST , 如果所有的硬件设施自检通过 , 一般都会发出一声“滴”的短音提示 , 说明硬件一切正常 。
在BIOS的设定中 , 机器自检通过之后 , 接着就要运行引导程序了 。BIOS默认会从硬盘上的第0柱面 , 第0磁道 , 第一个扇区中读取被称为MBR的东西 , 即主引导记录 。
一个扇区的大小是512字节 , 存放的内容是一段引导程序和分区信息 。其中引导程序占用446字节 , 另外64字节是磁盘分区表DPT , 最后两字节是MBR的结束位 。
这512字节的空间内容是由专门的分区程序产生的 , 比如说Windows下的fdisk.exe文件 , 或者Linux下的fdisk命令 , 它不依赖任何操作系统 , 而MBR中的引导程序也是可以修改的 , 所以可以利用这个特性实现多操作系统的共存 。
RedHat和CentOS默认会使用Grub作为其引导操作系统的程序 , 但是Grub本身又比较大 , 所以常见的方式是在MBR中写入Grub的地址 , 这样系统实际会载入Grub作为系统程序的引导程序 。
经过上面两步的准备 , 接下来就是顺利成章的运行Grub了 。Grub最重要的功能就是根据它的配置文件加载Kernel镜像 , 并运行内核加载后的第一个程序/sbin/init , 这个程序会根据/etc/inittab来进行初始化工作 。
其实这里最重要的是根据文件中设置的值来确定系统将会运行的runlevel , 默认的runlevel定义在“id:3:initdefault:”中 , 其中数字3说明目前的运行级别定义为3 。
Linux根据/etc/inittab中定义的系统初始化配置 , si::sysinit:/etc/rc.d/rc.sysinit执行/etc/rc/sysinit脚本 , 该脚本会设置系统变量 , 网络配置 , 并启动swap、设定/proc、加载用户自定义模块、加载内核设置等 。
这一步是根据之前读到的runlevel的值来启动对应的服务 , 如果值为3 , 就会运行/etc/rc3.d下的所有脚本 , 如果runlevel=5 , 就会运行/etc/rc5.d下的所有脚本 。
- 复旦研发智能冰上运动训练分析系统,助中国选手化身“冰雪精灵”
- 科学家应急研发气溶胶新冠病毒监测系统 40分钟内“揪出”病毒
- 一加8coloros12公测系统推送量级最大一次
- 阿里云刘伟光:金融核心系统向全面分布式智能化转型
- 贵州健康码开展应急演练 支撑疫情防控系统高效安全运行
- eve手游舰队系统怎么玩(eve手游舰队组建方法详解)
- 原神硬直系统是什么(原神韧性机制解析)
- 双生幻想芯片系统是什么(双生幻想芯片系统玩法详解)
- 梦幻新诛仙阵法怎么玩(梦幻新诛仙阵法系统玩法分享)
- 富民县林草局开展林长制APP(护林员)系统应用技术培训会
