计算机启动过程详细介绍

全面认识计算机启动过程
  首先让我们来了解一些基本概念。第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。BIOS包括有系统BIOS(即常说的主板BIOS)、显卡BIOS和其它设备(例如IDE控制器、SCSI卡或网卡等)的BIOS,其中系统BIOS是本文要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。BIOS一般被存放在ROM(只读存储芯片)之中,即使在关机或掉电以后,这些代码也不会消失。

  第二个基本概念是内存的地址,我们的机器中一般安装有32MB、64MB或128MB内存,这些内存的每一个字节都被赋予了一个地址,以便CPU访问内存。32MB的地址范围用十六进制数表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB内存非常特殊,因为最初的8086处理器能够访问的内存最大只有1MB,这1MB的低端640KB被称为基本内存,而A0000H~BFFFFH要保留给显示卡的显存使用,C0000H~FFFFFH则被保留给BIOS使用,其中系统BIOS一般占用了最后的64KB或更多一点的空间,显卡BIOS一般在C0000H~C7FFFH处,IDE控制器的BIOS在C8000H~CBFFFH处。

  第一步:  当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址FFFF0H处开始执行指令,从前面的介绍可知,这个地址实际上在系统BIOS的地址范围内,无论是Award  BIOS还是AMI  BIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。

  第二步:  系统BIOS的启动代码首先要做的事情就是进行POST(Power-On  Self  Test,加电后自检),POST的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备。由于POST是最早进行的检测过程,此时显卡还没有初始化,如果系统BIOS在进行POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K常规内存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下,POST过程进行得非常快,我们几乎无法感觉到它的存在,POST结束之后就会调用其它代码来进行更完整的硬件检测。

  第三步:  接下来系统BIOS将查找显卡的BIOS,前面说过,存放显卡BIOS的ROM芯片的起始地址通常设在C0000H处,系统BIOS在这个地方找到显卡BIOS之后就调用它的初始化代码,由显卡BIOS来初始化显卡,此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统BIOS接着会查找其它设备的BIOS程序,找到之后同样要调用这些BIOS内部的初始化代码来初始化相关的设备。

  第四步:  查找完所有其它设备的BIOS之后,系统BIOS将显示出它自己的启动画面,其中包括有系统BIOS的类型、序列号和版本号等内容。

  第五步:  接着系统BIOS将检测和显示CPU的类型和工作频率,然后开始测试所有的RAM,并同时在屏幕上显示内存测试的进度,我们可以在CMOS设置中自行决定使用简单耗时少或者详细耗时多的测试方式。

