当你启动计算机之后,windows的启动过程就开始执行了。下面是详细步骤:

1 BIOS执行一些初始系统检查,并读取磁盘的第零簇的内容。第零簇内容有一个特殊的称谓 - 操作系统主引导扇区 MBR(Master Boot Record)。

2 MBR保护两部分:

  1 系统启动代码 (共有446 bytes)

  2 分区表入口(16 bytes colored entries in the bottom)

3 根据系统代码,我们可以找到系统所有的分区,并找到系统启动分区。如果分区表入口的第一个字节值为0x80,那么可以确认这就是分区表入口,它也被称为根分区或系统卷 . MBR中有四个分区入口,是不是意味着我们只能有四个系统驱动?这也就意味着我们还得有扩展分区入口.

4 除了分区得到确认外,还能够确认系统启动分区的第一个磁盘簇。具体的值存储在启动代码的8th-12th字节。上图中这个值为3f 00 00 00,按照小端计算,其值为0000003f,即第63rd扇区。

5 启动入口第63rd扇区又称为启动扇区,从这里开始可以读取到文件读取根磁盘(c:\)的文件ntldr(NT loader)。

6 有时候,系统启动中提示错误信息“NTLDR is missing”,正是因为读取不到这个文件。 读取这个文件的信息后,windows开始把内核文件加载到内存中。先确定页面大小,然后读取ntdetect.com,根据BIOS设置进行硬件检测,最后读取boot.ini以显示启动菜单,即提示有哪些操作系统。

如果系统上次关闭时是睡眠状态,它将读取hiberfil.sys,以恢复睡眠前的数据。它还会加载启动驱动。操作系统的核心功能依赖这些驱动,下表列出了初始的系统驱:

然后再设置CPU的寄存器的值,等等。这些任务完成后,ntldr把系统控制权交给进程ntoskrnl.exe (NT OS Kernel),它的使命就完成了。

6  NTOSKRNL是主要负责启动以下OS服务(此时你能看到的Windows XP的进度条显示过程)。

  第0阶段初始下列服务

      内存管理服务

      流程管理服务(系统进程被创建的第一个内核模式进程)

      对象管理器服务

      即插即用管理服务

      安全参考监视器服务

  第1阶段的初始化

      初始化HAL(硬件抽象层)

      多处理器支持

      调度支持(本质上取决于处理器架构)

      电源管理

7  系统将控制权转交给 smss.exe (Session Manager Subsystem)。它也是windows启动后的第一个用户态进程。

  1 smss进程执行下列任务:

        1 检查磁盘(disc check):

        2 挂起一些文件。文件被挂起后,os内核就暂时没有了一些文件的控制权限,一些应用软件可能重写操作系统内核相关的部分文件,改写完毕后,它就可能提示你重启系统。

        3 创建页面文件(pagefile.sys):

  2  从\Windows\System32\Config\*.*.读取系统注册表

  3 最后系统创建两个进程(Client Server Run-Time Subsystem), Winlogon.exe.

      1 Csrss.exe负责系统的用户态,并向程序提供windows API接口

      2   Winlogon.exe负责启动进程(services.exe),并创建sass.exe (Local Security and Authentication Subsystem),以对用户登录系统时进行验证。

      3   Winlogon将把登录窗口呈献给用户,用户登录成功后,它将家在explorer.exe,并根据当前用户的配置信息显示桌面。

虽然本文没有具体的描述启动过程的每个细节,但是大的方面本文都有说明,以做到疏而不漏。欢迎读者批评指正。

参考文章

  1 Windows Internals 4th Ed By Mark E. Russinovich, David A. Solomon

  2 http://www.yale.edu/pclt/BOOT/PARTITIO.HTM

  3 http://mirror.href.com/thestarman/asm/mbr/NTLDR.htm

说明

  本文遵循协议 The Code Project Open License (CPOL)。

written by: Vineel Kumar Reddy Kovvuri

url:   http://www.codeproject.com/Articles/129874/The-Birth-of-Windows-Desktop

转载于:https://www.cnblogs.com/menggucaoyuan/archive/2012/02/09/2344396.html

