Windows2000XP启动过程详解2007

Windows2000XP启动过程详解2007
Windows2000XP启动过程详解2007

Windows2000XP启动过程详解2007-07-15 00:34 在基于INTEL的计算机上,Windows2000/XP的启动过程大致可分为5个步骤:预启动,启动,装载内核,初始化内核以及用户登录。下面分别展开介绍:

一.预启动

首先计算机通电进行自检,并由BIOS(即基本输入输出系统)完成基本硬件配置,然后读取硬盘的MBR(主引导记录)检查硬盘分区表以确定引导分区,并将引导分区上的操作系统引导扇区调入内存中执行,此处即执行NTLDR(操作系统加载器)文件。

* Windows2000/XP支持多重启动。它在安装时会首先将已存在的其它操作系统引导扇区保存为BOOTSECT.DOS文件(位于活动分区根目录下),并修改系统引导扇区,以便系统启动时加载NTLDR文件,从而达到多重启动的目的。而Windows98则不具备这个功能,因此如果先装好Windows2000/XP后再装Windows98会破坏掉Windows2000/XP的引导记录,导致2000/XP不能启动。

二.启动

1.首先进行出始化,NTLDR会把处理器从实模式转换为32位保护模式。

2.读取BOOT.INI文件。该文件位于活动分区根目录下,它的作用是使系统在启动过程中出现选择菜单,由用户选择希望启动的操作系统。如果选择启动Windows2000/XP,NTLDR 会继续引导进行以下过程;如果选择为非Windows2000/XP系统,NTLDR则会读取系统引导扇区副本BOTSECT.DOS转入启动相应系统。

* 其中[BOOT LOADER]即操作系统加载器,指定系统选择菜单默认等待时间和默认引导的操作系统。可手工修改或在控制面板中修改,为了保险起见,建议在控制面板中修改。依次选择控制面板-〉系统-〉高级->启动和故障恢复,即可更改相关设置。(在WindowsXP 中还有另一种方法,即运行msconfig(系统配置实用程序)。

[OPERA TING SYSTEMS]段指定操作系统列表,由双引号括起来的部分就是列表所显示的内容,可任意修改,使其更加个性化。

* 形如MULTI(0)DISK(0)RDISK(0)PARTITION(1)格式的语句被称为ARC路径,它的格式为:MULTI()——指定磁盘控制器(若为SCSI控制器,则此处应替换为SCSI());DISK()——指定SCSI设备编号(对于MULTI该处值始终为0);RDISK()——指定IDE设备编号(对于SCSI,此处被忽略);PARTITION()——指定分区编号。除分区编号由1开始外,其余编号均从0开始。

参数/FASTDETECT表示禁用串行鼠标检测,是系统默认值。还有几个常见参数:MAXMEM——指定Windows2000/XP可用内存容量;BASEVIDEO——使用标准VGA显示驱动程序;NOGUIBOOT——启动过程中不显示图形屏幕;SOS——加载设备驱动程序时显示其名称。

* 在操作系统选择菜单中的中文字体由位于活动分区根目录下的BOOTFONT.BIN文件提供。

3.系统加载https://www.360docs.net/doc/ed16228764.html,文件。由它来检测机器硬件,如并行端口,显示适配器等等,并将收集到的硬件列表返回NTLDR用于以后在注册表中注册保存。

4.如果Windows2000/XP有多个硬件配置文件,此时会出现选择菜单,等待用户确定要使用的硬件配置文件,否则直接跳过此步,启用默认配置。

* 硬件配置文件是指保存计算机特定硬件配置的系统文件。可以创建多个不同的硬件配置文件以满足计算机在不同场合的应用。可以依次选择控制面板-〉系统->硬件-〉硬件配置文件作出修改。

三.装载内核

引导过程开始装载Windows2000/XP内核NTOSKRNL.EXE。这个文件位于

Windows2000/XP安装文件夹下的SYSTEM32文件夹中。随后,硬件抽象层(HAL)被引导进程加载,完成本步骤。

* 硬件抽象层(HAL):隐藏特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。

四.初始化内核

内核完成初始化,NTLDR将控制权转交Windows2000/XP内核,后者开始装载并初始化设备驱动程序,以及启动WIN32子系统和WINDOWS2000/XP服务。

五.用户登录

开始登录进程。由WIN32子系统启动WINLOGON.EXE,并由它启动LOCAL SECURITY AUTHORITY(LSASS.EXE)显示登录对话框。用户登录后,WINDOWS2000/XP会继续配置网络设备和用户环境。最后,伴随着微软之声和我们熟悉的个性化桌面,WINDOWS2000/XP漫长的启动过程终于完成。呵,是不是睡着了,醒醒吧,系统启动成功,您现在该干嘛就干嘛!

WINXP启动的简单过程

打开电源,ROM BIOS先检测内存是否异常,接着是显卡,输入输出端口,软硬盘等,如果没有问题POST自检结束,开始寻找启动文件把它送到内存,读取Io.sys,https://www.360docs.net/doc/ed16228764.html,,msdos.sys,config.sys.autoexec.bat,等等文件并装载其中的命令,最后读https://www.360docs.net/doc/ed16228764.html,启动windows,启动结束.IO.SYS是最先读取的系统文件,他和https://www.360docs.net/doc/ed16228764.html,,msdos.sys组成了最基本的系统,这个文件一般是不能直接修改的,我也就是在以前用WIN98β3版时,由于使用日期过期了,才用pctools改了一下,以便继续使用至可以搞到正式版的win98。在读取io.sys的同时读取himem.sys,ifship,setver.exe,dbispace.bin文件,一般用户可以通过cinfig.sys,autoexec.bat里的命令来修改io.sys里的项目,关于这两个文件的里关于命令大部分于说过了。MSDOS.SYS在DOS中是负责内存管理,系统读取的启动文件,在windows中主要用于启动时调整启动的选项这个文件修改很容易,举部分例子如下:

[paths]

HOSTWinBootDRV=C:启动驱动器的路径

WinBootDir=C:\wondows启动路径

WINDIR=C:\wondows 装载操作系统的路径

[OPTION]

AUTOSCAN="" 用于设定启动时是否检查硬盘(上次有人发帖有开机老是系统扫描的可能就是这儿有问题)

设为1,有提示扫描,设为2,无提示直接扫描,设为0不扫描。

BOOTDELAY=““设置启动时等待按F8的时间,一般为2(秒),设为0就可能调不出启动选项的菜单。

BOOTGUI=1 设置为1时进入图形界面,设为0时进字符界面,可以通过输入

https://www.360docs.net/doc/ed16228764.html,进入图形界面。

其他的选项还有很多,就不多说了。

https://www.360docs.net/doc/ed16228764.html,内部命令和一些特殊命令的解释程序

CONFIG.SYS,autoexec.bat,https://www.360docs.net/doc/ed16228764.html,.system.ini.win.ini就不一一解释了

Windows XP启动过程详述

从按下计算机开关启动计算机,到登入到桌面完成启动,一共经过了以下几个阶段:

1. 预引导(Pre-Boot)阶段;

2. 引导阶段;

3. 加载内核阶段;

4. 初始化内核阶段;

5. 登陆。

每个启动阶段的详细介绍

a) 预引导阶段

在按下计算机电源使计算机启动,并且在Windows XP专业版操作系统启动之前这段时间,我们称之为预引导(Pre-Boot)阶段,在这个阶段里,计算机首先运行Power On Self Test (POST),POST检测系统的总内存

以及其他硬件设备的现状。如果计算机系统的BIOS(基础输入/输出系统)是即插即用的,那么计算机硬件设备将经过检验以及完成配置。计算机的基础输入/输出系统(BIOS)定位计算机的引导设备,然后MBR(Master Boot

Record)被加载并运行。在预引导阶段,计算机要加载Windows XP的NTLDR文件。

b) 引导阶段

Windows XP Professional引导阶段包含4个小的阶段。

首先,计算机要经过初始引导加载器阶段(Initial Boot Loader),在这个阶段里,NTLDR 将计算机微处理器从实模式转换为32位平面内存模式。在实模式中,系统为MS-DOS保留640kb内存,其余内存视为扩展内存,而在32位平面内存模式中,系统(Windows XP Professional)视所有内存为可用内存。接着,NTLDR启动内建的mini-file system drivers,通过这个步骤,使NTLDR可以识别每一个用NTFS或者FA T文件系统格式化的分区,以便发现以及加载Windows XP Professional,到这里,初始引导加载器阶段就结束了。

接着系统来到了操作系统选择阶段,如果计算机安装了不止一个操作系统(也就是多系统),而且正确设置了boot.ini使系统提供操作系统选择的条件下,计算机显示器会显示一个操作系统选单,这是NTLDR读取boot.ini的结果。(至于操作系统选单,由于暂时条件不够,没办法截图,但是笔者模拟了一个,见图一。)

在boot.ini中,主要包含以下内容:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft

Windows XP Professional" /fastdetect

multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows Windows

2000 Professional"

.

其中,multi(0)表示磁盘控制器,disk(0)rdisk(0)表示磁盘,partition(x)表示分区。NTLDR就是从这里查找Windows XP Professional的系统文件的位置的。(*本文不会更详细地讲解boot.ini的组成结构,因为其与本主题关系不大,如果想了解,可以到一些专门的网站处查询相关信息。)如果在boot.ini中只有一个操作系统选项,或者把timeout值设为0,则系统不出现操作系统选择菜单,直接引导到那个唯一的系统或者默认的系统。在选择启动Windows XP Professional后,操作系统选择阶段结束,硬件检测阶段开始。

在硬件检测阶段中,https://www.360docs.net/doc/ed16228764.html,将收集计算机硬件信息列表并将列表返回到NTLDR,这样做的目的是便于以后将这些硬件信息加入到注册表HKEY_LOCAL_MACHINE下的hardware中。