第六步:  内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘、CD-ROM、串口、并口、软驱等设备,另外绝大多数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。

  第七步:  标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备,每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。

  第八步:  到这一步为止,所有硬件都已经检测配置完毕了,多数系统BIOS会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。

  第九步:  接下来系统BIOS将更新ESCD(Extended  System  Configuration  Data,扩展系统配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS(一小块特殊的RAM,由主板上的电池来供电)之中。通常ESCD数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时我们都能够看到“Update  ESCD…  Success”这样的信息,不过,某些主板的系统BIOS在保存ESCD数据时使用了与Windows  9x不相同的数据格式,于是Windows  9x在它自己的启动过程中会把ESCD数据修改成自己的格式,但在下一次启动机器时,即使硬件配置没有发生改变,系统BIOS也会把ESCD的数据格式改回来,如此循环,将会导致在每次启动机器时,系统BIOS都要更新一遍ESCD,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。

  第十步:  ESCD更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从C盘启动为例,系统BIOS将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行IO.SYS,这是DOS和Windows  9x最基本的系统文件。
Windows  9x的IO.SYS首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作。

  如果系统之中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码,这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本引导代码(DOS和Windows的基本引导代码就是分区引导记录)。    

  上面介绍的便是计算机在打开电源开关(或按Reset键)进行冷启动时所要完成的各种初始化工作,如果我们在DOS下按Ctrl+Alt+Del组合键(或从Windows中选择重新启动计算机)来进行热启动,那么POST过程将被跳过去,直接从第三步开始,另外第五步的检测CPU和内存测试也不会再进行。我们可以看到,无论是冷启动还是热启动,系统BIOS都一次又一次地重复进行着这些我们平时并不太注意的事情,然而正是这些单调的硬件检测步骤为我们能够正常使用电脑提供了基础。

移动硬盘是一个非标准的usb设备,使用中远不如鼠标这样可靠,问题多多,这里就很多常见情况总结一下:

有关基础知识参阅我写的移动硬盘FAQ,pcmarket和hardwre都有。
1、如果你的硬盘盒子是50元以下的,尤其是标着IBM字样的,请赶快换掉这个盒子。这种盒子早期还可以,自从03年起生产的质量就不可忍受了,很多的故障都发生在这种盒子上,如果您还爱惜你的硬盘,请换掉它。

2、移动硬盘分区不要超过2个。

3、使用200元以下盒子的移动硬盘最好都不要插在机器上长期工作,移动硬盘是用来临时交换数据的,不是一个本地硬盘。
相比于笔记本内置的,移动硬盘里面的笔记本硬盘时刻都工作在恶劣的环境下,应该尽量缩短工作时间。
正确的使用方法是使用本地硬盘下载资料等,然后copy到移动硬盘上,而不是挂在机器上整夜下载。
这个说法等于给在usb1.1接口copy海量数据宣判死刑,如果要大量copy数据赶紧加个usb2.0卡吧。

4、不要给移动硬盘整理磁盘碎片,整理的方法就是把整个分区里面的数据都copy出来,再copy回去。

5、移动硬盘认不出或者copy会断线如何解决?
(1)不使用usb加长线,这种线的质量一般不太好,会使usb数据同步出错,使移动硬盘不能正常工作。不使用机箱上的前置usb接口,原因同前。尽量把移动硬盘插在原本的usb口上。
(2)淘汰你的劣质usb硬盘盒,更换劣质的数据线为带屏蔽层的优质usb线(就是比较好的盒子带的线)。
(3)usb接口兼容性不佳,非intel芯片组的主板有时候有usb兼容性差的问题,但是现在正在销售的主流芯片组里几乎只有nforce2了,传说新的bios和usb驱动改善了nforce2的usb兼容性,但是实践证明改善很有限。彻底解决这问题的方法只有购买一个pci的usb2.0卡,其他参见6。

6、如何解决供电不足的问题?(供电不足是5的一大原因)
(1)购买比较好的usb移动硬盘盒。
(2)购买4200转的笔记本硬盘做移动硬盘。不要买5400转的。  不要相信硬盘上面标的电流值,那没有参考价值。  实践证明  hitachi  的4200转诸型号比如  4k80  4k40    80GN等都是不错的选择。一般不买富士通或者东芝的,因为在大陆没有正式的渠道商。一般也不买st的,因为ST的硬盘一般都是5400的,尽管电流值标的是0.47A。
(3)购买笔记本电脑时,考虑一下一下usb口的供电能力。  已经证明usb接口供电能力太弱的是:三星Q20/  dell  300m/X300  ;    sony  V505  ;  IBM  R40之前的几乎所有R;toshiba  P2000/2010  ....usb供电能力差,多见于日韩系轻薄机。  我最赞赏的就是IBM  X31的usb口,不管移动硬盘(哪怕是5400转的);外置combo一律通吃,其供电能力不亚于一般台机。    如果购买pci的usb2.0卡,要挑有4针辅助供电口的;如果购买笔记本用的pc卡usb2.0转接卡,要挑带一个变压器辅助供电的,好歹也要有带一个ps2辅助供电线的。  
(4)移动硬盘盒子自身也有辅助供电线的,好盒子直接给一个变压器,差的盒子也有ps2或者usb的供电线,供电不足时当然要插上,即使usb口足够带动硬盘,如果不是短时间工作,建议也插上,usb接口的供电总是很勉强的。

7、千万不要混用供电线!!
某个盒子的线就只给某个盒子用,某张pc卡的供电线只能给那个型号的卡用。
供电线的接口电压定义各有不同,乱插轻则烧盒子,重则烧硬盘。

8、如何让移动硬盘跑得更快?
copy大的文件肯定比细碎的小文件有效率,下面的的数据都是针对大文件copy的。          
(1)usb1.1  必须升级为usb2.0。  台机有pci的usb2.0卡,  笔记本有pc卡的usb2.0卡。买卡时不能贪便宜,100元以下的笔记本卡,50元以下的台机卡都不要买。
(2)硬盘的型号要新一点,一般02年起生产的盘都有跑到15M/s+的能力。  
(3)usb接口  :  首先供电要足。控制芯片  以NEC或者INTEL  ICH4/5南桥带的为佳,  其次ALI  ,最次VIA。不过这些芯片其实都有15M/S的能力,还要看pcb板的设计和做工。  
(4)盒子要好。芯片的选择  ISD300  >  ALI  5621>  meson?(忘了型号)>  GL811  =ALI  (猥琐版,型号忘了,很小),NEC的桥接芯片很少用在硬盘盒子上,一般都是在光驱盒子里使用,NEC的也很不错,可以和ISD300相比。  实际上GL811也有跑到18M/s的水平,和转接卡一个道理,速度更看pcb的设计与做工。    卡和盒子,拣贵的买肯定没错的。
(5)本地硬盘也要足够快。
(6)usb1.1的速度是1M/s  ,usb2.0的及格水平是10M/s,  如果不足10M/s,  那么在  笔记本硬盘,  盒子,  接口,  本地硬盘之中至少有一个瓶颈。  我用ASUS  intel  845PE主板,元古双接口盒子(ISD300),hitachi  80GN的硬盘,本地硬盘ST7200.7,  速度可以达到  22M/s,    同样平台用罄城GL811的盒子也达到了18M/s。  22M/s已经几乎是硬盘传输速度的极限了,似乎这个时候usb2.0的带宽还没有喂饱。  劣质usb卡甚至只能跑到4M/s足见差距。  
(7)太多细碎的小文件也可以用winrar打包后再copy。

9、1394移动硬盘的专述:
(1)供电:  机器自带的6针1394口额定电流为1A,已经足够带动所有移动移动硬盘,甚至台机硬盘。  4针口不供电,必须给移动硬盘另外供电。  pc卡接出来的1394也不能供电,必须给pc卡或者移动硬盘工供电。
(2)1394接口:    以TI双芯片为最佳;ricoh的也很不错,不过很少出现在零售的卡里,  IBM  X系列板载的常常是ricoh的,ALI的还可以,  VIA的最差(一般台机主板板载都是这个),不过还是那句话,做工比芯片重要。
(3)盒子:  一般的移动硬盘的1394都是用oxford911  桥接的,没看到缩水的芯片。oxford922是一个更加优秀的IC,单芯片搞定usb2.0/1394双接口,现在已经有一些高档3.5寸硬盘盒使用,2.5寸的盒子还没有看到。    PL-3507是台湾一家ic设计公司的产品,同样是单芯片双接口,性能待测,我刚看到产品。    
(4)实测:  我的平台用了一个TI双芯片的PCI1394卡,  元古双接口盒子(oxfd911),80GN,速度也是22M/S。  曾经测试过的顶峰速度也有24M/s。    而同样的盒子和硬盘在compaq  X1000(板载VIA1394IC),速度是17-18M/s  。    
(5)1394的最大优点是CPU占有率低。

10、妥善保护你的移动硬盘。
切忌摔打,轻拿轻放;
注意温度,太热就停;
干燥防水,先删再拔。

关于里面疑问的回答:

为什么不能给移动硬盘整理碎片呢?是整理碎片对硬盘不好吗?那笔记本是不是也要尽量少整理碎片呢?

外置硬盘通过一个usb接口和主机连接,如果同时数据上行和下行,速度会很低,而整理磁盘碎片的过程就是就是数据的频繁上行下行,由于速度慢,这个过程会非常漫长,  还不如copy出来再copy  回去。1394也是一个道理。

2、供电充足时分区数量和使用效果无关。
3、对于现在常见的金属移动硬盘盒,它的工作温度比内置的可爽多了。内置硬盘出问题更麻烦,所以我都是直接下载到移动硬盘的分区中,然后在分类备份。

分区的数量多了在接通时,卷标的弹出会很慢,与供电的问题倒是确实无关。
移动硬盘里面的硬盘工作环境恶劣不仅仅指温度,还有恶劣的供电状况,  简陋电路接出来的ide接口。

原文地址:https://www.cnblogs.com/binghou/p/9102593.html

时间: 2024-10-02 23:15:37

计算机启动过程详细介绍的相关文章

计算机启动过程详解

计算机启动过程详解打开电源启动机器几乎是电脑爱好者每天必做的事情,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢?相信有的朋友还不是很清楚,本文就来介绍一下从打开电源到出现Windows的蓝天白云时,计算机到底都干了些什么事情.  首先让我们来了解一些基本概念.第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能.BIOS包括有系统BIOS(即常说的主板BI

0-Android应用程序的Activity启动过程简要介绍和学习计划

源码分析 之 Activity启动过程简要介绍和学习计划 来源: http://blog.csdn.net/luoshengyang/article/details/6685853 声明: RTFSC(Read the fucking source code)是Linus的名言,也是学习IT技术一个重要手段.学习android最好手段就是对android进行系统分析,关于android系统的源码,CSDN的老罗分析分析是最系统一个.但是老罗的分析源码的blog,有几点不够好: 1.废话太多,可能

计算机启动过程及相关知识BIOS CMOS等

Contents 一.bios存放在哪里?... 2 二.如果说BIOS存放在ROM中,那么为什么可以升级BIOS?... 3 三.BIOS与CMOS的区别和联系... 4 3.1.BIOS是什么?... 4 3.2.BIOS的功能... 4 3.3.CMOS是什么?... 5 3.4.BIOS设置和CMOS设置的区别与联系... 6 3.5.何时要对BIOS或CMOS进行设置?... 6 四.POST(开机自检)与BIOS在启动过程那个先开始执行... 7 五.BIOS 是什么语言编写的...

计算机启动过程

LINUX的启动总纲POSTBIOS(boot sequence)MBR(boot loader)kernelinitrd(ramdisk)bootfs/sbin/initPOST和BIOS在介绍计算机的启动过程之间我们要先明白COMS和BIOS是什么东西?当我们的电脑第一次使用U盘的启动的时我们一般都会按某个键进入到一个bios界面进行一些启动配置,在这里我们暂且认为BIOS是就是一个软件.BIOS是一种怎样的形式存在于我们的主板上的呢?当我们打开主板时候会看到一块长方形或者正方形的芯片(如下

Centos-----系统启动过程详细叙述

昨日有个前辈问我,liunx系统是如果启动的,我只是说了个大概,但具体的过程没有理解透彻,今天特意在网上找到下面的流程图,并根据图,进行了详细叙述,如有问题,请指出. 启动第一步--加载BIOS  设备加电,首先会加载BIOS信息,BIOS信息很重要.之所以第一个启动,是因BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了. 启动第二步--读取MBR   众所周知,硬盘上第0磁道第一个扇区被

Android应用程序的Activity启动过程简要介绍和学习计划

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6685853 在Android系统中,Activity和Service是应用程序的核心组件,它们以松藕合的方式组合在一起构成了一个完整的应用程序,这得益 于应用程序框架层提供了一套完整的机制来协助应用程序启动这些Activity和Service,以及提供Binder机制帮助它们相互间进行通信.在前 面的文章Android进程间通信(IPC)机制B

Symfony启动过程详细学习

想了解symfony的启动过程,必须从启动文件(这里就以开发者模式)开始. <?php /* * web/app_dev.php */ $loader = require_once __DIR__.'/../app/bootstrap.php.cache'; Debug::enable(); require_once __DIR__.'/../app/AppKernel.php'; //初始化AppKernel $kernel = new AppKernel('dev', true); //Ke

U-Boot启动过程--详细版的完全分析2

一.初识u-boot 3 1,Bootloader介绍 3 2,Bootloader的启动方式 3 (1)网络启动方式 4 (2)磁盘启动方式 4 (3)Flash启动方式 4 3,U-boot的定义 4 4,u-boot源代码的目录结构 4 5,U-boot中的地址 5 (1)什么是编译地址?什么是运行地址? 5 (2)编译地址和运行地址如何来算呢? 5 (3)为什么要分配编译地址?这样做有什么好处,有什么作用? 5 (4)什么是相对地址? 6 (5)如何去做呢? 6 二.U-Boot总体分析

【自制操作系统01】硬核讲解计算机的启动过程

目录 一.为什么是 BIOS 主导?    二.内存映射    三.实模式下的内存分布    四.怎么就从 BIOS 里的程序开始执行了    五.BIOS 里到底写了什么程序    六.0x7c00 是啥    七.启动区里的代码写了啥    八.操作系统内核写了啥        软硬件协同发展        历史遗留问题    九.参考资料    十.开源项目和课程规划        项目开源        课程规划 本讲只为讲明白下面一个问题: 我们按下开机键后究竟发生了什么? 好的,这似