![[linux内存管理] 第009篇 reserved-memory详解](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/cover_linux_memory_management_009.png)
[linux内存管理] 第009篇 reserved-memory详解
0. 前言 随着内核的运行,内核中的物理内存越来越趋向于碎片化,但是某些特定的设备在使用时用到的DMA需要大量的连续物理内存,这可能导致设备在真正使用的时候因为申请不到满足要求的物理内存而无法使用,这显然是不能接受的。 最简单的方式就是为特定设备预留一部分物理内存专用,这部分内存不受系统的管理,绑定
![[linux内存管理] 第008篇 memblock子系统详解](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/cover_linux_memory_management_008.png)
[linux内存管理] 第008篇 memblock子系统详解
0. 前言 经过[linux内存管理] 第007篇 fixmap映射详解的讲解,系统内存经过了FIXMAP映射,目前只是将fdt的地址映射并解析了设备树。 而在 Linux kernel 初始化完成之后,系统中的内存分配和回收是由 buddy 系统、 slab分配器 来管理,但是在 kernel 初
![[linux内存管理] 第007篇 fixmap映射详解](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/cover_linux_memory_management_007.png)
[linux内存管理] 第007篇 fixmap映射详解
0. 前言 首先我们需要了解一下就是,为何需要找个fixmap的内存映射?从前面的文章可以知道,当内核启动后首先会进入汇编的Head.S中运行,在那里启动了MMU,所以到现在这个阶段,CPU只能使用虚拟地址访问RAM。而setup_arch阶段在paging_init之前(paging_init会完
![linux内存管理] 第006篇 start_kernel全局简述](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/cover_linux_memory_management_006.png)
linux内存管理] 第006篇 start_kernel全局简述
前言 经过上一篇[linux内存管理] 第005篇 启动代码分析之汇编部分,最终执行bl start_kernel开始了C语言的世界。 start_kernel函数负责的功能很多,这个阶段会详细分析start_kernel的各
![[linux内存管理] 第004章 内存架构和内存模型](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/cover_linux_memory_management_004.png)
[linux内存管理] 第004章 内存架构和内存模型
前言 架构概述 从系统架构来看,目前的服务器大体可以分为三类 对称多处理器结构(SMP:Symmetric Multi-Processor) 非一致存储访问结构(NUMA:Non-Uniform Memory Access) 海量并行处理结构(MPP:Massive Parallel Process
![[linux内存管理] 第003篇 内存分布](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/cover_linux_memory_management_003.png)
[linux内存管理] 第003篇 内存分布
前言 在上一篇博文 页表查询过程简述 中,简单阐述了处理器访问页表的基本原理,以ARMv8 为例简单介绍了分页的机制。这一篇会接着继续阐述进程在编译时和运行时,其内存的分布情况。最后简单阐述在arm64 系统中虚拟地址的分布情况。 内存 简单地说,存就是一个数据货架。内存有一个最小的存储单位,大多数
![[linux内存管理] 第005篇 启动代码分析之汇编部分](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/banner_kernel.png)
[linux内存管理] 第005篇 启动代码分析之汇编部分
copyright_author: 科学边界 copyright_author_href: https://www.daodaodao123.com/ copyright_info: 此文章版权归科学边界所有,如有转载,请注明来自原作者 copyright_url: https://www.daod
如何下载以及编译ACK?
一、ACK代码下载 mkdir android-kernel && cd android-kernel repo init -u https://android.googlesource.com/kernel/manifest -b BRANCH repo sync 如需查看可与之前的“repo
![[linux内存管理] 第001篇 内存与内存管理机制](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/cover_linux_memory_management_001.png)
[linux内存管理] 第001篇 内存与内存管理机制
前言 在操作系统还没有出现之前,程序存放在纸带上,计算机读取一张纸带就运行一条指令,这种从外部存储介质上直接运行指令的方法效率很低。 后来出现了内存存储器,也就是说,程序要运行,首先要加载,然后执行,这就是所谓的 “存储的程序”。这一概念开启了操作系统快速发展的通道,直至后来出现了分页机制。 在这个
![[linux内存管理] 第000篇 Linux内存管理系列开篇](https://halo-19274848.oss-cn-shanghai.aliyuncs.com/2025/06/halo_pdqfdb0.png?x-oss-process=image/resize,w_800,m_lfit)
[linux内存管理] 第000篇 Linux内存管理系列开篇
这篇文章介绍了Linux内存管理相关的知识,包括内存管理预备知识、物理内存初始化流程、各种内存分配器(如buddy分配器、percpu分配器、CMA分配器、slab分配器等),以及内存管理中的一些专业术语解释。
![[linux内存管理] 第002篇 页表查询过程简述](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/cover_linux_memory_management_002.png)
[linux内存管理] 第002篇 页表查询过程简述
{% tip success %} kernel版本:5.15 源码注释:iliuqi的5.15内核 {% endtip %} 0. 前言 本篇主要在代码剖析Page 之前的理论阐述,其中包括 MMU、TLB、TTW、VIVT、VIPT、PIPT等术语的含义,介绍MMU 中 TLB、TTW 的工作原

基于hexo+vercel零成本搭建博客网站
一、为什么选择搭建博客网站? 在数字时代,拥有一个属于自己的博客网站不仅能展示个人才华,还能作为分享生活、交流思想的平台。我个人在工作和学习中记录了一些零散的知识点,目前是通过notion以及飞书知识库进行记录。到了现阶段,本人更希望将自己所学习到的这些零散的知识点汇总,输出一些高质量的文章,供自己