当前位置:  技术问答>linux和unix

linux内核加载到哪个内存区间了?

    来源: 互联网  发布时间:2017-03-22

    本文导语:  从System.map里符号表看_text和_end的差只有0xaae000,也就是11MB的样子,但我编译出来的vmlinux有183MB,那内核总共占的区间应该是哪里? 0xc1000000开始的183MB么?或是不连续的?那为啥符号表又只有11MB区间? ...

从System.map里符号表看_text和_end的差只有0xaae000,也就是11MB的样子,但我编译出来的vmlinux有183MB,那内核总共占的区间应该是哪里? 0xc1000000开始的183MB么?或是不连续的?那为啥符号表又只有11MB区间?

|
vmlinux是会有一百多兆,因为包含了许多内核调试符号信息等

通过vmlinuz加载解压到内存后是不包含这些调试信息的,所以内存里内核也就十几兆

>ls -al vmlinux
-rwxr-xr-x 1 root src 181224711 2011-10-17 18:02 vmlinux

真正有效的段大小也就是a32319 
>size vmlinux
   text    data     bss     dec     hex filename
7857241  773824 2060288 10691353         a32319 vmlinux





|
放到内存的不是vmlinux,是zImage。

|

内核编译默认就是压缩的,你可以查看一下kernel的README文件,
 - Do a "make" to create a compressed kernel image. 
你做make的时候,默认就是压缩的

|

压缩的格式一般是通过stub做zlib的压缩,所以需要booterloader来做工作,
ARM和elf格式没有直接关系,ARM也可以用zimage,只要loader做好工作,一切都不是问题。
我认为楼主使用了bzImage 的格式,并且因为链接了过多过大的自己的.o文件导致生成的kernel文件过大
所以归根结底还是配置问题,正在linux的kernel的大小,我们都知道非常小

    
 
 

您可能感兴趣的文章:

  • Linux提到指定区间的字符命令如何写(cpu MHz: 2262.000)
  • linux Unix 中想取某个区间的文件名列表
  • LINUX下如何获取当前进程的占用页数和使用的内存区间数
  • Linux内核中影响tcp三次握手的一些协议配置
  • 我想学习linux桌面编程,那么有没有必要学习linux的内核以及内核的相关编程呢?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 现有linux内核中共享内存机制如何移植到linux0.11内核中
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 读懂 Linux 内核代码不难,难的是读懂 Linux 内核代码背后的哲学!
  • linux内核中的likely宏和unlikely宏介绍及用法
  • Linux中内核线程不访问内核态地址空间?
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • linux为什么要升级内核?升级内核有何作用?
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • 《Linux内核情景分析》值得推荐的内核学习参考两用资料
  • *******是不是对内核模块编程然后再重新编译内核就可以把此模块整合到linux系统中
  • Linux 编译内核之后 没办法选择内核版本
  • 想看linux内核源代码,另外手头上有一本《unix环境高级编程》,需要先把《unix环境高级编程》看完之后再看内核吗?
  • 请问重新编译LINUX内核是否能将没有用的外设的驱动程序删除并减少内核占有内存的资源?请好心人仕指教!
  • Linux内核工具包 TOMOYO Linux
  • 请问:构建嵌入式linux环境时,“Linux内核的移植”是达到什么目的啊?
  • 求教,Linux下键盘输入的所有数据都会经过Linux内核吗???
  • 高深问题:有了linux内核源代码如何做成一个linux操作系统
  • linux内核编译一定要在linux环境下么?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • 请教一下Linux的动态库加载方式(是启动加载还是运行加载?)
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 要写一个Linux下的elf加载器需要哪些知识?
  • linux网卡驱动加载异常
  • linux下获取动态库的加载路径
  • linux 启动加载项
  • linux2.6内核 如何自动加载当前所需要的模块
  • 我用linux9怎么加载不了usb啊.....
  • 虚拟机下的Linux加载U盘出错
  • 怎么让LINUX启动自动加载WINDOWS分区?
  • 在linux操作系统中,如何实现可加载的模块是否被卸载的检测
  • linux加载地址问题
  • VMware中linux无法正常加载iso文件
  • Linux下如何加载 U盘??
  • RedHat Linux9下面如何加载NTFS分区?
  • linux生成(加载)动态库静态库和加载示例方法
  • 请教linux中如何自动加载自己的模块
  • LINUX下加载QQ插件的问题
  • 请问如何使Linux启动之后就加载LD_LIBRARY_PATH的路径!
  • 如何查看Linux静态加载了哪些内核
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3