《深入解析Windows操作系统》- 读书笔记

来源:互联网 发布:ubuntu退出root权限 编辑:程序博客网 时间:2024/04/30 12:00

自从买了《深入解析Windows操作系统》并断断续续利用业余时间拜读了一些章节,不知不觉已过去一年时间。总体感觉此书体积大,覆盖面广,部分章节有一定深度,以致看过的东西很容易忘记。因此,在读到一半时我决定从头阅读并打算将此书的主要架构摘录于此,以及适当增加一些个人的阅读感受。

第一章. Concepts and Tools

进程

一个进程拥有单独的地址空间。对于32位系统来说,最大寻址空间为4G

一个进程不可能直接引用另外一个进程的地址空间。此情况的两个特例为:

l   共享内存区 - 如在Windows API中称为内存映射文件,具体用法可参考http://dev.csdn.net/htmls/14/14320.html

l   第一个进程有权打开第二个进程 - ReadProcessMemory() WriteProcessMemory()等跨进程的内存函数

每个进程还有一个安全标识以及一个已打开句柄的列表。

  

访问令牌:每个进程都有一个安全环境,被存储在一个访问令牌对象中。它包括进程的安全标识和凭证

虚拟地址描述符:内存管理器用来管理一个进程使用的虚拟地址。

虚拟内存

32x86系统为例,低地址空间(0x00000000~0x7FFFFFFF)分配给进程;高地址空间(0x80000000~0xFFFFFFFF)用作受保护的操作系统内存。

内核模式和用户模式

Intel X86定义了四种特权级(),来保护系统代码和数据不被低特权级的代码恶意或无意修改。Windows使用特权级0作为内核模式,特权级3作为用户模式。

内核模式下,处理器可以访问和执行所有系统内存和所有的CPU指令。

用户模式代码运行在用户模式下;操作系统代码以及驱动程序运行在内核模式。

内核模式的操作系统和驱动程序共享同一个虚拟地址空间。而虚拟内存中的每一个页面都被标记处理器在何方式下才可以读写该页面。

用户模式切换到内核模式,通过专门的处理器指令来执行。

模式切换并不会影响线程调度;模式切换不是线程环境切换。

会话

第一个登录会话是控制台会话(零号会话)

安全性

Windows提供两种访问控制方式:自主访问控制和特权访问控制。

自主访问控制 由对象(文件或打印机)的所有者授权或拒绝其他人来访问。用户在登录时会得到一组访问令牌(安全凭证),当其试图访问对象时,系统会将其安全凭证与对象上的访问控制列表进行比较以确定是否可以访问。

特权访问控制 它可确保即使在无法联系到对象所有者的情况下,某些人(特权所有者)也能够访问被保护对象。

注册表

系统数据库 它包括引导和配置系统所必需的信息、系统范围的软件设置、安全数据库,以及针对每个用户的配置信息。

调试

用户模式调试有两种:

侵入式 – DebugActiveProcess() 可修改被调试进程内存、设置断点、以及执行其他调试功能。

非侵入式 – OpenProcess() 不可设置断点。

内核调试主要有两种方式:

Kd.exe – 命令行版本;Windbg.exe – GUI版本。

实验

ProcessExplorer - 查看进程细节,包括线程栈(需设置symbol

PerformanceCounter – 用户态和内核态时间百分比

 

 

原创粉丝点击