硬件检测完成后,进入配置选择阶段。如果计算机含有多个硬件配置文件列表,可以通

过按上下按钮来选择。如果只有一个硬件配置文件,计算机不显示此屏幕而直接使用默认的配置文件加载Windows XP专业版。

引导阶段结束。在引导阶段,系统要用到的文件一共有:NTLDR,Boot.ini,https://www.360docs.net/doc/ed16228764.html,,ntokrnl.exe,Ntbootdd.sys,bootsect.dos(可选的)。

c) 加载内核阶段

在加载内核阶段,ntldr加载称为Windows XP内核的ntokrnl.exe。系统加载了Windows XP内核但是没有将它初始化。接着ntldr加载硬件抽象层(HAL,hal.dll),然后,系统继续加载HKEY_LOCAL_MACHINE\system键,NTLDR读取select键来决定哪一个Control Set 将被加载。控制集中包含设备的驱动程序以及需要加载的服务。NTLDR加载HKEY_LOCAL_MACHINE\system\service\...下start键值为0的最底层设备驱动。当作为Control Set的镜像的Current Control Set被加载时,ntldr传递控制给内核,初始化内核阶段就开始了。

d) 初始化内核阶段

在初始化内核阶段开始的时候,彩色的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的设备驱动程序。这些设备驱动程序在加载的时候便完成初始化,如果有错误发生,内核使用ErrorControl键值来决定如何处理,值为3时,错误标志为危机/关键,系统初次遇到错误会以LastKnownGood Control Set重新启动,如果使用LastKnownGood Control Set启动仍然产生错误,系统报告启动失败,错误信息将被显示,系统停止启动;值为2时错误情况为严重,系统启动失败并且以LastKnownGood Control Set重新启动,如果系统启动已经在使用LastKnownGood值,它会忽略错误并且继续启动;当值是1的时候错误为普通,系统会产生一个错误信息,但是仍然会忽略这个错误并且继续启动;当值是0的时候忽略,系统不会显示任何错误信息而继续运行

Session Manager启动了Windows XP高级子系统以及服务,Session Manager启动控制所有输入、输出设备以及访问显示器屏幕的Win32子系统以及Winlogon进程,初始化内核完毕。

e) 登陆

Winlogon.exe启动Local Security Authority,同时Windows XP Professional欢迎屏幕或者登陆对话框显示,这时候,系统还可能在后台继续初始化刚才没有完成的驱动程序。

提示输入有效的用户名或密码。

Service Controller最后执行以及扫描HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servives来检查是否还有服务需要加载,Service Controller查找start键值为2或更高的服务,服务按照start的值以及DependOnGroup和DepandOnService的值来加载。

只有用户成功登陆到计算机后,Windows XP的启动才被认为是完成,在成功登陆后,系统拷贝Clone Control Set到LastKnownGood Control Set,完成这一步骤后,系统才意味着已经成功引导了。

Windows启动过程详解[z]

From: https://www.360docs.net/doc/ed16228764.html,/jacky0922/archive/2007/10/16/1828396.aspx

我们每天都在和Windows打交道,很多人可能每天都要面对多次Windows的启动过程,可是您知道在Windows的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?这些就是本文试图告诉您的。

本文的适用范围

随着技术的发展,我们能够见到的计算机硬件种类越来越多。以计算机上最重要的组件CPU 来说,目前就有很多选择。当然,这里的选择并不是说AMD或者Intel这种产品品牌,而是指其内部的体系结构。目前常见的CPU体系结构主要基于复杂指令集(Complex Instruction Set Computing,CISC)或者精简指令集(Reduced Instruction Set Computing,RISC),我们常用的Intel的Pentium、Celeron系列以及AMD的Athlon、Sempron系列都是基于复杂指令集的,而这些基于复杂指令集的CPU还有32位和64位的寄存器数据带宽区别。关于这些指令集以及寄存器数据带宽之间的区别等内容比较繁杂,而且不是本文的重点,感兴趣的朋友可以自己在网上搜索相关内容。因为CPU种类的不同,在不同CPU的系统中运行的Windows的启动过程也有一些小的不同。本文将会以目前来说最普遍的,在x86架构的系统上安装的32位Windows XP Professional为例向您介绍。

基本上,操作系统的引导过程是从计算机通电自检完成之后开始进行的,而这一过程又可以细分为预引导、引导、载入内核、初始化内核,以及登录这五个阶段。

在继续阅读之前,首先请注意图1,这是Windows XP的操作系统结构,其中包括了一些在后台工作的组件以及经常和我们打交道的程序。在了解Windows XP的启动过程之前,对系统结构有一个初步概念是很重要的。

预引导阶段

当我们打开计算机电源后,预引导过程就开始运行了。在这个过程中,计算机硬件首先要完成通电自检(Power-On Self Test,POST),这一步主要会对计算机中安装的处理器、内存等硬件进行检测,如果一切正常,则会继续下面的过程。

如果您的计算机BIOS(固化在计算机主板上芯片中的一些程序)是支持即插即用的(基本上,现阶段能够买到的计算机和硬件都是支持这一标准的),而且所有硬件设备都已经被自动识别和配置,接下来计算机将会定位引导设备(例如第一块硬盘,设备的引导顺序可以在计算机的BIOS设置中修改),然后从引导设备中读取并运行主引导记录(Master Boot Record,MBR)。至此,预引导阶段成功完成。

引导阶段

引导阶段又可以分为:初始化引导载入程序、操作系统选择、硬件检测、硬件配置文件选择这四个步骤。在这一过程中需要使用的文件包括:Ntldr、Boot.ini、https://www.360docs.net/doc/ed16228764.html,、Ntoskrnl.exe、Ntbootdd.sys、Bootsect.dos(非必须)。

初始化引导载入程序

在这一阶段,首先出场的是ntldr,该程序会将处理器由实模式(Real Mode)切换为32位平坦内存模式(32-bit Flat Memory Mode)。不使用实模式的主要原因是,在实模式下,内存中的前640 KB是为MS-DOS保留的,而剩余内存则会被当作扩展内存使用,这样Windows XP将无法使用全部的物理内存。而32位平坦内存模式下就好多了,Windows XP自身将能

使用计算机上安装的所有内存(其实最多也只能用2 GB,这是32位操作系统的设计缺陷。关于大内存的问题因为和本文的内容关系不大,因此这里不表,日后有机会再单独撰文介绍)。

接下来ntldr会寻找系统自带的一个微型的文件系统驱动。大家都知道,DOS和Windows 9x 操作系统是无法读写NTFS文件系统的分区的,那么Windows XP的安装程序为什么可以读写NTFS分区?其实这就是微型文件系统驱动的功劳了。只有在载入了这个驱动之后,ntldr 才能找到您硬盘上被格式化为NTFS或者FA T/FA T32文件系统的分区。如果这个驱动损坏了,就算您的硬盘上已经有分区,ntldr也认不出来的。

读取了文件系统驱动,并成功找到硬盘上的分区后,引导载入程序的初始化过程就已经完成了,随后我们将会进行到下一步。

操作系统选择

这一步并非必须的,只有在您计算机中安装了多个Windows操作系统的时候才会出现。不过无论您的计算机中安装了几个Windows,计算机启动的过程中,这一步都会按照设计运行一遍,只有在确实安装了多个系统的时候,系统才会显示一个列表,让您选择想要引导的系统。但如果您只有一个系统,那么引导程序在判断完之后会直接进入到下一阶段。

如果您已经安装了多个Windows操作系统(泛指Windows 2000/XP/2003这类较新的系统,不包括Windows 9x系统),那么所有的记录都会被保存在系统盘根目录下一个名为boot.ini 的文件中。ntldr程序在完成了初始化工作之后就会从硬盘上读取boot.ini文件,并根据其中的内容判断计算机上安装了几个Windows,它们分别安装在第几块硬盘的第几个分区上。如果只安装了一个,那么就直接跳过这一步。但如果安装了多个,那么ntldr就会根据文件中的记录显示一个操作系统选择列表,并默认持续30秒。只要您做出选择,ntldr就会自动开始装载被选择的系统。如果您没有选择,那么30秒后,ntldr会开始载入默认的操作系统。至此操作系统选择这一步已经成功完成。

小知识:系统盘(System V olume)和引导盘(Boot V olume)有什么区别?

这是两个很容易被人搞混的概念,因为根据微软对这两个名词的定义,很容易令人产生误解。根据微软的定义,系统盘是指保存了用于引导Windows的文件(根据前面的介绍,我们已经清楚,这些文件是指ntldr、boot.ini等)的硬盘分区/卷;而引导盘是指保存了Windows 系统文件的硬盘分区/卷。如果只有一个操作系统的话,我们通常会将其安装在第一个物理硬盘的第一个主分区(通常被识别为C盘)上,那么系统盘和引导盘属于同一个分区。但是,如果您将您的Windows安装到了其他分区中,例如D盘中,那么系统盘仍然是您的C 盘(因为尽管Windows被安装到了其他盘,但是引导系统所用的文件还是会保存在C盘的根目录下),但您的引导盘将会变成是D盘。很奇怪的规定,保存了引导系统所需文件的分区被叫做“系统盘”,反而保存了操作系统文件的分区被叫做“引导盘”,正好颠倒了。不过微软就是这样规定的。

硬件检测

这一过程中主要需要用到https://www.360docs.net/doc/ed16228764.html,和Ntldr。当我们在前面的操作系统选择阶段选择了想要载入的Windows系统之后,https://www.360docs.net/doc/ed16228764.html,首先要将当前计算机中安装的所有硬件信息收集起来,并列成一个表,接着将该表交给Ntldr(这个表的信息稍后会被用来创建注册表中有关硬件的键)。这里需要被收集信息的硬件类型包括:总线/适配器类型、显卡、通讯端口、串口、浮点运算器(CPU)、可移动存储器、键盘、指示装置(鼠标)。至此,硬件检测操作

