能力值:
( LV3,RANK:20 )
|
-
-
2 楼
emmmm,我简单说一下,说的不对还请dalao斧正。 1,创建虚拟地址或者物理地址,我不太清楚你这样的表述是什么意思,我就按照我的理解来表述。比如说一个基于X64CPU架构的64位的操作系统,物理地址是和硬件息息相关,和你处理机的地址总线宽度有关;虚拟地址,或者应该叫它线性地址,它也是CPU维护的,CPU的分页机制导致了线性地址的存在,CPU透明的将线性地址访存转换为物理地址访存。 2,在目前的windows操作系统中,我不太清楚可不可以直接用物理地址访问内存,如果清除了CR0.PG,理论上对于当前task是可以直接访问物理内存的,但是需要代码在ring0;操作虚拟地址(线性地址)就是多了一个地址转换,这个地址转换是由CPU透明的操作的。 3,物理地址更改。。。。。我还是不太理解你这个是什么意思。如果你通过物理地址更改了的内存是被映射到你当前的进程空间内的话,是会影响的。 4,emmmm,通过地址转换可以定位,CR3是分页分级结构的基地址,然后做转换就可以了。
关于书籍,我不知道怎么推荐,你尽量了解一下操作系统原理,然后看看计算机系统结构,最后跟着dalao的博客以及Intel开发人员手册我感觉应该差不多,我个人认为开发手册卷三比较重要,
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
ninebianbian
emmmm,我简单说一下,说的不对还请dalao斧正。
1,创建虚拟地址或者物理地址,我不太清楚你这样的表述是什么意思,我就按照我的理解来表述。比如说一个基于X64CPU架构的64位的操作系统,物理 ...
OK 思密达 谢谢 我已经了解到了 这个之间的联系 以及转换
|
|
|