系统启动过程详解.docx
- 文档编号:4907017
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:16
- 大小:225.94KB
系统启动过程详解.docx
《系统启动过程详解.docx》由会员分享,可在线阅读,更多相关《系统启动过程详解.docx(16页珍藏版)》请在冰豆网上搜索。
系统启动过程详解
要问我其中的细节,我不是操作系统专家,作为程序员了解操作系统是必要的.当然一直想写个操作系统,也算对得起程序员这个称号.有志道合的请留言,一起开发个操作系统.哈哈!
Windows2000/XP启动过程详解Windows2000/XP是一个优秀的操作系统,它功能强大,安全稳定,深受广大电脑用户青睐。
但在使用过程中,我们明显地感觉到它的启动时间比Windows98要延长许多,比之Windows98更能考验人的耐性。
那么在这段让人忍无可忍但又不可不忍的时间中,系统究竟做了些什么工作哪,别急,,容俺慢慢道来,咱看一看它究竟为何如此龟速。
在基于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转入启动相应系统。
*其中[BOOTLOADER]即操作系统加载器,指定系统选择菜单默认等待时间和默认引导的操作系统。
可手工修改或在控制面板中修改,为了保险起见,建议在控制面板中修改。
依次选择控制面板-〉系统-〉高级->启动和故障恢复,即可更改相关设置。
(在WindowsXP中还有另一种方法,即运行msconfig(系统配置实用程序)。
[OPERATINGSYSTEMS]段指定操作系统列表,由双引号括起来的部分就是列表所显示的内容,可任意修改,使其更加个性化。
*形如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.系统加载NTDETECT.COM文件。
由它来检测机器硬件,如并行端口,显示适配器等等,并将收集到的硬件列表返回NTLDR用于以后在注册表中注册保存。
4.如果Windows2000/XP有多个硬件配置文件,此时会出现选择菜单,等待用户确定要使用的硬件配置文件,否则直接跳过此步,启用默认配置。
*硬件配置文件是指保存计算机特定硬件配置的系统文件。
可以创建多个不同的硬件配置文件以满足计算机在不同场合的应用。
可以依次选择控制面板-〉系统->硬件-〉硬件配置文件作出修改。
三.装载内核引导过程开始装载Windows2000/XP内核NTOSKRNL.EXE。
这个文件位于Windows2000/XP安装文件夹下的SYSTEM32文件夹中。
随后,硬件抽象层(HAL)被引导进程加载,完成本步骤。
*硬件抽象层(HAL):
隐藏特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
四.初始化内核内核完成初始化,NTLDR将控制权转交Windows2000/XP内核,后者开始装载并初始化设备驱动程序,以及启动WIN32子系统和WINDOWS2000/XP服务。
五.用户登录开始登录进程。
由WIN32子系统启动WINLOGON.EXE,并由它启动LOCALSECURITYAUTHORITY(LSASS.EXE)显示登录对话框。
用户登录后,WINDOWS2000/XP会继续配置网络设备和用户环境。
最后,伴随着微软之声和我们熟悉的个性化桌面,WINDOWS2000/XP漫长的启动过程终于完成。
呵,是不是睡着了,醒醒吧,系统启动成功,您现在该干嘛就干嘛!
本文来自CSDN博客,转载请标明出处:
1
·Windows XP 操作系统启动过程概述
(1)
从按下计算机开关启动计算机,到登入到桌面完成启动,一共经过了以下几个阶段:
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或者FAT文件系统格式化的分区,以便发现以及加载Windows XP Professional,到这里,初始引导加载器阶段就结束了。
接着系统来到了操作系统选择阶段,如果计算机安装了不止一个操作系统(也就是多系统),而且正确设置了boot.ini使系统提供操作系统选择的条件下,计算机显示器会显示一个操作系统选单,这是NTLDR读取boot.ini的结果。
(至于操作系统选单,由于暂时条件不够,没办法截图,但是笔者模拟了一个)
·Windows XP 操作系统启动过程概述
(2)
在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后,操作系统选择阶段结束,硬件检测阶段开始。
在硬件检测阶段中,将收集计算机硬件信息列表并将列表返回到NTLDR,这样做的目的是便于以后将这些硬件信息加入到注册表HKEY_LOCAL_MACHINE下的hardware中。
硬件检测完成后,进入配置选择阶段。
如果计算机含有多个硬件配置文件列表,可以通过按上下按钮来选择。
如果只有一个硬件配置文件,计算机不显示此屏幕而直接使用默认的配置文件加载Windows XP专业版。
引导阶段结束。
在引导阶段,系统要用到的文件一共有:
NTLDR,Boot.ini,,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传递控制给内核,初始化内核阶段就开始了。
·Windows XP 操作系统启动过程概述(3)
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进程,初始化内核完毕。
窗体顶端
窗体底端
系统重装可不是一件好玩的事情:
首先得端坐在电脑桌前老老实实地回答windows安装程序提出的问题,安装好了呢,也不能闲着,还得安装驱动程序、应用程序……粗略佑计,没有半天拿不下来!
可能有朋友会说,用Ghost,既快又方便,不出五分钟,系统就恢复了,不过那只是本机备份,如果拿到别人的机器上去恢复,肯定会“水土不服”,道理很简单:
硬件、系统、网络的配置不可能都千篇一律……不过看完本文以后,你就可以轻松打造出一把万能钥匙了,随便什么机器,都可以轻松采用Ghost恢复安装的方法,10多分钟就能搞WindowsXP的安装!
一、做好准备工作
安装好WindowsXP并且利用WindowsUpdate升级最新的系统补丁(包括servicePackl和其他最新的Hotfix)。
同时安装好所需的应用程序,不过不要贪多,因为将应用程序安装在C盘里并不是值得推荐的做法,同时会造成Ghost映像文件的容量过大。
二、为WindowsXP减肥
不管是否需要将最后产生的Ghost映像文件刻录到光盘上,都应该对WindowsXP进行减肥,以尽可能地减小Ghost映像文件的容量。
可以删减的主要项目如下:
1.系统文件保护缓存
它位于C:
WINDOWSSystem32Dllcache目录下,我们只需在命令提示符窗口中运行“sfe.exe/purgecache”即可将它删除。
2.清空页面文件
在“我的电脑”上单击鼠标右键,选择“属性”。
在打开的“系统属性”对话框中选择“高级”选项卡,单击“性能”下的“设置”按钮,在打开的“性能选项”对话框中选择“高级”选项卡,再单击右下角的“更改”按钮,打开“虚拟内存”对话框。
默认情况下虚拟内存文件保存在WindowsXP的安装目录下,我们只需选择下面的“无分页文件”选项,再单击“设置”按钮即可。
重新启动计算机后虚拟内存文件即被删除。
注意做好硬盘映像文件后,再重设虚拟内存。
3.关闭系统还原功能
在打开的“系统属性”对话框中选择“系统还原”选项卡,选中“在所有驱动器上关闭系统还原”前的复选框即可。
4.其他方法
我们还可以采用其他的如删除帮助文档、删除不需要的输人法、字体文件等常规“减肥”方法来进一步减小WindowsXP所在分区的大小。
三、对驱动程序做手术
由于我们要制作的是一个万能的WindowsXPGhost文件,目标计算机上的硬件配置和当前计算机的配置肯定不完全相同,因此我们要将当前计算机上的设备驱动程序删除。
1.删除普通驱动程序
①在“运行”对话框里输人“devmgrnt.rnsc”并回车,打开“设备管理器”控制台窗口。
②找到网络适配器,鼠标右键单击其下的网卡设备名称,在弹出菜单上单击“卸载”菜单项。
③再用类似的方法卸载通用串行总线控制器、视频游戏控制器、显卡、声卡等设备驱动程序。
这里要注意的是,如果系统提示需要重新启动,一定不要重启机器,以免系统自作主张,重新安装驱动程序。
2.更新ACPI属性
然后我们要把计算机的ACPI属性更改为StandardPC,这是因为如果目标计算机中有不同类型的ACPI,则新克隆的目标计算机就无法实现电脑软关机,并且可能会在第一次启动后崩溃!
更改步骤如下:
①在设备管理器控制台窗口用鼠标右键单击“计算机”→“ACPIUniprocessorPC”,在弹出菜单上单击“更新驱动程序”菜单项;
②在打开的“硬件更新向导”对话框里选中“从列表或指定位置安装(高级)”选项,并单击“下一步”按钮;
③在接下来的页面里选中“不要搜索,我要自己选择要安装的驱动程序”选项,并单击“下一步”按钮;
④然后选择“StandsrdPC”选项,并根据屏幕提示一路Next,只是最后提示是否重新启动时,一定不要重启!
3.更新IDE控制器属性
对设备驱动程序的最后一步手术是更改IDEATA/ATAPI控制器。
这一步非常重要,因为大家知道,不同的主板,例如Intel、Nforce2、VIA等主板,其IDEATA/ATAPI控制器的驱动程序有很大的差别,根本无法通用!
①在设备管理器控制台窗口用鼠标右键单击IDEATA/ATAPI控制器、Intel(r)82371AB/EBBusMasterIDEController,在弹出菜单上单击“更新驱动程序”菜单项;
②在打开的“硬件更新向导”对话框里选中“从列表或指定位置安装(高级)”选项,并单击“下一步”按钮;
③在接下来的页面里选中“不要搜索,我自己选择要安装的驱动程序”选项,并单击“下一步”按钮;
④然后选择“标准的双通道PCIIDE控制器”选项,并根据屏幕提示一路Next,只是最后提示是否重新启动时,一定不要重启!
四、准备主映像文件
删除了“母机”上的驱动程序,还不能说已经马到成功。
这是因为每一台计算机都有一个惟一的安全标识符(SID:
securityidentifier),如果直接把磁盘映像复制到其他计算机上,那么其他计算机都有会具有同样的SID,所以需要用Sysprep工具去除“母机”的SID,从而强迫目标计算机产生新的SID。
1.自动应答文件
在目标计算机恢复克隆备份时,系统会开始一个Mini-Setup向导过程,该向导会提示我们输人特定的计算机变量,例如管理员密码、计算机名等等。
但是由于在克隆备份里去除了驱动程序,所以在这个阶段无法使用键盘、鼠标进行交互。
不过我们可以创建一个自动安装应答文件,让这个应答文件自动回复安装程序提出的问题。
①把WindowsXP安装光盘插人光驱,将SUPPORTTOOLS目录下的DEPLOY.CAB文件释放到C:
Sysprep目录;
②然后运行其中的setupmgr.exe文件,在出现选择安装类型界面中选择“Sysprep安装”选项;
③根据屏幕提示填入必要的信息,一直单击“Next”按钮,直至最后进人保存配置文件的对话框,一定要确保最后的安装脚本路径是C:
SysprepSysprep.inf。
2.重新封装
现在可以利用Sysprep工具去除“母机”的SID,很简单:
运行C:
Sysprep目录下的Sysprep.exe程序,然后在打开的窗口中单击“重新封装”按钮。
接下来会提示下一次启动时将重新生成SID,单击“确定”按钮,稍等片刻,计算机将会自动关闭。
五、克隆主映像文件
计算机关闭之后,我们就可以用Ghost2003启动盘引导计算机,然后依次单击“Local→Partition→ToImage”命令,指定源分区为C盘,再设置Ghost映像文件的路径和文件名,开始备份。
备份结束后,我们就拥有了一个万能的WindowsXP映像文件!
Windows XP启动过程剖析(2008-09-0522:
42:
08)
标签:
it
分类:
电脑经验
根据Digg统计数据,先看2008年2月份操作系统的市场占有率的数据。
2008年6月,在桌面市场,Windowsxp的市场占有率为71.2%,Vista为16.14%,MacIntell为5.25%,MacOS为2.69%,Windows2000为2.11%,Linux为0.80%,WindowsXP还是以绝对优势占据了这个市场,当然也迫使微软不得把延迟XP的服务时间。
Linux虽然声声入耳,可是实际情况实在不容乐观,Linus的妈妈和妹妹都使用WindowsXP就是一个很好的例证。
我们很多人天天启动WindowsXP,可是系统究竟是怎么启动的,可能很多人并不清楚,我们一起来看看。
预引导过程:
第一步:
当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。
当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址FFFF0H处开始执行指令,从前面的介绍可知,这个地址实际上在系统BIOS的地址范围内,无论是AwardBIOS还是AMIBIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。
注意,这里说的是复杂指令集的CPU,包括Intel、AMD和Via的CPU,而国产的龙芯则不一样,这里就不展开了。
第二步:
系统BIOS的启动代码首先要做的事情就是进行POST(Power-OnSelfTest,加电后自检),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,并同时在屏幕上显示内存测试的进度。
不少计算机的默认的BIOS设置要自检内存,因此大家可以看到内存容量数字不断变化,直到计算机最大物理内存容量,当然你可以按ESC键取消自检,或者在BIOS中关闭。
第六步:
内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘、CD-ROM、串口、并口、软驱等设备,另外绝大多数较新版本的系统BIOS在这一过程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统启动 过程 详解