内核镜像加载地址?

# dmesg|grep -e ".text :" -B 2
      .init : 0xc09da000 - 0xc0a64000   ( 552 kB)
      .data : 0xc0798f98 - 0xc09d9710   (2305 kB)
      .text : 0xc0400000 - 0xc0798f98   (3683 kB)
# dmesg|grep -e "Zone PFN ranges" -A1
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000

内核镜像加载到物理地址4MB,大小将近6MB
而DMA是前16MB,DMA内存应该是很珍贵的,但是却把内核放入了此段,
这样做,我想不通....

作者: chobit_s   发布时间: 2011-01-20

回复 chobit_s


    我想可能有这个原因把,在内核启动之初,还没建立页表,只建立了一个临时内核页表,pg0,pg1两个页全局目录一共8mb,映射的是ram的前8mb,所以只有搬在这前8mb才可以在开启分页机制后继续操作这些内存。

作者: amarant   发布时间: 2011-01-20

那又为什么不把临时内核页表建立在16mb开始处呢?

作者: amarant   发布时间: 2011-01-20