在开机时,由于80x86的特性CS(Code Segment)这个寄存器中放的都是1,而IP(Instruction Pointer)这个寄存器中全部放着0,换句话说,CS=FFFF而IP=0000。此时,CPU就依据CS和IP的值,到FFFF0H去执行那个地方所放的指令。这时候,由于FFFF0H已经到到了高位置的顶端,所以,FFFF0H这个地方总会放一个JMP指令,跳到比较低的位置。

接着,ROM BIOS就会做一些检查的动作,像内存、键盘等等,并在我们俗称的UMB(Upper Memory Block)之中扫描,看看是否有合法的ROM存在(比如SCSI卡上的ROM)。假如有就到里面去执行一些东西,执行完后再继续刚才的行程。到了最后,读取硬盘上的第一个sector。
在这里,假设各位由硬盘启动。因此,就硬盘的构造而言,它的第一个sector称为MBR(Master Boot Record)。因为一个sector是512bytes,而MBR这512bytes可分为两部分,第一个部分为Pre-Boot,占了446bytes;第二部分是Partition Table,占了66bytes。Pre-Boot的作用之一,就是去看看哪个Partition被标为Active,然后去读那个Partition的Boot区。
在Linux的启动方面,一般人最常把LILO或Grub放在MBR或Superblock,假如你把LILO或Grub放在MBR,此时你的屏幕就会出现启动项选择,接着就进行Load Kernel动作。在另一方面,假如你把LILO或Grub安装在Superblock,通常你还会有一个管理开机的程序,也许是放在MBR或者放在一个单独的Partition。再由这个管理开机的程序读取LILO或Grub,进而做Load Kernel的动作。到目前为止,Kernel被load到memory之后,接着又进行了一连串probe周边的动作,像串口、并口、软盘、声卡、硬盘、光驱等,接着mount root Partition。在这之后Kernel会启动init这个process。init这个process的PID为1,它是所有Process的祖先。

Linux开机流程的更多相关文章

  1. Linux开机流程及运行级别

    启动流程: 没有运行程序的硬件除了会电人,没有别的用处.那么计算机是如何识别软件并执行的呢?下面介绍操作系统的开机启动流程: BIOS:开机时主动执行的第一个程序,会识别存储设备. MBR:第一个可开 ...

  2. linux开机随笔

    (1),linux开机流程: 固件是在软件与硬件之间的那部分,他们既不叫做硬件也不叫做软件, 开机自检  ,就是  在你按下开机键时,电脑就会自动检查你的硬盘  内存 cpu等器件, 那个CMOS是固 ...

  3. Linux之RHEL6的开机流程分析

    开机——很多人觉得很简单的事情,只要按下电源开关,然后系统就会自然启动,没有什么需要学习的.其实不然,如果系统没有什么问题,可以正常登陆的时候,当然开机很简单.但更多的时候,我们需要知道当机子不能正常 ...

  4. Linux 开机引导流程

    Linux 开机启动流程 BIOS(Basic Input Output System)是 PC 机启动时加载的第一个软件.其实,它是一组固化到计算机主板上一个芯片上的程序,它保存着计算机最重要的输入 ...

  5. 第14章 Linux开机详细流程

    本文目录: 14.1 按下电源和bios阶段 14.2 MBR和各种bootloader阶段 14.2.1 boot loader 14.2.2 分区表 14.2.3 采用VBR/EBR方式引导操作系 ...

  6. linux运行级别和开机流程

    linux有七个运行级别 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别2:多用户状态(没有NF ...

  7. linux学习笔记-开机流程与主引导分区(MBR)

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 读鸟哥的linux私房菜-基础学习篇(第三版)3.2.4章节作此笔记 一.术语介绍: Bios:写入到主板上的一个程序,计算机开 ...

  8. Linux学习-Linux 的开机流程分析

    开机流程一览 系统开机的经过可以汇整成底下的流程的: 加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置; 读取并执行第一个开机装置内 MBR 的 boot Loader (亦 ...

  9. 第五部分 linux系统管理员 开机流程 模组管理 与loader

    第五部分   linux系统管理员  开机流程  模组管理  与loader   开机流程分析 cmos保存电脑硬件的参数 bios 基本的输入输出系统  读取硬件的软件 MBR  master bo ...

随机推荐

  1. zabbix3.2.0beta2 监控模版

    Zabbix监控中用到了一系列模版,nginx后端检测状态 微信告警等一系列常规的服务应用监控 memcached监控模版,可以自己重新定义memcached的端口 http://files.cnbl ...

  2. Android基于XMPP的即时通讯2-文件传输

    本文是在上一篇博文Android基于XMPP的即时通讯1-基本对话的基础上,添加新的功能,文件传输 1.初始化文件传输管理类 public static FileTransferManager get ...

  3. Jquery 捕捉页面关闭事件

    (http://www.php100.com/html/program/jquery/2013/0905/6052.html) $(window).bind('beforeunload',functi ...

  4. 网络性能测试工具iperf详细使用图文教程

      Iperf是一个网络性能测试工具.Iperf可以测试TCP和UDP带宽质量.Iperf可以测量最大TCP带宽,具有多种参数和UDP特性. Iperf可以报告带宽,延迟抖动和数据包丢失.利用Iper ...

  5. github page 构建自己的页面

    新建一个仓库.命名为:<你的账号>.github.io 然后上传一个index.html即可 打开浏览器输入:<你的账号>.github.io 即可访问

  6. BizTalk开发系列(二十二) 开发自定义Map Functoid

    尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...

  7. xml案例(考生成绩管理系统)

    package itacst.dao; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node ...

  8. what's the difference between dim as and dim as new?

    what's the difference between dim as and dim as new? There is no difference with value types (Intege ...

  9. TP框架知识点

  10. EntityFramework SQLite

    安装完sqlite的nuget包后,还要设置App.config文件才能正常使用 1.  在<providers>节点添加一条提供器配置 <provider invariantNam ...