深入解析Windows操作系统笔记——CH1概念和术语
1.概念和工具
本章主要介绍Windows操作系统的关键概念和术语
1.概念和工具... 1
1.1操作系统版本... 1
1.2基础概念和术语... 2
1.2.1Windows API2
1.2.2 服务、函数和例程... 3
1.2.3 进程、线程和作业... 4
1.2.3.1 进程... 4
1.2.3.2 线程... 4
1.2.3.3 虚拟地址描述符... 4
1.2.3.4 作业... 4
1.2.4 虚拟内存... 5
1.2.5 内核模式和用户模式... 5
1.2.6 终端服务及多个会话... 6
1.2.7 对象和句柄... 6
1.2.8 安全性... 6
1.2.9 注册表... 6
1.2.10 UNICODE. 6
1.3 挖掘Windows内部机理... 7
参考... 7
1.1操作系统版本
Windows操作系统版本已经很多了
1.2 基础概念和术语
1.2.1 Windows API
Windows API(应用程序接口),是针对Windows操作系统的系统编程接口。
Windows API有几个分类:
n 基本服务
n 组件服务
n 用户界面服务
n 图形和多媒体服务
n 消息和协议
n Web服务
本书重点介绍基本服务(比如,进程和线程,内存管理,I/O,安全性)。
关于.Net和WinFX
.NET FrameWork由框架类库(FCL)和一个提供托管代码运行环境的(CLR)组成。
CLR提供即时编译,类型检查,垃圾回收和代码访问安全性等。
托管代码:在最初编译时,将源代码编译成中间代码(IL),然后在运行时,使用运行库编译器在受控的环境下,将中间代码编译成机器码。
在微软体系下,认为不是托管代码就是非托管代码。
CLR是一个典型的COM服务器,建立在Windows API之上。
而WinFX就是新的Windows API(为vista特别设计的),也提供了托管代码的功能,但是缺容易混淆,后来改为.Net FrameWork 3。(关于WinFX的介绍在第6版中已经没有了)。
.NET FrameWork是对API的一种扩展。
1.2.2 服务、函数和例程
主要介绍一些书中提到的专业术语:
n Windows API函数:主要是指已经被文档化的可调用的子例程
n 原生的系统服务:指操作系统中未文档化的,可以在用户模式下调用的底层服务,如NtCreateProcess
n 内核支持函数(例程):值操作系统内部且只能被内核调用的子例程
n Windows服务:由Windows服务管理器启动的进程(在注册表中,认为驱动定于为服务,但是书中并不这样引用)
n DLL:一组可调用的子例程,合起来被链接成一个二进制文件,应用程序可以动态加载这些二进制文件。
1.2.3 进程、线程和作业
1.2.3.1 进程
程序是指一个静态的指令序列,而进程是程序的实例化,拥有各种资源。一个进程由以下元素组成:
n 私有的虚拟地址空间
n 程序定义的代码和数据,被映射到进程的虚拟地址空间中
n 一个已打开的句柄列表,这些句柄指向各种资源
n 称为访问令牌的安全环境,标示了改进程关联的用户,安全组和特权
n 进程ID,可以唯一识别一个进程
n 至少一个线程
每个进程都指向一个父进程或者创建者进程,但是如果父进程被关闭,进程就会指向一个不存在的父进程。
1.2.3.2 线程
线程是在进程中的实体,也是Windows执行此进程的调度实体,没有线程进程是不可能运行的。
线程的基本部件:
n 一组代表处理器状态的CPU寄存器中的内容
n 2个栈,一个用于线程在内核模式下执行,一个用于线程在用户模式下执行
n 线程局部存储区(TLS),线程私有存储区域,各个子系统,运行库,DLL都会用到这个区域
n 唯一表示线程的线程ID
n 线程自己的安全环境
易失的寄存器,栈,私有存储区域合起来称为线程的环境。
虽然线程有自己的环境,但是同一个进程内的线程共享该进程的虚拟地址空间及其他属于该进程的资源。
也就是说线程可以读写进程内其他线程的内存,但是不能跨进程的访问,除非另外一个进程把虚拟地址空间变成共享内存区。
1.2.3.3 虚拟地址描述符
虚拟地址描述符是一些数据结构,内存管理器使用这个数据结构来记录一个进程所使用的虚拟地址。
1.2.3.4 作业
作业是指,一组进程当一个整体来维护管理。
1.2.4 虚拟内存
Windows 实现了平面地址空间的虚拟内存系统,每个进程感觉自己独立拥有一个很大的私有地址空间。虚拟内存提供了内存逻辑视图,并不对应于内存物理布局。运行的时候,内存管理器借助硬件支持,讲虚拟地址翻译成真正的物理地址。
进程之间就隔离了,一个进程不会访问到另外一个进程的东西。
大多数系统拥有的物理内存比虚拟地址小,所以当内存不够的时候,内存管理器会把内存移动到磁盘,释放内存,让被的进程使用。
在32bit下,4GB的地址空间,其中2GB是内核地址空间,2GB是用户模式地址空间,在起用3gb参数,用户模式地址空间时3GB,内核模式地址空间时1GB
还有AWE地址窗口扩展,可以让32bit系统访问64GB的内存。缺点是程序员自己解决映射关系。
在64bit下地址空间可以达到8T,在Itanium系统上可以达到7T
1.2.5 内核模式和用户模式
为了避免用户程序读写关键操作系统数据,Windows使用了2中处理器访问模式:用户模式,内核模式。用户程序代码运行在用户模式,系统代码运行在内核模式。内核模式允许访问所有系统内存和cpu指令。用内核模式来保护操作系统稳定。
虽然Windows 进程都有自己的地址空间,但是内核模式的操作系统和驱动都是使用同一个虚拟地址空间。
系统空间中的页面只有在内核模式下可以访问,用户空间中的页面在用户模式下都可以访问。
内核模式下运行的代码可以访问所有系统空间中的内存。
因为进入内核模式就缺少保护,所以第三方设备驱动程序加载时要小心。
当用户模式调用系统服务的时候,会切换到内核模式下,当要将cpu控制权返回给用户的时候要先切换到用户模式。
1.2.6 终端服务及多个会话
略
1.2.7 对象和句柄
内核对象是某一个静态定义的对象类型的单个运行时的实例。对象类型包含了一个系统定义的数据类型,在该对象上可用的函数,及一组对象属性。如所有的进程是进程对象类型的一个实例。
对象和普通数据结构的区别是,对象的内部结构是被隐藏的。必须要调用对象服务才能读写对象内部数据。
对象技术的实现了操作系统4个系统任务:
n 提供了可供人读的名称
n 进程间共享资源和数据
n 保护资源,避免未授权访问
n 引用跟踪,如果不再使用可以释放掉。
1.2.8 安全性
Windows的核心安全功能包含:针对所有可共享对象的自主保护,安全审计,登录时密码认证,以及一个资源被一个进程释放后,其他进程看不到上一个进程留下的资源。
1.2.9 注册表
注册表是系统数据库,包含了引道和配置系统所有的信息。也反映了内存中易失的数据窗口,比如当前的硬件状态,性能计数器。
1.2.10 UNICODE
略
1.3 挖掘Windows内部机理
主要介绍了一些调试工具,和Windows SDK
参考
http://zh.wikipedia.org/wiki/WinFX
http://en.wikipedia.org/wiki/Framework_Class_Library
http://zh.wikipedia.org/wiki/托管代码
http://zh.wikipedia.org/wiki/CLR
深入解析Windows操作系统笔记——CH1概念和术语相关推荐
- 随笔分类 - 深入解析Windows操作系统笔记
https://www.cnblogs.com/Amaranthus/category/578353.html
- 《深入解析Windows操作系统》笔记第1章
在看第一章,做了几个实验,书上的东西我就不copy了 实验1 查看进程树 用tlist工具(在Windows调试工具箱中) 在命令行下打开tlist工具 E:\Program Files\Debugg ...
- 《深入解析Windows操作系统》之系统机制
内容总结: 重难点笔记: 陷阱分发: 中断和异常是导致处理器转向正常控制流之外代码的两种操作系统条件.硬件或者软件都可以检测到这两种条件.术语陷阱(trap)指的是这样一种机制,当异常或者中断发生时, ...
- 《深入解析Windows操作系统》安全性
内容总结: 安全系统组件 以下是实现 Windows安全性的核心组件和数据库. 1. 安全引用监视器(SRM) 2. 本地安全权威子系统(LSASS) 3. LSASS策略数据库 4. 安全账户管理器 ...
- 六年前开始的等待——写在潘爱民译《深入解析Windows 操作系统,第4版》出版之际
按: 这是我给潘爱民老师翻译的<深入解析Windows 操作系统,第4版>一书写的出版人感言.这本书很厚,将近1000页,潘老师用了一年半的时间翻译并反复修订.润色,编辑们用了数月的时间排 ...
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第一章 概念和工具(二)
1.2 基础概念和术语(续) 内核模式和用户模式 l 内核模式和用户模式是处理器的概念,而不是操作系统的概念. l 用户代码运行在用户模式下,操作系统代码运行在内核 ...
- [笔记]深入解析Windows操作系统《三》系统机制
文章目录 前言 第三章 系统机制 3.1 陷阱分发 实验:将系统调用号映射到函数和参数 实验:查看系统服务的行为 选择"System"对象,再选择"System Call ...
- 《深入解析Windows操作系统》--第一章 概念和工具
这一章似乎本来不用怎么说的,没什么大不了的东西,还是微软出书的一贯风格,先做一番广告而已.但是作为开篇第一章,也起到了给全书定基调的作用,所以还是说说吧. 1.1Windows ...
- 深入解析Windows操作系统之总体架构
(一)需求和设计目标 Windows NT设计小组在项目开始之初选择了下面的设计目标: (1)扩展性:编写的系统代码必须能够随着市场需求的变化而自如增长和改变. (2)可移植性:系统必须能运行在多种硬 ...
最新文章
- 动态展开所有_库存与市场需求之间如何“动态”共舞?库存计划动态模型构建分享...
- Linus 谈 Git 的设计思想,顺带骂了一堆人(视频)
- ubuntu和windows双系统时间错乱问题
- 抢票 | AI未来说学术论坛第十期 视频理解与推荐专场
- 清华计算机学院吴建平,吴建平
- Java StringBuilder length()方法与示例
- python实现决策树数据直接赋值导入_Python3.0 实现决策树算法的流程
- 纯ASP结合VML生成完美图-柱图
- 千头万绪:从一道面试题看数据库性能和安全的方方面面
- 全国计算机基础知识考试题型,盘点 | 全国计算机等级考试一般考哪些内容?
- php+oracle新增数据类型,Oracle 修改某个字段的数据类型三种方式
- smarty内建函数
- java header file_javah 生成header file 报错 问题解决
- SQLServer To MySQL 解决方案
- 在线安装Eclipse插件时,出现错误
- 2021-11-21 使用for循环打印出大写字母ascll码对照表。
- js手机号码正则验证
- python毕业设计作品基于django框架 电影院购票选座系统毕设成品(5)任务书
- MATLAB实战系列(十三)-Matlab绘制柱形图使用技巧解答(附Matlab代码)
- 计算机教学问卷调查,信息技术在数学课堂教学中的应用:数学课堂信息技术应用调查问卷...
热门文章
- java image filters[02]-过滤器初探
- LaTeX - 带圈数字
- Python修行之字符串(一):连接、切割、大小写、排版
- 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇
- 精通Python网络爬虫:核心技术、框架与项目实战.1.1 初识网络爬虫
- 备库中ORA-00600错误的简单修复
- Oracle timestamp 转换 date
- mysql的常用函数
- 开发管理 CheckLists(4) -风险管理
- c# 持续集成 单元测试_如何在不进行单元测试的情况下设置持续集成