博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows系统总体架构
阅读量:5752 次
发布时间:2019-06-18

本文共 1251 字,大约阅读时间需要 4 分钟。

作为最流行的的桌面操作系统,Windows系统的发展在经历数次硬件革命之后,其系统架构也基本稳定,微软号称Windows 10是最后一代操作系统,并统一了Windows各版本的底层架构。

    Windows系统是分层的架构,主要分为内核态和用户态,内核态自下而上分为硬件抽象层(HAL)->内核和驱动层->执行体,以及窗口管理系统。用户态主要是NTDLL抽象层,以及各种进程,如:底层的系统支持进程->服务进程->用户应用程序,如图所示:

Windows系统总体架构

Ntdll.dll

    Ntdll.dll是一个特殊系统支持库,主要用于子系统dll,主要包含两种类型函数:

  • 系统服务分发存根,调用Windows执行体系统服务
  • 内部支持函数,供子系统,子系统dll,以及exe映像文件使用
    Ntdll.dll里面提供的函数大多未文档化,并以Nt开头命名。

环境子系统

    环境子系统就是针对Windows不同版本(如:Windows 7 旗舰版,Windows Server2008 R2这种)上的运行环境。每个exe可执行映像,未必可在所有版本Windows系统上运行。VC++中link命令的/SUBSYSTEM修饰符可以指定该exe映像的可执行环境(如:dll集)。

    环境子系统进程Csrss.exe(Client/Server Run-Time Subsystem)就是客户机/服务器运行时子系统,子系统是会话管理器(Smss.exe)进程起来的。

系统进程

  • Idle进程(特殊进程,其实是CPU空闲时间)
  • System进程(特殊进程,包含大多数内核模式系统进程)
  • 会话管理器(Smss.exe)
  • 本地会话管理器(Lsm.exe)
  • 会话0初始化(Wininit.exe)
  • 登录进程(Winlogon.exe)
  • 服务控制管理器(Services.exe)
  • 本地安全认证服务器(Lsass.exe)

Windows执行体

    Windows执行体是Ntoskrnl.exe的上层(其下层是内核),主要包含以下组件:

  • 配置管理器
  • 进程管理器
  • 安全引用监视器
  • I/O管理器
  • 即插即用(Pnp)管理器
  • 电源管理器
  • Windows驱动程序模型
  • 缓存管理器
  • 内存管理器
  • 对象管理器

内核

    内核是Ntoskrnl.exe的下层,主要包括:

  • 内核对象
  • 内核处理器控制区和控制块
    此处较为复杂,后面还有专门文章讲解

设备驱动程序

    设备驱动程序运行在内核模式下,主要为发起I/O请求的用户线程中,设备驱动程序主要分为以下几种:

  • 硬件设备驱动
  • 文件系统驱动
  • 文件系统过滤驱动
  • 其他:(网络重定向,协议驱动,内核流失过滤驱动)
    驱动程序框架:
  • 早期的WDM,对应DDK开发工具包
  • 基于WDM封装的WDF框架,对应WDK开发工具包

硬件抽象层(HAL)

    硬件抽象层是的Windows可以被移植到各种硬件平台,它是一个可加载的内核模块,针对不同的硬件平台,提供了统一的服务接口。

转载于:https://blog.51cto.com/14207158/2353734

你可能感兴趣的文章
centos7安装mysql视频教程_centos7安装mysql(完整)
查看>>
php图片赋值,php如何优雅地赋值
查看>>
【探索HTML5第二弹01】HTML5的前世今生以及来世
查看>>
Failed to connect to remote VM. Connection refused. Connection refused: connect
查看>>
freeze
查看>>
SAP HANA存储过程结果视图调用
查看>>
设计模式 ( 十八 ):State状态模式 -- 行为型
查看>>
OracleLinux安装说明
查看>>
nova分析(7)—— nova-scheduler
查看>>
Entity Framework 实体框架的形成之旅--Code First模式中使用 Fluent API 配置(6)
查看>>
OpenMediaVault 搭建git,ssh无法连接问题
查看>>
java多线程之:Java中的ReentrantLock和synchronized两种锁定机制的对比 (转载)
查看>>
【Web动画】SVG 实现复杂线条动画
查看>>
使用Wireshark捕捉USB通信数据
查看>>
Apache Storm 官方文档 —— FAQ
查看>>
iOS 高性能异构滚动视图构建方案 —— LazyScrollView
查看>>
Java 重载、重写、构造函数详解
查看>>
【Best Practice】基于阿里云数加·StreamCompute快速构建网站日志实时分析大屏
查看>>
【云栖大会】探索商业升级之路
查看>>
HybridDB实例新购指南
查看>>