Windows系统启动详解:从BIOS到smss.exe
需积分: 12 35 浏览量
更新于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 上传
2021-09-27 上传
2022-05-06 上传
灰灰君呀
- 粉丝: 13
- 资源: 74
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程