fslxy 发表于 2011-5-10 04:30:52

Windows从开机到桌面从关机到停机背后都在做什么?

严格讲,从用户按下电脑开机按钮一直到进入操作系统桌面,“少一半”时间是电脑“硬件”自身的规定性动作(最近几年出产的品牌机和主板,则用“品牌宣传”将“背后都在做什么”掩盖了起来),“多一半”时间则是Microsoft Windows自身的背后规定动作。从用户点按Microsoft Windows关机按钮到电脑断电关机,从头至尾都是在用户“毫不知情”的情况下,默默地做了操作系统认为必须做的一切——

开机到桌面的“背后”动作:首先,进行“预备启动”,加电进行自检,由BIOS完成基本硬件配置,然后读取硬盘的MBR(主引导记录),检查硬盘分区表以确定引导分区,并将引导分区上的操作系统引导扇区调入内存中执行。其次,执行“系统启动”:1、进行初始化。转换为32位保护模式,即按“F8”出现的“Windows高级选项菜单”;2、Windows XP读取BOOT.INI,确定默认启动的操作系统。Windows Vista和Windows 7开辟了系统启动技术的新纪元:执行系统启动管理器(Windows Boot Manager),运行%SystemRoot%System32文件夹中的OS loader- Winload exe;运行Windows会话管理器(smss.exe)并启动Windows启动程序(Wininit exe),而后进行本地安全验证(Lsass.exe)与特定服务(services.exe)进程。最后,就可登录操作系统了。

进入操作系统之前,有一个大家非常熟悉而且不可逾越的界面:来回滚动的进度条(Windows XP / Vista)或来回变换的微软彩色徽标(Windows 7)。在其背后,主要完成四项任务:1、创建注册表键。Windows内核会调用在此之前“自检阶段”收集到的硬件信息,创建HKEY_LOCAL_MACHINEHardware键。2、对Control Set注册表键进行复制。如果Hardware注册表键创建成功,那么系统内核就会对Control Set键的内容创建一个备份。3、载入和初始化设备驱动。首先会载入“底层设备驱动”,然后会在注册表中查找所有Start键值为“1”的设备驱动。这些设备驱动将会在载入之后立刻进行初始化。4、启动系统服务项。当所有这些操作都完成后,Windows桌面就会出现在用户的面前。

从点按系统关机按钮到电脑彻底断电关机,要经过四个步骤:1、关机指令通知Windows子系统的CSRSS.EXE(CSRSS.EXE是微软客户端/服务端运行时的子系统,管理Windows图形相关任务),CSRSS.EXE收到通知后会和Winlogon.EXE(Winlogon.EXE是Windows NT用户登陆程序,管理用户登录和退出)做一个数据交换,再由Winlogon.EXE通知CSRSS.EXE开始关闭系统的流程;2、CSRSS.EXE依次查询拥有顶层窗口的用户进程,让这些用户进程依次退出;3、接着开始终止系统进程;4、最后Winlogon.EXE调用NtShutdownSystem函数(NtShutdownSystem函数是众多Windows NT函数之一。如果仅只调用这个函数,在关闭系统时不会事先通知用户进程和系统进程),命令系统执行后面的扫尾工作,并实现电脑正常关机。

大家在网上会看到关于“快速关机”的介绍。这些方法表面上可能确实“奏效”,但假如照此实行,其后果可能会出现一些电脑开机或系统运行的异常。根本原因是:跳过了上述必要步骤而直接调用NtShutdownSystem函数进行关机。众所周知,很多程序在运行时会将数据写入内存(断电即无),正常退出即可完整保存到硬盘(断电存储)。如果不经过必要步骤而“快速关机”,就有可能导致程序不能正常退出而丢失数据,从而造成一些意外的错误,这对操作系统正常运行是有害无益的。大家不必争论正常关机和“快速关机”的孰是孰非,只要明白一个人人皆知的基本常识就行了:微软聚集着全球顶级操作系统设计研发专家,难道他们会无知会愚蠢到舍近求远、舍快求慢,让Windows操作系统正常关机比网上“快速关机”更慢一些吗?


此贴来源 网上 非原创!
页: [1]
查看完整版本: Windows从开机到桌面从关机到停机背后都在做什么?

邓州市,邓州网,邓州吧,邓州论坛,邓州门户网