已经成功完成。

配置文件选择

这一步也不是必须的。只有在计算机(常用于笔记本电脑)中创建了多个硬件配置文件的时候才需要处理这一步。

小知识:什么是硬件配置文件?为什么要用它?

这个功能比较适合笔记本电脑用户。如果您有一台笔记本电脑,主要在办公室和家里使用,在办公室的时候您可能会使用网卡将其接入公司的局域网,公司使用了DHCP服务器为客户端指派IP地址;但是回到家之后,没有了DHCP服务器,启动系统的时候系统将会用很长时间寻找那个不存在的DHCP服务器,这将延长系统的启动时间。在这种情况下就可以分别在办公室和家里使用不同的硬件配置文件了,我们可以通过硬件配置文件决定在某个配置文件中使用哪些硬件,不使用哪些硬件。例如前面列举的例子,我们可以为笔记本电脑在家里和办公室分别创建独立的配置文件,而家庭用的配置文件中会将网卡禁用。这样,回家后使用家用的配置文件,系统启动的时候会直接禁用网卡,也就避免了寻找不存在的DHCP 服务器延长系统启动时间。

如果Ntldr检测到系统中创建了多个硬件配置文件,那么它就会在这时候将所有可用的配置文件列表显示出来,供用户选择。这里其实和操作系统的选择类似,不管系统中有没有创建多个配置文件,Ntldr都会进行这一步操作,不过只有在确实检测到多个硬件配置文件的时候才会显示文件列表。

载入内核阶段

在这一阶段,Ntldr会载入Windows XP的内核文件:Ntoskrnl.exe,但这里仅仅是载入,内核此时还不会被初始化。随后被载入的是硬件抽象层(hal.dll)。

硬件抽象层其实是内存中运行的一个程序,这个程序在Windows XP内核和物理硬件之间起到了桥梁的作用。正常情况下,操作系统和应用程序无法直接与物理硬件打交道,只有Windows内核和少量内核模式的系统服务可以直接与硬件交互。而其他大部分系统服务以及应用程序,如果想要和硬件交互,就必须透过硬件抽象层进行。

小知识:为什么要使用硬件抽象层

硬件抽象层的使用主要有两个原因:1,忽略无效甚至错误的硬件调用。如果没有硬件抽象层,那么硬件上发生的所有调用甚至错误都将会反馈给操作系统,这可能会导致系统不稳定。而硬件抽象层就像工作在物理硬件和操作系统内核之间的一个过滤器,可以将认为会对操作系统产生危害的调用和错误全部过滤掉,这样直接提高了系统的稳定性;2,多平台之间的转换翻译。这个原因可以列举一个形象的例子,假设每个物理硬件都使用不同的语言,而每个操作系统组件或者应用程序则使用了同样的语言,那么不同物理硬件和系统之间的交流将会是混乱而且很没有效率的。如果有了硬件抽象层,等于给软硬件之间安排了一位翻译,这位翻译懂所有硬件的语言,并会将硬件说的话用系统或者软件能够理解的语言原意转达给操作系统和软件。通过这个机制,操作系统对硬件的支持可以得到极大的提高。

硬件抽象层被载入后,接下来要被内核载入的是HKEY_LOCAL_MACHINE\System注册表键。Ntldr会根据载入的Select键的内容判断接下来需要载入哪个Control Set注册表键(图2),而这些键会决定随后系统将载入哪些设备驱动或者启动哪些服务。这些注册表键的内容被载入后,系统将进入初始化内核阶段,这时候ntldr会将系统的控制权交给操作系统内核。

初始化内核阶段

当进入到这一阶段的时候,计算机屏幕上就会显示Windows XP的标志了,同时还会显示一条滚动的进度条,这个进度条可能会滚动若干圈(图3)。从这一步开始我们才能从屏幕上队系统的启动有一个直观的印象。在这一阶段中主要会完成这四项任务:创建Hardware注册表键、对Control Set注册表键进行复制、载入和初始化设备驱动,以及启动服务。

创建Hardware注册表键

首先要在注册表中创建Hardware键,Windows内核会使用在前面的硬件检测阶段收集到的硬件信息来创建HKEY_LOCAL_MACHINE\Hardware键,也就是说,注册表中该键的内容并不是固定的,而是会根据当前系统中的硬件配置情况动态更新。

对Control Set注册表键进行复制

如果Hardware注册表键创建成功,那么系统内核将会对Control Set键的内容创建一个备份。这个备份将会被用在系统的高级启动菜单中的“最后一次正确配置”选项。例如,如果我们安装了一个新的显卡驱动,重启动系统之后Hardware注册表键还没有创建成功系统就已经崩溃了,这时候如果选择“最后一次正确配置”选项,系统将会自动使用上一次的Control Set 注册表键的备份内容重新生成Hardware键,这样就可以撤销掉之前因为安装了新的显卡驱动对系统设置的更改。

载入和初始化设备驱动

在这一阶段里,操作系统内核首先会初始化之前在载入内核阶段载入的底层设备驱动,然后内核会在注册表的HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services键下查找所有Start键值为“1”的设备驱动(图4)。这些设备驱动将会在载入之后立刻进行初始化,如果在这一过程中发生了任何错误,系统内核将会自动根据设备驱动的“ErrorControl”键的数值进行处理。“ErrorControl”键的键值共有四种,分别具有如下含义:

0,忽略,继续引导,不显示错误信息。

1,正常,继续引导,显示错误信息。

2,恢复,停止引导,使用“最后一次正确配置”选项重启动系统。如果依然出错则会忽略该错误。

3,严重,停止引导,使用“最后一次正确配置”选项重启动系统。如果依然出错则会停止引导,并显示一条错误信息。

启动服务

系统内核成功载入,并且成功初始化所有底层设备驱动后,会话管理器会开始启动高层子系统和服务,然后启动Win32子系统。Win32子系统的作用是控制所有输入/输出设备以及访问显示设备。当所有这些操作都完成后,Windows的图形界面就可以显示出来了,同时我们也将可以使用键盘以及其他I/O设备。

接下来会话管理器会启动Winlogon进程,至此,初始化内核阶段已经成功完成,这时候用户就可以开始登录了。

登录阶段

在这一阶段,由会话管理器启动的winlogon.exe进程将会启动本地安全性授权(Local Security Authority,lsass.exe)子系统。到这一步之后,屏幕上将会显示Windows XP的欢迎界面(图5)或者登录界面,这时候您已经可以顺利进行登录了。不过与此同时,系统的启动还没有彻底完成,后台可能仍然在加载一些非关键的设备驱动。

随后系统会再次扫描HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services注册表键(还记得第一次扫描这里是在启动进行到那一步的时候吗?),并寻找所有Start键的数值是“2”或者更大数字的服务。这些服务就是非关键服务,系统直到用户成功登录之后才开始加载这些服务。

小知识:为什么Windows XP的启动速度要比Windows 2000快

目前所有Windows操作系统中,可能Windows 2000的启动速度是最慢的,这并不是因为计算机硬件的性能不够,而是因为Windows 2000的设计“先天不足”。为了弥补这一不足,微软在开发Windows XP的时候想出了一个新方法,那就是,所有不重要的设备驱动和服务都将在用户登录系统之后才加载和运行。也就是说,在系统启动过程中,加载和运行的程序全部都是运行系统所必需的,这样才能用最短的时间显示出登录界面,供用户登录。而用户登录后系同才开始加载非关键组件。可以说,Windows XP启动速度的加快实际上是一种“投机取巧”的作法,不过这种作法确实相当有效。然而这种设计也带来了一些问题,例如有些朋友反映,为什么自己的系统已经成功登录了,可是非要过好几分钟之后桌面上才会显示出任务栏以及桌面图标等内容。其实这就是因为在等待的这几分钟里,系统正在忙于处理那些不重要的服务和组件。如果需要处理的内容太多,或者计算机的硬件配置不够强大,就有可能产生这种现象。

小知识:如何控制非关键服务的启动顺序

您已经知道了,非关键服务是在用户成功登录之后才加载的,那么我们能否人为控制这些服务加载的顺序?这其实是很简单的。服务的启动顺序也是靠各自Start注册表键的数值以及每个服务之间的依存关系决定的,假设服务A的运行必须依靠服务B,那么在服务B正常启动之前,服务A都无法成功启动。假设服务C的Start键数值是3,而服务D的Start键数值是6,那么服务C将会优先于服务D启动(数值越小优先级越高)。

到这里,Windows XP的启动过程就算全部完成了

育龙网校WWW.CHINA- B.C0M 2009年04月25日来源:互联网育龙网核心提示:我们天天都在和Windows打交道,很多人甚至可能在一天当中要面对多次Windows的启动过程,可是你知道在Windows的启动过程背后隐藏着-

我们天天都在和Windows打交道,很多人甚至可能在一天当中要面对多次Windows的启动过程,可是你知道在Windows的启动过程背后隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?本文将试图为你解释上述的迷惑。

随着技术的发展,我们能够见到的计算机硬件种类越来越多。以计算机上最重要的组件CPU 来说,目前就有很多选择。目前常见的CPU体系结构主要基于复杂指令集或者精简指令集,我们常用的英特尔的Pentium、Celeron系列以及AMD的Athlon、Sempron系列处理器都是基于复杂指令集的,而这些基于复杂指令集的CPU还有32位和64位的寄存器数据带宽的区别。因为CPU种类的不同,在不同CPU的系统中运行的Windows系统其启动过程也有一些小的不同。本文将会以目前来说最普遍的,在x86架构的系统上安装的32位WindowsXPProfessional为例向你介绍。

