【Linux 内核 内存管理】虚拟地址空间布局架构 ⑦ ( Linux 内核地址空间布局简介 )
2023-09-14 09:07:27 时间
一、Linux 内核地址空间布局简介
" Linux 内核地址空间布局 " 对应代码在 Linux 内核源码的 linux-4.12\arch\arm64\include\asm\memory.h#66 位置 ;
/*
* PAGE_OFFSET - the virtual address of the start of the linear map (top
* (VA_BITS - 1))
* KIMAGE_VADDR - the virtual address of the start of the kernel image
* VA_BITS - the maximum number of bits for virtual addresses.
* VA_START - the first kernel virtual address.
* TASK_SIZE - the maximum size of a user space task.
* TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area.
*/
#define VA_BITS (CONFIG_ARM64_VA_BITS)
#define VA_START (UL(0xffffffffffffffff) << VA_BITS)
#define PAGE_OFFSET (UL(0xffffffffffffffff) << (VA_BITS - 1))
#define KIMAGE_VADDR (MODULES_END)
#define MODULES_END (MODULES_VADDR + MODULES_VSIZE)
#define MODULES_VADDR (VA_START + KASAN_SHADOW_SIZE)
#define MODULES_VSIZE (SZ_128M)
#define VMEMMAP_START (PAGE_OFFSET - VMEMMAP_SIZE)
#define PCI_IO_END (VMEMMAP_START - SZ_2M)
#define PCI_IO_START (PCI_IO_END - PCI_IO_SIZE)
#define FIXADDR_TOP (PCI_IO_START - SZ_2M)
#define TASK_SIZE_64 (UL(1) << VA_BITS)
#ifdef CONFIG_COMPAT
#define TASK_SIZE_32 UL(0x100000000)
#define TASK_SIZE (test_thread_flag(TIF_32BIT) ? \
TASK_SIZE_32 : TASK_SIZE_64)
#define TASK_SIZE_OF(tsk) (test_tsk_thread_flag(tsk, TIF_32BIT) ? \
TASK_SIZE_32 : TASK_SIZE_64)
#else
#define TASK_SIZE TASK_SIZE_64
#endif /* CONFIG_COMPAT */
#define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 4))
#define KERNEL_START _text
#define KERNEL_END _end
二、Linux 内核地址空间布局 图示
相关文章
- linux sigpipe信号,Linux下SIGPIPE信号及其处理「建议收藏」
- Linux发行版本:开源内核上的创新之旅(linux发行版本内核)
- 式Linux 内核:实现分布式计算的力量(linux内核分布)
- Linux命令:菜鸟必备指南(linux命令菜鸟教程)
- Linux快速复制到指定目录(linux复制到指定目录)
- Linux下教你如何修改磁盘名称(linux修改磁盘名称)
- Linux 查看安装软件的技术指南(linux下查看安装软件)
- Linux触及内核:抢占拥有(linux抢占内核)
- 开源的Linux内核之旅(linux内核源码包)
- 在Linux中进行内核代码校验(linux内核校验)
- 快速在Linux平台上安装Node.js(node安装linux)
- Linux内核加载:实现信息领域的前进步伐(linux内核加载)
- 内容Linux:清空表中内容的方法(linux清空表)
- Linux常用服务:让你更轻松上手(linux常用的服务)
- Linux终端:行数快速统计工具(linux行数统计工具)
- 调试Linux:编写安全驱动程序(调试linux驱动)
- 深入探索 Linux 系统查看本机 IP 地址(linux查看本机地址)
- Linux系统下动态申请内存的方法(linux申请内存)
- Linux 内核中的结构体深度解析(linux内核结构体)
- Linux服务器并发优化:提高系统效率,保障稳定性与安全性(linux服务器并发)
- Linux系统资源监测:助你把握系统性能(linux 资源监控)
- Linux下美观的图形界面管理(linux的gui)
- 深度开源:Linux内核源码在线访问!(linux内核源码在线)
- 深入剖析:如何精简 Linux 内核剪裁,提升系统性能(linux内核剪裁)
- Linux内存信息读取实战(linux内存读取)
- 彻底搞懂Linux系统重启背后的真相(linux系统重启原因)