Linux内核内核符号

Linux内核内核符号RAM第一个BANK的物理地址地址

l PAGE_OFFSETRAM第一个BANK的虚拟地址地址

在内核引导阶段,虚拟地址PAGE_OFFSE将被映射为物理地址PHYS_OFFSET,它应该与TASK_SIZE具有相同的值

l TASK_SIZE一个用户进程的最大值,单位为byte

用户空间的堆栈从这个地址处向下增长

任何一个低于TASK_SIZE的虚拟地址对用户进程来说都是不可见的,因此,内核通过进程偏移对每个进行进行动态的管理

我把这叫做用户段

任何高于TASK_SIZE的对所有进程都是相同的,称之为内核段

(换句话说,你不能把IO映射放在低于TASK_SIZE和PAGE_OFFSET的位置处

)l TEXTADDR内核的虚拟起始地址,通常为PAGE_OFFSET 0x8000

内核映射必须在此结束

l DATAADDR内核数据段的虚拟地址,不能在使用解压缩器的情况下定义

l VMALLOC_STARTl VMALLOC_END用于限制vmalloc()区域的虚拟地址

此地址必须位于内核段

通常,vmalloc()区域在最后的虚拟RAM地址以上开始VMALLOC_OFFSET字节

l VMALLOC_OFFSETOffset normally incorporated into VMALLOC_START to provide a hole between virtual RAM and the vmalloc area. We do this to allow out of bounds memory accesses (eg,something writing off the end of the mapped memory map) to be caught. Normally set to 8MB.

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关