基本上,操作系统的引导过程是从计算机通电自检完成之后开始进行的,而这一过程又可以细分为预引导、引导、载入内核、初始化内核,以及登录这五个阶段。

在继续阅读之前,首先请注重图1,这是WindowsXP的操作系统结构,其中包括了一些在后台工作的组件以及经常和我们打交道的程序。在了解WindowsXP的启动过程之前,对系统结构有一个初步概念是很重要的。预引导阶段当我们打开计算机电源后,预引导过程就开始运行了。在这个过程中,计算机硬件首先要完成通电自检,这一步主要会对计算机中安装的处理器、内存等硬件进行检测,假如一切正常,则会继续下面的过程。

假如计算机BIOS是支持即插即用的,而且所有硬件设备都已经被自动识别和配置,接下来计算机将会定位引导设备,然后从引导设备中读取并运行主引导记录。至此,预引导阶段成功完成。引导阶段引导阶段又可以分为:初始化引导载入程序、操作系统选择、硬件检测、硬件配置文件选择这四个步骤。在这一过程中需要使用的文件包括:Ntldr、Boot.ini、https://www.360docs.net/doc/ed16228764.html,、Ntoskrnl.exe、Ntbootdd.sys、Bootsect.dos。初始化引导载入程序

在这一阶段,首先出场的是ntldr,该程序会将处理器由实模式切换为32位平坦内存模式。不使用实模式的主要原因是,在实模式下,内存中的前640KB是为MS-DOS保留的,而剩余内存则会被当作扩展内存使用,这样WindowsXP将无法使用全部的物理内存。而32位平坦内存模式下就好多了,WindowsXP自身将能使用计算机上安装的所有内存。

接下来ntldr会寻找系统自带的一个微型的文件系统驱动。大家都知道,DOS和Windows9x 操作系统是无法读写NTFS文件系统分区的,那么WindowsXP的安装程序为什么可以读写NTFS分区?其实这就是微型文件系统驱动的功劳了。只有在载入了这个驱动之后,ntldr才能找到硬盘上被格式化为NTFS或者FA T/FA T32文件系统的分区。假如这个驱动损坏了,就算硬盘上已经有分区,ntldr也认不出来。

读取了文件系统驱动,并成功找到硬盘上的分区后,引导载入程序的初始化过程就已经完成了,随后我们将会进行下一步。操作系统选择

这一步并非必须,只有在计算机中安装了多个Windows操作系统的时候才会出现。不过无论计算机中安装了几个Windows,计算机启动的过程中,这一步都会按照设计运行一遍,但只有在确实安装了多个系统的时候,系统才会显示一个列表,让你选择想要引导的系统。假如已经安装了多个Windows操作系统,那么所有的记录都会被保存在系统盘根目录下一个名为boot.ini的文件中。ntldr程序在完成了初始化工作之后就会从硬盘上读取boot.ini文件,并根据其中的内容判定计算机上安装了几个Windows,它们分别安装在第几块硬盘的第几个分区上。假如只安装了一个,那么就直接跳过这一步。但假如安装了多个,那么ntldr 就会根据文件中的记录显示一个操作系统选择列表,并默认持续30秒。假如你没有选择,那么30秒后,ntldr会开始载入默认的操作系统。至此操作系统选择这一步已经成功完成。小知识:系统盘和引导盘

这是两个很轻易被人搞混的概念。根据微软的定义,系统盘是指保存了用于引导Windows 的文件的硬盘分区/卷;而引导盘是指保存了Windows系统文件的硬盘分区/卷。假如只有一个操作系统的话,我们通常会将其安装在第一个物理硬盘的第一个主分区上,那么系统盘和

引导盘属于同一个分区。但是,假如Windows安装到了其他分区中,例如D盘中,那么系统盘仍然是C盘,但您的引导盘将会变成是D盘。很难理解保存了引导系统所需文件的分区被叫做“系统盘”,而保存了操作系统文件的分区被叫做“引导盘”,不过这是出自微软的定义。硬件检测

这一过程中主要需要用到https://www.360docs.net/doc/ed16228764.html,和Ntldr。当我们在前面的操作系统选择阶段选择了想要载入的Windows系统之后,https://www.360docs.net/doc/ed16228764.html,首先要将当前计算机中安装的所有硬件信息收集起来,并列成一个表,接着将该表交给Ntldr。这里需要被收集信息的硬件类型包括:总线/适配器类型、显卡、通讯端口、串口、浮点运算器、可移动存储器、键盘、指示装置。至此,硬件检测操作已经成功完成。配置文件选择

这一步也不是必须的。只有在计算机中创建了多个硬件配置文件的时候才需要处理这一步。小知识:硬件配置文件

这个功能比较适合笔记本电脑用户。假如你有一台笔记本电脑,主要在办公室和家里使用,在办公室的时候可能会使用网卡将其接入公司的局域网,公司使用了DHCP服务器为客户端指派IP地址;但是回到家之后,没有了DHCP服务器,启动系统的时候系统将会用很长时间寻找那个不存在的DHCP服务器,这会延长系统的启动时间。在这种情况下就可以分别在办公室和家里使用不同的硬件配置文件了,我们可以通过硬件配置文件决定在某个配置文件中使用哪些硬件,不使用哪些硬件。例如前面的例子,我们可以为笔记本电脑在家里和办公室分别创建独立的配置文件,而家庭用的配置文件中会将网卡禁用。这样,回家后使用家用的配置文件,系统启动的时候会直接禁用网卡,也就避免了寻找不存在的DHCP服务器延长系统启动时间。

假如Ntldr检测到系统中创建了多个硬件配置文件,那么它就会在这时候将所有可用的配置文件列表显示出来,供用户选择。这里其实和操作系统的选择类似,不管系统中有没有创建多个配置文件,Ntldr都会进行这一步操作,不过只有在确实检测到多个硬件配置文件的时候才会显示文件列表。载入内核阶段在这一阶段,ntldr会载入WindowsXP的内核文件:Ntoskrnl.exe,但这里仅仅是载入,内核此时还不会被初始化。随后被载入的是硬件抽象层。硬件抽象层其实是内存中运行的一个程序,这个程序在WindowsXP内核和物理硬件之间起到了桥梁的作用。正常情况下,操作系统和应用程序无法直接与物理硬件打交道,只有Windows内核和少量内核模式的系统服务可以直接与硬件交互。而其他大部分系统服务以及应用程序,假如想要和硬件交互,就必须通过硬件抽象层进行。

小知识:硬件抽象层

硬件抽象层的使用主要有两个原因:第一,忽略无效甚至错误的硬件调用。假如没有硬件抽象层,那么硬件上发生的所有调用甚至错误都将会反馈给操作系统,这可能会导致系统不稳定。而硬件抽象层就像工作在物理硬件和操作系统内核之间的一个过滤器,可以将认为会对操作系统产生危害的调用和错误全部过滤掉,这样直接提高了系统的稳定性;第二,多平台之间的转换翻译。这个原因可以列举一个形象的例子,假设每个物理硬件都使用不同的语言,而每个操作系统组件或者应用程序则使用了同样的语言,那么不同物理硬件和系统之间的交流将会是混乱而且很没有效率的。假如有了硬件抽象层,等于给软硬件之间安排了一位翻译,这位翻译懂所有硬件的语言,并会将硬件说的话用系统或者软件能够理解的语言原意转达给操作系统和软件。通过这个机制,操作系统对硬件的支持可以得到极大的提高。

硬件抽象层被载入后,接下来要被内核载入的是HKEY_LOCAL_MACHINE“System注册表键。Ntldr会根据载入的Select键的内容判定接下来需要载入哪个ControlSet注册表键,而这些键会决定随后系统将载入哪些设备驱动或者启动哪些服务。这些注册表键的内容被载入后,系统将进入初始化内核阶段,这时候ntldr会将系统的控制权交给操作系统内核。初始

化内核阶段当进入到这一阶段的时候,计算机屏幕上就会显示WindowsXP的标志了,同时还会显示一个滚动的进度条,这个进度条可能会滚动若干次。从这一步开始我们才能从屏幕上对系统的启动有一个直观的印象。在这一阶段中主要会完成四项任务:创建Hardware注册表键、对ControlSet注册表键进行复制、载入和初始化设备驱动,以及启动服务。创建Hardware注册表键

首先要在注册表中创建Hardware键,Windows内核会使用在前面的硬件检测阶段收集到的硬件信息来创建HKEY_LOCAL_MACHINE“Hardware键。也就是说,注册表中该键的内容并不是固定的,而是会根据当前系统中的硬件配置情况动态更新。对ControlSet注册表键进行复制

假如Hardware注册表键创建成功,那么系统内核将会对ControlSet键的内容创建一个备份。这个备份将会被用在系统的高级启动菜单中的“最后一次正确配置”选项。例如,假如我们安装了一个新的显卡驱动,重启动系统之后Hardware注册表键还没有创建成功系统就已经崩溃了,这时候假如选择“最后一次正确配置”选项,系统将会自动使用上一次的ControlSet注册表键的备份内容重新生成Hardware键,这样就可以撤销掉之前因为安装了新的显卡驱动对系统设置的更改。载入和初始化设备驱动

在这一阶段里,操作系统内核首先会初始化之前在载入内核阶段载入的底层设备驱动,然后内核会在注册表的HKEY_LOCAL_MACHINE“System“CurrentControlSet“Services键下查找所有Start键值为“1”的设备驱动。这些设备驱动将会在载入之后马上进行初始化,假如在这一过程中发生了任何错误,系统内核将会自动根据设备驱动的“ErrorControl”键的数值进行处理。“ErrorControl”键的键值共有四种,分别具有如下含义:

0忽略,继续引导,不显示错误信息。

1正常,继续引导,显示错误信息。

