在开机时,由于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. 解决thinkPHP构造函数__construct导致tp方法冲突问题

    我们在使用了__construct构造函数,覆盖了父类的构造函数,导致父类tp的方法无法使用,例如$this->display(),解决办法是: 在__construct函数中调用一下父类的构造 ...

  2. 获取客户端真实ip

    // 获取客户端真实ip() protected function getIP() { global $ip; if (getenv("HTTP_CLIENT_IP")) $ip ...

  3. 使用裸设备配置Oracle ASM实例一例

    1.查看当前磁盘 [root@std u01]# fdisk -l Disk /dev/sda: bytes heads, sectors/track, cylinders Units = cylin ...

  4. BizTalk开发系列(四) 深入Map测试

    在BizTalk的开发过程中XML消息间的映射是一个很重要的内容.如果只是一般的从源节点的值复制到目标节点的话,BizTalk项目提供的 MAP测试和验证就已经可以满足需求了.但是很多时候需要在映射的 ...

  5. ffmpeg命令行

    ubuntu下简单安装ffmpeg sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-nextsudo apt-get update sudo a ...

  6. IOS第二天多线程-01-延时执行

    **********延时执行 #import "HMViewController.h" @interface HMViewController () @end @implement ...

  7. Windows2003中IIS的安全设置技巧

    在Windows Server 2003中对于IIS的安全设置具有十分重要的意义,所以掌握IIS安全设置的六大技巧是一个网管员必备的基本技能.下面就是对IIS的安全设置的六大技巧. 技巧1.安装系统补 ...

  8. Yii源码阅读笔记(二十一)——请求处理流程

    Yii2请求处理流程: 首先:项目路径/web/index.php (new yii\web\Application($config))->run();//根据配置文件创建App实例,先实例化y ...

  9. python(1)

    1.适配中文 #coding-utf-8 #coding: utf-8 2.格式化输出,此时的转义字符不能用\,只能用% print 'growth rate : %d \%' % 7 5 3 Tru ...

  10. P1941 飞扬的小鸟

    此题很容易写出方程,由以前的知识可以迁移得,本题可以用完全背包的方法进行优化,使用滚动数组即可得到答案. //莫名奇妙60分.不知道什么细节出了错. #include <bits/stdc++. ...