Windows启动过程相关推荐

  1. UEFI下windows启动过程

    引导文件  在UEFI安装完操作系统后,Windows至少使用两个分区,一个叫做ESP分区(EFI SYSTEM PARTITION),用于存放启动文件,另一个则是BIOS下正常的系统分区,不同的是, ...

  2. Windows XP启动过程及常见启动故障

    一.Windows XP系统在磁盘上的组织 安装XP过程中,Windows安装系统会在计算机的磁盘分区写入引导相关的组件,分别置放于系统卷(system volume)启动卷(boot volume) ...

  3. Linux启动跟windows启动,Windows,Linux启动机制简介

    前言 本文内容只集中在操作系统启动原理的讲解上,不涉及启动的技术细节,因为这些细节都可以通过网络或者相关代码了解.只有了解了启动原理,才能在分析和解决有关启动的问题时具有针对性,不会有无从下手的感觉. ...

  4. jenkin swindows启动_windows启动过程

    展开全部 认真看完这个也许你会有收获的: Windows启动e68a84e8a2ad62616964757a686964616f31333231626165过程介绍 相信不少人碰到过装了个什么东西之后 ...

  5. WB1 Windows启动入门-孙宇彤-专题视频课程

    WB1 Windows启动入门-1975人已学习 课程介绍         大家日常都在使用Windows系统,不过你熟悉Windows的启动过程吗?想了解Windows系统的启动配置方法吗?Wind ...

  6. Windows XP \Windows 2003启动过程的学习及故障分析处理(四)

    Windows XP \Windows 2003启动过程的学习及故障分析处理 (四) 唯一的激活的主分区--引导分区 如前所述,计算机通过MBR找到(定位)了磁盘上唯一的激活的主分区(primaryp ...

  7. 简述windows计算机启动过程,计算机启动过程

    计算机启动过程 互联网   发布时间:2009-04-21 02:32:12   作者:佚名   我要评论 对于电脑用户来说,打开电源启动电脑几乎是每天必做的事情,但计算机在显示这些启动画面的时候在做 ...

  8. 华为服务器Linux启动过程,华为RH2288H服务器引导ServiceCD安装Windows Server操作系统...

    安装准备 ServiceCD光盘. Windows操作系统安装光盘. 物理光驱. 使用虚拟控制台远程安装操作系统时,需要准备以下软件: ServiceCD光盘或ServiceCD ISO文件. Win ...

  9. Windows XP \Windows 2003启动过程的学习及故障分析处理(六c)

    Windows XP \Windows 2003启动过程的学习及故障分析处理 (六C) 细述引导文件(C)--boot.ini boot.ini 通过前面的学习,我们知道NTLDR最重要的功能是:寻找 ...

最新文章

  1. 四位先行进位电路逻辑表达式_计算机硬件基础:二进制半加器、全加器与加法电路...
  2. 解除IE8的内容审核程序
  3. java 通常在函数内部创建对象还是在外部创建对象_java中为什么在主函数中创建外部类对象可以,创建内部类对象就失败了呢?2类不都是非静态的吗?...
  4. TRUNCATE和DELETE有以下几点区别
  5. 怎么用deveco studio升级鸿蒙,华为鸿蒙DevEco studio2.0的安装和hello world运行教程
  6. 计算机科学与技术 双一流,26所双一流高校、18个省市,计算机科学与技术专业分数线汇总!...
  7. VS2010下配置 OpenCV2.2
  8. 万能的搜索--之DFS(二)
  9. 海康大华网络摄像机搜索工具
  10. Java基础总结(上)
  11. UE4蓝图教程(1)
  12. NetSetMan v5.0.5特别版
  13. Cocoa动画编程指南
  14. 使用HTML Purifier解决XSS问题
  15. 数据分析:大数据时代的必备技能之Power BI
  16. QQ三国华容道拼图脚本(半成品,成功率不高)
  17. javaweb基础打卡12
  18. zao AI换脸,说说自己对人脸识别的一些理解
  19. Wi-Fi 安全协议
  20. ZC706评估板学习--小白向(一)介绍与准备工作

热门文章

  1. 互动赠新书|当云原生遇到混合云:如何实现“求变”与“求稳”的平衡
  2. 暑期 2021 | Serverless Devs 最全项目申请攻略来啦!
  3. Arthas watch 命令使用指南
  4. echart 时间滚动_基于 ECharts 封装甘特图并实现自动滚屏
  5. dump文件分析工具_使用这个 Python 工具分析你的 Web 服务器日志文件 | Linux 中国...
  6. 下载python步骤_下载及安装Python详细步骤
  7. import 快捷键 自动调整顺序_一文搞定PPT中的快捷键
  8. java 注释 连接,java – 如何使用JPA注释创建连接表?
  9. vc 获取月份的天数_「青少年编程」课程:输入年份与月份,得到该月有多少天...
  10. 头像裁剪_课堂裁剪|19级油画班油画头像写生作品