参考资料:

1. 《Windows Internals》

2. http://bestcbooks.com

3. Windows Drive Kit

4. Microsoft Windows SDK

5. WDK下载地址

6. Windows内核模式和用户模式

知识点:

1. 用户模式下的四种基本进程类型:

● Fixed (or hardwired) system support processes, Such as the logon process & the session manager.

● Service processes, such as Task scheduler & Print spooler services.

● User applications

● Environment subsystem server processes

  图1 简化的系统架构

2. 通过上图,我们可以看到用户应用程序并不是直接调用本地Windows操作系统服务,而是通过Subsystem DLLs。而Subsystem DLLs的作用就是将文档化的函数转换为合适的内部的本地系统服务的调用。这种转换可能会涉及给Environment subsystems发送消息。

3. Windows内核态组件包括:

● Windows Executive:包含基本的操作系统服务,如:内存管理、进程&线程管理、安全、I/O、网络和进程间通信。

● Windows Kernel:由底层的操作系统函数组成,如:线程调度、中断&异常分派和多进程同步。同时,它也为上层提供例程和基础对象。

● Device drivers:包括硬件设备驱动(将用户I/O函数调用转换为特定的硬件设备I/O请求)和非硬件设备驱动(文件系统驱动和网络驱动)。

● Hardware Abstraction Layer:起隔离作用,用以隔离{内核、设备驱动和Windows Executive其余部分}与特定平台下的硬件差别。

● Windowing & Graphics System:实现了GUI函数。

4. Windows是一个SMP操作系统。所有处理器共享同一内存空间。Windows支持三种现代多处理器系统类型:Hyper-Threading、NUMA(non-uniform memory architecture)和Multicore。

● Hyper-Threading:由Intel引入,为每个物理内核提供两个逻辑处理器。每个逻辑处理器拥有自己的CPU状态,但共享执行引擎和缓存Cache。

● NUMA系统:处理器被分组成更小的单元,这些单元被称为“节点”。每个节点都有自己的处理器和内存,且通过总线连接到更大的system。

5. 通过查看注册表中的HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions中的ProductType来区分系统版本。

6. 环境子系统的作用是暴露Windows Executive System提供的基础服务子集给应用程序,且不同子系统可访问的服务子集是不一样。用户应用程序不是直接调用Windows系统服务,而是通过子系统DLLs来使用的。可以使用Dependency Walker tool查看Windows模块的依赖模块关系树。

7. 子系统由Session Manager(Smss.exe)进程启动。子系统的启动信息被存在注册表的HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems。

Windows Internals学习笔记(二)系统架构的更多相关文章

  1. Windows Internals学习笔记(六)Windows关键系统组件

    参考资料: 1. <Windows Internals> 2. Dependency Walker 3. Ntoskrnl.exe 4. Livekd的使用 5. WinDbg的使用(一) ...

  2. Windows Internals学习笔记(八)IO系统

    参考资料: 1. <Windows Internals> 知识点: ● 当一个进

  3. Windows Internals学习笔记(四)Trap Dispatching

    参考资料: 1. <Windows Internals> 知识点: ● 陷阱trap:它是一种处理器机制,用以在某一异常或中断出现时,捕捉该执行线程,并将其控制权转交到操作系统中某一固定位 ...

  4. Windows Internals学习笔记(七)Image Loader

    参考资料: 1. <Windows Internals> 2. Fibers 知识点: ● 当一个进程在系统上启动时,内核将创建一个进程对象来代表它,并执行各种内核相关的初始化任务.然而, ...

  5. Windows Internals学习笔记(五)Synchronization

    参考资料: 1. <Windows Internals> 2. 自旋锁spinlock剖析与改进 3. Lock指令前缀 4. Lock指令前缀(二) 5. Kernel Dispatch ...

  6. Windows Internals学习笔记(一)概念与工具

    参考资料: 1. <Windows Internals> 2. Windows Drive Kit 3. Microsoft Windows SDK 4. WDK下载地址 知识点: 1. ...

  7. 『TensorFlow Internals』笔记_系统架构

    一.架构概览 TensorFlow 的系统结构以 C API 为界,将整个系统分为前端和后端两个子系统: 前端系统:提供编程模型,负责构造计算图: 后端系统:提供运行时环境,负责执行计算图,后端系统的 ...

  8. Laravel5.1学习笔记i14 系统架构6 Facade

    Facades 介绍  使用 Facades Facade 类参考   #介绍 Facades provide a "static" interface to classes th ...

  9. Laravel5.1学习笔记12 系统架构4 服务容器

    Service Container 介绍 绑定的用法  绑定实例到接口 上下文绑定 标签 解析 容器事件 #介绍 The Laravel service container is a powerful ...

随机推荐

  1. 装多系统删除某个系统后,如何恢复ubuntu引导

    在重装系统或者再装多个系统后可能会出现ubuntu的引导文件不存在的情况,windows系列的引导文件可以用winpe修复,但是ubuntu就不可以,虽然网上很多种修复ubuntu的引导文件 方式,但 ...

  2. 4、BOM编程/正则表达式

    1.    BOM编程 1.1. BOM编程基础 全称 Browser Object Model,浏览器对象模型. JavaScript是由浏览器中内置的javascript脚本解释器程序来执行jav ...

  3. Oracle性能优化--AUTOTRACE 操作

    AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL的执行计划,收集执行时所耗用资源的统计信息,是SQL优化工具之一,下面给出启用 AUTOTRACE 功能步骤. 一 .启用AUTOTRACE ...

  4. StringUtils 帮助类所涉及的方法

    /*1.字符串以prefix开始*/StringUtils.startsWith("sssdf","");//结果是:trueStringUtils.start ...

  5. 6.shap以及selector的使用

    功能:相当于自定义一个模板 首先,要新建一个drawble文件夹 然后,再新建一个XML文件 在<shap></shap>中写内容 <corners/>圆角 < ...

  6. Parencodings 分类: POJ 2015-06-28 22:00 7人阅读 评论(0) 收藏

    Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22757   Accepted: 13337 De ...

  7. C#实现中国天气网JSON接口测试

    接上一篇,经过反复的查看,最终从这篇文章中找到了一个可用的JSON接口,于是研究了一下中国天气网JSON接口的测试: 和上一篇XML接口测试的原理是一样的,只是需要安装一下Newtonsoft.Jso ...

  8. html的<marquee></marquee>标签实现滚动效果

    页面的自动滚动效果,可由javascript来实现,但是今天无意中发现了一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用m ...

  9. jquery easyui中文培训文档

    目  录 1.... Accordion(可折叠标签)... 2 1.1          实例... 2 1.2          参数... 3 2.... DateBox(日期框)... 4 2 ...

  10. CXF集成spring做webservice接口

    一 . cxf 的jar包 1.cxf-2.3.3.jar 2.wsdl4j-1.6.2.jar 3.wss4j-1.5.11.jar 4.wstx-asl-3.2.0.jar 5.XmlSchema ...