读书笔记 (3) (转^漂泊的猪^)

原创 2004年10月14日 00:49:00
第三章 Windows运行机理

3.1 内核分析

 3.1.1 运行机理
 1. 概述
 VxD中的“x”代表任意的设备。可以把VxD看作是32位的DOS。Windows实现一个多任务的操作系统的方法是把运算时间轮流地分给每个虚拟器。
 VMM是一个32位的保护模式程序。它的主要任务是建立和维护一个支持虚拟机的框架,并对每个VM提供服务。VMM是第一个被加载到内存的VxD程序,放在系统目录下的VMM32.VxD中。
 在DOS程序中,虚拟设备驱动程序能控制系统的一切资源。当它们在虚拟机中运行时,Windows需要为每一个设备建立一种虚拟的设备来模拟DOS对硬件的操作。一个VxD程序通常控制真正的硬件设备,并对该设备在各个虚拟机之间的共享进行管理。尽管如此,并不是每个VxD程序必须和一个硬件设备相联。我们可以把VxD程序看做是在第0级别的DLL。
 Windows95下有两种VxD,静态VxD和动态VxD。静态VxD是那些从系统启动就被加载,在系统关闭前一直存在于内存中的VxD程序。动态VxD程序可以在需要的时候,通过程序本身加载或卸载。
 2. 虚拟机管理器
 虚拟机管理器(VMM)是Windows 9x的真正内核。VMM中使用了虚拟存储的技术,能够克服物理内存的限制。尽管再物理上不存在,但理论上4GB的空间是能被访问的。
 当一个Win32程序访问4MB空间内时,它其实访问的时映射的某物理空间。Windows中是按4KB的大小来对内存空间进行分页的。
 3. 虚拟设备
 静态VxD的加载过程:
 (1) 直接在system.ini中加入下一行代码:
  Device=VxD_NAME
 (2) 可以在Windows9x注册表中的HLM/System/CurrentControlSet/Services/VxD/key/StaticVxD子键下加入如下的VxD的路径和名字:VxD_NAME=PATHNAME
 3.1.2 LE文件的格式
 LE文件中代码和数据被存放在几类运行属性不同的段中:LCODE PCODE PDATA ICODE DBOCODE SCODE RCODE 16ICODE MCODE。
 总的说来,应该尽可能多地使用PCODE和PDATA,因为这样,VMM就可以在需要的时候把段调入调出内存。另外,硬件中断程序及其所用到的服务必须放在LCODE段里。
 在一个汇编的VxD项目中,段的定义是不必要的,段的定义主要用于C的VxD项目编写。
 3.1.3 VxD的设计实现
 系统消息Sys_Critical_Init:大多数VxD程序不要用到这个消息,除非VxD程序要接管一些其他VxD程序或者保护模式要用到的中断。
 在VMM加载VxD程序的时候,它是按照初始化顺序值小的VxD先加载的顺序加载的。
 动态VxD除了加载机制和接收到的初始化/结束消息跟静态VxD不通以外,它能做静态VxD所能做的一切。
 要在一个段里面定义函数,应该首先定义一个段,然后把函数放进去。
 VxD程序可以使用所有的寄存器,但是在改动段寄存器的时候一定要小心,一定不要改动CS和SS的内容,除非你对将发生的事情有绝对的把握。你可以使用DS和ES,但一定要记住在返回时恢复它们的初值。调用寄存器法服务函数时,通过各种寄存器来传递服务函数的参数。当调用堆栈服务函数时,你把要传递的参数压栈,在eax得到返回值。

3.2 消息的运行方式
 在16位时代,Windows的整个内核是32位的、分时的、抢占的。

读书笔记 (1) (转^漂泊的猪^)

第一章 程序点滴1.1 程序≠软件 1.1.1 商业软件门槛的形成   1. 商业软件门槛的形成 任何一个行业初始阶段时的门槛都非常低,但是,只要发展到一定的阶段后,它的门槛就必然抬高。   2. 软...
  • baisun
  • baisun
  • 2004年10月14日 00:47
  • 897