2恢复,停止引导,使用“最后一次正确配置”选项重启动系统。假如依然出错则会忽略该错误。

3严重,停止引导,使用“最后一次正确配置”选项重启动系统。假如依然出错则会停止引导,并显示一条错误信息。启动服务

系统内核成功载入,并且成功初始化所有底层设备驱动后,会话治理器会开始启动高层子系统和服务,然后启动Win32子系统。Win32子系统的作用是控制所有输入/输出设备以及访问显示设备。当所有这些操作都完成后,Windows的图形界面就可以显示出来了,同时我们也将可以使用键盘以及其他I/O设备。

接下来会话治理器会启动Winlogon进程,至此,初始化内核阶段已经成功完成,这时候用户就可以开始登录了。登录阶段在这一阶段,由会话治理器启动的winlogon.exe进程将会启动本地安全性授权子系统。到这一步之后,屏幕上将会显示WindowsXP的欢迎界面或者登录界面,这时候你已经可以顺利进行登录了。不过与此同时,系统的启动还没有彻底完成,后台可能仍然在加载一些非关键的设备驱动。

随后系统会再次扫描HKEY_LOCAL_MACHINE“System“CurrentControlSet“Services注册表键,并寻找所有Start键的数值是“2”或者更大数字的服务。这些服务就是非关键服务,系统直到用户成功登录之后才开始加载这些服务。

到这里,WindowsXP的启动过程就算全部完成了。

小知识:为什么WindowsXP的启动速度要比Windows2000快

目前所有Windows操作系统中,可能Windows2000的启动速度是最慢的,这并不是因为计算机硬件的性能不够,而是因为Windows2000的设计“先天不足”。为了弥补这一不足,微软在开发WindowsXP的时候想出了一个新方法,那就是,所有不重要的设备驱动和服务都

将在用户登录系统之后才加载和运行。也就是说,在系统启动过程中,加载和运行的程序全部都是运行系统所必需的,这样才能用最短的时间显示出登录界面,供用户登录。而用户登录后系统才开始加载非关键组件。可以说,WindowsXP启动速度的加快实际上是一种“投机取巧”的作法,不过这种作法确实相当有效。然而这种设计也带来了一些问题,例如有些朋友反映,为什么自己的系统已经成功登录了,可是非要过好几分钟之后桌面上才会显示出任务栏以及桌面图标等内容。其实这就是因为在等待的这几分钟里,系统正在忙于处理那些不重要的服务和组件。假如需要处理的内容太多,或者计算机的硬件配置不够强大,就有可能产生这种现象。

操作系统的启动实验报告

操作系统实验报告 工程大学 计算机科学与技术学院

一.实验概述 1.实验名称:操作系统的启动 2.实验目的: 1)跟踪调试EOS在PC机上从加电复位到成功后启动的全过程,了解操作系统的启动过程; 2)查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。 3.实验类型:验证,设计 4.实验容: 1)准备实验,启动OS Lab,新建一个EOS Kernel项目; 2)调试EOS操作系统的启动过程 ①使用Bochs作为远程目标机 ②调试BIOS程序 ③调试软盘引导扇区程序 ④调试加载程序 ⑤调试核 ⑥查看EOS启动后的状态和行为 二.实验环境 操作系统:windows XP 编译器:Tevalaton OS Lab 语言:C++ 三.实验过程 1.设计思路和流程图: 2.实验过程:

1)在Console窗口中输入调试指令sreg,查看当前CPU中各个段寄存器的值,其中CS寄存器信息行中的“s=0xf000”表示CS寄存器的值为0xf000。 2)输入调试命令r,显示当前CPU中各个通用寄存器的值,“rip: 0x00000000:0000fff0”表示 IP 寄存器的值为 0xfff0。 3)输入调试命令 xp /1024b 0x0000,查看开始的 1024 个字节的物理存。在Console 中输出的这 1K 物理存的值都为 0,说明 BIOS 中断向量表还没有被加载到此处。 4)输入调试命令 xp /512b 0x7c00,查看软盘引导扇区应该被加载到的存位置。输出的存值都为 0,说明软盘引导扇区还没有被加载到此处。 可以验证 BIOS 第一条指令所在逻辑地址中的段地址CS寄存器值是一致的,偏移地址和 IP 寄存器的值是一致的。由于存还没有被使用,所以其中的值都为0。 5)输入调试命令 vb 0x0000:0x7c00,这样就在逻辑地址 0x0000:0x7c00(相当于物理地址 0x7c00)处添加了一个断点。输入调试命令 c 继续执行,在 0x7c00 处的断点中断。中断后会在 Console 窗口中输出下一个要执行的指令,即软盘引导扇区程序的第一条指令。 6)输入调试命令 sreg 验证 CS 寄存器(0x0000)的值。

电脑启动过程详解!!!

电脑启动过程详解 1.当按下电源开关时,电源就开始向主板和其它设备供电,这时电压还不太稳定,主板上的控制芯片组会向CPU发生并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在些刻不会马上执行指令,当芯片组检查到电源已经开始稳定供电了(当然从不稳定,到稳定的过程只是一瞬间的事情)它便撤去RESET信号(如果是手工按下电脑面板上的RESET按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号)CPU马上从地址FFFF0H处开始执行指令,这个地址实际在系统BIOS的地址范围内, 无论是Award BIOS,还是AMI BIOS,在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。 2.系统BIOS的启动代码首先要做的事情就进行POST(Power-On Self Test,加电后自检),POST的主要任务是检查系统中一些关键设备是否存在和是否正常工作,例如内存和显卡等设备.由于POST是最早进行的检查过程,此时显卡还没有初始化,如果系统BIOS在进行POST的过程中发现了些致命错误,例如没有找到内存或内存有问题 (此时只会检查640KB常规内存),那么系统BIOS就会直接控制嗽叭发生声音来报告错误,声音的长短和次数代表了错误的类型.在正常情况下,POST过程进行的非常快,我们几乎无法感觉到它的存在,POST结束之后就会调用其它代码来进行更完整的硬件检测。 3.接下来系统BIOS将查找显卡的BIOS,前面说过,存放显卡BIOS的ROM芯片的超始地址通常设在 C0000H,系统BIOS在这个地方找到显卡BIOS之后就调用它的初始化代码来初始化显卡,此时多数显卡都在屏幕上显示出一些初始化信息,介绍生产厂商,图形芯片类型等内容,不过这个画面几乎是一闪而过,系统BIOS接着会查找其它设备的BIOS程序,找到之后同样会调用这些BIOS内部的初始化代码来初始化相关的设备。 4.查找完所有其它设备的BIOS之后,系统BIOS将显示出它自己的启动画面,其中包括有系统BISO的类型,序列号和版本号等内容. 5.接着系统BIOS将检查和显示CPU的类型和工作频率,然后开始测试所有RAM,并同时在屏莫显示内存测试的速度,用户可以在CMOS设置中自行决定使用简单耗时少或详细耗时多的测试方式. 6.内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘,CD-ROM,串口,并口,软驱等设备,另外绝大数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数,硬盘参数和访问模式等. 7.标准设备检查完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的的即插即用设备,每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断,DMA通道和I/O端口等资源。 8.到这一步为止,所有硬件都已经检测配置完毕了,多数系统BIOS会重新清屏并在屏幕上方显示出一个表格,其它概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。 9.接下来系统BIOS会更新ESCD(Extended system configuration data,扩展系统配置数据.)ESCD是系统BIOS用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS之中,通常ESCD数据只在系统配置发生改变后才会更新,所以不是每次启动电脑时都能够看到"updata ESCD … Success"这样的信息, 不过某些主板的系统BIOS在保存ESCD数据时使用了与widnwos 9x不相同的数据格式,于是widnwos 9x在启动过程中会把ESCD数据修改成自己的格式,但在下一次启动时,既使硬件配置没有发生改变,系统BIOS也会把ESCD的数据格式修改回来,如此循环,将会导致在每次启动电脑时,系统BIOS都要更新一遍ESCD,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。 10.ESCD更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软件,硬件或光驱启动,以从C盘启动为例,系统BIOS将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的引导记录,而分区引导记录将负责读取并执行 IO.SYS这是DOS和widnows 9x的IO.SYS(或NT的NTLDR)首先要初始化一些重要的系统数据,然后将显示出我们熟悉的蓝天白云,在这幅画面之下,widnwos 将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作. 上面介绍的便是电脑在打开电源开关(或按RESET)进行冷启动时所要完成的各种初始化工作,如果在DOS 下按Ctrl Alt DEL组合键,(或从windows中选择重新启动电脑)来进行热启动,那么POST过程将被跳过去,

计算机启动过程

