gpt4 book ai didi

linux - ARM Linux 是如何维护段的?

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:48 25 4
gpt4 key购买 nike

Linux 通过 MMU 将平面虚拟地址转换为物理地址。在Linux的虚拟地址空间中,有多种类型的段:

  • 内核空间
  • 用户栈
  • 内存映射区域
  • 用户堆
  • Bss段
  • 数据段
  • 正文段

Linux 如何维护这些段(aka sections)?这些段的基地址和大小存储在哪里?寄存器、GDT/LDT、mm_struct 还是内核中的其他数据结构?

感谢任何帮助。

最佳答案

GDT/LDT 是 x86 系列的特性。内核空间通过页表的内核部分翻译,用户空间通过用户空间部分翻译。页表在主存中,mm_struct是Linux内核中用来描述内存布局的结构。它是每个进程

User stack
User heap
Bss segment
Data segment
Text segment

这种布局在 mm_struct 中有描述。 mm_struct 还包含 ->pgd 字段,它是根页表指针(加载到 ARM 上的 ttrb0/ttrb1)

关于linux - ARM Linux 是如何维护段的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31578233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com