首页
社区
课程
招聘
[原创]以前没写完的<Windows内核源代码分析>的初稿
发表于: 2011-12-7 21:19 15068

[原创]以前没写完的<Windows内核源代码分析>的初稿

2011-12-7 21:19
15068

好几年了, 只找到这两章, 分享给大家. 如有谬误, 敬请指正!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 6
支持
分享
最新回复 (17)
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
下载了,我要好好学习。谢谢!
2011-12-7 22:27
0
雪    币: 120
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
很强悍。。。。。。看看内容够不够丰富。
2011-12-7 23:10
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不懂,装一下。
2011-12-8 17:06
0
雪    币: 209
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
den
5
谢谢了,先学习一下
2011-12-8 17:10
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
虽然不会,但是顶一下楼主
2011-12-8 17:39
0
雪    币: 245
活跃值: (93)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
Intel 80386 CPU 有三种工作模式:实模式,保持模式,虚拟实模式。加电时CPU工作在实模式下, 这种模式相对简单,使用20根的地址线,可访问1M的存储空间。它的逻辑地址由段(seg)和偏移(off)构成,逻辑地址到物理地址的转换方式是:seg << 4 + off。而中断服务表在固定的内存地址(0x00000000)开始,每个表项四个字节,代表一个中断服务例程(ISR),共255个表项。所以它并不需要像保护模式那样复杂,拥有全局描述符表(GDT)、局部描述符表(LDT)、中断描述符表(IDT)、以及页表等等。起初,系统就是在这种工作模式下完成自检与一些初始化工作的。

窃以为这段话错误颇多。cpu三种工作模式,是实模式、保护模式、SMM模式。加电时系统也不是在实模式下,否则实模式只能访问1M的空间,不可能访问到0xfffffff0这个地址。
2011-12-8 18:38
0
雪    币: 334
活跃值: (78)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
首先谢谢你的关注. 我讲的是OS, 肯定是讲和OS相关的CPU的运行模式, 我没有看到一本OS的书去介绍SMM模式, 显然对于讲OS那不是必须的. 0xfffffff0 是一个很著名的地址, 你可以google "bios 0xfffffff0", 就能找到很多介绍这个地址的网页.  http://blog.csdn.net/keminlau/article/details/4523973

由于我个人的原因, 这本书没有写完, 而且写完的部分也都是初稿状态, 我后来也没有做进一步的完善, 有错误再所难免, 再次谢谢你的关注与指正!
2011-12-8 20:41
0
雪    币: 245
活跃值: (93)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
9
我的意思是上电不是实模式,从它能访问0xfffffff0就看的出来
2011-12-8 21:41
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
下载学习中 !
2011-12-9 11:32
0
雪    币: 326
活跃值: (56)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
收下看看,内容再丰富就好了。
2012-1-11 09:43
0
雪    币: 76
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
很好的资料, 整理的很有用
2012-1-11 14:33
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
seg << 4 + off ==> (seg << 4) + off
2012-1-12 15:46
0
雪    币: 334
活跃值: (78)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
可是确实是实模式, 只是硬件做了特殊处理.  据intel的解释是使用了段寄存器中的不可见部分. 传说中的"big real mode"
保护模式需要那么多的数据结构, 上电就保护模式不太现实

The CS register has two parts: the visible segment selector part and the hidden base address part. In real-address mode, the base address is normally formed by shifting the 16-bit segment selector value 4 bits to the left to produce a 20-bit base address. However, during a hardware reset, the segment
selector in the CS register is loaded with F000H and the base address is loaded with FFFF0000H. The starting address is thus formed by adding the base address to the value in the EIP register (that is, FFFF0000 + FFF0H = FFFFFFF0H).

Every segment register has a “visible” part and a “hidden” part. (The hidden part is sometimes referred to as a “descriptor cache” or a “shadow register.”) When a segment selector is loaded into the visible part of a segment register, the processor also loads the hidden part of the segment register with the base address, segment limit, and access control information from the segment descriptor pointed to by the segment selector. The information cached in the segment register (visible and hidden) allows the processor to translate addresses without taking extra bus cycles to read the base address and limit from the segment descriptor. In systems in which multiple processors have access to the same descriptor tables, it is the responsibility of software to reload the segment registers when the descriptor tables are modified. If this is not done, an old segment descriptor cached in a segment register might be used after its memory-resident version has been modified.
2012-1-13 15:56
0
雪    币: 245
活跃值: (93)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
15
手册三里面有详述 你可以看一下
2012-1-25 10:44
0
雪    币: 222
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
下载了,最近正在学习驱动编程,尤其是对于IO部分所需知识颇多,恰好有IO管理这一章,帮助很大,感谢楼主。
2012-3-13 16:44
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
学习了!!!
2012-3-14 14:44
0
雪    币: 236
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
先下了学习了    谢谢楼主
2012-3-14 15:35
0
游客
登录 | 注册 方可回帖
返回
//