本文描述linux系统开机过程,属于个人理解范畴,如果文中表述有误请大家批评指正!

计算机开机之后,首先要加载BIOS(基本输入输出系统)信息,BIOS包含了很多重要的信息,包括CPU信息,设备启动顺序信息,硬盘信息,内存信息,时钟信息等。

由BIOS进行POST(加电自检),然后依据BIOS内设置的引导顺序从硬盘、软盘或者CDROM中读入引导块。linux系统是从BIOS中的OxFFFFO处开始引导的。BIOS的第一个工作时POST,POST的工作就是对硬件进行检测。第二个工作是进行本地设备的枚举和初始化。

BIOS是由两部分组成:POST代码和运行时的服务。当POST完成之后就会被从内存中清理出来,但是BIOS运行时服务依然会保留在内存中。BIOS会按照设置中定义的顺序来搜索处于活动状态并且可以引导的设备。
引导设备可以是硬盘上的某个分区、CD-ROM、软盘、网络上的某个设备或者是USB设备。linux通常是从硬盘上进行引导的,其中主引分区MBR包含了主引导加载程序。当MBR加载到RAM中后,BIOS将控制权转交给MBR,MBR 又叫主引导扇区,是计算机开机后访问硬盘时必须要读取的首个扇区,位于0柱面,0磁道,1扇区。MBR的主引导程序是一个512字节的映像。前446字节是主引导加载程序,接下来的64个字节包含了分区表的信息,还有两个特殊的字节OxAA55用来检查MBR的有效性。
如果系统要想启动就必须启动内核,显然MBR是放不下内核的,但是MBR中有个小程序可以载入其他位置的内核,这个小程序就是boot loader 即GRUB。GRUB允许用户可以选择要启动的操作系统。GRUB包裹三个重要的文件,Stage1、Stage2、Stage1.5. Stage1通常放在MBR中,作用就是在系统启动时用于加载Stage2,并将控制权转交给它。Stage2就是GRUB的核心,所有的功能都由它完成。Stage1.5介于Stage1和Stage2之间,是他们之间的桥梁,因为Stage2较大,通常放在文件系统中,但是Stage1不能识别文件系统,Stage1.5来引导位于某个文件系统中的Stage2。Stage2是GRUB的核心但不是linux的核心,grub加载以后就是为了加载linux的内核,grub的配置

是通过/boot/grub/grub.conf来实现的。

接下来就要加载内核映像到内存中,内核映像是被zlib进行压缩过的,通常是一个zimage或者是bzimage,在映像前有一个例程可以实现少量的硬件设置,并对内核映像解压并将其放到内存中,之后该例程会调用内核,开始启动内核引导过程。内核启动后会向bios查询电脑的所有硬件信息,然后自己开始管理这些设备,以便提供给linux使用内核会尝试驱动这些设备,,这些设备的驱动一部分包含在内核中,叫做静态驱动,一部分放在文件系统中,由于此时还没有挂在任何文件系统,因此还不能使用,所以内核会尝试挂在根文件系统,根文件系统至少包含/etc、/bin、/boot、/lib、/dev5大目录,缺一不可,根文件系统挂在是以只读方式挂载,因为这是linux还在启动阶段,不稳定,避免破坏系统资料。

在内核完成引导后,就在本进程空间内加载init程序,进程号是1,init进程是所有进程的发起者和控制者,它是第一个运行的进程,init进程会根据/etc/inittab判断要进入的运行级别,然后直接执行/etc/rc.d/rc.sysinit进行系统初始化,并将启动的相关信息加载到/var/log/dmesg文件中。系统所有的服务启动之后在执行/etc/rc.d/rc.local脚本,将需要开机运行的程序启动。