读书笔记 (2) (转^漂泊的猪^)

第二章 认识CPU2.1 8位处理器回顾 Intel 8080由6000多个晶体管构成,每秒能执行约60万次操作。寻址空间达到64KB,指令多达60条以上。 苹果II使用的是6502芯片,有256By...
  • baisun
  • baisun
  • 2004年10月14日 00:48
  • 764

小猪躺着大猪跑(博弈论的诡计)

 公元前529年,晋国在平丘召集天下诸侯,举行会盟。 晋君为了夸耀自己作为盟主的实力,用兵车四千乘围在会场的四周,一眼望去,车马排布整齐。旌旗摇动,仪仗鲜明。晋君端坐会场中央,看着依次就座的各国使臣,...
  • zyp2671
  • zyp2671
  • 2010年04月29日 08:42
  • 12165

现有2头猪、3头牛和4只羊,它们各自的总价都不满1000元。如果将2头猪与1头牛放在一起,或者将3头牛与一只羊放在一起,或者将4只羊与1匹马放在一起,那么它们各自的总价都正好是1000元。问猪、牛、羊

问题:现有2头猪、3头牛和4只羊,它们各自的总价都不满1000元。如果将2头猪与1头牛放在一起,或者将3头牛与一只羊放在一起,或者将4只羊与1匹马放在一起,那么它们各自的总价都正好是1000元。问猪、...
  • xiaoyu714543065
  • xiaoyu714543065
  • 2012年10月25日 11:24
  • 4683

冠军奖30万!刘强东搞了个“猪脸识别”比赛,中美两地同时启动(附比赛详细日程及赛题说明)

编辑 | Katerina Donna 润色 | 鸽子 11月6日,由京东金融与红杉资本联合主办的首届“JDD-2017京东金融全球数据探索者大会”在751大罐举行...
  • dQCFKyQDXYm3F8rB0
  • dQCFKyQDXYm3F8rB0
  • 2017年11月06日 00:00
  • 4919

入冬最冷的上海——致在外漂泊的孩子

今天好像是上海入冬以来最冷的一天,上海再冷其实也没有我的家乡黑龙江冷,可是今天真的觉得非常冷。来上海一年多了,这座城市真的很大,很美。它确实比小城市的机会多,比小城市的公平多,昨天买了4箱啤酒,快递员...
  • AndroidMsky
  • AndroidMsky
  • 2016年12月15日 09:56
  • 1123

Scrum猪和鸡的故事

本文转载至:http://blog.csdn.net/fen0707/article/details/8979942 一天,一头猪和一只鸡在路上散步, 鸡看了一下猪说: ...
  • robertsong2004
  • robertsong2004
  • 2015年11月29日 18:50
  • 2035

为猪脸识别而进行自己数据集的构建、训练

 在实际过程中走了弯路,特地进行说明记录,以备今后参考。 思路是先构建VOC2007格式的猪脸数据集,在转换成tf格式,然后利用tf的objectdetectionapi进行训练。原因是把...
  • duanshao
  • duanshao
  • 2017年12月13日 22:29
  • 410

【敏捷开发每日一贴】:猪和鸡的故事

猪和鸡的故事 关于鸡与猪的故事有很多种版本,被用在各种不同的场合,管理的、营销的、敏捷开发的,大体相同,但稍有差异。 故事一:有一只鸡和一头猪合伙开饭店,双方各占50%股份。鸡对猪说:“我每天下...
  • huver2007
  • huver2007
  • 2017年04月07日 09:06
  • 584

各种猪的符号脸

╭︿︿︿╮   ╭︿︿︿╮   ╭︿︿︿╮{/ o  o /} 1 {/ .  . /} 5 {/ ︿︿ /} ( (oo) )     ( (oo) )     ( (oo) )   ︶ ︶︶   ...
  • quweijie
  • quweijie
  • 2007年12月10日 09:25
  • 7065
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:读书笔记 (3) (转^漂泊的猪^)
举报原因:
原因补充:

(最多只允许输入30个字)