windows系统的启动工作原理

对于程序是如何运行的,每个人有每个人的理解,差别主要在理解层次上,而理解层次的不同,也就决定了黑盒的大小及范围。

而所谓黑盒,就是我们知其然,而不知其所以然的东西。例如,QQ程序的运行,如果我们仅知道运行QQ程序后,可以发送和接收文字信息,则QQ就是一个黑盒,它能够发送与接收信息,至于为什么,不知道。

一般情况下,程序运行是通过以下步骤进行的(个人之见):
运行启动按钮(如QQ图标),应用层的程序(如C#代码),框架层的程序(如.NET开发框架函数),操作系统层的程序(如WRK层的函数),汇编层次的程序,CPU的指令集,晶体管逻辑,集成电路,电流的通断......
而对于程序运行的理解层次,可以根据对各个步骤理解的不同而不同。
例如,如果我们把应用层的程序都作为黑盒,则后续的步骤都在黑盒中,以此类推。

此外,我们平时看电脑时,感觉程序一直在运行,实际是一直在中断的,但人的视觉是不会发现0.01秒内的中断的。而我们点击鼠标时程序的响应,也就是程序的一次执行过程。而我们看到的界面的保持,仅仅是一个桌面图形的保持而已。
而所谓的加载程序,只是把程序代码加载进内存,以便加快执行速度。
而开机的过程,则是将WINDOWS系统的必要程序加载进内存,并运行一定的必要程序,包括可视界面的程序。

由此类推,人作为一个有机体,动作与思考都可以看作一种指令的执行,而这种指令之所以能执行,就是由于指令执行系统可以正常运行,如果不能正常运行,则就代表挂了。那人的存储区呢?老年的健忘证等,可以理解成人这种有机体部分指令存储系统的损坏。

 下面就是windows系统的工作原理 
 
 

一、Windows系统的启动过程 


预了解Windows系统的工作原理,我们先从Windows的启动过程来讲解。同样,我们还是以windows XP为例。首先,从

我们按下计算机电源开关,到正式登入到桌面,完成启动,一共需要经历以下5个阶段:  

  1. 预引导(Pre-Boot)阶段; 
  2. 引导阶段;  
  3. 加载内核阶段;  
  4. 初始化内核阶段;  
  5. 登陆。  

下面,就每个启动阶段,我一一的给大家讲解一下:  


1、预引导阶段  

预引导(Pre-Boot)阶段是指,在按下计算机电源使计算机启动,并且在Windows XP专业版操作系统启动之前这段时

间,在这个阶段里,计算机首先运行Power On Self Test(POST),POST检测系统的总内存以及其他硬件设备的现

状。如果计算机系统的BIOS(基础输入/输出系统)是即插即用的,那么计算机硬件设备将经过检验以及完成配置。计

算机的BIOS定位计算机的引导设备,然后MBR(Master Boot Record)被加载并运行。在预引导阶段,计算机要加载

Windows XP的NTLDR(NT  Loader)文件。  

 
2、引导阶段  

  Windows XP 专业版引导阶段包含4个小的阶段。  


  首先,计算机要经过初始引导加载器阶段,在这个阶段里,NTLDR将计算机微处理器从“实模式”转换为“32位平

面内存模式”。在实模式中,系统为MS-DOS保留640kb内存,其余内存视为扩展内存,而在32位平面内存模式中,系

统(Windows XP)视所有内存为可用内存。接着,NTLDR启动内建的mini-file system drivers,通过这个步骤,使

NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区,以便发现以及加载Windows XP,到这里,初始引导加载

器阶段就结束了。  

  接着系统来到了操作系统选择阶段,如果计算机安装了不止一个操作系统(也就是多系统),而且正确设置了

boot.ini使系统提供操作系统选择的条件下,计算机显示器会

显示一个操作系统选单,这是NTLDR读取boot.ini的结果。如果在boot.ini中只有一个操作系统选项,或者把timeout

值设为0,则系统不出现操作系统选择菜单,直接引导到那个

唯一的系统或者默认的系统。在选择启动Windows XP后,操作系统选择阶段结束,硬件检测阶段开始。 

  在硬件检测阶段中,ntdetect.com将收集计算机硬件信息列表并将列表返回到NTLDR,这样做的目的是便于以后

将这些硬件信息加入到注册表HKEY_LOCAL_MACHINE下

的hardware中。  

  硬件检测完成后,进入配置选择阶段。如果计算机含有多个硬件配置文件列表,可以通过按上下按钮来选择。如果只有一个硬件配置文件,计算机不显示此屏幕而直接使用

默认的配置文件加载Windows XP专业版。    

3、加载内核阶段  

  在加载内核阶段,NTLDR加载Windows XP内核的。系统加载了Windows XP内核但是没有将它初始化。 接着NTLDR加载硬件抽象层,然后,系统继续加载

HKEY_LOCAL_MACHINE\system键,NTLDR读取键值来决定哪一个Control Set将被加载。控制集中包含设备的驱动程序以及需要加载的服务。NTLDR加载

HKEY_LOCAL_MACHINE\system\service\...下start键值为0的最底层设备驱动。当作为Control Set的镜像被加载时,NTLDR传递控制给内核,初始化内核阶段就开始了。 


4、初始化内核阶段 

  在初始化内核阶段开始的时候,彩色的Windows XP的logo以及进度条显示在屏幕中央,在这个阶段,系统完成了启动的4项任务:  


内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINE\HARDWARE键。  


  内核通过引用HKEY_LOCAL_MACHINE\system\Current的默认值复制Control Set来创建了Clone Control Set。Clone Control Set配置是计算机数据的备份,不包括启动中

的改变,也不会被修改。 

  系统完成初始化以及加载设备驱动程序,内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描

HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\...下start键值为1的设备驱动程序。这些设备驱动程序在加载的时候便完成初始化。 


  Session Manager启动了Windows XP高级子系统以及服务,启动控制所有输入、输出设备以及访问显示器屏幕的Win32子系统以及Winlogon进程,初始化内核完毕。  
5、登陆 
Winlogon.exe启动LSA,同时Windows XP欢迎屏幕或者登陆对话框显示,这时候,系统还可能在后台继续初始化刚才没有完成的驱动程序。如果设有密码,提示输入有效的用户名或密码。 
 
 
 
二、应用程序、系统、输入输出设备的关系 
 

  首先,我们来看计算机操作系统跟硬件设备的交互关系,操作系统可以操纵输出设备,以执行特定的的功能。例如

声卡发出声音,让显卡发出图形。当然操作系统也可以感知输入设备的状态变化,如鼠标移动、键盘按下,并且能

知道鼠标移动的具体位置、键盘按下的是哪一个字符。 


  其次,我们来看计算机操作系统跟应用程序之间的交互关系,应用程序可以通知操作系统执行某个具体的动作,例

操作系统能够让声卡发出声音,但它并不知道何时让声卡发出何种声音,需要应用程序告诉操作系统何时发出何种

音。


   我来为大家举个例子:这种关系好比有个机器人能够完成行走功能,但它并不知道何时往哪个方向走,需要人来

诉它往哪里走,这里机器人就好比操作系统、人就好比应用程序。那么应用程序是如何通知操作系统执行某个功能

的呢?有过编程经验的人都知道,在应用程序中要完成某个功能,都是以函数调用的形式实现的。同样,应用程序也

是通过函数调用的形式来通知操作系统的。操作系统所能完成的每一个功能,通常有一个特定函数与其对应,也就是

说操作系统把它所能完成的功能以函数的形式提供给应用程序使用。应用程序对这些函数的调用就叫做系统调用。而

这些函数的集合,就是windows操作系统提供给应用程序编程的接口,称为windows API 。


     这里,我再来简要的介绍下windows API,windows API是微软公司随Windows操作系统发布的应用程序接口,是

Windows系统为其下运行的各类应用程序提供的重要服务功能。微软的所有Win32平台都支持统一的API调用,包括函

数、结构、消息、宏及接口。通过Windows系统提供的API服务功能,应用程序可以充分挖掘Windows系统的潜力。API

的核心是一组用C语言编写的供外部应用程序调用的函数过程,这些函数封装在Windows系统的一系列DLL动态库文件

中。通过调用动态库文件中的函数,程序员可以在自己开发的应用中方便地向系统请求或执行更低级的设备访问,利

用和控制系统资源,实现与系统相同或相似的功能。由此可以降低应用系统开发的复杂性,提高开发效率,并且无论

是应用供应商还是最终用户都无需支付额外的费用。如Create windows 就是一个API函数,应用程序中调用这个函

数,操作系统就会按照该函数提供的参数信息产生一个相应的窗口。同样,操作系统也能将输入设备的变化上传给应

用程序。如用户在某个程序活动时按了一下键盘,操作系统马上能够感知到这一事件,并且能够知道用户按下的是哪

个键,操作系统并不决定这一事件如何作出反应,而是将这一事件转交给相应应用程序,由应用程序来决定如何对这

一事件作出反应。好,这里我再为大家举一个形象的例子:好比有一只蚊子叮了我们一口,我们的神经末梢,就相当

于操作系统,马上感知到这一事件,它不做什么决定,而是马上将这一事件传递给大脑,大脑在这里就相当于应用程

序。我们的大脑最终决定如何对这一事件作出反应,如将蚊子赶走,或是将蚊子拍死。对事件作出反应的过程就是消

息响应。 


     那么操作系统是怎样将感知到的事件传递给应用程序的呢?这是通过消息机制(message)来实现的。操作系统

将每一个事件都包装成一个称为消息的结构体MSG来传递给应用程序的。 

在这个系列课程中,来自微软的权威技术专家将向您解释Windows操作系统的内部工作原理,从系统架构的大局观出发,逐步展示进程、线程、安全机制、内存管理和存储管理等子系统的工作方式。通过对底层原理的揭示,使您更进一步的理解Windows上各类程序的工作方式和如何进行错误诊断及性能优化。 本次课程的内容编排得到了国内知名技术作家,《Windows Internals》一书的中文译者,潘爱民先生的大力支持,同时TechNet也邀请到了众多微软一线技术专家进行讲解。这是一个为IT专业人员量身定做的Windows内部知识课程,在介绍原理的同时,也紧密地围绕实际案例和常见的故障进行分析点评。这是一个系统的学习Windows底层工作机制的好机会,课程内容深入浅出,精彩纷呈,绝对不容错过。 深入研究Windows内部原理系列之一:Windows的昨天、今天和明天 讲师信息:潘爱民 2007年01月25日 14:00-15:30 Level: 300 著名技术作家、微软亚洲研究院研究员潘爱民老师将在这次课程中跟听众分享Windows的发展历程和技术精萃,描绘操作系统的体系架构、Vista的内核变更以及今后版本Windows的发展趋势。 深入研究Windows内部原理系列之二:Windows体系结构-从操作系统的角度 讲师信息:张银奎 2007年01月26日 14:00-15:30 Level: 400 操作系统是计算机系统的灵魂和管理中心,也是软件系统中最复杂的部分。本讲座将以生动的讲解和丰富的演示带您领略Windows操作系统的核心架构和主要组件,包括HAL、内核、执行体、系统进程(IDLE、SMSS.EXE、WinLogon.EXE)和Windows系统(CSRSS.EXE、WIN32K.SYS以及子系统DLL)等。并讨论中断管理、对象管理、和异常分发等系统机制和实现这些机制的基本数据结构。 深入研究Windows内部原理系列之三:Windows体系结构-从应用程序的角度 讲师信息:曾震宇 2007年01月29日 14:00-15:30 Level: 400 从服务器软件到Office办公应用,从联网游戏到即时消息,不管这些应用的复杂程度如何,他们都是一个个在操作系统控制和管理之下的可执行程序。本次课程邀请微软全球技术中心专家级工程师,为各位讲解一个程序是如何经历从启动、分配资源、运行、结束这一连串的过程,并且介绍其中的重要概念和排错诊断技巧。 深入研究Windows内部原理系列之四:Windows操作系统中的重要基本概念 讲师信息:高宇 2007年01月30日 14:00-15:30 Level: 400 进程、线程、资源分配、内存管理、Win32 API、服务、安全,这些是工作中常常提及但是又无法深入理解的神秘概念。在这次课程中,讲师将介绍Windows中最常见与最重要的一些基本概念. 使大家能够顺利地参与到本系列之后的讨论中去。 深入研究Windows内部原理系列之五:Windows Sysinternals工具集介绍 讲师信息:彭爱华 2007年01月31日 14:00-15:30 Level: 400 Sysinternals Suite(Windows Sysinternals工具集)包含一系列免费的系统工具,其中有大名鼎鼎的Process Explorer、FileMon、RegMon等(在Windows Vista下,FileMon和RegMon则被Process Monitor所代替),如果把系统管理员比喻成战士的话,那么Sysinternals Suite就是我们手中的良兵利器。熟悉和掌握这些工具,并且对Windows的体系有一定的了解,将大幅度的提高日常的诊断和排错能力。本课程将以任务驱动的模式,介绍几个经典的应用案例,来介绍Sysinternals Suite的强大功能。 深入研究Windows内部原理系列之六:Vista新特性底层揭秘 讲师信息:彭爱华 2007年02月01日 14:00-15:30 Level: 400 Windows Vista绝非仅仅是具有诸如3D切换、毛玻璃等炫目的界面效果,花钱购买了Windows Vista,而仅仅为了使用其界面效果,难免有点“买椟还珠”的感觉。实际上Windows Vista值得称道的是它具有很多全新的安全特性,例如用户帐户控制、IE保护模式、服务隔离和Windows资源保护等等。有了这些全新的安全特性,我们就可以在相当的程度上摆脱恶意软件的滋扰。Windows之父Jim Allchin曾经说过不要满足于只知道How-to、小技巧之类的知识,而是应该深入底层了解其内部原理。只有了解了这些安全特性的内在原理,才
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值