一. 基本概念
用户态与内核态;
地址空间,虚拟地址;
Session;
不同程序有不同的特权;用户特权,平民特权;
CPU的保护模式:(硬件支持是不同程序不同代码拥有不同特权)
X86 CPU:实模式(程序地址与物理地址一一映射);保护模式(为多任务与虚拟地址提供硬件支持,windows就运行在这种模式下);系统管理模式(系统固件BIOS执行电源管理、安全监察或平台相关的特定任务)。
如何理解保护模式?1. 保护每个进程地址空间的安全 2. 同一个进程空间中,高特权级的代码收到保护。
保护规则:用户程序不可以执行特权指令;用户程序不可以直接访问I/O端口和硬件寄存器;第特权级代码不可以直接执行和访问高特权级的代码和数据。
用户态和内核态——两大阶级
模块及其工作模式
特权:
段描述符DPL——标示代码的特权级别;CPU使用分页机制管理内存,其中描述页的描述符中有一位为U/S用来描述该页的特权。
调用内核服务:
从用户态切换到内核态;IA32 CPU设计了专用的指令
CR3寄存器:CPU用来记录当前页目录表的物理基地址的寄存器,是每个进程的最重要属性之一,切换任务是,保存CR3信息。
会话Session:每个会话都有自己的桌面、输入设备和显示输出。XP一般只有一个Session。
二. 内核架构和内核文件
NT内核一览:
内核世界:
模块组织:
NTOSKRNL.EXE:调度模块;各种服务的执行体。
HAL:安装盘中有多个HAL.DLL,安装时根据硬件选择不同的HAL.DLL
Drivers:扩展内核的功能,管理设备。
三. 异常与中断处理
中断和异常是赋予CPU灵气的根本措施;
中断来源于CPU外;异常来源于CPU内部,分支,它是CPU报告错误的方式。
IDT:中断向量表。CPU和操作系统之间最主要的接口。
四. 环境子系统
一个内核,多个子系统;客户机/服务机设计思想的体现;OS/2,POSIX,Windows
windows子系统是必不可少的子系统:CSRSS.EXE进程
Client/Sever Runtime Sever Subsystem
WINSRV.DLL:控制台
CSRSRV.DLL:进程/线程
BASESRV.DLL:登陆
内核模块:win32.
五. 进程与线程
线程:CPU的调度单位,TSS任务状态段
进程:线程的住所
进程的数据结构:
EPROCESS(标识的进程的基本属性,内核态);PEB(包含了进程的一些信息,用户态);
线程的数据结构:
内核态:KTHREAD
用户态:TEB
线程内访问进程结构: