zoukankan      html  css  js  c++  java
  • 电脑开机启动的整个过程

    大家常会看到硬盘分区中这样的几种说法:
    系统分区、启动分区、活动分区、主分区、拓展分区、逻辑分区,MBR、PBR、DPT、主引导扇区等。尤其是看到很多误导后,更会云里雾里,现在我力求用最简明的语言阐清几者之间的关系。若有错误之处还请不吝指出。
           首先,每个独立的硬盘都只有一个主引导扇区MBR(共512字节),记录着硬盘分区的信息。主引导扇区包括:BOOT LOADER(主引导程序,446字节)、DPT(硬盘分区表,64字节)、MN(幻数,2字节)。此扇区与是否已经分区无关,与安装的操作系统无关,硬盘都存在。PBR是分区引导记录,每个分区都有。
           其次,说一下各个分区的基本含义,上面说到DPT即分区表,总共有64个字节,每个分区参数占用16个字节,做个简单的除法可知:硬盘最多可分4个逻辑磁盘(独立互不干扰)。我们看到的硬盘分区可能会出现很多个,这是何故?这是引入拓展分区的缘故。独立互不干扰的4个逻辑磁盘,可以全部是主分区,即通常说的最多可分4个主分区;如果只有三个主分区,剩下的那个逻辑磁盘设成拓展分区,而拓展分区包括很多相互连接的逻辑分区(不像主分区那样独立自主)。一言以蔽之,硬盘分区包括主分区+拓展分区。拓展分区=很多逻辑分区相加,主分区最多4个。
           再次,系统分区、启动分区、活动分区这三个分区之间的关系。其中系统分区、启动分区这两个名字好像起反了,系统分区中包含“启动文件”(NTLDR、BOOTMGR等),启动分区包含系统文件(比如Windows文件夹)。每次电脑启动时,必须有且仅有一个活动分区,装载活动分区里面的“启动文件”,因此活动分区就是系统分区。

    说到这基本澄清了“分区”的概念,下面介绍一下系统启动原理:
    1.WindowsXP系统启动:开机自检——将MBR(主引导扇区)代码读入内存,管理权交给MBR-MBR读取分区表DPT——DPT读取硬盘中的活动分区(系统控制权交给该分区的PBR)。到这里为止和安装的系统无关,前面讲过活动分区就是系统分区,而系统分区里面含有“启动文件”(NTLDR)——接着读取同目录下的BOOT.INI文件(系统启动菜单管理文件)—进入WindowsXP系统。
    2.Windows7系统启动:开机自检——将MBR代码读入内存,管理权交给MBR-MBR读取分区表DPT——DPT读取硬盘中的活动分区(系统控制权交给该分区的PBR)。到这里为止和安装的系统无关,前面讲过活动分区就是系统分区,而系统分区里面含有“启动文件”(BOOTMGR)——接着读取同目录下的BCD文件(启动配置文件)——交给启动分区的Winload.exe——进入Windows7系统。
    3.WindowsXP和Windows7双系统启动:开机自检——将MBR代码读入内存,管理权交给MBR-MBR读取分区表DPT——DPT读取硬盘中的活动分区(系统控制权交给该分区的PBR)。到这里为止和安装的系统无关,前面讲过活动分区就是系统分区,而系统分区里面含有“启动文件”(BOOTMGR)——读取同目录下的BOOTBCD和BOOT.INI文件——列出启动菜单:如果选择Windows7接下来由Winload.exe接管;如果选择WindowsXP接下来由NTLDR接管。


    注:关于boot.ini的操作请参考:
    http://support.microsoft.com/kb/289022/zh-cn
    http://support.microsoft.com/kb/314081/zh-cn




     

     

    Vista系统的电脑启动过程.jpg

     

     

    XP系统的电脑启动过程.jpg
  • 相关阅读:
    vue 的模板编译—ast(抽象语法树) 详解与实现
    Vue 组件(component)之 精美的日历
    nvm 装 nodejs 重启终端失效的解决方法
    vue 2 仿IOS 滚轮选择器 从入门到精通 (一)
    np.stack() 与 tf.stack() 的简单理解
    PHP 之 Ci框架下隐藏index.php
    Boosting 简单介绍
    Adaboost算法流程及示例
    Python 之 解码汉字乱码(如果gbk、utf8都试过不行,可以试试这个)
    Linux 之 tar和nc传文件
  • 原文地址:https://www.cnblogs.com/accumulater/p/7268120.html
Copyright © 2011-2022 走看看