硬件抽象层(HAL)

HAL是支持可移植性的关键部分,它提供硬件平台的低层接口,隐藏了与硬件相关的细节。

Windows内部组件及用户编写的设备驱动程序并不直接访问硬件;它们通过调用HAL例程来保持可移植性。

Windows自带了几个不同的HAL,在安装时选择与硬件匹配的HAL拷贝到系统盘上,名为上Hal.dll。因此,如果把安装了Windows的硬盘直接插在另一台机器上启动,必须保证HAL的兼容性。

/Windows/Driver Cache/i386/Driver.cab里存有Windows自带的几种HAL文件。

设备驱动程序

设备驱动程序是可加载的内核模块,它们在I/O管理器和硬件之间建立起连接。

设备驱动程序的三种执行环境:

l         在发起I/O功能的用户线程环境中

l         在内核模式系统线程的环境中

l         作为一中断的结果,不在任何特定的进程或线程的执行环境中

设备驱动程序的类型:

l         硬件设备驱动程序

l         文件系统驱动程序

l         文件系统过滤器驱动程序

l         网络重定向器和服务器

l         协议驱动程序

l         内核流式过滤器驱动程序

编写设备驱动程序是访问操作系统内部函数和数据结构的简便方法。Sysinternals的许多工具就是由一个Windows GUI应用程序和驱动程序组成。

Windows驱动程序模型

驱动程序模型有三种:

l         总线型驱动程序:为总线控制器、适配器等提供服务。Microsoft会为各种总线类型(PCI、USB等)提供驱动程序。

l         功能型驱动程序:主要的设备驱动程序,为硬件设备提供接口。

l         过滤型驱动程序:为某一设备增加或修改功能。一般来说,低层次的过滤型驱动程序改变硬件的行为,高层次的过滤型驱动程序提供一些增值特性。

对某一设备而言,可能会有多种上述类型驱动程序同时存在。

内核函数常用前缀

Prefix

Component

Cc

Cache manager

Cm

Configuration manager

Ex

Executive support routines

FsRtl

File system driver run-time library

Hal

Hardware abstraction layer

Io

I/O manager

Ke

Kernel

Lpc

Local procedure call

Lsa

Local security authentication

Mm

Memory manager

Nt

Windows system services (most of which are exported as Windows functions)

Ob

Object manager

Po

Power manager

Pp

PnP manager

Ps

Process support

Rtl

Run-time library

Se

Security

Wmi

Windows Management Instrumentation

Zw

Mirror entry point for system services (beginning with Nt) that sets previous access mode to kernel, which eliminates parameter validation, because Nt system services validate parameters only if previous access mode is user

系统进程

空闲(Idle)进程:每个CPU一个线程,占用空闲CPU时间

System进程:包含内核模式系统线程

会话管理器(Smss.exe)

Windows子系统(Csrss.exe)

登录进程(Winlogon.exe)

服务控制管理器(Services.exe)和它的子服务进程(如Svchost.exe)

本地安全认证服务器(Lsass.exe)

空闲进程

空闲进程是一个特殊的进程,没有一个实际运行的映像文件与这对应。在不同的工具中,该进程显示名称会有所不同。

中断和DPC

在Process Explorer里,“Interrupts”和“DPCs”被显示为单独的两行,但它们都不是实际的进程。这两行用来显示中断和延迟过程调用所消耗的时间。在Windows任务管理器里没有这两项显示。

System进程和系统线程

System进程是系统线程的母体。这些系统线程只能在内核模式下运行,它们运行的代码可能是在Ntoskrnl.exe中或设备驱动程序中。在Process Explorer中,可以看到System进程中有哪些系统线程。通过观察这些系统线程CPU使用情况,可以诊断哪些驱动程序比较忙。

会话管理器

会话管理器进程(/Windows/System32/Smss.exe)是系统中第一个用户进程,由内核线程创建。

会话管理器创建子系统进程(crss.exe或psxss.exe)和Winlogon进程。Winlogon依次创建其他进程。

HKLM/SYSTEM/CurrentControlSet/Control/Session Manager下面是会话管理器的配置信息。

Winlogon、LSASS和Userinit

Winlogon处理用户的登录和注销,默认的登录界面是在msgina.dll中实现,用户可以替换此dll来实现自己的登录界面。

LSASS处理用户口令的认证,它也是调用一个dll来执行实际的认证操作。认证通过后会产生一个访问令牌对象。Winlogon利用此令牌创建用户会话中的初始进程。

用户会话初始进程名被保存在注册表HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/Userinit键中,默认为userinit.exe程序。

Userinit执行用户环境的初始化工作,然后查询注册表HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/Shell键的值,默认为Explorer.exe,启动它。然后Userinit进程退出。因此Explorer.exe进程没有父进程。

服务控制管理器

服务控制管理器负责启动、停止系统服务。映像文件是/Windows/System32/Sfervices.exe。注册表HKLM/SYSTEM/CurrentControlSet/Services下定义了系统的服务。

