P33 线程运行在自己的线程上下文中。线程上下文指的是CPU寄存器的状态,比如堆栈寄存器、指令寄存器等,还包括线程ID、线程的优先级、线程的本地存储等线程相关的信息。
内核的主要作用是调度线程活动,而操作系统的其它组件,
如内存管理组件、进程管理组件等作为独立于内核的组件,统称为执行程序组件(或者成为执行体组件)。
P34 Windows从总体上分为内核模式(Kernel Mode)和用户模式(User Mode)。谈到操作系统的内核模式和用户模式,一般会和CPU的特权层联系起来。
Ring0和Ring3层是CPU上的概念,而用户模式和内核模式是操作系统上的概念。
P35 编写驱动程序主要是为了操作硬件设备。对硬件设备的操作包括访问物理映射内存、设备端口等。
P38 图2-6 Windows架构简图
P41 从用户模式进入到内核模式,是通过软中断的方式进入的。
P42 执行程序组件又可以细分为若干个组件:1.对象管理程序;2.进程管理程序;3.虚拟内存管理程序;4.I/O管理器;5.配置管理程序
对象管理程序就是创建、管理、回收对象的组件。在驱动程序开发中,设计很多的对象,如驱动程序对象(Driver Object)、设备对象(Device Object)等。
进程管理程序负责创建和终止进程,线程的调度是由内核负责的。
虚拟内存管理程序是负责对虚拟内存进行管理的组件。对虚拟内存的申请、回收等操作都是由该组件实现的。
I/O管理器负责发起I/O请求,并且管理这些请求。
配置管理程序负责记录计算机中所有软件和硬件的配置信息。它使用注册表保存这些数据。
P43 Windows规定,将4GB的虚拟内存分成两个部分。
另外,Windows规定所有进程内核模式下的虚拟内存的映射方式完全一样。
P46 Windows的设计者们为了简化对不同设备的操作,实现对不同设备统一接口,将所有设备当作普通文件看待。也就是说在Windows中,无论何种设备,都用操作文件的方法去操作设备。