博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux启动过程分析
阅读量:5115 次
发布时间:2019-06-13

本文共 1010 字,大约阅读时间需要 3 分钟。

昨天笔试考了一道关于linux系统启动的过程,当时没答上来,现在整理出来(其实并不复杂)。

  按下电源按钮的直到欢迎页出来之后,linux总共做的事可以分为五步来完成。

  1、  BIOS加电自检:

  加电自检,检测硬件设备。然后按照cmos上面的顺序来搜索处在活动状态下的可以引导的设备。可以是光驱、软盘、USB等。

  2、  加载主引导加载程序(MBR):

  主引导程序是一个512字节的映像。包含一点机器码还有一个小的分区。

  主引导程序的任务就是查找并且加载处在硬盘分区上的次引导程序。通过分区表查找活动分区,并将处在活动分区的次引导加载程序读取到内存里面运行

  3、  加载次引导记载程序(GRUB)

  次引导加载程序只要就是加载linux内核。

  上一阶段结束之后次引导加载程序就会在内存里面跑起来。就会出现GRUB图形界面,让用户选择加载什么样的内核。

  4、  linux内核映像:

  用户选择要加载的内核之后,次引导加载程序(GRUB)就会根据/boot/grub.conf配置文件中所设置的信息,从/boot/所在的分区上读取Linux内核映像,然后把内核映像加载到内存中并把控制权交给Linux内核。

  linux内核获得控制权之后开始干自己的事

  1、  检测硬件

  2、  解压缩自己并安装必要驱动

  3、  初始化与文件系统相关的虚拟设备,LVM或RAID

  4、  装载根文件系统,挂在根目录下面

  5、  完成之后,linux在进程空间里面加载init程序,下面轮到init干活

  5、  init进程

  init是所有进程的发起者和控制者,所有的进程都由此衍生。

  init进程获得控制权之后,它会执行/etc/rc.d/rc.sysinit脚本,根据里面的代码设置环境变量、网络、启动swap、检查并挂载文件系统、执行其他初始化工作。

 

  至此,linux启动完成。

  我们稍微总结一下:

  首先是BIOS加电自检,之后加载主引导加载程序、次引导加载程序,最后就是linux内核映像,完了把控制权交给init进程,完成初始化工作。

  swap分区是什么?

  类似windows系统中的虚拟内存,当物理内存不够用的时候,使用swap中的内存。

转载于:https://www.cnblogs.com/gongcheng9990/p/3981314.html

你可能感兴趣的文章
局网满猿关不住,一波码农出墙来。
查看>>
ios开发学习--选项卡(Tab Bar) 效果源码分享--系列教程
查看>>
涉略spring
查看>>
CHM.BAT
查看>>
delphi脚本
查看>>
[转载]jQuery1.6.1源码分析系列
查看>>
MySql简介
查看>>
APP审核关于3.2.1金融资格的审核回复苹果
查看>>
C陷阱与缺陷--读书笔记3 语义“陷阱”
查看>>
linux 清理cache中的内存
查看>>
解决Windows应用程序Side-by-Side错误
查看>>
PHP 错误与异常 笔记与总结(6)将错误日志保存在系统日志中
查看>>
C++指针参数引用
查看>>
HDU 4744 Starloop System(最小费用最大流)(2013 ACM/ICPC Asia Regional Hangzhou Online)
查看>>
CSS的:after用法
查看>>
实验一缓冲区溢出漏洞实验
查看>>
Django相关配置(包括数据库、templates、static等)信息—Django2.0
查看>>
一个常见的下拉框(css)
查看>>
模板方法模式.
查看>>
如何在VS上用C#玩坏“Hello World”。
查看>>