从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 零、boot 的含义 先问一个问题,"启动"用英语怎么说? 回答是boot。可是,boot 原来的意思是靴子,"启动"与靴子有什么关系呢?原来,这里的boot 是bootstrap(鞋带)的缩写,它来自一句谚语: "pull oneself up by one's bootstraps" 字面意思是"拽着鞋带把自己拉起来",这当然是不可能的事情。最早的时候,工程师们用它来比喻,计算机启动是一个很矛盾的过程:必须先运行程序,然后计算机才能启动,但是计算机不启动就无法运行程序! 早期真的是这样,必须想尽各种办法,把一小段程序装进内存,然后计算机才能正常运行。所以,工程师们把这个过程叫做"拉鞋带",久而久之就简称为boot 了。 计算机的整个启动过程分成四个阶段。 一、第一阶段:BIOS 上个世纪70 年代初,"只读内存"(read-only memory,缩写为ROM)发明,开机程序被刷入ROM 芯片,计算机通电后,第一件事就是读取它。 这块芯片里的程序叫做"基本輸出輸入系統"(Basic 无效/Output System),简称为BIOS。1. 1 硬件自检 BIOS 程序首先检查,计算机硬件能否满足运行的基本条件,这叫做"硬件自检"(Power-On Self-Test),缩写为POST。 如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。 1. 2 启动顺序 硬件自检完成后,BIOS 把控制权转交给下一阶段的启动程序。 这时,BIOS 需要知道,"下一阶段的启动程序"具体存放在哪一个设备。也就是说,BIOS 需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做"启动顺序"(Boot Sequence)。 打开BIOS 的操作界面,里面有一项就是"设定启动顺序"。 二、第二阶段:主引导记录 BIOS 按照"启动顺序",把控制权转交给排在第一位的储存设备。 这时,计算机读取该设备的第一个扇区,也就是读取最前面的512 个字节。如果这512 个字节的最后两个字节是0x55 和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给"启动顺序"中的下一个设备。 这最前面的512 个字节,就叫做"主引导记录"(Master boot record,缩写为MBR)。 2. 1 主引导记录的结构 "主引导记录"只有512 个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。 主引导记录由三个部分组成: (1)第1-446 字节:调用操作系统的机器码。 (2)第447-510 字节:分区表(Partition table)。 (3)第511-512 字节:主引导记录签名(0x55 和0xAA)。 其中,第二部分"分区表"的作用,是将硬盘分成若干个区。 2. 2 分区表 硬盘分区有很多好处。考虑到每个区可以安装不同的操作系统,"主引导记录"因此必须知道将控制权转交给哪个区。

详解Windows中自启动程序的藏身之处[图文]

详解Windows中自启动程序的藏身之处[图文] 导读:我们电脑上一般都会有一些自启动软件,许多计算机初级用户都只是简单的设置「开始→程序→启动」窗体,以为就能轻松解决。其实在Wndows XP/2K 中,能够自动启动程序的方法还是很多的,一些恶意软件或者流氓软件的自启动方式还非常隐蔽,想要找到并清理可不容易。 一、当前用户专有的启动档案夹 这是许多应用软件自动启动的常用位置,Windows自动启动放入该档案夹的所有建立捷径。用户启动档案夹一般在:C:\Documents and Settings\《用户名字》\「开始」窗体\程序\启动,其中「《用户名字》」是当前登入的用户账户名称。 二、对所有用户有效的启动档案夹 这是寻找自动启动程序的第二个重要位置,不管用户用什么身份登入系统,放入该档案夹的建立捷径总是自动启动——这是它与用户专有的启动档案夹的区别所在。该档案夹一般在:C:\Documents and Settings\All Users\「开始」窗体\程序\启动。 三、Load注册键 介绍该注册键的数据不多,实际上它也能够自动启动程序。位置: HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\ CurrentVersion\Windows\load。 四、Userinit注册键 位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogo n\Userinit。 这里也能够使系统启动时自动启始化程序。通常该注册键下面有一个userinit.exe,这个键允许指定用逗号分隔的多个程序,例如「userinit.exe,OSA.exe」(不含引号)。 五、Explorer\Run注册键 和load、Userinit不同,Explorer\Run键在HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE下都有,具体位置是: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explor er\Run,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

计算机启动过程

计算机启动过程 讲课教师:黄小龙 计算机启动过程总体分为两个过程,即硬件启动过程和操作系统启动过程。本课中操作系统我们仅选用Windows XP 的启动过程讲解。 一、硬件启动过程 ⑴加电 按下电源开关后,电源就开始向主板和其它设备供电,此时电压还不稳定, 主板上的控制芯片组会向CPU 发出并保持一个RESET(重置)信号,让CPU 初始化。当电源开始稳定供电后,芯片组便撤去RESET 信号(如果是按下Reset 按钮来重启,那么松开该按钮时芯片组就会撤去RESET 信号)。然后,CPU 马上就从地址FFFF0H 处开始执行指令(这是BIOS 的起始地址),但放在这里的只是一条跳转指令,跳到系统真正的BIOS 启动代码处,由BIOS 的代码进行下一步的POST 自检。 ⑵BIOS 进行post

