深入解析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有几个分类:


基本服务


组件服务


用户界面服务


图形和多媒体服务


消息和协议


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 服务、函数和例程

主要介绍一些书中提到的专业术语:


Windows
API
函数:主要是指已经被文档化的可调用的子例程


原生的系统服务:指操作系统中未文档化的,可以在用户模式下调用的底层服务,如NtCreateProcess


内核支持函数(例程):值操作系统内部且只能被内核调用的子例程


Windows服务:由Windows服务管理器启动的进程(在注册表中,认为驱动定于为服务,但是书中并不这样引用)


DLL:一组可调用的子例程,合起来被链接成一个二进制文件,应用程序可以动态加载这些二进制文件。

1.2.3 进程、线程和作业


1.2.3.1 进程

程序是指一个静态的指令序列,而进程是程序的实例化,拥有各种资源。一个进程由以下元素组成:


私有的虚拟地址空间


程序定义的代码和数据,被映射到进程的虚拟地址空间中


一个已打开的句柄列表,这些句柄指向各种资源


称为访问令牌的安全环境,标示了改进程关联的用户,安全组和特权


进程ID,可以唯一识别一个进程


至少一个线程

每个进程都指向一个父进程或者创建者进程,但是如果父进程被关闭,进程就会指向一个不存在的父进程。

1.2.3.2 线程

线程是在进程中的实体,也是Windows执行此进程的调度实体,没有线程进程是不可能运行的。

线程的基本部件:


一组代表处理器状态的CPU寄存器中的内容


2个栈,一个用于线程在内核模式下执行,一个用于线程在用户模式下执行


线程局部存储区(TLS),线程私有存储区域,各个子系统,运行库,DLL都会用到这个区域


唯一表示线程的线程ID


线程自己的安全环境

易失的寄存器,栈,私有存储区域合起来称为线程的环境。

虽然线程有自己的环境,但是同一个进程内的线程共享该进程的虚拟地址空间及其他属于该进程的资源。

也就是说线程可以读写进程内其他线程的内存,但是不能跨进程的访问,除非另外一个进程把虚拟地址空间变成共享内存区。

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个系统任务:


提供了可供人读的名称


进程间共享资源和数据


保护资源,避免未授权访问


引用跟踪,如果不再使用可以释放掉。

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概念和术语,布布扣,bubuko.com

时间: 2024-12-17 13:47:05

深入解析Windows操作系统笔记——CH1概念和术语的相关文章

深入解析Windows操作系统笔记——CH3系统机制

3.系统机制 微软提供了一些基本组件让内核模式的组件使用: 1.陷阱分发,包括终端,延迟的过程调用(DPC),异步过程调用(APC),异常分发以及系统服务分发 2.执行体对象管理器 3.同步,包括自旋锁,内核分发器对象,以及等待是如何实现的. 4.系统辅助线程 5.其他的机制,比如Windows全局标记 6.本地过程调用 7.内核事件跟踪 8.Wow64 3.系统机制... 1 3.1陷阱分发... 3 3.1.1 中断分发... 4 3.1.1.1 硬件中断... 4 3.1.1.2 软中断请

深入解析Windows操作系统笔记——CH2系统结构

2.系统结构 本章主要介绍系统的总体结构,关键部件之间的交互,以及运行在什么环境. 2.系统结构... 1 2.1 需求和设计目标... 1 2.2 操作系统模型... 2 2.3 总体结构... 2 2.3.1 可移植性... 3 2.3.2 对称多处理... 3 2.3.3 可伸缩性()5 2.3.4 客户和服务器版本的区别... 5 2.3.5 版本检查... 5 2.4 关键的系统组件... 5 2.4.1 环境子系统和子系统dll6 2.4.1.1 Windows子系统... 7 2.

【翻译】《深入解析windows操作系统第6版下册》第10章:内存管理

[翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第一部分) [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第二部分) [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第三部分) . . .

深入解析Windows操作系统之总体架构

(一)需求和设计目标 Windows NT设计小组在项目开始之初选择了下面的设计目标: (1)扩展性:编写的系统代码必须能够随着市场需求的变化而自如增长和改变. (2)可移植性:系统必须能运行在多种硬件体系架构上,必须能根据市场的需要,相对容易地迁移到新的体系架构上. (3)可靠性和健壮性:系统应该能够保护自己,不会因内部的故障和外部的篡改而不能工作.应用程序应该无法伤害操作系统或其他应用程序. (4)兼容性:虽然Windows NT应该扩展已有的技术,但是它的用户界面和API应该与老版本的Wi

Windows操作系统深入解析原理

Windows运用程序编写插口(API)是对于Windows电脑操作系统大家族的客户方式系统软件程序编写插口.在32位版本号的Windows营销推广之前,31位版本号Windows电脑操作系统的程序编写插口被称作Win32 API,以差别于原先的18位版本号Windows的程序编写插口,即18位Windows API.在这书中,专业术语Windows API兼指Windows的31位和32位程序编写插口. 深入解析Windows操作系统 下册 PDF英文第6版 注 : Windows软件开发工具

NFC学习笔记——三(在windows操作系统上安装libnfc)

本篇翻译文章: 这篇文章主要是说明如何在windows操作系统上安装.配置和使用libnfc. 一.基本信息 1.操作系统: Windows Vista Home Premium SP 2 2.硬件信息: System: Dell Inspiron 1720 Processor: Intel Core 2 Duo CPU T9300 @ 2.5GHz 2.5GHz System type: 32-bit Operating System 3.所需软件: 在windows操作系统上安装软件需要下列

C#初学笔记(Windows编程的基本概念)

Windows编程的基本概念 人机界面HCI(human-computer interface)又称用户界面UI(user interface),是人与计算机之间传递.交换信息的媒介和对话接口,是计算机系统的重要组成部分.由于大多数应用程序是以用户界面为框架的,因此界面编程是软件开发的核心编程之一. 用户界面的设计与操作系统平台有关,操作系统界面一般有两种: (1)命令行界面CLI(command line user interface),例如DOS: (2)图形用户界面GUI(graphica

Windows操作系统

Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统. Windows采用了图形化模式GUI,比起从前的DOS需要键入指令使用的方式更为人性化.随着电脑硬件和软件的不断升级,微软的Windows也在不断升级,从架构的16位.32位再到64位, 系统版本从最初的Windows 1.0 到大家熟知的Windows 95.Windo

Windows的基础概念和术语

在windows操作系统的发展历程中,Windows7是一个具有特殊意义的版本.它是目前最为复杂的单机操作系统,无论从代码规模.代码复杂度,到系统适应场景的复杂程度,都超过了以前所有的版本.从某种意义上,Windows7代表了软件工程的一个顶峰--人类可以构造出如此复杂且能稳定工作的软件系统! 1.Windows操作系统的版本 表1.1Windows操作系统的历次发布 产品名称 内部版本号 发布日期 Windows NT 3.1 3.1 1993年7月 Windows NT 3.5 3.5 19