服务有三个名称:进程名、注册表中的内部名称和显示名。

Tlist /s命令可以显示进程所包含的服务。

以上各系统进程启动顺序参见http://blog.csdn.net/qwang24/archive/2009/05/16/4193498.aspx。

深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第二章 系统结构 (三)相关推荐

  1. 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第二章 系统结构 (二)

    2.4 关键的系统组件 这一节将会深入介绍Windows内部结构和每个关键的系统组件所扮演的角色.下图是Windows核心组件更详细的图,它是2.1节的结构图细化版本. 环境子系统和子系统DLL Wi ...

  2. 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第一章 概念和工具(二)

    1.2   基础概念和术语(续) 内核模式和用户模式 l         内核模式和用户模式是处理器的概念,而不是操作系统的概念. l         用户代码运行在用户模式下,操作系统代码运行在内核 ...

  3. 【原创】Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 9

    Chapter 9 第九章主要是介绍关于应用程序开发的一章.这一章比较适合应用层开发的人员来了解如何基于wince6.0开发应用层程序,首先我 们还是先看一些单词 //================ ...

  4. 操作系统笔记 第二章

    操作系统笔记 第二章 1.有两个程序:A程序按顺序使用CPU10秒.设备甲5秒.CPU5秒.设备乙10秒.CPU10秒:B程序按顺序使用设备甲10秒.CPU 10秒.CPU5秒.设备乙5秒.CPU 5 ...

  5. 【王道考研】操作系统 笔记 第二章上 进程调度

    本文内容,1.进程和线程 2.进程调度 特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道 ...

  6. Real-Time Rendering Fourth Edition读书笔记1

    Real-Time Rendering Fourth Edition读书笔记1:第一章-第四章 思维导图链接: 链接:https://pan.baidu.com/s/1ic8O_y2mHdoc68tE ...

  7. 操作系统 课堂笔记 第二章 进程管理

    第二章 进程管理 2.1 本章导学 基本内容: (1)进程的基本概念. (2)进程控制. (3)进程间互斥与同步. (4)进程通信. (5)进程调度. (6)进程死锁. (7)线程. 学习重点: (1 ...

  8. 《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(10)

    <Microsoft Sql server 2008 Internals>读书笔记订阅地址: http://www.cnblogs.com/downmoon/category/230397 ...

  9. 操作系统(王道笔记第二章)

    目录 第二章 2.1_1进程的定义.组成.组成形式.特征 2.1_2进程的状态与转换 2.1_3进程的控制 2.1_4进程通信 2.1_5线程概念和多线程模型 2.2_1处理机调度的概念层次 2.2_ ...

最新文章

  1. jQuery插件thickbox在ie下垂直居中问题
  2. 使用负载均衡SLB IPv6搞定苹果AppStore审核
  3. 计算机网络校园网建设设计摘要,计算机网络专业论文校园网建设设计.doc
  4. 前端须知的 Cookie 知识小结
  5. mysql截取longblob类型字段内一小块数据的方法
  6. windows下快速启动或关闭系统服务方法
  7. 计算机二级判断题技巧一半对一半错,计算机二级小技巧
  8. 今年四月份,发现我的文章被人全部复制了,抄到博客园了,连原文出处都没有,就算你写个参考文章也行呀
  9. UVa1584 - Circular Sequence
  10. 服务器群集及web服务器负载均衡Lvs-network小案例
  11. html怎么将背景图片旋转,css怎么旋转图片?
  12. 超级简易的加法计算器
  13. java gc什么意思_Java的GC是什么?做了什么?
  14. msvcp140.dll丢失的解决方法_msvcp140.dll丢失怎样修复win10
  15. 显著性检测综述(完整整理)
  16. 小丁在研究数学问题时遇到一个定义:对于排好顺序的k个数:x1,x2,x3,…,xk,称为数列Ak:x1,x2,x3,xk,其中k为整数且k≥3.定义V(Ak)=|x1-x2|+|x2-x3|+…+|x
  17. 【Unity】StreamingAssets和PersistentData文件夹
  18. address already in use :::8080,端口号已被占用
  19. CMS简数采集数据发布到迅睿CMS教程
  20. WordCount单词统计笔记

热门文章

  1. 搜索(1)BFS基础
  2. 《高效能团队模式》读书笔记1
  3. 手写字体简约大方_简约设计的20种免费字体
  4. 如何“神还原”数据中心? 阿里联合NTU打造了工业级精度的仿真沙盘!
  5. adb操控夜神模拟器设置剪切板
  6. 数据安全解决方案的大时代
  7. 阿里云丨以AI助力电力产业变革_创造有为时代——访阿里云人工智能科学家闵万里
  8. 关于SM2算法工具的一点儿说明
  9. 文本怎么整体向左缩进_word字体向左-怎么在word中整体向右或向左移动一段文字 – 手机爱问...
  10. linkage pathways