- 论坛徽章:
- 0
|
课本上讲的MMU原理我都明白,我想问的是实际应用的问题.
我们知道,系统刚开始启动时BOOT会把操作系统内核加载到RAM固定的地址(一般是高地址),
然后内核初始化MMU,建立页表(假设是分页方式),然后就启动了MMU.然后所有的寻址必须经过MMU转换成物理地址.
我想知道的是:
1.内核是不是不入页表?如果不入,内核内部的代码和数据寻址那就不用MMU做地址转换?还是虚拟地址就是物理地址?
页表中是怎样表示内核区域呢?还是内核占用的那块RAM区域不在页表中体现?
2.页表是存放在RAM中的,页表的寻址肯定不能再使用MMU寻址?寻找页表时是不是使用页表基址寄存器之类的寄存器?
3.页表是CPU建立的还是操作系统建立的?如果是CPU建立的,是哪个相关的寄存器?如果是操作系统建立,是不是每个表项都需要初始化?
4.页表的基地址是手工指定的还是CPU决定的?如果是手工指定的,一般位于RAM的哪个位置?内核一般位于高地址,是不是页表的地址紧接内核的地址?
5.malloc动态分配一块内存,在页表中是怎么处理的?
请高手们帮忙解答一下,如果你懒得回答,请推荐一本书我自己看.但是让我自己看linux的内核就太过于复杂了.
分数在:http://linux.chinaunix.net/bbs/thread-1036021-1-1.html |
|