参考资料:

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. Tomcat增加缓存

  2. scala伴生对象

    package com.test.scala.test /** * 伴生对象指的是在类中建立一个object */ class AssociatedObject { private var count ...

  3. iOS 学习笔记 十 (2015.04.03)xcode第三方插件

    1.xcode第三方插件,存放路径:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins

  4. Valid Anagram

    class Solution { public: bool isAnagram(string s, string t) { if(t=="") return s=="&q ...

  5. HDU 5934:Bomb(强连通缩点)

    http://acm.hdu.edu.cn/showproblem.php?pid=5934 题意:有N个炸弹,每个炸弹有一个坐标,一个爆炸范围和一个爆炸花费,如果一个炸弹的爆炸范围内有另外的炸弹,那 ...

  6. VS 6.00 工程项目文件详解

    *.dsp(DeveloperStudio Project):是VC++的工程配置文件,比如说你的工程包含哪个文件,你的编译选项是什么等等,编译的时候是按照.dsp的配置来的.*.dsw(Develo ...

  7. 【转】表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理

    转载地址:http://lijiejava.iteye.com/blog/790478 有两张表,结构如下: t_item:                          t_bid: id    ...

  8. 【转】Eclipse插件大全介绍及下载地址

    转载地址:http://developer.51cto.com/art/200906/127169.htm 尚未一一验证. eclipse插件大全介绍,以及下载地址 Eclipse及其插件下载网址大全 ...

  9. 我的CSS样式记事本(1)

    文本 行高: line-height 对齐方式: text-align 字符间距: letter-spacing 文本修饰: text-decoration字体 设置字体所有: font 字体类型: ...

  10. 会话标识未更新(AppScan扫描结果)

    最近工作要求解决下web的项目的漏洞问题,扫描漏洞是用的AppScan工具,其中此篇文章是关于会话标识未更新问题的.下面就把这块东西分享出来. 原创文章,转载请注明 ----------------- ...