了解计算机:从开机开始

  当按下电源键后到显示桌面,这段时间计算机都做了哪些事情呢?来仔细了解一下吧~

 以下多转载自http://mtoou.info/diannao-zhuban-kaiji-1/

1、加电

  按下电源键,主板加电,电脑进入初始化过程。电源大约需要100~500毫秒产生一个“电源好”(power good)的逻辑信号,主板的定时器芯片接收到信号后,停止向CPU发出复位(rest)信号。从这时起,CPU开始工作。这部分对于有数字电路知识的人来说,是很好理解的,芯片在不同的电信号下有不同的反应,只不过现在这些大规模集成电路很难一下子被“看透”结果了。

  CPU的基本结构:算术逻辑单元ALU、寄存器组、控制单元、总线。冯·诺依曼计算机的五大组成部分也回顾一下吧~运算器、控制器、存储器、输入设备、输出设备。吖,说到这,冯·诺依曼的计算机原理也要背一下了。除了前面说的那五大部分,还包括程序和数据以二进制代码形式不加区别地存放在存储器中,存放位置由地址确定,以及控制器根据存放在存储器中指令序列(即程序)进行工作,并由一个程序计数器控制指令的执行。

总之,现在CPU的状态就是不停地取指令、执行指令了~

2、自举

  CPU最初始的操作时从FFFF:0000H地址取得命令,该命令几乎总是一条跳转命令,后随实际BIOS ROM的开始地址。正是由于所有的CPU都从同一个位置开始,所以BIOS ROM可以将程序控制放在ROM的任何处(每个ROM通道时不同的)。这个初始化搜索地址FFFF:0000H和随后的CPU重定向的过程一般称为自举或引导,将这个术语可缩为BOOT,并将其含义扩展至包括整个初始化过程。

3、核心测试

  核心测试时全部“加电自检”(POST)过程中的一部分,这是系统BIOS在初始化中最重要的作用。为了确定系统的完整性,一些列特定硬件检测流程检查主板的主要组件并识别其他特定的BIOS芯片的存在(驱动器控制器BIOS、显卡BIOS、硬盘BIOS、等等)…由于内容太多,太重要,核心检测我后面单独写,这里就先跳过。

4、POST自检

  BIOS检查位置的0000:0427H,其中有一个决定初始化时冷启动(就是初次按电源开关启动)或热启动(按复位键或者CTRL+ALT+DOC,或者系统点击重启)的标志。如果值是1234H,则是热启动,POST例程将被跳过;否则是冷启动,执行全部POST例程,包括检查主板、硬盘、键盘、显示器、光驱、软盘、打印口、串行并口等系统。遇到错误时,单字节的POST码会被写入80HI/O端口中,然后可能被一个POST码阅读器读出(主板诊断卡就是这么工作的);在其他情况下,在屏幕上显示出错误信息(系统的初始化也将终止)。注意POST码和代表的意思在不同BIOS建稍有不同(不同代码代表的含义请看《主板诊断卡代码表》),假如POST成功完成,系统将会从喇叭中回应一个蜂鸣声(就是电脑成功开机那一个响声)。

  以下节选自ChinaUnix.net 第5章  Linux系统启动过程

5、引导

  然后按照CMOS设置的顺序搜索处于活动状态并且可以引导的设备。引导设备可以是软盘、光驱、USB设备、硬盘设置是网络上的某个设备。



  无论系统选择了哪一种启动设备,它都将会去将该设备起始地址的内容读入内存,如果你的启动设备是IDE硬盘,系统就会去去读取硬盘的第一个扇区(这个扇区通常被称做主引导扇区,又称MBR: Master Boot Record),并将这个扇区的内容读入内存,然后运行它。并将控制权交给主引导程序,接着检查分区表的状态,寻找活动的分区。最后,由主引导程序将控制权交给活动分区的引导记录,由活动分区引导记录加载操作系统。

例如

  GRUB是Red Hat Enterprise Linux 5.2默认的引导加载程序,其引导过程又可以分为启动主引导加载程序(MBR)和启动次引导加载程序(GRUB)两个阶段。下面将介绍GRUB在这两个阶段中的启动过程。

  第一阶段是保存在MBR中的主引导加载程序的加载。MBR中的主引导加载程序是一个512字节大小的映像,其中包含有机器的二进制代码和一个小分区表。主引导加载程序的任务就是查找并加载保存在硬盘分区上的次引导加载程序,它通过分区表查找活动分区,然后将活动分区的次引导加载程序从设备读入内存中并运行,进入引导加载程序的第二阶段。
  次引导加载程序也被称为内核加载程序,这个阶段的任务是加载Linux内核。一旦次引导加载程序被加载到内存中后,便会显示GRUB的图形界面,在该界面中用户可以通过上下方向键选择需要加载的操作系统以及它们的内核。

6、加载内核映像

  当用户选择启动Linux操作系统后,GRUB会根据/boot/grub.conf配置文件中所设置的信息,从/boot/所在的分区上读取Linux内核映像,然后把内核映像加载到内存中并把控制权交给Linux内核。Linux内核获得控制权后,将会按以下步骤继续引导系统。

(1)内核映像首先会检测系统中的硬件设备,包括内存、CPU、硬盘等,对这些设备进行初始化并配置。

(2)内核映像是经过压缩的,接下来它要对自身进行解压,同时加载必要的设备驱动。(使计算机和设备通信的特殊程序,可以 说相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作)

(3)初始化与文件系统相关的虚拟设备,如LVM:Logical Volume Manager(逻辑卷管理)或者软件RAID :独立磁盘冗余数组(RAID, Redundant Array of Independent Disks)简称磁盘数组 等。

(4)装载根文件系统(/),把根文件系统挂载到根目录下。

(5)完成引导后,Linux内核会在其进程空间内加载init程序,并把控制器交给init进程,由init进程继续完成接下来的系统引导工作。


7、init进程

  init进程是Linux系统所有进程的起点,内核在完成内核引导后,便会加载init进程,其进程号是1。init进程启动后,会初始化操作系统,并启动特定的运行级别(Runlevel)下的自动运行程序。用户可以通过更改相关的配置文件或使用图形化配置工具“服务配置”,自定义需要在系统启动时自动运行的服务。

  init进程对应的执行文件为/sbin/init,它是系统中所有进程的发起者和控制者,所有的进程都是由它所衍生。如果init进程出现问题,系统中的其他进程也会随之而受影响。

1.作为所有进程的父进程参照对象
2.运行不同级别的程序


Nice为优先级,越小优先级越高

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值