windows启动和关机内幕
[08-23 23:16:54] 来源:http://www.duoxue8.com 电脑技巧 阅读:256次
windows启动和关机内幕,标签:电脑技巧大全,电脑基础知识,http://www.duoxue8.com
WINDOWS的启动流程
第一:NTLDR的作用过程
1.首先机器POST----BIOS----MBR----BOOT SECTOR----os的引导程序 WINDOWS的引导程序是NTLDR注意这个文件其实是个可执行文件,这里机器主要做的工作是:CPU从16的实模式到32的保护模式,启用CPU的页机制,如果磁盘是SCSI,则加载Ntbootdd.sys来访问磁盘,否则用INT13来访问。这里假如机器没找到Ntldr这个文件,在FAT文件系统下,机器显示"BOOT: Couldn't find NTLDRP",而在NTFS下显示"NTLDR is missing"(这个没有具体实验过,是书上这么说的)
2.NTLDR装载后就先CLS屏幕,首先检查根目录下有没有合法的Hiberfil.sys,这个文件的作用是机器休眠的时候把内存中的所有信息保存到hiberfil.sys这个文件中,这个文件的大小始终和系统的物理内存大小一致。如果希望回收这个空间,请打开“控制面板”下的“电源管理”,选择“休眠”选项卡,去掉“启用休眠”这一复选项的选中标记,系统会自动消除hiberfil.sys文件。如果有就快速启动到上次机器休眠的状态。
3.接着处理Boot.ini,如果有多个的启动项,那就显示启动菜单(如果只有一个默认的项,那就是我们立即就可以看到WINDOWS的启动状态条了) 处理BOOT.ini WINDOWS自带的一个工具Bootcfg.exe,可以用这个工具修改,当然也可以自己用记事本打开boot.ini来修改,boot.ini的一些参数会保存在注册表HKLM\System\CurrentControlSet\Control\SystemStartOptions下。关于boot.ini里面的参数大家可以去查阅资料。
4.下面就是NTLDR调用执行Ntdetect.com,作用是检测的一些基本设备和配置信息 信息包括:CMOS里的时间日期信息,总线类型,磁盘的大小,类型,数目,输入设备的信息,并口的信息,显卡的类型,这些信息收集后保存在HKLM\HARDWARE\DESCRIPTION下面。接着就2000版本下显示“Starting Windows”进程条,而在xp,2003下是显示WINDOWS的LOGO
5.在显示进程条的过程中,机器实际上是在加载系统相应的内核和HAL文件,一般是Ntoskrnl.exe 和Hal.dll这2个文件,如果这个过程中发现找不到文件,则会显示"Windows could not start because the following file was missing or corrupt"这个信息。然后读取注册表SYSTEM HIVE(Windows\System32\Config\System),来决定需要加载的设备驱动,这些设备驱动都在SERVICE_BOOT_START (0)里面
6.然后加载Ntoskrnl.exe,这样NTLDR的使命就结束了。
第二 Ntoskrnl.exe的作用过程这里主要分2个阶段来初始化内核,最后创建the Session Manager subsystem (Smss)进程。
第三 Smss的作用过程
1.创建LPC port对象,为MSDOS定义符号连接,例如COM1、LPT1,假如安装有Terminal Services,则创建\Sessions目录
2.运行注册表里HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute定义的程序,一般默认的是运行Autochk
3.执行HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations表键中的延迟,删除,改名操作
4.加载HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs 初始化paging files和注册表
5.创建系统环境变量,这些定义在HKLM\System\CurrentControlSet\Session Manager\Environment
6.加载和初始化WIN32子系统的内核模块Win32k.sys
www.duoxue8.com
7. 创建WIN32子系统服务器进程,包括Csrss, 创建Winlogon进程。 这里的2个进程其中一个出现异常,那系统都会中断
第四 Winlogon Csrss过程
1.加载GINA模块,默认为Msgina (\Windows\System32\Msgina.dll)
2.启动服务进程Windows\System32\Services.exe
3.启动Lsass(the local secyrity authentication subsystem)进程
4.Gina开始处理交互式登陆,登陆验证成功后,Gina就运行HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Userinit,Userinit.exe执行的顺序为:首先处理HKCU\Software\Policies\Microsoft\Windows\System\Scripts 和HKLM\Software\Policies\Microsoft\Windows\System\Scripts这里的脚本,然后处理组策略(假如有的话,运行\Windows\System32\Proquota.exe),最后运行HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell里的SHELL(如果不存在就运行HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell里的,一般这里默认的是EXPLORER.exe),注意这里也是最容易让恶意软件利用的地方。
5.最后就是启动其他的启动程序,服务。
WINDOWS的关机流程:
正常关机都是调用ExitWindowsEx这个函数,Csrss收到这个消息后,先给Winlogon所属的窗口发关机消息,等Winlogon处理完后,Csrss然后给每个有关机级别的进程发关机消息(2种消息WM_QUERYENDSESSION/WM_ENDSESSION),这里的等待时间在HKCU\Control Panel\Desktop\HungAppTimeout这里设置,默认是5000 milliseconds,如果在这个时间范围内有线程没处理完,那就会弹出个窗口,让用户来结束,当然也可以设置让系统自动结束,只要设置HKCU\Control Panel\Desktop\AutoEndTasks 为 1就可以了,对于控制台应用程序,则Csrss发这个CTRL_LOGOFF_EVENT事件(服务进程是发CTRL_SHUTDOWN_ EVENT这个事件),同样的流程,有个等待时间,设置在HKCU\Control Panel\Desktop\WaitToKillAppTimeout (默认为 20,000 milliseconds),接着同样的处理系统进程,处理完后,Winlogon就调用NtShutdownSystem,这个函数在调用NtSetSystemPowerState来处理驱动和其他的一些子系统。这样整个关机过程就完成了。
本文来自 http://www.duoxue8.com 谢谢支持
windows启动和关机内幕 结束。
WINDOWS的启动流程
第一:NTLDR的作用过程
1.首先机器POST----BIOS----MBR----BOOT SECTOR----os的引导程序 WINDOWS的引导程序是NTLDR注意这个文件其实是个可执行文件,这里机器主要做的工作是:CPU从16的实模式到32的保护模式,启用CPU的页机制,如果磁盘是SCSI,则加载Ntbootdd.sys来访问磁盘,否则用INT13来访问。这里假如机器没找到Ntldr这个文件,在FAT文件系统下,机器显示"BOOT: Couldn't find NTLDRP",而在NTFS下显示"NTLDR is missing"(这个没有具体实验过,是书上这么说的)
2.NTLDR装载后就先CLS屏幕,首先检查根目录下有没有合法的Hiberfil.sys,这个文件的作用是机器休眠的时候把内存中的所有信息保存到hiberfil.sys这个文件中,这个文件的大小始终和系统的物理内存大小一致。如果希望回收这个空间,请打开“控制面板”下的“电源管理”,选择“休眠”选项卡,去掉“启用休眠”这一复选项的选中标记,系统会自动消除hiberfil.sys文件。如果有就快速启动到上次机器休眠的状态。
3.接着处理Boot.ini,如果有多个的启动项,那就显示启动菜单(如果只有一个默认的项,那就是我们立即就可以看到WINDOWS的启动状态条了) 处理BOOT.ini WINDOWS自带的一个工具Bootcfg.exe,可以用这个工具修改,当然也可以自己用记事本打开boot.ini来修改,boot.ini的一些参数会保存在注册表HKLM\System\CurrentControlSet\Control\SystemStartOptions下。关于boot.ini里面的参数大家可以去查阅资料。
4.下面就是NTLDR调用执行Ntdetect.com,作用是检测的一些基本设备和配置信息 信息包括:CMOS里的时间日期信息,总线类型,磁盘的大小,类型,数目,输入设备的信息,并口的信息,显卡的类型,这些信息收集后保存在HKLM\HARDWARE\DESCRIPTION下面。接着就2000版本下显示“Starting Windows”进程条,而在xp,2003下是显示WINDOWS的LOGO
5.在显示进程条的过程中,机器实际上是在加载系统相应的内核和HAL文件,一般是Ntoskrnl.exe 和Hal.dll这2个文件,如果这个过程中发现找不到文件,则会显示"Windows could not start because the following file was missing or corrupt"这个信息。然后读取注册表SYSTEM HIVE(Windows\System32\Config\System),来决定需要加载的设备驱动,这些设备驱动都在SERVICE_BOOT_START (0)里面
6.然后加载Ntoskrnl.exe,这样NTLDR的使命就结束了。
第二 Ntoskrnl.exe的作用过程这里主要分2个阶段来初始化内核,最后创建the Session Manager subsystem (Smss)进程。
第三 Smss的作用过程
1.创建LPC port对象,为MSDOS定义符号连接,例如COM1、LPT1,假如安装有Terminal Services,则创建\Sessions目录
2.运行注册表里HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute定义的程序,一般默认的是运行Autochk
3.执行HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations表键中的延迟,删除,改名操作
4.加载HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs 初始化paging files和注册表
5.创建系统环境变量,这些定义在HKLM\System\CurrentControlSet\Session Manager\Environment
6.加载和初始化WIN32子系统的内核模块Win32k.sys
www.duoxue8.com
7. 创建WIN32子系统服务器进程,包括Csrss, 创建Winlogon进程。 这里的2个进程其中一个出现异常,那系统都会中断
第四 Winlogon Csrss过程
1.加载GINA模块,默认为Msgina (\Windows\System32\Msgina.dll)
2.启动服务进程Windows\System32\Services.exe
3.启动Lsass(the local secyrity authentication subsystem)进程
4.Gina开始处理交互式登陆,登陆验证成功后,Gina就运行HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Userinit,Userinit.exe执行的顺序为:首先处理HKCU\Software\Policies\Microsoft\Windows\System\Scripts 和HKLM\Software\Policies\Microsoft\Windows\System\Scripts这里的脚本,然后处理组策略(假如有的话,运行\Windows\System32\Proquota.exe),最后运行HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell里的SHELL(如果不存在就运行HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell里的,一般这里默认的是EXPLORER.exe),注意这里也是最容易让恶意软件利用的地方。
5.最后就是启动其他的启动程序,服务。
WINDOWS的关机流程:
正常关机都是调用ExitWindowsEx这个函数,Csrss收到这个消息后,先给Winlogon所属的窗口发关机消息,等Winlogon处理完后,Csrss然后给每个有关机级别的进程发关机消息(2种消息WM_QUERYENDSESSION/WM_ENDSESSION),这里的等待时间在HKCU\Control Panel\Desktop\HungAppTimeout这里设置,默认是5000 milliseconds,如果在这个时间范围内有线程没处理完,那就会弹出个窗口,让用户来结束,当然也可以设置让系统自动结束,只要设置HKCU\Control Panel\Desktop\AutoEndTasks 为 1就可以了,对于控制台应用程序,则Csrss发这个CTRL_LOGOFF_EVENT事件(服务进程是发CTRL_SHUTDOWN_ EVENT这个事件),同样的流程,有个等待时间,设置在HKCU\Control Panel\Desktop\WaitToKillAppTimeout (默认为 20,000 milliseconds),接着同样的处理系统进程,处理完后,Winlogon就调用NtShutdownSystem,这个函数在调用NtSetSystemPowerState来处理驱动和其他的一些子系统。这样整个关机过程就完成了。
本文来自 http://www.duoxue8.com 谢谢支持
windows启动和关机内幕 结束。
Tag:电脑技巧,电脑技巧大全,电脑基础知识,电脑学习 - 电脑技巧
windows启动和关机内幕相关文章
- ·上一个:系统中必须禁止的服务
- windows启动和关机内幕
- › WindowsXP的网桥功能
- › Windows文件恢复技巧:误删文件的恢复
- › Windows 7操作系统中轻松搞定无法删除文件
- › 解决Windows 7系统的四大热门问题
- › 解决Windows 7一段时间后激活状态无效问题
- › Windows 7下DVD光驱无法使用的解决
- › 电脑技巧-用空格键调用Windows7启动管理器
- › Windows 7加密文件夹
- › 非主流秘籍:关闭Windows窗口的神奇快捷键
- › 解决Windows7下WinAPN无法连接网络的问题
- › 怎样加快Windows 7关机速度
- › Windows 7系统ADSL拨号出现本地连接显示未识别
- 在百度中搜索相关文章:windows启动和关机内幕
- 在谷歌中搜索相关文章:windows启动和关机内幕
- 在soso中搜索相关文章:windows启动和关机内幕
- 在搜狗中搜索相关文章:windows启动和关机内幕