🗒️ 深入理解Linux虚拟内存管理

进程通过虚拟内存地址访问这些数据结构的时候,虚拟内存地址会在内存管理子系统中被转换成物理内存地址,通过物理内存地址就可以访问到真正存储这些数据结构的物理内存了。随后就可以对这块物理内存进行各种业务操作,从而完成业务逻辑。 • 那么到底什么是虚拟内存地址 ? • Linux 内核为啥要引入虚拟内存而不直接使用物理内存 ? • 虚拟内存空间到底长啥样? • 内核如何管理虚拟内存? • 什么又是物理内存地址 ?如何访问物理内存?

深入理解Linux虚拟内存管理
🗒️ Android系统中各image文件解压缩

Android系统编译之后的打包阶段,会将所有编译出来的有需要的执行文件,库文件以及各种配置文件等打包到各个镜像文件中。有时候我们需要看一下镜像文件中都打包了什么东西,那就可以通过一些方法将其挂载到一个目录,然后进行查看。

Android系统中各image文件解压缩
🗒️ 高通平台dtbo揭秘

1. 什么是dtbo?它和dtb有什么区别?2. 高通平台的dtbo.img中里面有什么?3.高通平台dtbo的编译逻辑 4. dts的归一化

高通平台dtbo揭秘
🗒️ linux内核源码解析01–启动代码分析之汇编部分

Linux初始化过程页表建立 Linux初始化过程,会依次建立如下页表映射: 1.恒等映射:页表基地址idmap_pg_dir; 2.粗粒度内核镜像映射:页表基地址init_pg_dir; 3.fixmap映射:页表基地址为init_pg_dir,待paging_init之后为swapper_...

linux内核源码解析01–启动代码分析之汇编部分
🗒️ linux内核源码解析02–启动代码分析之固定映射

Linux初始化过程页表建立 Linux初始化过程,会依次建立如下页表映射: 1.恒等映射:页表基地址idmap_pg_dir; 2.粗粒度内核镜像映射:即上篇博文里的“第二次建立页表映射”,页表基地址init_pg_dir; 3.fixmap映射:页表基地址为init_pg_dir,待pag...

linux内核源码解析02–启动代码分析之固定映射
🗒️ linux内核源码解析03–启动代码分析之主内核页表创建

Linux初始化过程页表建立 Linux初始化过程,会依次建立如下页表映射: 1.恒等映射:页表基地址idmap_pg_dir; 2.粗粒度内核镜像映射:页表基地址init_pg_dir; 3.fixmap映射:页表基地址为init_pg_dir,待paging_init之后为swapper_...

linux内核源码解析03–启动代码分析之主内核页表创建
🗒️ linux源码解析05–ioremap原理

Linux初始化过程页表建立 Linux初始化过程,会依次建立如下页表映射: 1.恒等映射:页表基地址idmap_pg_dir; 2.粗粒度内核镜像映射:页表基地址init_pg_dir; 3.fixmap映射:页表基地址为init_pg_dir,待paging_init之后为swapper_...

linux源码解析05–ioremap原理
🗒️ linux源码解析06–常用内存分配函数kmalloc、vmalloc、malloc和mmap实现原理

1.kmalloc函数 static __always_inline void *kmalloc(size_t size, gfp_t flags) { if (__builtin_constant_p(size)) { #ifndef CONFIG_SLOB unsigned int ind...

linux源码解析06–常用内存分配函数kmalloc、vmalloc、malloc和mmap实现原理