Windows操作系统架构

发表于:2014-6-16 10:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Daniel King    来源:51Testing软件测试网采编

  用户态
  用户态有四类组件,这四类组件都是以进程形式存在的,也就是说,它们都有自己的进程地址空间(其实就是一套页表)。
  1. System Support Processes
  这些是固化的进程,也就是说是操作系统结合在一起的进程。
  比如logon process(winlogon.exe),Session manager(smss.exe)。
Session Manager          [smss.exe]
Local Session Manager       [lsm.exe]
Service Control Manager     [services.exe]
Local Security Authority     [lsass.exe]
Winlogon              [winlogon.exe]
Wininit               [wininit.exe]
  它们都不属于service,因为它们都不是由SCM(Service Control Manager)启动的。
  lsass.exe和lsm.exe就是service。
  2. Service Processes
  Service进程是由SCM启动的,它们与user logon是独立的,因为有些service的启动时机比winlogon.exe还早。
  Task Scheduler和Print Spooler都是services。
  Service Host    [svchost.exe]
  3. User Applications
  就是常说的应用程序。
  4. Environment Subsystem Server Processes
  就是常说的“环境子系统”,也就是“Win32子系统”。
  [csrss.exe]
  Subsystem Dynamic Libraries
  由四个dll组成:
  Kernel32.dll
  Advapi32.dll
  User32.dll
  Gdi32.dll
  它们实际上是Service Processes和User Applications的一部分,以dll的形式加载到它们的进程地址空间中去的。
  它们的作用是向Service Processes和User Applications提供Win32 API接口。
  Win32 API在实现上分为三类:
  1. 完全在这四个dll的内部实现。
  2. 通过这四个dll,调用更加底层的(内核态,比如内核或者驱动)实现。
  3. 这四个dll与Environment Subsystem Server Processes建立C/S通信模型,dll作为client请求Win32子系统的server进程(用户态进程)来提供相应的实现。
  内核态
  内核态组件分为以下几类:
  1. Windows Executive
  可以理解为内核态的管理程序,其实就是各个模块子系统。
  比如内存管理模块,进程与线程管理模块,安全模块,IO模块,网络模块,以及进程间通信模块。
  2. Windows Kernel
  狭义上的内核,提供内核态中的核心操作,比如线程调度与切换,中断和异常的分发与处理,以及多处理的同步等等。
  它其实就是一组函数的集合。
  3. Device Driver
  内核态驱动。
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号