阮一峰的网络日志 » 首页 » 档案

分类: IT 技 上一篇:纪录片 《TPB AFK

分类: IT 技 上一篇:纪录片 《TPB AFK

术 下一篇:玉门人家照相馆

术 下一篇:玉门人家照相馆

计算机是如何启动的?

作者: 阮一峰

日期: 2013年2月16 日

从打开电源到开始操作,计算机的启动是一个非常复杂的过程。

我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示 这几

天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。

零、boot 的含义

先问一个问题,"启动"用英语怎么说?

回答是boot 。可是,boot 原来的意思是靴子,"启动"与靴子有什么关系呢? 原来,这

里的boot是bootstrap (鞋带)的缩写,它来自一句谚语:

"pull oneself up by one's bootstraps"

字面意思是"拽着鞋带把自己拉起来",这当然是不可能的事情。最早的时候,工程师

们用它来比喻,计算机启动是一个很矛盾的过程:必须先运行程序,然后计算机才能

启动,但是计算机不启动就无法运行程序!

早期真的是这样,必须想尽各种办法,把一小段程序装进内存,然后计算机才能正常

运行。所以,工程师们把这个过程叫做"拉鞋带",久而久之就简称为boot 了。

计算机的整个启动过程分成四个阶段。

一、第一阶段:BIOS

上个世纪70年代初,"只读内存" (read-only memory ,缩写为ROM )发明,开机程

序被刷入ROM芯片,计算机通电后,第一件事就是读取它。

这块芯片里的程序叫做"基本輸出輸入系統" (Basic Input/Output Sy stem ),简称

为BIOS 。

1 .1 硬件自检

BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做"硬件自

检" (Power-On Self-T est ),缩写为POST 。

如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就

会显示出CPU、内存、硬盘等信息。

1 .2 启动顺序

硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序。

这时,BIOS需要知道,"下一阶段的启动程序"具体存放在哪一个设备。也就是说,

BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。

这种排序叫做"启动顺序" (Boot Sequence )。

打开BIOS的操作界面,里面有一项就是"设定启动顺序" 。

二、第二阶段:主引导记录

BIOS按照"启动顺序",把控制权转交给排在第一位的储存设备。

这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512

个字节的最后两个字节是0x 55和0xAA ,表明这个设备可以用于启动;如果不是,表

明设备不能用于启动,控制权于是被转交给"启动顺序" 中的下一个设备。

这最前面的512个字节,就叫做"主引导记录" (Master boot record,缩写为MBR )。

2.1 主引导记录的结构

"主引导记录"只有512个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘

的哪一个位置去找操作系统。

主引导记录由三个部分组成:

(1) 第 1-446字节 :调用操作系统 的机器码 。

(2) 第 447-510字节 :分 区表 (Partition table)。

(3) 第 511-512字节 :主 引导记录签名 (0x55和 0xAA)。

其中,第二部分"分区表" 的作用,是将硬盘分成若干个区。

2.2 分区表

硬盘分区有很多好处。考虑到每个区可以安装不同的操作系统,"主引导记录" 因此必

须知道将控制权转交给哪个区。

分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多

只能分四个一级分区,又叫做"主分