POST就是加电自检,它是Power On Sel f Test的缩写。它是检查一些关键设备是否存在和能否正常工作,如内存和显卡等。如果发现错误,则通过喇叭发声来报告错误情况,此时的声音长短和次数代表了错误类型。 注:由于POST的检测过程在显示卡初始化之前,因此POST 自检过程发现的错误是无法在屏幕上显示出来的。 ⑶BIOS检测硬件的各种信息 BIOS进行加电自检后,就开始检测计算机上硬件设备的各种信息,如设备类型、工作频率、芯片组型号、出厂厂商等。这阶段的硬件检测顺序是:显示卡、CPU、内存、其它标准硬件设备(如硬盘、光驱、软驱、外设等)。 ⑷BIOS更新ESCD 按下来系统BIOS将更新ESCD(Extended System Configuration Data,扩展系统配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的数据,这些数据被存放在CMOS之中。通常ESCD数据只在系统硬件配置发生改变后才会进行更新,因此不是每次启动都能看到"Update ESCD... Success"这样的信息。不过,某些主板的BIOS在保存ESCD数据时使用了与Windows 9x 不相同的数据格式,于是Windows 9x在每一次启动都会把ESCD 数据转换成自己的格式,导致BIOS每次重新启动时都认为是硬件配置发生变化,并重新改写ESCD数据,这就是为什么有的计算机在每次启动时都会显示"Update ESCD... Success"信息的原因。

启动项修复

双系统启动项修复方法 首先,在修复xp Windows7启动项之前,我有必要给大家介绍一下Windows的启动顺序,让大家更深一层了解Windows xp:mbr-->ntldr-->boot.ini--到这里就已经是启动菜单选择条了 Windows7:mbr-->bootmgr-->BCD-->到这里就是Windows7的启动菜单了 从上边我们可以看出,本来在Windows xp里边最重要的文件ntldr在Windows7里边居然用不到了。 1、如果你只有一个xp安装在c盘、由于某种原因,出现“ntldr is missing”错误,先确保你c盘ntldr文件的存在,然后随便用pe U盘启动(我从来不用光碟的),在命令行下,把Windows7的boot目录复制到c 盘先,输入: c:\boot\bootsect.exe /nt52 C: //nt52代表使用过去的NTLDR 看到successfully 即可成功修复xp启动菜单。 2、如果你只有一个Windows7安装在c盘、由于某种原因,出现启动错误,请随便用pe启动(我从来不用光碟的),把Windows7的boot目录复制到c盘,,输入: c:\boot\bootsect.exe /nt60 c: //为硬盘写入NT引导信息,/nt60代表Vista以后的bootmanager 把硬盘主引导记录定位到bootmgr,如果还是启动不了,可能就是BCD(相当于xp里的boot.ini配置文件)启动列表菜单丢失了。解决方法: ============================= path c:\windows\system32 bcdedit /store c:\boot\bcd /create {bb68514c-cff8-11dd-aca9-a775dac50ae8} /d "Microsoft Windows 7" /application osloader bcdedit /store c:\boot\bcd /set {bb68514c-cff8-11dd-aca9-a775dac50ae8} device partition=C: //这里的C是你Windows7的安装分区 bcdedit /store c:\boot\bcd /set {bb68514c-cff8-11dd-aca9-a775dac50ae8} path \Windows\system32\winload.exe bcdedit /store c:\boot\bcd /set {bb68514c-cff8-11dd-aca9-a775dac50ae8} locale zh-CN bcdedit /store c:\boot\bcd /set {bb68514c-cff8-11dd-aca9-a775dac50ae8} inherit {bootloadersettings} bcdedit /store c:\boot\bcd /set {bb68514c-cff8-11dd-aca9-a775dac50ae8} osdevice partition=C: //这里C 是你Windows7的安装分区 bcdedit /store c:\boot\bcd /set {bb68514c-cff8-11dd-aca9-a775dac50ae8} systemroot \Windows bcdedit /store c:\boot\bcd /set {bb68514c-cff8-11dd-aca9-a775dac50ae8} nx OptIn

计算机启动过程

计算机系统的启动过程 1:硬件自检 BIOS程序首先检查计算机的硬件是否满足运行的基本条件,这就叫做“硬件自检”(Power-On Self-Test),POST。如果硬件出现问题,主板会发出不同含义的蜂鸣启动就会终止,,如果没有问题,屏幕就会显示出CPU,内存,硬盘等信息。 2:启动程序 硬件自检完成之后,BIOS就把控制权转交给下一阶段的启动程序。 这时,BIOS需要知道“下一阶段的启动程序”具体存放在哪一个设备。也就是说,BIOS 需要有一个外部储存设备的排序,排在前面的设备就是优先被转交控制权的设备。这种排序叫做“启动顺序”(Boot Sequence)。 打开BIOS的操作界面我们就可以看到里面有一项是“设定启动顺序”。 主引导记录 BIOS按照“启动顺序”,把控制权转交给排在第一位的储存设备。 这时,计算机读取该设备的第一个扇区,也就是读取最前面的512字节,如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以启动,否则则不可以启动控制权被交与“启动顺序”中的下一个设备。 这最前面的512个字节,就叫做"主引导记录"(Master boot record,缩写为MBR)。 1:主引导记录的结构 “主引导记录”只有512个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。 主引导记录由三个部分组成: (1)第1-446字节:调用操作系统的机器码。 (2)第447-510字节:分区表(Partition table)。 (3)第511-512字节:主引导记录签名(0x55和0xAA)。 其中,第二部分"分区表"的作用,是将硬盘分成若干个区。 2:分区表 硬盘分区有很多好处。考虑到每个区可以安装不同的操作系统,"主引导记录"因此必须知道将控制权转交给哪个区。 分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多只能分四个一级分区,又叫做"主分区"。 每个主分区的16个字节,由6个部分组成: (1)第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分四个主分区里面只能有一个是激活的。 (2)第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。 (3)第5个字节:主分区类型。 (4)第6-8个字节:主分区最后一个扇区的物理位置。

Windows启动过程详解

Windows启动过程详解 我们每天都在和Windows打交道,很多人可能每天都要面对多次W indows的启动过程,可是您知道在Windows的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?这些就是本文试图告诉您的。 本文的适用范围 随着技术的发展,我们能够见到的计算机硬件种类越来越多。以计算机上最重要的组件CPU来说,目前就有很多选择。当然,这里的选择并不是说AMD或者Intel这种产品品牌,而是指其内部的体系结构。目前常见的CPU体系结构主要基于复杂指令集(Complex I nstruction Set Computing,CISC)或者精简指令集(Reduced Ins truction Set Computing,RISC),我们常用的Intel的Pentium、C eleron系列以及AMD的Athlon、Sempron系列都是基于复杂指令集的,而这些基于复杂指令集的CPU还有32位和64位的寄存器数据带宽区别。关于这些指令集以及寄存器数据带宽之间的区别等内容比较繁杂,而且不是本文的重点,感兴趣的朋友可以自己在网上搜索相关内容。因为CPU种类的不同,在不同CPU的系统中运行的Wind ows的启动过程也有一些小的不同。本文将会以目前来说最普遍的,在x86架构的系统上安装的32位Windows XP Professional为例向

您介绍。 基本上,操作系统的引导过程是从计算机通电自检完成之后开始进行的,而这一过程又可以细分为预引导、引导、载入内核、初始化内核,以及登录这五个阶段。 在继续阅读之前,首先请注意图1,这是Windows XP的操作系统结构,其中包括了一些在后台工作的组件以及经常和我们打交道的程序。在了解Windows XP的启动过程之前,对系统结构有一个初步概念是很重要的。

正确的电脑开关机顺序

正确的电脑开关机顺序 由于电脑在刚加电和断电的瞬间会有较大的电冲击,会给主机发送干扰信号导致主机无法启动或出现异常,因此,在开机时应该先给外部设备加电,然后才给主机加电。但是如果个别计算机,先开外部设备(特别是打印机)则主机无法正常工作,这种情况下应该采用相反的开机顺序。关机时则相反,应该先关主机,然后关闭外部设备的电源。这样可以避免主机中的部位受到大的电冲击。在使用计算机的过程中还应该注意下面几点:而且 WINDOWS 系统也不能任意开关,一定要正常关机;如果死机,应先设法“软启动”,再“硬启动”(按 RESET 键),实在不行再“硬关机”(按电源开关 数秒种)。 在电脑运行过程中,机器的各种设备不要随便移动,不要插拔各种接口卡,也不要装卸外部设备和主机之间的信号电缆。如果需要作上述改动的话,则必须在关机且断开电源线的情况下进行。 不要频繁地开关机器。关机后立即加电会使电源装置产生突发的大冲击电流,造成电源装置中的器件被损坏,也可以造成硬盘驱动突然加速,使盘片被磁头划伤。因此,这里我们建议如果要重新启动机器,则应该在关闭机器后等待 10 秒钟以上。在一般情况下用户

不要擅自打开机器,如果机器出现异常情况,应该及时与专业维修部门联系。 鼠标的操作 Windows 中的许多操作都可以通过鼠标的操作完成。 二键鼠标有左、右两键,左按键又叫做主按键,大多数的鼠标操作是通过主按键的单击或双击完成的。右按键又叫做辅按键,主要用于一些专用的快捷操作。 鼠标的基本操作包括指向、单击、双击、拖动和右击。 (1)指向:指移动鼠标,将鼠标指针移到操作对象上。 (2)单击:指快速按下并释放鼠标左键。单击一般用于选定一个操作对象。 (3)双击:指连续两次快速按下并释放鼠标左键。双击一般用于打开窗口,启动应用程序。 (4)拖动:指按下鼠标左键,移动鼠标到指定位置,再释放按键的操作。拖动一般用于选择多个操作对象,复制或移动对象等。(5)右击:指快速按下并释放鼠标右键。右击一般用于打开一个与操作相关的快捷菜单。

电脑启动过程详解

电脑从按完开关加电开始直到进入到系统桌面的整个过程详解本文以Windows2000/xp和Windows Vista/7两个内核做讲解 电脑从加电到进桌面可以分为两大部分: 无论是Windows2000/XP还是Windows Vista/7,在硬件自检方面都是想同的,不同的是在系统加截。 硬件部分: 在讲解前,我们先来了解几个概念: BIOS:即“Basic Input/Output System”(基本输入输出系统),它是一组被“固化”在计算机主板上的一块 ROM 中直接关联硬件的程序,保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序,其主要功能是为计算机提供最底层的、最直接的硬件设置和控制,它包括系统 BIOS(主板 BIOS).其它设备 BIOS(例如 IDE 控制器 BIOS、显卡 BIOS 等)其中系统 BIOS 占据了主导地位.计算机启动过程中各个 BIOS 的启动都是在它的控制下进行的。 CMOS:即“Complementary Metal-Oxide-Semiconductor”(互补金属氧化物半导体),它本是计算机系统内一种重要的芯片,保存了系统引导最基本的资料。 内存地址:我们知道,内存空间的最基本单位是位,8 位视为一个字节,即我们常用的单位 B,内存中的每一个字节都占有一个地址(地址是为了让 CPU 识别这些空间,是按照 16 进制表示的),而最早的 8086 处理器只能识别 1MB(2 的 20 次方 B)的空间,这 1MB 内存中低端(即最后面)的 640KB 就被称为基本内存,而剩下的内存(所有的)则是扩展内存。这 640KB 的空间分别由显存和各 BIOS 所得。 我们来看一下硬件部分的流程图:

详细电脑启动过程

打开电源启动机器几乎是电脑爱好者每天必做的事情,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢?相信有的朋友还不是很清楚,本文就来介绍一下从打开电源到出现Windows的蓝天白云时,计算机到底都干了些什么事情。 首先让我们来了解一些基本概念。第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。BI OS包括有系统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一般在C0000 H~C7FFFH处,IDE控制器的BIOS在C8000H~CBFFFH处。 第一步:当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去R ESET信号),CPU马上就从地址FFFF0H处开始执行指令,从前面的介绍可知,这个地址

注册表的启动项详解

手工杀毒拾零——注册表中的自启动项及其详解 1、 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\load 这个,load是指“值”,在注册表中,位于右边窗口的“名称”一列。一般新安装的操作系统,他的数据是空的。病毒可以把自身路径写到他的数据里,这样实现开机自启动。如下图所示: 其它的注册表中的自启动项都是如此实现开机启动了。后面的教程不再重复。 2、 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion \Run 这里"Run"是在左边窗口中找,也就是说它是个“项”。我们的输入法指示器,也就是右下角更改输入法的地方的图标,就是从这里自启动的。启动项名称为“ctfmon.exe”。注意不是ctfmon。要想找ctfmon.exe,请在注册表的窗口的右边找。 3、 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion

\RunOnce 这里"Run"是在左边窗口中找,也就是说它是个“项”。它的启动项请从右侧找。当然可能没有。 4、 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion \Policies\Explorer\Run 这里"Run"是在左边窗口中找,也就是说它是个“项”。它的启动项请从右边找,当然可能没有。这个启动项可能会被很多人包括很多杀毒辅助工具所忽略 5、 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\run 这个,run是指“值”,在注册表中,位于右边窗口的“名称”一列。默认的可能没有此run值。病毒会修改run的数据一列的数据。 6、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\autorun 这个启动项,是随cmd程序一起启动的。也就是说,只有当打开cmd 窗口的时候,才会启动相应的项。要想找到“autorun”,请从右侧

操作系统原理与实践教程(第二版)第2章习题答案

第2章操作系统的界面 (1) 请说明系统生成和系统引导的过程。 解: 系统的生成过程:当裸机启动后,会运行一个特殊的程序来自动进行系统的生成(安装),生成系统之前需要先对硬件平台状况进行检查,或者从指定文件处读取硬件系统的配置信息,以便根据硬件选择合适的操作系统模块组,比较重要的信息通常有:CPU类型、内存大小、当前关联设备的类型和数量以及操作系统的重要功能选项和参数。按照这些信息的指示,系统生成程序就可以正确地生成所需的操作系统。 系统引导的过程:系统引导指的是将操作系统内核装入内存并启动系统的过程。主要包括初始引导、内核初始化、全系统初始化。初始引导工作由BIOS完成,主要完成上电自检,初始化基本输入输出设备,载入操作系统内核代码等工作。内核被载入内存后,引导程序将CPU控制权交给内核,内核将首先完成初始化功能,包括对硬件、电路逻辑等的初始化,以及对内核数据结构的初始化,如页表(段表)等。全系统初始化阶段要做的就是启动用户接口程序,对系统进行必要的初始化,使系统处于等待命令输入状态。 (2) 操作系统具有哪些接口?这些接口的作用是什么? 解: 操作系统为用户提供的接口有图形接口、命令接口和程序接口几种形式。 操作系统包括三种类型的用户接口:命令接口(具体又可分为联机命令接口与脱机命令接口)、程序接口及图形化用户接口。其中,命令接口和图形化用户接口支持用户直接通过终端来使用计算机系统,而程序接口则提供给用户在编制程序时使用。 (3) 请说明操作系统具有的共性服务有哪些不同类别,这些类别分别用于完成什么功能? 解:所有的操作系统都通过一些基本服务来帮助用户简单便捷地使用计算机各类资源,它们包括以下几个类别: 1.控制程序运行:系统通过服务将用户程序装入内存并运行该程序,并且要控制程序 在规定时间内结束。 2.进行I/O操作:用户是不能直接控制设备的,只能通过操作系统与外部设备进行交 互,由系统调用将结果显示在屏幕上或交给用户。 3.操作文件系统:为了保证实现“按名存取”,文件系统应该为用户提供根据文件名 来创建、访问、修改、删除文件的方法,以确保文件数据的安全可靠以及正确存取。 4.实现通信:操作系统需要提供多个程序之间进行通讯的机制,来控制程序的执行顺 序。 5.错误处理:操作系统通过错误处理机制,以便及时发现错误并采取正确的处理步骤, 避免损害系统的正确性和统一性。 (4) 系统调用的用途是什么? 解: 通常,在操作系统内核设置有一组用于实现各种系统功能的子程序(过程),并将它们提供给用户程序调用。每当用户在程序中需要操作系统提供某种服务时,便可利用一条系统调用命令,去调用所需的系统过程。这即所谓的系统调用。系统调用的主要类型包括: 1.进程控制类,主要用于进程的创建和终止、对子进程结束的等待、进程映像的替换、 进程数据段大小的改变以及关于进程标识符或指定进程属性的获得等; 2.文件操纵类,主要用于文件的创建、打开、关闭、读/写及文件读写指针的移动和

