Windows系统启动详解:从BIOS到smss.exe
需积分: 12 96 浏览量
更新于2024-08-08
收藏 1.16MB DOCX 举报
"Windows系统启动过程涉及多个步骤和组件,包括BIOS、MBR、Ntoskrnl.exe、HAL以及服务程序的启动。服务程序的启动顺序对系统的正常运行至关重要,不正确的顺序可能导致功能异常。会话管理器(smss.exe)是启动过程中的关键部分,它负责读取特定的注册表项并创建进程。"
在Windows系统启动时,首先由基本输入输出系统(BIOS)进行硬件自检,然后引导主引导记录(MBR),找到活动分区,加载内核文件Ntoskrnl.exe和硬件抽象层(HAL)。这些组件初始化系统环境,接着启动类型为0和1的服务,这些服务通常是系统核心服务。
会话管理器(smss.exe)是Windows启动流程中的第一个用户模式进程,由内核进程4(Ntoskrnl.exe)创建。smss.exe在系统启动过程中扮演着重要角色,它负责执行以下任务:
1. **读取注册表项**:
- `HKLM\System\CurrentControlSet\Control\SessionManager\BootExecute`:这里定义了开机时要执行的本机(native)程序,例如杀毒软件可能利用这个机制来清除病毒。
- `HKLM\System\CurrentControlSet\Control\SessionManager\SubSystems`:决定启动哪些环境子系统进程,如Windows子系统(CSRSS)。
- `HKLM\System\CurrentControlSet\Control\SessionManager\PendingFileRenameOperations`:处理上一次系统重启前未完成的文件重命名操作。
2. **创建进程**:
- **本机程序**:由ntdll.dll中的API编写的程序,它们在环境子系统之前启动,注册表`BootExecute`项指定的程序会在开机时由smss.exe启动。
- **环境子系统进程**:smss.exe会检查`HKLM\System\CurrentControlSet\Control\SessionManager\SubSystems`下的配置,启动相应的子系统。通常有Windows子系统(csrss.exe)和POSIX子系统(psxss.exe)。如果psxss.exe不存在,只启动csrss.exe。
会话管理器(smss.exe)之后,系统会继续启动csrss.exe,这是用户界面的主要组成部分,负责处理大部分与图形用户界面相关的任务。接着,系统会启动更多的服务,这些服务按照其依赖关系和服务启动类型有序地启动,直到所有服务都启动完毕,桌面界面才会显示给用户。
理解Windows系统的启动过程对于排查启动故障、优化系统性能以及解决服务程序遇到的问题(如监控剪贴板、设置磁盘卷标或处理COM失败等问题)至关重要。通过深入研究系统启动流程,我们可以更有效地诊断和修复与启动相关的问题。
2021-09-27 上传
2021-09-27 上传
2021-09-27 上传
2021-09-27 上传
2021-09-27 上传
2021-09-27 上传
2021-09-27 上传
2022-05-06 上传
2021-09-27 上传
灰灰君呀
- 粉丝: 13
- 资源: 74
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手