[玩具箱] 全局结构体大小的影响

主要观点:讨论了全局结构大小的影响,包括在有和无内存管理单元(MMU)系统中的情况,以及不同内存区域的特点和作用。
关键信息

  • 静态链接进程有六个主要内存映射,包括 text、rodata、data、bss、stack 和 heap。
  • ELF 格式中,各部分被视为巨型结构体,变量引用通过指针和偏移来定位。
  • NOMMU 系统与 MMU 系统在地址映射、内存整理等方面有很大差异,NOMMU 系统存在碎片问题等。
  • GLOBALS 块是数据段的主要部分,“ip”的空间不应在未编译时存在,应添加 USE()宏。
  • 全局结构在不同系统和编译情况下的处理方式不同,简单性和后续清理更重要。
    重要细节
  • 介绍了各种内存映射的特点和用途,如 text 为可执行函数,rodata 为常量等。
  • 阐述了 NOMMU 系统的特点,如无 TLB、不能进行地址重映射等。
  • 说明全局结构大小对不同系统和操作的影响,如在 NOMMU 系统中,全局结构会占用较多连续内存。
  • 提到了一些相关的工具和命令,如 scripts/probes/findglobals 用于查看全局结构大小等。
阅读 15
0 条评论