38(60)--windows internals 6 david mark alex

架构概要
下面我们来看一下windows的关键系统组件。下图只是个概要,没有包含所有的细节,如网络组件和各种类型的驱动程序就没有显示出来。
首先请注意内核模式和系统模式之间的线。
线上的方框代表用户模式进程,线下的方框代表内核模式系统服务。第一章我们提到过,用户模式线程在运行在受保护的地址空间中,所以线上的方框都有自己独立的私有进程空间。
四种基本类型的用户进程
固定的系统支持进程 如登录,任务管理器,这些不是服务,不是由服务管理器启动。
服务进程 ,容纳windows服务。如任务调度或者打印服务。服务不需要用户登录便可运行,很多windows服务器程序(sqlserver,exchange server)都有服务组件。
用户应用程序,可以是下面的类型:windows32位或64位 windows3.1 16位,msdos 16位,posix32位或者64位。16位程序只能运行在32位系统上。
环境子系统服务进程 ,为操作系统环境提供支持,windows nt最早支持3个环境子系统:windows posix 和os/2.windows客户端的最终版和企业版和所有服务器版支持增强的posix子系统,叫做基于unix的程序子系统(Subsystem for Unix-based Applications SUA)。
图2-1中的环境子系统,位于服务进程 和用户程序下面。在windows下,用户程序不会直接调用原生系统服务,而是通过环境子系统dll来调用。它把文档化的API转化为对应的内部系统调用,其中可能需要向环境子系统发消息。
内核模式组件包括以下:
windows执行体,包括操作系统的基本服务,如内存管理,进程线程管理,安全,io,网络和跨进程通信等。
windows内核,包括操作系统的底层功能。如线程调度,中断和异常分发,多处理器同步。还提供基本对象和一组例程,执行体在此基础上构造高层结构。
驱动程序,包括硬件驱动程序(把io功能调用转化为硬件设备请求)和非硬件驱动程序(文件系统和网络驱动)。
硬件抽象层(HAL)将内核,驱动程序、执行体从硬件平台隔离开来。
窗口和绘图系统 实现gui功能如窗口,控件和绘制。
表2-1列出来系统核心组件的文件名。后面会对这些组件有详细介绍。
下面我们来看看基础的windows设计,首先是可移植性。
可移植性
windows设计之初,就要求能运行在各种硬件平台上。windows一开始支持x86和mips,随后加入了对DEC的alpha axp的支持。(alpha axp是64位cpu,但是window nt以32位模式运行。在windows2000的开发过程中,64位系统曾经运行在axp上,但是这个版本没有发布)。windowsnt3.51加入了对motorola powerpc的支持。由于市场需求变化,在windows2000开发之前,决定不再支持MIPS和powerpc。后来,compaq收回了对axp的支持,导致windows2000只能支持x86.xp和server2003增加了对3种64位处理器的支持:ia64 amd64 em64T。后两者被称为64位扩展系统,第三章介绍了32位程序如何运行在64位上。
windows主要通过两种方法达到可移植性
windows有一种分层设计机制,把处理器和硬件相关的部分隔离到单独的模块中,上层系统可以不关心这些差别。两个关键组件提供了这种功能:内核(ntoskrnl.exe)和硬件抽象层(HAL.dll)。后面会对他们进行详细介绍。架构相关(如线程上下文和陷阱分发)的功能在内核中实现。同一架构下的不同之处在hal中实现。剩下只有内存管理器中有大量架构相关的代码,但是和系统整体相比,仍然是一小部分。
大部分windows代码用c来实现,少部分用c++.需要和硬件直接打交道的地方用汇编实现,性能非常关键的地方(如上下文切换)也用汇编来实现。除了内核和HAL之外,汇编还存在于其他地方,比如说互锁函数或者本地过程调用,windows子系统的内核部分,以及一些用户态的库(NTDll中的进程启动代码)
对称多处理
多任务是指多个执行线程共享一个cpu的技术。当操作系统有多个cpu时,能同时执行多个线程。多任务系统只是看起来像在执行多个线程,多进程操作系统是真的在并发执行多个线程。
一开始提到,windows设计要求在多处理系统上工作良好。windows是一个对称多任务系统。windows没有主处理器,线程可以运行在任意处理器上。所有的处理器共享内存空间。与之相对的是非对称多处理系统,操作系统选择一个处理器运行内核代码,其他处理器运行用户代码。2-2列出了不同之处。
windows同样支持3中类型的多处理器系统:多核,超线程,NUMA((non-uniform memory architecture).)。第五章有详细描述。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值