免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3222 | 回复: 7
打印 上一主题 下一主题

内核镜像加载地址? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-20 10:57 |只看该作者 |倒序浏览
# 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内存应该是很珍贵的,但是却把内核放入了此段,
这样做,我想不通....

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
2 [报告]
发表于 2011-01-20 12:07 |只看该作者
回复 1# chobit_s


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

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
3 [报告]
发表于 2011-01-20 12:10 |只看该作者
那又为什么不把临时内核页表建立在16mb开始处呢?

论坛徽章:
0
4 [报告]
发表于 2011-01-21 22:13 |只看该作者
什么体系结构,x86 ? mips,powerpc,arm?

论坛徽章:
0
5 [报告]
发表于 2011-01-22 11:36 |只看该作者
LZ的这个配置是默认的吗?
我贴一下我的
xcm@u32:/u64/home/xcm/source/linux-2.6$ dmesg|grep -e ".text :" -B 2
[    0.000000]       .init : 0xc168e000 - 0xc1715000   ( 540 kB)
[    0.000000]       .data : 0xc148bd92 - 0xc168db68   (2055 kB)
[    0.000000]       .text : 0xc1000000 - 0xc148bd92   (4655 kB)
xcm@u32:/u64/home/xcm/source/linux-2.6$ uname -an
Linux u32 2.6.37-rc5+ #2 SMP PREEMPT Wed Dec 8 13:34:48 CST 2010 i686 GNU/Linux
xcm@u32:/u64/home/xcm/source/linux-2.6$

最新的内核默认是16MB了


commit ceefccc93932b920a8ec6f35f596db05202a12fe
Author: H. Peter Anvin <hpa@zytor.com>
Date:   Mon May 11 16:12:16 2009 -0700

    x86: default CONFIG_PHYSICAL_START and CONFIG_PHYSICAL_ALIGN to 16 MB
   
    Default CONFIG_PHYSICAL_START and CONFIG_PHYSICAL_ALIGN each to 16 MB,
    so that both non-relocatable and relocatable kernels are loaded at
    16 MB by a non-relocating bootloader.  This is somewhat hacky, but it
    appears to be the only way to do this that does not break some some
    set of existing bootloaders.
   
    We want to avoid the bottom 16 MB because of large page breakup,
    memory holes, and ZONE_DMA.  Embedded systems may need to reduce this,
    or update their bootloaders to be aware of the new min_alignment field.
   
    [ Impact: performance improvement, avoids problems on some systems ]
   
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>

论坛徽章:
0
6 [报告]
发表于 2011-01-23 13:00 |只看该作者
回复 4# tuibo

x86 32 2.6.32.16-141.fc12.i686

论坛徽章:
0
7 [报告]
发表于 2011-01-23 13:01 |只看该作者
回复 5# flw2


    3Q, 这个消息很受用:)

论坛徽章:
0
8 [报告]
发表于 2011-01-29 02:33 |只看该作者
进来学习下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP