当前位置: 首页 » 产品 » 出口外贸 » 正文

Linux系统启动过程介绍(1)

放大字体  缩小字体 发布日期: 2024-09-29 05:23   来源:http://www.baidu.com/  作者:无忧资讯  浏览次数:28
核心提示:  对操作系统的启动过程一直是比较模糊,想想大概经历检查硬件,加载操作系统,加载  用户环境等几个过程,但实际上要复杂一

  对操作系统的启动过程一直是比较模糊,想想大概经历检查硬件,加载操作系统,加载

  用户环境等几个过程,但实际上要复杂一些。毕竟我们只是了解和掌握启动过程,而不是去

  对启动过程进行设计和编码,所以下面的介绍相对比较简单,也点到为止。如果有想深入学

  习的同学,可以针对某个或某几个部分刨根问题,编码调试。

  下面以Debian Linux的启动加载为例,简单介绍一下操作系统的启动。

  经历的过程如下:

  开机自检(POST)---->执行基本输入输出(BIOS)---->加载系统分区表数据(MBR开

  始的512字节)---->加载引导程序(grub之类)---->加载Linux内核----->系统环境初始化-----

  ------->用户环境初始化

  开机自检(POST)

  这部分没有什么多余的东西,计算机连上电源用户按下启动按钮后,计算机自己检测CPU,

  内存,硬盘等硬件设备是否处在可用状态。如果可以使用,继续下一步的工作,即将运行权

  交给BIOS,否则利用峰鸣器报警。这也是修理电脑的专家根据蜂鸣器报警声判断系统那里有

  问题的依据。

  执行基本输入输出(BIOS)

  BIOS(Basic Input Output System)基本输入输出程序。该程序完成最基本的硬件位置

  处理,设置硬中断等。然后将MBR最开始的程序调入到CPU上运行,运行权进而交给MBR。

  MBR加载

  MBR(Master boot record),是启动磁盘最开始的512字节,这里包含了分区信息和一

  个引导程序。分区信息记载了磁盘的分区情况,引导程序即是我们比较熟悉的Grub,LiLo等,

  用来指引从什么位置加载内核程序。

  引导程序加载Grub(GRand Unified Bootloader)

  Grub在配置的时候指定在什么分区的什么位置加载内核,Grub2以前的版本中grub都是

  有两个或者多个加载过程的,会去加载stage1,stage1_5,stage2文件,这些文件都在

  /boot/grub目录下。之所以会有这些文件,是因为在加载的早期,一次只能加载512字节,太

  多文件的话,只能分批加载。

  现在,在Grub2中已经找不到这个文件了,加载和引导的过程会另外介绍。

  内核加载过程

  由于在Grub中记录了内核的具体位置,在Grub运行完毕后,就开始加载内核,运行权限随

  之交给内核。

  内核接过运行权限,开始探测系统的硬件,加载硬件对应的驱动(有些以模块运行的驱动,

  是需要挂载文件系统才能加载),然后挂载文件系统,从文件系统中读取数据。

  这个过程的如下:

  内核探测硬件------>加载驱动(initrd)------>挂载根文件系统------>rootfs(/sbin/init)

  系统初始化工作

  最后运行权交给了/sbin/init程序,开始跑初始化的脚本内容。(待续)

 
 
[ 产品搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]

 

 
推荐图文
推荐产品
点击排行
    行业协会  备案信息  可信网站