Windows启动过程详解
- 格式:doc
- 大小:176.50 KB
- 文档页数:17
WINDOWS操作系统启动过程详解基本上,操作系统的引导过程是从计算机通电自检完成之后开始进行的,而这一过程又可以细分为预引导、引导、载入内核、初始化内核,以及登录这五个阶段。
预引导阶段:当我们打开计算机电源后,预引导过程就开始运行了。
在这个过程中,计算机硬件首先要完成通电自检(Power-On Self Test,POST),这一步主要会对计算机中安装的处理器、内存等硬件进行检测,如果一切正常,则会继续下面的过程。
如果计算机BIOS是支持即插即用的(基本上,现阶段能够买到的计算机和硬件都是支持这一标准的),而且所有硬件设备都已经被自动识别和配置,接下来计算机将会定位引导设备(例如第一块硬盘,设备的引导顺序可以在计算机的BIOS设置中修改),然后从引导设备中读取并运行主引导记录(Master Boot Record,MBR)。
至此,预引导阶段成功完成。
引导阶段:引导阶段又可以分为:初始化引导载入程序、操作系统选择、硬件检测、硬件配置文件选择这四个步骤。
在这一过程中需要使用的文件包括:Ntldr、Boot.ini、、Ntoskrnl.exe、Ntbootdd.sys、Bootsect.dos(非必须)。
初始化引导载入程序:在这一阶段,首先出场的是ntldr,该程序会将处理器由实模式(Real Mode)切换为32位平坦内存模式(32-bit Flat Memory Mode)。
不使用实模式的主要?因是,在实模式下,内存中的前640KB是为MS-DOS保留的,而剩余内存则会被当作扩展内存使用,这样Windows XP将无法使用全部的物理内存。
而32位平坦内存模式下就好多了,Windows XP自身将能使用计算机上安装的所有内存(其实最多也只能用2GB,这是32位操作系统的设计缺陷)。
接下来ntldr会寻找系统自带的一个微型的文件系统驱动。
大家都知道,DOS和Windows 9x操作系统是无法读写NTFS文件系统分区的,那么Windows XP的安装程序为什么可以读写NTFS分区?其实这就是微型文件系统驱动的功劳了。
Windows启动过程详解1.MBR 阶段(16 位实模式):BIOS 在完成通电自检后,将控制权移交给位于硬盘前63 个扇区的MBR(Master Boot Record),MBR 将自己的镜像加载到内存,然后执行对分区表的搜索,然后将控制权转移给第一个活动分区的PBR(Partition Boot Record);2.PBR 阶段(16 位实模式):PBR 是因操作系统而异的分区引导记录,它将自身加载到内存并加载基本的磁盘驱动,通过BIOS INT 中断的方式查找此分区上的引导文件,也就是我们的Bootmgr,并将其加载到内存;3.Bootmgr 阶段(16 位实模式和32 位无分页内存):读取BCD 信息,显示启动菜单,如果安装有多个版本的Windows 引导记录,能在这里选择要启动的系统,或者执行内存测试等操作,在选定操作系统后,将Windows BootLoader——Winload.exe 加载到内存;4.Winload.exe 阶段(32 位或64 位保护模式,有内存分页):加载Windows 内核Ntoskrnl.exe 和它的依赖项Kdcom.dll(Kernel Debugger),Ci.dll,Clfs.sys,Pshed.dll,HAL.dll(硬件抽象层,其实就是主板驱动),并将注册表中HKLM\SYSTEM 子键内容加载到内存,如果检测到页面文件Hiberfil.sys 则启动Winresume.exe 恢复休眠文件;5.Ntoskrnl.exe 阶段(保护模式):初始化Windows 执行体并一一加载注册在HKLM\SYSTEM\CurrentControlSet\Services 下标记为System 的系统驱动程序,运行会话管理器smss.exe,准备运行native code 所需的环境;6.Smss.exe 阶段(Native 程序):初始化环境变量和Windows 图形子系统(Win32k.sys),初始化Windows API(csrss.exe)和Windows 初始化进程(WinInit.exe)和登陆进程(WinLogon.exe);7.WinInit.exe 阶段(Windows 程序):初始化服务管理器(SCM),本地安全鉴定进程(LSASS)和本地会话管理器(LSM),初始化剩余的注册表中的启动项内容,以用户态运行启动项任务;8.Winlogon.exe 阶段:显示登陆画面,处理与用户登录相关的安全鉴定任务;9.Services.exe 阶段:完成加载在HKLM\SYSTEM\CurrentControlSet\Services 下标记为AutoStart 的驱动程序和Windows 服务;10.Explorer.exe 阶段:在创建Windows Shell(Explorer.exe)时,初始化桌面窗口管理器(DWM)进程,Explorer.exe 加载自身和相关启动项。
windows启动原理Windows的启动原理可以简单地分为两个过程:引导阶段和加载阶段。
在引导阶段,当计算机被启动时,BIOS(基本输入/输出系统)会首先运行。
BIOS的主要功能是检测和初始化硬件设备,并加载引导装载程序。
引导装载程序位于硬盘的主引导记录(Master Boot Record,MBR)或EFI系统分区的引导管理器中。
此装载程序负责确定Windows操作系统的位置并加载到内存中。
接下来是加载阶段,引导装载程序会加载Windows操作系统的核心文件(如ntoskrnl.exe)和驱动程序到内存中。
此时,系统会进入内核模式,开始执行初始化和加载操作。
Windows会加载一系列的设备驱动程序,包括硬盘控制器、显示适配器、网卡等。
同时,注册表和配置文件也会被加载。
在完成设备驱动程序和系统核心文件的加载后,Windows会加载用户配置文件和启动服务。
用户配置文件包括用户的桌面设置、壁纸、应用程序快捷方式等。
启动服务是一些在系统启动时需要自动运行的程序,例如防火墙、杀毒软件等。
这些服务和程序会在Windows启动时自动加载并运行。
最后,Windows会加载用户登录界面,等待用户输入用户名和密码。
一旦用户身份验证成功,Windows会加载用户个人设置和程序,并启动对应的用户桌面。
总结起来,Windows的启动原理主要包括引导阶段和加载阶段。
在引导阶段,引导装载程序负责加载Windows操作系统到内存中。
在加载阶段,系统会加载设备驱动程序、核心文件、用户配置文件和启动服务。
最后,Windows会加载用户登录界面并启动用户个人设置和程序。
Windows 启动过程全面接触一.启动文件启动过程:POST(Power On Self Test)自检,打开电源后ROMBIOS首先检测内存容量和是否异常,接着检查显卡,输入输出端口,软硬盘等.有错误通过画面或声音给出错误信息.如果硬件检测没有任何的问题,POST自检过程结束.BIOS找到启动文件送到内存中.如果找不到启动文件则出现提示信息.将启动文件复制到内存后,读取和CONFIG.SYS,AUTOEXEC.BA T文件并执行其中的命令,最后执行启动WINDOWS98,启动至此结束.下面介绍一下电脑在启动过程中读取的文件.1.IO.SYS在POST过程结束后,BIOS最先读取IO.SYS文件.在以前的DOS时代,IO.SYS负责硬件数据的输入输出控制,而在WINDOWS98中它起到MSDOS.SYS和IO.SYS的基本作用.这里还包括了DOS中和CONFIG.SYS和AUTOEXEC.BA T的作用.正因为这样在不指定CONFIG.SYS和AUTOEXEC.BA T的情况下也能以最低的环境启动.IO.SYS是用户不能随便修改的文件,在读入内存时同时读取HIMEM.SYS,IFSHLP.SYS,SETVER.EXE,DBLSPACE.BIN文件.如果想改变IO.SYS中包含的项目就要使用CONFIG.SYS和AUTOEXEC.BA T文件.下面是关于IO.SYS中的选项的说明. HIMEM.SYS: 使用高端内存(HMA:High Memory Area)的选项.使用扩展内存(Extended Memory)的65KB部分HMA,从而节约常规内存.DOS=HIGH: 由系统文件管理者(Installable File System Manager)管理.这个选项使WINDOWS可以支持32位的文件.SETVER.EXE: 一部分DOS应用程序只能在特定的版本中运行,而使用SETVER可使应用程序运行在相应的版本中,这时要求读取SETVER.EXEFILES=: WIDNOWS一次能够运行的程序个数.基本值是’60’,如果设置的太小则不能运行程序,相反设置的太大将浪费内存.LOADDRIVE=: 在WINDOWS中能够使用的驱动器名范围.最大值是’Z’,.如果想更改可在CONFIG.SYS中.设定.BUFFERS=: 用于设定读取数据的缓冲区大小.在WINODWS98中没有用,用于DOS程序基本值为’30’,如果设置的太大同样浪费内存.STACKS=: 堆栈.用于程序,基本值是’9,256’,意为使用9个256KB的堆栈.如果指定太多的堆栈则浪费内存资源,而设置的太小则出现错误信息.2.MSDOS.SYSMSDOS.SYS在DOS中是一个负责内存管理,系统读取的重要的启动文件.但是在WINDOWS98中主要用于调整启动时的选项,因为MSDOS.SYS文件可以由用户修改,因此能够实现启动时的多样设定.如果想修改MSDOS.SYS文件则先要将’只读’和’隐藏’去掉.修改以后再恢复.[PA THS]选项HostWinBootDrv=: 指定启动驱动器的路径.通常指定为’C’即可.WinBootDir=: 指定启动路径.通常为’C\WINDOWS’.WinDir=: WIDNOWS的路径.通常为’C:\WINDOWS’[OPTION]选项Autoscan=: 用于设定启动时是否检查硬盘.基本值是’1’,如果设置为’AUTOSCAN=1’则先给出提示后进行检查,如果设定为’2’则没有提示信息进行检查,设定为’0’时不进行检查. BOOTDELAY=: 用于设定出现’STARTING WINDOWS’信息后等待的时间.这是为了确保启动时利用<F8>进入选项,基本值为’2’,表示等待2秒.如果设置为’0’虽然可以提高启动速度,但有可能进入安全模式.BootGUI=: 用于设定启动时是否进入WIDNOWS环境,设置为’1’时进入WIDNOWS98环境.设定为’0’则不能使用.当然这时键入’WIN’也可进入WINDOWS98.BootGUI=: 设置是否在启动时使用功能键.设置为’1’则可以使用F5、F6、F8,设置为’0’则不能使用.当然这时’BootDelay=’功能也不能使用.BootMenu=: 在启动时显示菜单选项.基本值为’0’,这时在启动时按下F8才能看到菜单,而设置为’1’则启动时直接出现菜单.BootMenuDefault=: 选择启动时的基本项目.设置为’3’是以安全模式启动,设置为’1’则进入正常模式.BootMenuDelay=: 指定启动菜单的持续时间.基本值为’30’.BootMulti=: 利用这个选项进入以前版本的DOS.基本值为’0’,这时在启动菜单中看不见以前的DOS模式选项,设置为’1’时在菜单的最后一项可以看到.它只用于Windows95调协时,在安装了windows98之后即使设置为’1’也看到这个选项.BootWarn=: 在以安全模式启动成功时出现警告信息,基本值为’1’.DblSpace=: 读取用于磁盘压缩的dblspace.bin,基本值为’1’.DrvSpace=: 与’DblSpace=: ‘一样也是读取用于磁盘压缩的drvspace.ini文件.Logo=: 设置为’1’时出现Windows98的Logo画面,表示系统动作.无论是在DOS操作系统还是在WINDOWS操作系统中都担当着重要的作用,是在启动时必须的文件,起到解释内部和外部命令并执行的作用,中包含了一般DOS状态和CONFIG.SYS,AUTOEXEC.BA T中使用的命令.内部命令: cd, cls, copy, date, del, dir, md, ren, rd, time, type, ver, vol 等.Config.sys, autoexec.bat 命令: buffers, call, device, devicehigh, dos, fcbs, files, for, goto, lastdrive, loadhigh(LH), memucolor, memudefault, menuitem, numlock, path, prompt, rem, set, shell, stacks, submenu, switches等.4.CONFIG.SYSCONFIG.SYS文件的作用是将硬件的驱动程序读到内存中,利用CONFIG.SYS可以管理640KB常规内存的扩展内存,而且可以进行CD-ROM的设置.但是因为在WINDOWS98的环境中已经包含了这些命令,因此没有CONFIG.SYS文件也可以启动.DEVICE=C:\WINDOWS\HIMEM.SYS: 用于激活HMA扩展内存.在WINDOWS98中没有这个命令也能自动激活HMA扩展内存.DEVICE=C:\WINDOWS\SETVER.EXE: 有些DOS应用程序只能在DOS的某个版本中使用,这时可以利用这个命令’欺骗’这样的DOS程序.DEVICEHIGH=C:\CDROM\GSCDROM.SYS/D: 0000: 用于驱动CD-ROM,在WINDOWS不能正确认识CD-ROM时使用这个命令.5.AUTOEXEC.BA TAUTOEXEC.BA T文件用于设置操作系统的运行环境.使用’SET’命令可以自动设定声卡或工具软件的初始环境.SET: 志卡或一些应用程序利用AUTOEXEC.BA T的’SET’命令定制自身的运行环境.’SET TEMP=C:\TIMP’意味着将临时路径设定为C:\TEMP,其它的SET环境由硬件或应用程序自动设置.其它的如’@EchoOff’、’Prompt$p$g’、’Path=LoadHigh’与DOS状态时相差无几,因此不作详细介绍.是WINDOWS98的实际执行文件.如果在MSDOS.SYS中有’BootGUI=1’的命令,则在AUTOEXEC.BA T文件结束时自动执行文件.在启动时和启动后起到不同的作用.在启动时为了WINDOWS正常启动,读取各种环境设定文件,并在启动失败时在DOS画面中提示出错信息.而在启动后的作用也没有结束.在WINDOWS系统中不断有msgvr32.exe、kernel32.exe、注册表、win.ini、system.ini、等重要的文件互相交换信息,这时如果出现致命错误,将提示信息文件也容易突然消失,且易被病毒感染.因此在出现文件丢失时首先应进行病毒检查,再打开MSDOS.SYS文件看看[PA THS]选项的’WinBootDi=’、’WinDir=’路径设置是否正确.在开始时有几个参数选项./d是WINDOWS98在不能正常运行时使用的参数.如果要使用这个参数可以使用’win/d:x’命令.举例说,win/d:f::f:禁止32位的硬盘.在PC出现硬盘问题或windows98启动途中停止时使用这个参数.:m:以安全模式进入windows98.:s:禁止WINDOWS将ROM地址的F000:0000和1MB之间使用为中断点(break point),这个参数可在WINDOWS启动过程中停机时使用.7.WIN.INIWIN.INI是担当WINDOWS基本环境设定的文件.虽然在WINDOWS95中利用注册表进行这样的环境设定,但是一些16位的应用程序为了程序的兼容性还是将信息存在INI文件中. System.ini和win.ini都不是启动时必须的文件,但有些程序只有在win.ini中登录信息后才能使用,而且这些新修改的信息在重新启动后生效. win.ini中有数十个选项,这里只介绍其中几个选项.[Windows]选项Load=: 启动时自动运行程序.与‘Run=’的作用相同.Device=: 记录网络打印机的设定,如果不想运行,在前面加上‘;’即可.例: ;Device=HP LaserJet 4V[Desktop]选项Wallpaper=: 指定用于背景画面的BMP文件的路径.TileWallpaper=: 指定背景画面的形式.值为‘1’时平铺,’0’为居中.WallpaperStyle=: 使墙纸按照画面的大小显示.8.SYSTEM.INISystem.ini用于定制实际系统使用的设备驱动.从shell程序explorer.exe开始到鼠标驱动、键盘驱动等.当然这些信息也记录在注册表中,因此没有system.ini也能启动,但与win.ini 一样,有些16位的应用程序需要用到system.ini文件,这里也只介绍system的几个选项.[Boot]选项Shell=explorer.exe: 指定Winodws的shell程序explorer.exe如果定义错误,不能启动.[boot.description]选项: 保存Windows最初设置时的用户设定PC用途.System.drv=标准个人计算机Keyboard.typ=标准101/102键或Microsoft自然键盘.Mouse.drv=标准鼠标[Vcache]选项: 设定在Windows中使用的Cache.Minfilecache=: 最小Vcache容量.Maxfilecache=: 最大Vcache容量.Vcache选项的作用类似于DOS下smartdrv.exe的作用,可以加快数据的输入输出速度.虽然Windows能够在启动时读取Vcache并使cache开始动作,但是这可能带来内存的浪费.如果能够根据自身的系统适当的设定,不但可以合理利用内存,还可以带来速度的提升,是一件一举两得的事情.通常,16MB和32MB内存的系统可以设置为4096,以上的设置为6144.二.快速启动9阶段启动时长时间的等待是一件让人头疼的事.因此这里介绍加快启动速度的方法,如果按着阶段做的话你会不知不觉发现电脑的启动速度有了明显的改善.1阶段: CMOS BIOS硬盘参数设置CMOS BIOS中保存着CPU速度、硬盘和串并连端口等许多硬件的设定记录.在系统启动时首先读取这些信息,Windows98也以这个信息为基础运行.所以COMS BIOS的设定会带来系统启动时间的变化.举例说,在CMOS BIOS中大量地使用了’Auto’设定.这固然给CMOS BIOS的设定带来了方便,但是这样设定系统要自动设置数据的输入输出端口地址,当然要花去时间了.但是如果我们能够预选设定则可以加快系统启动速度.以AWARD BIOS 为例,启动时按<Del>进入BIOS设置.再进入’Standard CMOS Setup’,这里有关于时间、日期和软驱、硬盘的设置.如果在硬盘设置部分没有具体的容量和速度,而是显示为’Auto’,则在启动时要花去2、3秒的时间.可按<ESC>退出’Standard CMOS Setup’,再进入’IDE HDD Auto Detection’选项.通过这个选项可以自动的测定硬盘容量和速度并记录到’Standard CMOS Setup’中.测定结束后再进入’Standard CMOS Setup’可以发现在’IDE HDD Auto Detection’中测定的数据已经写入硬盘设置部分中.接下来要做的是将硬盘中没有设置的IDE端口的设置都改为’None’.当然即使CD-ROM设置在Secondary master也要设置为’None’,因为不管设置为’Auto’还是’None’, Windows98都要自动设定.显然设置为’None’可以缩短启动时寻找CD-ROM的时间.2阶段: 打开Cache,更换引导顺序进入BIOS Features Setup将下列参数如下设置:BIOS Features Setup : 设定值CPU Internal Cache : EnabledExternal Cache : EnabledQuick Power On Self Test : EnabledBoot Sequence : C, A, SCSIBoot Up Floppy Seek : Disabled打开加快CPU运行速度的内部和外部Cache,跳过在启动时自动执行的电源管理测试过程.如果使用的是没有外部Cache的如赛扬CPU则不打开’External Cache’.将引导顺序设置为’C, A, SCSI’可免去寻找软驱的过程.3阶段: 串并联端口设置在CMOS BIOS Setup的初始画面中选择’Intergrated Peripherals’.在这里设定串并联端口的输入输出地址.通常设置为’Auto’,如果想缩短启动时间可自行设定.虽然根据环境的不同端口的地址和IRQ有所不同.但一般将串联端口1指定为’3F8H/IRQ4’,串联端口2指定为’2F8H/IRQ3’.并联端口指定为’378H/IRQ7’.Onboard Serial Port1 : 3F8/IRO4Onboard Serial Port2 : 2F8/IRQ3Onboard Parallel Port : 378/IRQ74阶段: 修改config.sys才autoexec.bat.在开始菜单”运行”中键入sysedit,启动”系统配置编辑程序”,编辑config.sys和autoexec.bat文件.这里要最大的简化,对于减少数据读取时间有很大的作用.在config.sys中可以去掉所有的配置.只是在系统无法正确识别CD-ROM时在这里进行CD-ROM的设定.同样,autoexec.bat也可以进行最大的简化.只将以’set’开始的环境设定项留下,因为有的声卡在autoexec.bat中利用set命令设置环境后才能在Windows98中使用.而且’set path’命令对于在Winodws98的DOS窗口运行应用程序时非常便利.因此最好将以set开头的命令留下来. 5阶段: 将INI文件的空白部分去掉下面来修改win.ini和system.ini文件.其实即使没有这两个文件Windows98的启动也是不会受影响的.但是一部分16位和32位程序的重要数据保存在这里,因此也不能无条件的去除.只是为了提高启动速度,将win.ini和system.ini中的空白部分去掉,如下所示A变为B状态.A: NullPort=NoneDevice=HP DesignJet 230 (C4695A),HPGLRTL2,LPT1:[Desktop]Wallpaper=(无)TileWallpaper=1B: NullPort=NoneDevice=HP DesignJet 230 (C4695A),HPGLRTL2,LPT1:[Desktop]Wallpaper=(无)TileWallpaper=1WallpaperStyle=0因为系统在启动时一个字一个字地读取win.ini文件,因此减少这些空白部分可以一定程度上提高启动速度.6阶段: 修改注册表在Windows98启动时读取win.ini和system.ini文件后读取注册表文件.如果注册表文件太大的话,启动速度将大大的降低.因此可以说改变注册文件的大小可以左右启动时间.有的版本较低或稳定性上有问题的应用程序在设置和使用时有过分依赖注册表的倾向.在利用注册表保存和读取数据的过程中如果因为程序的不稳定出现DOWN机或提示’没有回应’,则注册表出现了问题.那样,机器的启动速度将变慢,甚至要重新安装操作系统.因此要努力使注册表最低化,尽可能的为它减肥.(1)删除鼠标指针将注册表中没有用的鼠标指针项删除,打开注册表编辑器进入’HKEY_CURRENT_USER\ControlPanel\Cursors\Schemes’,将不用的鼠标指针删除.(2) 删除不有的<外观方案>进入’HKEY_CURRENT_USER\Control Panel\Appearance\Schemes’,将不用的如’高对比’、雨天’等外观方案删除.(3) 将没有用的键盘输入删除在’HKEY_LOCAL_MACHIN E\System\CurrentControlSet\Control\Keyboard Layouts’中可以找到世界各国键盘输入方式,只留下中文输入和英语,将其他的项目删除.(4) 删除多余的语言设置与键盘一样,注册表中也有各国的语言设置,进入’HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Local’,只留下英语(00000409)和中文(00000804)将其余的删除.7阶段: 整理<启动>在<运行>中键入<msconfig>,点击<启动>将其中的’对勾’全部去掉,里面的内容没有太大的用处,去掉不但可以加速启动还可以节约系统资源,这里简单介绍几个.Internat.exe: 控制输入法按钮,就是那个<任务栏>上的<En>.ScanRegistry: 启动时自动检查注册表.LoadPowerProfile: 将系统的电源管理功能复制到内存中.SchedulingAgent: 控制<任务栏>中的<计划任务>.8阶段: 删除不用的程序进入<添加/删除程序>将不用的程序删除.最好不要将那些程序积攒下来一次性的删除,那些不用的程序和对系统稳定有影响的程序应及时删除.9阶段: 整理其他的项目现在到了最后的关口了.(1)删除<字体>这不用多说<字体>那家伙不但大大的减缓机器启动速度,还浪费许多的系统资源.当然,有用的字体还是要留下.(2) 简化在启动画面中的按钮过多将减慢启动速度,这是因为系统为了显示这些按钮要花去一定的时间.尽可能减少这些按钮,然后在<显示属性>→<外观>→<项目>中把<图标>设置为小于32,你会发现按钮的显示速度不知不觉加快了.(3) 去除<用户><口令>的登录过程启动速度再快也要在登录过程暂停一会儿,使用Windows自带的Tweak UI可以去除这个过程.进入WindowsCD的Tools\Reskit\Powertoy找到tweakui.inf文件,用右键点击,选择设置,设置好后进入<控制面板>可以看见Tweak UI按钮,执行它后选择Network项,点击’Log on automatically at system startup’输入用户名和口令,即可在启动时自动进行口令的输入.。
了解电脑操作系统的开机流程电脑操作系统被广泛应用于各个领域,已成为现代社会生活中不可或缺的一部分。
然而,了解电脑操作系统的开机流程对于许多人来说仍然是一项挑战。
在本文中,我将向大家详细介绍电脑操作系统的开机流程,以帮助读者更好地理解和应用。
一、加电启动当我们打开电脑电源时,电能开始供给给计算机的各个部件。
主板上的电源按钮通过信号传输给电源装置,引导电源以正确的方式启动。
同时,主板还会将电源信号发送给其他硬件设备,以保证它们处于待机或启动状态。
二、主板自检接下来,主板开始进行自检。
主板上的BIOS(基本输入输出系统)负责开机自检,也称为POST(Power-On Self Test)。
自检的目的是确保计算机硬件的正常工作。
在自检期间,主板会检查各个硬件组件是否齐全以及是否正常运作。
如果发现异常情况,比如内存不良或显卡故障等,主板将会发出蜂鸣声或者显示错误代码。
三、引导顺序确定在主板自检通过后,BIOS将会选择启动设备。
这些启动设备可以是硬盘、光盘、或者USB设备等。
BIOS根据事先设定好的引导顺序,按照顺序检查这些设备上是否有可用的引导程序。
一旦找到了可用的引导程序,BIOS将会将控制权交给该程序。
四、引导加载程序引导加载程序(Boot Loader)是一段小型的程序,其作用是加载操作系统内核。
一般情况下,引导加载程序存储在存储介质的引导扇区,比如硬盘的主引导记录(MBR)或EFI系统分区。
引导加载程序会将内核加载到计算机的内存中。
五、操作系统加载接下来,引导加载程序会将操作系统内核从存储介质中加载到内存中。
然后,操作系统开始初始化各个关键部件,比如文件系统、设备管理、驱动程序等。
此时,计算机已经进入操作系统的启动过程。
六、登录界面显示当操作系统完成初始化后,会显示登录界面。
在此界面上,用户需要输入有效的用户名和密码进行身份验证。
一旦验证通过,操作系统将会加载用户所需的桌面环境和其他软件应用程序。
一、概述:1)计算机启动时经过的过程:计算机接通电源后,第一步要进行加电自检,也就是POST(Power On Self Test),检查RAM、驱动器等;第二步BIOS会读取活动分区主引导记录的启动装载器;第三步启动装载器初始化完成,操作系统启动正式开始,这个过程主要又分为引导阶段、加载内核阶段、初始化内核阶段、登录系统启动这四个阶段。
其中初始化内核阶段是一个很复杂的过程,系统需要加载很多底层硬件的驱动程序,读取注册信息、寻找新硬件设备、启动相关服务,初始化显示设备和显示出用户界面等。
并且实施各种用户自定义的配置,例如安全配置等。
2)各操作系统启动时使用的程序(文件):WIN98启动:,Io.sys,Msdos.sys,Drvspace.binWIN2000启动:Ntldr,boot.ini,bootsect.dos,,Ntoskrnl.exeWINXP启动:NTLDR,Boot.ini,,ntokrnl.exe,Ntbootdd.sys,bootsect.dos(可选择)二、目录:1、全面解析计算机启动过程2、Windows98的启动过程3、WIN2000启动的简单过程4、Windows2000启动过程详解5、WINXP启动的简单过程6、Windows XP 启动过程详解1、全面透析计算机启动过程打开电源启动机器几乎是电脑爱好者每天必做的事情,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢?相信有的朋友还不是很清楚,本文就来介绍一下从打开电源到出现Windows的蓝天白云时,计算机到底都干了些什么事情。
首先让我们来了解一些基本概念。
第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。
BIOS包括有系统BIOS(即常说的主板BIOS)、显卡BIOS和其它设备(例如IDE控制器、SCSI卡或网卡等)的BIOS,其中系统BIOS是本文要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。
系统启动详细过程系统启动是指电脑在被打开或重启后,按照一定顺序自动执行的一系列操作。
它包括了硬件检测、引导加载程序的加载、操作系统的启动和一些其他的初始化过程。
下面将详细介绍系统启动的过程。
1.电源启动:当用户按下电源按钮,电源开始向电脑主板提供电力。
电源会检测电压是否正常,如果正常则会继续向下执行。
2. 自检(POST):电脑主板会自动进行一系列的自检操作,被称为电源自检(POST,Power-On Self-Test)。
这个过程主要检测硬件的状态和连接是否正常。
自检包括了对CPU、内存、硬盘、显卡等主要硬件的检测。
3.开机自检显示:一般情况下,主板会将自检结果通过蜂鸣器或显示屏输出。
如果有故障,主板会发出蜂鸣警报并在屏幕上显示错误信息。
如果一切正常,系统将继续启动。
4.引导加载程序(BOOTLOADER):系统启动后,主板会检测启动设备(如硬盘、光盘、U盘等)是否存在,如果有则会选择一个启动设备。
然后从启动设备的引导扇区中加载引导加载程序(BOOTLOADER)。
5. 引导加载程序的加载:引导加载程序是一个小程序,位于启动设备的引导扇区。
它的作用是加载操作系统内核和初始化系统环境。
主要有常见的GRUB和Windows的NTLDR等。
引导加载程序加载完成后,控制权将交给操作系统。
6.操作系统的加载:引导加载程序通过读取文件系统中的引导文件加载操作系统内核。
内核是操作系统的核心部分,负责协调硬件资源以及提供系统服务。
在加载内核之前,引导加载程序会加载一些必要的驱动程序和系统文件。
7.系统初始化:内核加载完成后,它会初始化系统环境。
这个过程主要包括初始化处理器、内存管理、设备驱动程序、进程管理等。
在完成初始化之后,操作系统将开始执行用户进程。
8.用户进程的启动:操作系统启动后,会根据用户设置或默认的启动配置文件来启动指定的用户进程。
用户进程包括了各种应用程序、系统服务等。
这些进程将在系统内存中分配空间,并根据需要执行相应的操作。
Windows的启动过程详解1.启动自检阶段这个阶段主要是读取BIOS ,然后内存,CPU,硬盘,键盘等设备进行自检。
这个阶段在屏幕上显示就是自检的那些打印信息。
屏幕显示:自检的打印信息2.初始化启动阶段这个阶段根据BIOS 指定的启动顺序,找到可以启动的优先启动设备,比如本地磁盘,CD Driver ,USB 设备等等,然后准备从这些设备启动系统。
屏幕显示:黑屏3.Boot 加载阶段这个阶段首先从启动分区(比如C 盘) 加载Ntldr ,然后Ntldr 做如下设置:(1).内置内存模式,如果是x86 的处理器,并且操作系统是32位,则设置为32-bit flat memory mode,如果是64 位操作系统+ 64位处理器,则设置为64位内存模式。
(2).启动文件系统(3).读取boot.ini 文件屏幕显示:黑屏,如果按F8或者多系统时会显示启动选项菜单。
检测和配置硬件阶段这个阶段检查和配置一些硬件设备,它们分别是:—系统固件,比如时间和日期—总线和适配器—显示适配器—键盘—通讯端口—磁盘—软盘—输入设备(如鼠标)—并口—在ISA总线上运行的设备屏幕显示:黑屏4.内核加载阶段在内核加载阶段,Ntldr 将首先加载Windows内核Ntoskrnl.exe 和硬件抽象层(HAL). HAL 有点类似于嵌入式操作系统下的BSP (Borad support package),这个抽象层对硬件底层的特性进行隔离,对操作系统提供统一的调用接口,操作系统移植到不同硬件时只要改变相应的HAL 就可以,其它的内核组件不需要修改,这个是操作系统通常的设计模式。
接下来Ntldr 从HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet 下读取这台机器安装的驱动程序,然后依次加载驱动程序。
驱动程序加载完成后,Windows做如下设置:(1). 创建系统环境变量(2). 启动win32.sys ,这个是Windows子系统的内核模式部分。
深入解析电脑操作系统的启动过程电脑操作系统是一台计算机中最重要的软件系统,它负责管理和控制计算机的硬件资源,提供用户与计算机之间的接口。
计算机系统的启动过程是指从计算机通电到操作系统完全加载并准备好接受用户操作的一系列步骤。
本文将深入解析电脑操作系统的启动过程,并分为硬件启动、引导加载和操作系统初始化三个部分进行阐述。
一、硬件启动当计算机通电时,硬件设备开始自检和初始化。
自检过程主要包括CPU、内存、硬盘等硬件设备是否正常工作,以及与外部设备的连接是否良好等。
通过自检,计算机系统能够确保硬件设备的正常运行状态。
接着,计算机会加载BIOS(Basic Input/Output System,基本输入输出系统),BIOS是计算机系统的基本固件,负责将计算机硬件连接到操作系统。
在计算机通电后,BIOS会读取存储在CMOS中的设置信息,包括硬件设备的参数、启动顺序等。
根据这些设置,BIOS会选择相应的设备作为引导设备,用于加载操作系统。
二、引导加载计算机开始引导加载操作系统。
根据BIOS中的设置,计算机会首先寻找引导设备上的引导代码。
在实际操作中,通常是从硬盘的主引导记录(Master Boot Record,MBR)中加载引导代码。
MBR是硬盘上的一个特殊扇区,它包含了引导代码和硬盘分区表。
当计算机找到MBR后,会将其中的引导代码加载到内存中,并执行该代码。
引导代码通常被称为引导加载程序(Bootloader),它的功能是加载操作系统的核心部分。
引导加载程序根据操作系统所在的文件系统类型以及文件路径,找到操作系统文件的位置,并将其加载到内存中。
不同的操作系统可能有不同的引导加载程序,如Windows系统的NTLDR(New Technology Loader)、GRUB(GNU GRand Unified Bootloader)等。
引导加载程序的主要任务是将控制权交给操作系统内核。
三、操作系统初始化操作系统内核被加载到内存后,计算机开始进行操作系统的初始化工作。
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的启动过程之前,对系统结构有一个初步概念是很重要的。
预引导阶段当我们打开计算机电源后,预引导过程就开始运行了。
在这个过程中,计算机硬件首先要完成通电自检(Power-On Self Test,POST),这一步主要会对计算机中安装的处理器、内存等硬件进行检测,如果一切正常,则会继续下面的过程。
如果您的计算机BIOS(固化在计算机主板上芯片中的一些程序)是支持即插即用的(基本上,现阶段能够买到的计算机和硬件都是支持这一标准的),而且所有硬件设备都已经被自动识别和配置,接下来计算机将会定位引导设备(例如第一块硬盘,设备的引导顺序可以在计算机的BIOS设置中修改),然后从引导设备中读取并运行主引导记录(Master Boot Record,MBR)。
至此,预引导阶段成功完成。
引导阶段引导阶段又可以分为:初始化引导载入程序、操作系统选择、硬件检测、硬件配置文件选择这四个步骤。
在这一过程中需要使用的文件包括:Ntldr、Boot.ini、、Ntoskrnl.exe、Ntbootdd.sys、Bootsect.dos(非必须)。
初始化引导载入程序在这一阶段,首先出场的是ntldr,该程序会将处理器由实模式(Real Mode)切换为32位平坦内存模式(32-bit Flat Memory Mo de)。
不使用实模式的主要原因是,在实模式下,内存中的前640 K B是为MS-DOS保留的,而剩余内存则会被当作扩展内存使用,这样Windows XP将无法使用全部的物理内存。
而32位平坦内存模式下就好多了,Windows XP自身将能使用计算机上安装的所有内存(其实最多也只能用2 GB,这是32位操作系统的设计缺陷。
关于大内存的问题因为和本文的内容关系不大,因此这里不表,日后有机会再单独撰文介绍)。
接下来ntldr会寻找系统自带的一个微型的文件系统驱动。
大家都知道,DOS和Windows 9x操作系统是无法读写NTFS文件系统的分区的,那么Windows XP的安装程序为什么可以读写NTFS分区?其实这就是微型文件系统驱动的功劳了。
只有在载入了这个驱动之后,ntldr才能找到您硬盘上被格式化为NTFS或者FAT/FAT32文件系统的分区。
如果这个驱动损坏了,就算您的硬盘上已经有分区,ntld r也认不出来的。
读取了文件系统驱动,并成功找到硬盘上的分区后,引导载入程序的初始化过程就已经完成了,随后我们将会进行到下一步。
操作系统选择这一步并非必须的,只有在您计算机中安装了多个Windows操作系统的时候才会出现。
不过无论您的计算机中安装了几个Window s,计算机启动的过程中,这一步都会按照设计运行一遍,只有在确实安装了多个系统的时候,系统才会显示一个列表,让您选择想要引导的系统。
但如果您只有一个系统,那么引导程序在判断完之后会直接进入到下一阶段。
如果您已经安装了多个Windows操作系统(泛指Windows 2000 /XP/2003这类较新的系统,不包括Windows 9x系统),那么所有的记录都会被保存在系统盘根目录下一个名为boot.ini的文件中。
ntldr 程序在完成了初始化工作之后就会从硬盘上读取boot.ini文件,并根据其中的内容判断计算机上安装了几个Windows,它们分别安装在第几块硬盘的第几个分区上。
如果只安装了一个,那么就直接跳过这一步。
但如果安装了多个,那么ntldr就会根据文件中的记录显示一个操作系统选择列表,并默认持续30秒。
只要您做出选择,ntldr就会自动开始装载被选择的系统。
如果您没有选择,那么30秒后,ntldr 会开始载入默认的操作系统。
至此操作系统选择这一步已经成功完成。
小知识:系统盘(System Volume)和引导盘(Boot Volume)有什么区别?这是两个很容易被人搞混的概念,因为根据微软对这两个名词的定义,很容易令人产生误解。
根据微软的定义,系统盘是指保存了用于引导Windows的文件(根据前面的介绍,我们已经清楚,这些文件是指ntldr、boot.ini等)的硬盘分区/卷;而引导盘是指保存了Wind ows系统文件的硬盘分区/卷。
如果只有一个操作系统的话,我们通常会将其安装在第一个物理硬盘的第一个主分区(通常被识别为C 盘)上,那么系统盘和引导盘属于同一个分区。
但是,如果您将您的Windows安装到了其他分区中,例如D盘中,那么系统盘仍然是您的C盘(因为尽管Windows被安装到了其他盘,但是引导系统所用的文件还是会保存在C盘的根目录下),但您的引导盘将会变成是D 盘。
很奇怪的规定,保存了引导系统所需文件的分区被叫做“系统盘”,反而保存了操作系统文件的分区被叫做“引导盘”,正好颠倒了。
不过微软就是这样规定的。
硬件检测这一过程中主要需要用到和Ntldr。
当我们在前面的操作系统选择阶段选择了想要载入的Windows系统之后,Ntdetec 首先要将当前计算机中安装的所有硬件信息收集起来,并列成一个表,接着将该表交给Ntldr(这个表的信息稍后会被用来创建注册表中有关硬件的键)。
这里需要被收集信息的硬件类型包括:总线/适配器类型、显卡、通讯端口、串口、浮点运算器(CPU)、可移动存储器、键盘、指示装置(鼠标)。
至此,硬件检测操作已经成功完成。
配置文件选择这一步也不是必须的。
只有在计算机(常用于笔记本电脑)中创建了多个硬件配置文件的时候才需要处理这一步。
小知识:什么是硬件配置文件?为什么要用它?这个功能比较适合笔记本电脑用户。
如果您有一台笔记本电脑,主要在办公室和家里使用,在办公室的时候您可能会使用网卡将其接入公司的局域网,公司使用了DHCP服务器为客户端指派IP地址;但是回到家之后,没有了DHCP服务器,启动系统的时候系统将会用很长时间寻找那个不存在的DHCP服务器,这将延长系统的启动时间。
在这种情况下就可以分别在办公室和家里使用不同的硬件配置文件了,我们可以通过硬件配置文件决定在某个配置文件中使用哪些硬件,不使用哪些硬件。
例如前面列举的例子,我们可以为笔记本电脑在家里和办公室分别创建独立的配置文件,而家庭用的配置文件中会将网卡禁用。
这样,回家后使用家用的配置文件,系统启动的时候会直接禁用网卡,也就避免了寻找不存在的DHCP服务器延长系统启动时间。
如果Ntldr检测到系统中创建了多个硬件配置文件,那么它就会在这时候将所有可用的配置文件列表显示出来,供用户选择。
这里其实和操作系统的选择类似,不管系统中有没有创建多个配置文件,Nt ldr都会进行这一步操作,不过只有在确实检测到多个硬件配置文件的时候才会显示文件列表。
载入内核阶段在这一阶段,Ntldr会载入Windows XP的内核文件:Ntoskrnl.ex e,但这里仅仅是载入,内核此时还不会被初始化。
随后被载入的是硬件抽象层(hal.dll)。
硬件抽象层其实是内存中运行的一个程序,这个程序在Window s XP内核和物理硬件之间起到了桥梁的作用。
正常情况下,操作系统和应用程序无法直接与物理硬件打交道,只有Windows内核和少量内核模式的系统服务可以直接与硬件交互。
而其他大部分系统服务以及应用程序,如果想要和硬件交互,就必须透过硬件抽象层进行。
小知识:为什么要使用硬件抽象层硬件抽象层的使用主要有两个原因:1,忽略无效甚至错误的硬件调用。
如果没有硬件抽象层,那么硬件上发生的所有调用甚至错误都将会反馈给操作系统,这可能会导致系统不稳定。
而硬件抽象层就像工作在物理硬件和操作系统内核之间的一个过滤器,可以将认为会对操作系统产生危害的调用和错误全部过滤掉,这样直接提高了系统的稳定性;2,多平台之间的转换翻译。
这个原因可以列举一个形象的例子,假设每个物理硬件都使用不同的语言,而每个操作系统组件或者应用程序则使用了同样的语言,那么不同物理硬件和系统之间的交流将会是混乱而且很没有效率的。
如果有了硬件抽象层,等于给软硬件之间安排了一位翻译,这位翻译懂所有硬件的语言,并会将硬件说的话用系统或者软件能够理解的语言原意转达给操作系统和软件。
通过这个机制,操作系统对硬件的支持可以得到极大的提高。
硬件抽象层被载入后,接下来要被内核载入的是HKEY_LOCAL_M ACHINE\System注册表键。
Ntldr会根据载入的Select键的内容判断接下来需要载入哪个Control Set注册表键(图2),而这些键会决定随后系统将载入哪些设备驱动或者启动哪些服务。
这些注册表键的内容被载入后,系统将进入初始化内核阶段,这时候ntldr会将系统的控制权交给操作系统内核。
初始化内核阶段当进入到这一阶段的时候,计算机屏幕上就会显示Windows XP 的标志了,同时还会显示一条滚动的进度条,这个进度条可能会滚动若干圈(图3)。
从这一步开始我们才能从屏幕上队系统的启动有一个直观的印象。