讲解win7启动过程

:BIOS→MBR→Bootmgr→BCD→Winl oad.exe→内核加载 1.开机后,BIOS进行开机自检(POST),然后选择从硬盘进行启动,加载硬 盘的MBR并把控制权交给MBR(MBR是硬盘的第一个扇区,它不在任何一个分区内); 2.MBR会搜索64B大小的分区表,找到4个主分区(可能没有4个)的活动分 区并确认其他主分区都不是活动的,然后加载活动分区的第一个扇区 (Bootmgr)到内存; 3.Bootmgr寻找并读取BCD,如果有多个启动选项,会将这些启动选项反映 在屏幕上,由用户选择从哪个启动项启动。 4.选择从Windows7启动后,会加载C:\windows\system32\winload.exe, 并开始内核的加载过程,内核加载过程比较长,比较复杂,这里就不一一讲了。 在这个过程中,bootmgr和BCD存放在Windows7的保留分区里,而从Winload.exe开始,就开始进入到C盘执行内核的加载过程了。 ?MBR(Master Boot Record),中文意为主引导记录。 注意事项 硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为两个部分。第一部分为pre-boot区(预启动区),占446字节;第二部分是Partition table区(分区表),占66个字节,该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码。 他是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取 ?BCD=Boot Configuration Data (启动设置数据) ,BCD是操作系统中的启动设置数据, 在有vista或windows7的多重操作系统中,系统通bootmgr程序导入BCD 文件完成启动菜单的引导。 可用bcdedit.exe程序来编辑BCD文件,来调整开机默认操作系统和等待时间。 先让我们看一下windows7的启动过程的常识: 电脑加电后,首先是启动BIOS程序,BIOS自检完毕后,找到硬

dell上电时序及戴尔笔记本电脑开机过程

dell上电时序及戴尔笔记本电脑开机过程 根据我最近维修的戴尔系列笔记本电脑来看,不管是从奔四还是到迅驰或者双核,只要是使用SMSC系列单片机的主板,其开机过程都是大同小异,同样的道理像IBM的笔记本从奔三到迅驰的开机流程也都是差不多,因为它们也都是使用相同开机控制芯片系统(TB+PMH4+H8S),也就是说只要你熟悉某一块主板后,其他和这块主板使用相同单片机的电脑对你来说都不是太难。 最近我维修的机型有C640、D400、D420、D520、D600、D610、D820、D830、M1210、M1330、M1530等等,这些机器都有一个共同特点,那就是它们都是使用SMSC系列单片机,不过从D820后的单片机不再是BGA封装了,而是用两个DIP封装的芯片组合形成一个完整地控制系统。它们之间的开机步骤基本是相同的,与其他IBM或者HP机型相比较来说,其大的步骤也有相同之处,只是有些细节方面和信号名称不同而已。以下内容是以D600为例来解说,其他机型可能没有相应信号或者名称不同,在参考阅读时请适当灵活变化运用,下面各个步骤的名称也只是根据我个人爱好来取的,并非官方的准确名字。 第一步:BIOS电压(+RTC_PWR5V&+RTC_PWR3_3V) 这个电压从名称来看就是指BIOS电池供电的电压信号+RTCSRC,这个电压在没有插电源和电池时,是由主板上面的BIOS电池供给,当插上电源或电池时主板BIOS电池就处于充电状态,这个+RTCSRC电压信号的主要作用就是用来生成 +RTC_PWR5V和+RTC_PWR3_3V两个电压信号,其中+RTC_PWR3_3V信号是给南桥和单片机的一个重要供电。 第二步:公共电压(PWR_SRC) 戴尔机器的公共电压名称叫做PWR_SRC,像IBM的公共电压名称叫做VINT16是一样的意思,公共电压顾名思义就知道是公共的意思,即就是电源和电池共用的上电电路,也就是说这个电压信号既可以是电源供给,也可以是电池供给,同时这个电压信号还会送到主板很多地方去使用,这里详细说说电源上电电路过程,把电池上电电路过程作为电池充电电路内容讲解。 公共电压PWR_SRC是从外部电源经过一系列电路转换而来的,大致步骤要经过DCIN+、+DC_IN、DC_IN+、SDC_IN+、ACAV_IN等几个信号的转换过程,其中SDC_IN+和ACAV_IN两个信号都是充电电路中比较重要的信号,因为SDC_IN+是给电池充电的一个主要电源,而ACAV_IN这个信号是给单片机SMSC芯片的一个重要开启信号,单片机缺少这个信号时将无法正常工作进行充电,当然如果是电池独立供电时就没有这个信号,但会从电池电路上发送另一个具有相同功能的信号给单片机作为指示,这些将会在电池充电电路中关于电源和电池转换过程中详细说明。

嵌入式操作系统启动流程

1 什么是BSP: 1. 在通电后, 初始化硬件( bootrom ) 2. 支持VxWorks和硬件驱动通信(Image的底层驱动) 3. 本质上是硬件驱动、初始化的合集; 2 研究BSP内容: 1. 系统image的生成和image的种类 2. image的download 下载过程 3. 系统的启动顺序和过程 4. 调试环境的配置及远端调试的方式和方法 5. 相应BSP设置文件的修改(网络,串口..) 6. BSP各文件的组成和作用. 7. 要对系统底层驱动清楚,也就是对CPU及相关的硬件有所了解?主要是32微处理 器(上电启动过程,download image的方式方法,读写ROM地址空间分 配,MMU寄存器,中断定义,..).参照硬件资料,多读一些源码会有所帮助. 3 BSP主要文件目录的组成及主要文件的作用: 3.1 目录target/config/All: 这个目录下的文件是所有BSP文件共享的,不是特别需要不要更改里面的任何文件. configAll.h: 缺省定义了所有VxWorks的设置.如果不用缺省的设置,可在BSP目录下的config.h文件中用 #define或#口门def方式来更改设置. bootInit.c: 在romlnit.s 后,完成Boot ROM的第二步初始化.程序从romlnit.s 中的romlnit() 跳到这个文件中的romStart().来执行必要的解压和ROM image的放置. bootConfig.c: 完成Boot ROM image的初始化和控制. usrConfig.c: VxWorks image 的初始化代码. 3.2 目录target/config/comps/src: 涉及系统核心的components, 主要由target/config/All 中usrConfig.c 中函数调用 3.3 目录target/config/bspname: 包含系统或硬件相关的BSP文件.

微软Windows 7开机启动项学习

Windows中有自带的启动文件夹,它是最常见的启动项目,但很多人却很少注意仔细检查它。如果把程序装入到这个文件夹中,系统启动就会自动地加载相应程序,而且因为它是暴露在外的,所以非常容易被外在的因素更改。 一、具体的位置是“开始”菜单中的“启动”选项 在硬盘上的位置是:C:/Documents andSettings/Administrator/“开始”菜单程序启动; 在注册表中的位置是: HKEY_Current_USER/Software/Microsoft/Windows/CurrentVersion/Run 二、Msconfig Msconfig是Windows系统中的“系统配置实用程序”,它管的方面可够宽,包括:system.ini、win.ini、启动项目等。同样,里面也是自启动程序非常喜欢呆的地方! 1.System.ini 首先,在“运行”对话框中输入“msconfig”启动系统配置实用程序(下同),找到system.ini标签,里面的“shell=……” 就可以用来加载特殊的程序。如果你的shell=后面不是默认的explorer.exe,或者说后面还有一个程序的名字,那你可要小心了,请仔细检查相应的程序是否安全! 2.Win.ini 如果我们想加载一个程序:hack.exe,那么可以在win。ini中用下面的语句来实现: [windows] load=hack.exe run=hacke.exe 3.“启动”项目 系统配置实用程序中的启动标签和我们上面讲的“启动”文件夹并不是同一个东西,在系统配置实用程序中的这个启动项目,是Windows系统启动项目的集合地。几乎所有的启动项目都能在这里找到——当然,经过特殊编程处理的程序可以通过另外的方法不在这里显示。 打开“启动”标签,“启动项目”中罗列的是开机启动程序的名称,“命令”下是具体的程序附加命令,最后的“位置”就是该程序在注册表中的相应位置。你可以对可疑的程序进行详细的路径、命令检查,一旦发现错误,就可以用下方的“禁用”来禁止该程序开机时候的加载。 一般来讲,除系统基于硬件部分和内核部分的系统软件的启动项目外,其他的启动项目都是可以适当更改的,包括:杀毒程序、特定防火墙程序、播放软件、内存管理软件等。也就是说,启动项目中包含了所有我们可见程序的列表,你完全可以通过它来管理你的启动程序。 三、注册表中相应的启动加载项目

相关文档
最新文档