windows理论基础(一)
windows体系结构
一、 用户模式和内核模式
(user mode &kernel mode)
Intel x86 处理器的体系结构定义了四种特权级,或特为四个环。来保护系统代码不会被低级别的代码恶意地或无意的改写掉。
特权级0(或称0环)作为内核模式,特权级3作为用户模式。
1.内核模式下的操作系统和设备驱动程序共享同一个虚拟地址空间。对于内核模式下运行的组件,
windows对它们的读写系统内存并不加以保护。
特权级:Privilege level
2. 与模式有关的性能计数器 :
Processor: % Privilege Time (内核模式下) %User Time(用户模式下)
表示:指定的间隔内,单个CPU运行在内核/用户模式下的时间所占的百分比
Process: % Privilege Time %User Time
Thread: % Privilege Time %User Time
二、系统结构
用户模式的线程在一个受保护的进程地址空间中执行。因此,系统支持进程、服务进程、用户应用程序和环境子系统都有它们各自的
私有进程地址空间。
三、Windows的核心系统文件
四、 硬件抽象层:HAL
Hardware Abstraction Layer,硬件抽象层 Windows NT的一个目标是使操作系统可跨平台移植.
HAL是一个可加载的,内核模式的模块,它提供了针对windows当前运行所在的硬件所在平台的低层接口。隐藏了与硬件相关的细节,比如I/O接口,中断控制器等。
可通过相依性检查工具:Depends.exe来检查内核和HAL文件的导出和导入表,从而了解它们之间的关系。
注意:Ntoskrnl链接了HAL,而HAL又链接了Ntoskrnl(它位相互使用了对方的函数)
五、 系统进程
以下的系统进程会出现在每一个windows系统中---空闲进程、System进程---不是完整的进程,它们并不是在运行一个用户模式的可执行文件。
① 空闲进程(Idle)---每个CPU 一个线程,占用空闲的CPU时间。
② System进程(包含大多数内核模式系统线程)
③ 会话管理器(Smss.exe)
④ Windows子系统(Csrss.exe)
⑤ 登录进程(Winlgon.exe)
⑥ 服务控制管理器(Services.exe)和它创建的子服务进程(如Svchost.exe)
⑦ 本地安全认证服务器(Lsass.exe)
注:中断和DPC
标记为”Interrupts”和”DPCs”的这两行代表用于中断和延迟过程调用的时间。在任务管理器将中断和DPC时间包含在系统空闲时间中。
windows理论基础(一)的更多相关文章
- windows类书的学习心得(转载)
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- 探索Windows命令行系列(2):命令行工具入门
1.理论基础 1.1.命令行的前世今生 1.2.命令执行规则 1.3.使用命令历史 2.使用入门 2.1.启动和关闭命令行 2.2.执行简单的命令 2.3.命令行执行程序使用技巧 3.总结 1.理论基 ...
- Python-进程与线程理论基础-Day10
进程与线程理论基础 1.背景知识 理论基础: 一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 1.产生背景 ...
- python3全栈开发-补充UDP的套接字、操作系统、并发的理论基础
一.基于UDP的套接字 udp套接字简单示例 import socket ip_port=('1.1.1.1',8181) BUFSIZE=1024 udp_server_client=socket. ...
- windows类书的学习心得
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- c++复习:STL之理论基础
1 STL(标准模板库)理论基础 1.1基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之 ...
- Windows内存管理的方式
一.内存的概念 1. 物理内存:即插在主板上的内存条.他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外). 但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导 ...
- Windows+Apache+Python+Django 踩坑记录
摘要 使用Python进行Web项目开发:相对于主流三大Web端解决方案(Java/.NET/PHP) Python在某些方面具有一定的优势,相对 Java/.NET 有更轻量级的部署方案,相对PHP ...
- Python之网路编程进程理论基础
背景知识 顾名思义,进程即一个软件正在进行的过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老的也是最重要的抽象概念之一.操作系统的其他 ...
随机推荐
- Windows下C++多线程同步与互斥简单运用
1. 互斥量,Mutex #include <Windows.h> #include <iostream> using namespace std; DWORD WINAPI ...
- 并发编程: c++11 thread(Func, Args...)利用类成员函数创建线程
c++11是VS2012后支持的新标准,为并发编程提供了方便的std::thread. 使用示例: #include <thread> void thread_func(int arg1, ...
- ENVI5.1批量镶嵌工具界面按钮显示不全的解决方案
打开批量镶嵌工具,在导出文件界面,部分按钮显示不全.具体见下图: 图 1 界面按钮显示不全 解决方案: 以win7.8系统为例: 显示桌面 – > 右键“个性化” – >显示 – > ...
- linux杂记(一)各硬件装置在linux中的代号
装置 装置在linux内的代号 IDE硬盘机 /dev/hd[a-d] SCSI硬盘机 /dev/sd[a-p] U盘 /dev/sd[a-p](与SCSI硬盘一样) CDROM /dev/cdrom ...
- drawable 另外一种形式dimens.xml
常见的Drawable,放置默认drawable一系列目录,有时候会发现drawable找不到的情况,其实还可以放另外一个目录下 values------->>dimens.xml < ...
- node anyproxy ssi简易支持
在项目中,ssi include是一个比较常用的功能,这样我们就可以通过web服务器的支持,将公用的html提取出来,改一个文件就会修改全部内容 但是这也带来了问题,在开发的时候没办法的刷新查看,需要 ...
- 重拾php---以及zend-studio 的使用快捷方式
感觉好久没有碰php了,今天心血来潮,重新入门.先整理一下刚刚学习的笔记. 一个字符串是用双引号括起来的一个词或一个句字,比如:“Hi,imooc!”.你可以用PHP语言输出把这个字符串输出,像这样: ...
- 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!
我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...
- C#学习日志 day 5 plus------ interface 数组及stringBuilder相关
interface 接口interface可以理解为两个程序达成的协议. 实际就是一个留给后续开发的框架.若想继承这个interface,就必须实现interface规定的 函数及结构等.一般会以大写 ...
- HTML5学习笔记之Input类型
Input类型——email email类型用于包含email地址的输入域,在输入地址时会自动验证email域的值 例:Email:<input type="email" n ...