linux 网络配置 阮一峰,计算机是怎样启动的? - 阮一峰的网络日志.pdf相关推荐

  1. 计算机是如何启动的 阮一峰,计算机是如何启动的? - 阮一峰的网络日志.pdf

    计算机是如何启动的? - 阮一峰的网络日志.pdf 阮一峰的网络日志 » 首页 » 档案 分类: IT 技 上一篇:纪录片 <TPB AFK 分类: IT 技 上一篇:纪录片 <TPB A ...

  2. 【转】计算机是如何启动的-阮一峰

    从打开电源到开始操作,计算机的启动是一个非常复杂的过程. 我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它.下面就是我整理的笔记. 零 ...

  3. Linux实操-网络配置、进程管理、服务管理、动态监控进程、监控网络状态

    网络配置 网络配置原理图 查看网络IP和网关 查看虚拟网络编辑器 修改虚拟网卡ip地址 查看网关 linux网络环境配置 第一种方法(自动获取) 第二种方法(指定固定的 ip) 进程管理(重点) 显示 ...

  4. 输入网络密码来进入共享计算机,Win7系统与其他电脑共享文件提示输入网络密码如何解决...

    win7系统传输文件方式很多种,比如U盘.硬盘传输等,其实电脑之间共享文件比较便利,特别是办公一族经常会和其他电脑一起共享重要文件,有时共享系统却弹出提示"输入网络密码",怎么办? ...

  5. linux中的网络配置

    Linux中的网络配置 1 什么是IP ADDRESS 2 子网掩码 3 ip通信判定 4 网络设定工具 4.1 设置双网卡 4.2 ping命令 4.3 ifconfig命令 4.4 ip addr ...

  6. Linux网络基本网络配置

    网络信息查看 查看网路接口信息 1.了解linux中的网络接口设备 $/sbin/ifconfig 查看所有活动网络接口信息,其中包括一个lo环回端口. 2.查看指定网络接口的信息 $/sbin/if ...

  7. 【CentOS Linux 7】【Linux网络配置基础】

    Linux系统及应用---调研报告 [CentOS Linux 7]实验1[VMware安装.新建虚拟机:63个基础命令运行结果图] [CentOS Linux 7]实验2[Shell编程及应用] [ ...

  8. Linux系统下网卡网络配置基础

    Ifconfig命令使LINUX核心知道软件回送和网卡这样一些网络接口,这样Linux就可以使用它们.除了上面介绍的这些用法之外,ifconfig命令用来监控和改变网络接口的状态,并且还可以带上很多命 ...

  9. Linux基本网络配置

    Linux基本网络配置 查看网络接口信息ifconfig 查看指定网络接口信息ifconfig 网络接口名 查看网络连接情况 netstat命令查看系统的网络连接状态,路由表,接口统计等信息 nets ...

最新文章

  1. python编程试题单词倒排_Python 单词字母顺序不变且全部倒排
  2. 同一AppDomain内的SharpGL的FrameBuffer会相互影响?
  3. POJ 1039 Pipe
  4. ISR:中断服务程序需要满足的要求
  5. 文档型数据库mongodb介绍2-副本集
  6. 服务器每秒钟执行命令数量是什么_如何合理的评估上线服务器数量
  7. int arr 13 java,java学习13 - 数组的定义、操作、异常、二维数组
  8. CSS基础学习-15-1.CSS 浏览器内核
  9. (二)C语言数据类型(2)
  10. 【java】浅析JDK中ServiceLoader的源码
  11. iis 7 安装php环境_iis7配置php环境图文教程
  12. 微服务化浪潮中,网易考拉借浪拉动业务极速增长
  13. 计算机描绘的基因结构图,推荐一款好用的基因结构图在线绘制工具!
  14. 服务器的所有网站共用443,多个ssl证书共用443端口apache
  15. QQ群排名优化到霸屏的策略怎么做?
  16. bixby怎么编程_三星Galaxy S20:如何完全禁用Bixby
  17. 华为云等保解决方案,全流程等保服务,帮助企业守护信息安全
  18. oracle开机启动监听,配置Oracle数据库和监听随Linux系统自启动
  19. 202106笔记--
  20. 不完全免疫算法简介AIMA--AIS学习笔记7

热门文章

  1. GOF23设计模式(创建型模式)工厂模式
  2. 为放大器模拟输入模块提供可靠的输入过电压保护
  3. 目标检测中特征融合技术(YOLO v4)(下)
  4. 芯片内亿万的晶体管制程工艺
  5. 客快物流大数据项目(七):Docker总结
  6. 2021年大数据Flink(二十九):Flink 容错机制 Savepoint
  7. AttributeError: ‘NoneType‘ object has no attribute ‘group‘
  8. CSS3 Box-shadow 阴影效果用法
  9. 网络2网络布线与数制转换
  10. HDFS Java 客户端使用(Windows开发环境)