linux系统开机过程描述相关推荐

  1. Linux系统开机过程详细分析

    各位是否曾经对电脑整个开机的流程感到好奇呢 ? 这一次 , 我们所要讨论的  主题 , 就是 Linux 从开机的一瞬间到 login 为止 , 到底发生了什么事情 ? 想必各位都知道 , 在刚开机时 ...

  2. linux系统开机过程

    为什么80%的码农都做不了架构师?>>>    一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检-->BIOS(Boot ...

  3. Linux系统开机启动流程介绍

    一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...

  4. Linux系统引导过程(BIOS和Bootloader部分)

    Linux系统引导过程(BIOS和Bootloader部分) 刘建文( http://blog.csdn.net/keminlau ) KEY:x86体系 CPU 系统引导 启动过程 Linux LI ...

  5. linux开机引导进程是什么,Linux系统开机启动流程介绍

    一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...

  6. Linux系统引导过程及故障排除

    Linux系统引导过程及故障排除 一.Linux操作系统引导过程 二.系统初始化进程 三.排除启动类故障 (一)修复MBR扇区故障 (二)修复GRUB引导故障 (四)遗忘root用户的密码 一.Lin ...

  7. linux 更改 引导分区,Linux系统引导过程及引导修复

    0.Linux系统引导过程: 1.通电 2.bios初始化 3.磁盘引导阶段 4.grub2文件引导程序 5.内核加载 6.系统初始化镜像 7.系统启动级别 8.超级用户密码 以下内容是针对各过程会出 ...

  8. linux 重启_四步见证linux系统重启过程,小心操作,防止后悔!

    linux小白到大神的成长之路:四步见证linux系统重启过程,小心操作,防止后悔! 本经验由宗龙龙原创,全文共880多字,阅读需要14分钟! 记得上篇文章给大家讲述linux系统的重启与关机操作,但 ...

  9. linux 开机速度 固态,Windows/Linux系统开机OCZ胜出

    SSD评测报告 以下是相关测试项目结果: Windows系统开机效率 作业系统的开机过程,对於硬盘.SSD来说,是相当重要的测试,因为复杂的开机文件读入,是很好的综合性读入评量,也反应最终用户操作计算 ...

最新文章

  1. flexnet licensing 启动多个服务_又小又灵巧,浪潮边缘计算服务器获深度评测高分...
  2. ubuntu sublime字体设置
  3. Xcode9学习笔记67 - 打印查看程序沙箱结构中常用的几个目录
  4. Sequence II (HDU 5919)(主席树)
  5. 【软件开发底层知识修炼】八 Binutils辅助工具之- objdump工具 与 size,strings工具
  6. Win7,Win8下多实例运行Excel2010
  7. 广工十四届校赛 count 矩阵快速幂
  8. 基于比较的排序算法集
  9. 模糊搜索简单算法fuzzywuzzy
  10. oracle11g 卸载步骤
  11. 斐讯盒子N1/T1_通用超精简刷机固件分享及教程
  12. mysql 联合查询_MySQL联合查询
  13. 不收费的数据恢复软件推荐
  14. ktv点歌系统服务器怎样连接,ktv设备与显示屏怎么连接
  15. 游戏面试的维度与思考
  16. 教学信息管理系统+SQL
  17. echarts柱状图加上渐变色报错问题
  18. 数据分析(7)路径挖掘分析法 行为序列分析法
  19. 网页贴便签, Chrome特色网页便签纸 OurStickys
  20. S9300系列交换机升级系统版本

热门文章

  1. 培训完java后想放弃_10个创意修补案例,改造后漂亮极了,看完让人想动手试试...
  2. 安装electron报错
  3. 正则匹配 http或者 https开头的网络地址
  4. MFC多标签页对话框
  5. [填坑手册]小程序目录结构和组件化使用心得
  6. 浅析 React Fiber
  7. .NET多线程编程(7)——C#多线程编程传递参数解决方案
  8. 优雅地在Mac+Valet环境下本地部署phphub
  9. 31.水平居中总结-不定宽块状元素方法(三)
  10. Hive连接超长Hbase宽表异常