1.2 基础概念和术语(续)
内核模式和用户模式
l 内核模式和用户模式是处理器的概念,而不是操作系统的概念。
l 用户代码运行在用户模式下,操作系统代码运行在内核模式下。
l Intel x86处理器有四种特权级,Windows使用0级作为内核模式,3级作为用户模式。
l 虚拟内存中的每一个页面都被标记了必须以什么模式来读写。
l 应用程序使用系统调用的时候,会从用户模式切换到内核模式下,在执行完内核代码返回到用户代码以前,处理器的模式被切换到用户模式。
l 对于一个线程,其运行时间包括用户模式下运行的时间(User Time)和内核模式下运行的时间(Privileged Time)。
l 查看内核时间和用户时间的工具:QuickSlice (Windows资源工具箱)、性能工具(Windows自带)、任务管理器(Windows自带)。
以前没有注意到任务管理器也可以显示内核时间,打开的方法是选择“查看”菜单下的“显示内核时间”。这时,内核时间会以红色显示,而用户时间以绿色显示。
终端服务和多个会话
l 终端服务使Windows在单个系统中支持多个用户会话。
l 多个会话的建立:物理控制台上的第一个登录会话被认为是控制台会话,或零号会话。通过远程桌面或Windows XP中的用户切换功能可以建立多个会话。
l Windows XP Professional只允许一个远程用户连接到本地机器,控制台会话会被锁定。
l 应用程序可以调用Windows API获取或控制终端服务信息。
对象和句柄
这一小节的标题是对象和句柄,但书中这一小节只提到了对象的概念,没有关于句柄的任何描述,只在最后一句提到第3章将详细讨论对象和句柄。
l 对象包含一个系统定义的数据类型、对该数据类型进行操作的函数,以及对象属性。
l 进程、线程、文件都对象的例子。
l 对象的内部数据是被隐藏的,只能调用系统服务来获取或修改内部数据。
l 不是所有的Windows操作系统中的数据结构都是对象。用户模式程序不需要知道的、操作系统内部的数据结构不是对象。
安全性(略)
注册表
这一小节简单描述了注册表的功能和重要性。第4章有专门介绍。
Unicode
l Unicode使用16位代码(两个字节)表示一个字符。
l Windows内部使用Unicode,但提供两个版的API接口:Unicode和ANSI。
l 如果应用程序调用ANSI接口,则字符会先被自动转换成Unicode,再调用系统服务。返回的Unicode字符再自动被转换成ANSI。