
[linux内存管理] 第004章 内存架构和内存模型
前言 架构概述 从系统架构来看,目前的服务器大体可以分为三类 对称多处理器结构(SMP:Symmetric Multi-Processor) 非一致存储访问结构(NUMA:Non-Uniform Memory Access) 海量并行处理结构(MPP:Massive Parallel Process

[linux内存管理] 第003篇 内存分布
前言 在上一篇博文 页表查询过程简述 中,简单阐述了处理器访问页表的基本原理,以ARMv8 为例简单介绍了分页的机制。这一篇会接着继续阐述进程在编译时和运行时,其内存的分布情况。最后简单阐述在arm64 系统中虚拟地址的分布情况。 内存 简单地说,存就是一个数据货架。内存有一个最小的存储单位,大多数

[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篇 内存与内存管理机制
前言 在操作系统还没有出现之前,程序存放在纸带上,计算机读取一张纸带就运行一条指令,这种从外部存储介质上直接运行指令的方法效率很低。 后来出现了内存存储器,也就是说,程序要运行,首先要加载,然后执行,这就是所谓的 “存储的程序”。这一概念开启了操作系统快速发展的通道,直至后来出现了分页机制。 在这个

[linux内存管理] 第000篇 Linux内存管理系列开篇
前言: 还是习惯性的以前言开篇,“深入骨髓”的程序猿思想,干啥事都想从main 开始~~ {% tip success %%} 本系列分析的源码都遵循如下的约定: 芯片架构:ARM64 内存架构:UMA 内核版本:如无特别说明,本系列源码基于Kernel 5.15 CONFIG_ARM64_VA_B

[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以及飞书知识库进行记录。到了现阶段,本人更希望将自己所学习到的这些零散的知识点汇总,输出一些高质量的文章,供自己

Android编译原理之make编译过程
一、make 以高通的代码为例,高通在编译时使用如下的指令进行编译,实质是对make的封装 ./build.sh --target_only 在执行一系列check的函数后,最终调用make执行执行编译。而make函数是在build/envsetup.sh时声明。

Android编译原理之lunch
一、概述 在 Android 7.0 之前,Android 编译系统使用 GNU Make 描述和shell来构建编译规则,模块定义都使用Android.mk进行定义,Android.mk的本质就是Makefile,但是随着Android的工程越来越大,模块越来越多,Makefile组织的项目编译时

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

高通android启动代码流程分析(SBL->ABL)
这篇文章介绍了UEFI引导流程以及与Android启动流程的关联。首先,文章概述了UEFI的概念、背景、优势以及与BIOS的区别。接着,文章详细解析了UEFI的运行流程,包括SEC安全验证、PEI EFI前期初始化、DXE驱动执行环境、BDS启动设备选择、UEFI Loader操作系统加载前期以及RT运行时等阶段。文章还介绍了如何创建UEFI DXE_DRIVER驱动及UEFI_APPLICATION应用程序,并以QcomChargerApp充电流程代码分析为例,展示了UEFI在实际应用中的使用。最后,文章还简要介绍了UEFI在Android启动流程中的应用,包括ABL(Android Boot Loader)和UEFI Application等。