自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 庖丁解牛式剖析详解linux内核内存管理子系统-kernel阶段之mm_init()

各位老铁好,这篇文章咱们撸下mm_init()mm_init里包含2个主要动作,mem_init()与kmem_cache_init(),那接下来咱就看看他们分别干了什么?

2025-05-23 06:38:49 168

原创 认识NUMA

NUMA是Non-Uniform Memory Access(非统一内存访问)的缩写,它指的是一种架构,在这种架构中,每个处理器访问内存的速度并不相同。过去的多处理器系统基于对称多处理(Symmetric Multi-Processing, SMP)或统一内存架构(Uniform Memory Architecture, UMA)设计,在这种设计中,所有处理器共享单一内存池,因此会出现总线带宽和缓存一致性问题,导致性能瓶颈。

2025-04-25 14:10:12 614

原创 庖丁解牛式剖析详解linux内核内存管理子系统-kernel阶段之bootmem_init()

各位铁子们好,通过上篇简撸,咱们清楚,建立起虚拟映射后,CPU就可以正确地访问到物理内存,本篇咱们看下bootmem_init都干了什么?

2025-04-23 16:08:29 236

原创 庖丁解牛式剖析详解linux内核内存管理子系统-kernel阶段之paging_init()

hello,亲爱的老铁们,你们好!上篇咱们捋过了memblock init的初始化,本篇咱们一起捋下paging_init(),经过前面的捋经,咱们知道,当MMU开启之后,所有的物理内存必须进过物理到虚拟内存的映射后才能被CPU正确访问,不错,paging_init()正是干的这些工作,贴图咱先奉上,如下:paging_init主要内容是map_kernel()与map_mem()

2025-04-09 15:23:27 219

原创 庖丁解牛式剖析详解linux内核内存管理子系统-kernel阶段之memblock init

293 行,这时再取 memblock end of DRAM , 因为 291 行,已经将 高于 线性映射区域的 remove 调了,所以,只可能取得到 _end 或者 memstart_addr + linear_region_size , 如果是 _end 地址,进入 294 行处理,保证 memstart_addr + linear region size >= _end .272,vabits_actual 实际使用的VA bits ,假设为 48, 则 线性空间 为。

2025-04-07 11:53:18 731

原创 庖丁解牛式剖析详解linux内核内存管理子系统-kernel阶段之memblock

前篇咱们知道了从DTS设备树中解析到了memory的大小及位置信息,并提出了memory信息保存在了哪里的疑问?OK,本篇咱就探究下memory信息的保存。

2025-04-01 11:25:35 211

原创 庖丁解牛式剖析详解linux内核内存管理子系统-kernel阶段之DTS内存信息解析获取

起始地址保存给了__fdt_pointer变量,要想对内存进行管理,那前提是你得知道系统里有多少内存,那本篇咱们一起捋下从DTS中提取内存大小的过程。

2025-03-31 09:26:33 216

原创 庖丁解牛式剖析详解linux内核内存管理子系统-kernel阶段之start_kernel

亲爱的老铁们 ,从前head.s篇章中咱们可知,head.s后边会调用__primary_switched函数,__primary_switched中最后会执行b start_kernel执行跳转到start_kernel函数,start_kernel函数在哪里呢。

2025-03-28 06:40:47 157

原创 庖丁解牛式剖析详解linux内核内存管理子系统-内核head.S的__create_page_tables介绍

各位老铁们,前片文章咱们粗略地堆MMU有了一定的认识,知道了他是谁干什么用的?有了堆MMU的理解,咱们才能进一步理解__create_page_tables。在uboot完成相关硬件的初始化后,最后跳转到kernel的入口函数(假设地址为0x40000000,那么就会将PC设置为0x40000000),此时,。一旦MMU开始后,,所有__create_page_tables的使命是在开启MMU前,做一下前期的准备,那下面我们看下__create_page_tables都做了那些工作?

2025-03-27 06:43:04 229

原创 庖丁解牛式剖析详解linux内核内存管理子系统-MMU介绍

MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是SOC内部的一个硬件模块。#MMU的工作过程大致是什么。#MMU有什么作用?#为什么要有MMU?

2025-03-26 14:55:13 145

原创 庖丁解牛式剖析详解linux内核内存管理子系统-kernel阶段之head.S

#linux内核内存管理子系统之kernel阶段head.S分析

2025-03-24 06:22:28 141

原创 庖丁解牛式剖析详解linux内核内存管理子系统--uboot阶段内存相关

亲爱各位老铁,大家好!上片文章我们简略地介绍了物理上CPU与memory交互的流程,本编文章我跟各位老铁捋一下uboot阶段内存相关的东西。我们知道,计算机系统中最核心的部件就是CPU,CPU的核心功能就是取指、译码、执行指令,不断周而复始机械地重复这样的动作,那老铁们,有没有疑问?CPU是从哪位位置取的指令的?是谁指示它从指定的位置取指令的?

2025-03-18 06:34:47 222

原创 庖丁解牛式剖析详解linux内核内存管理子系统

计算机技术是当今数字世界的基座,从简单的幼儿玩具到规模巨大的云计算中心,它都是计算机不同形式的体现。现有计算机技术的硬件架构,内存模块是其中之一核心环节,程序须载入内存才能被CPU随机访问执行,因此, 研究明白操作系统之内存管理子系统之来龙去脉对我们帮忙理解计算机运行之原理十分有用,本系列文章我将与各位读者一起分析下linux内核内存管理子系统,由于个人能力时间限制,有错误的地方希望大家阅读指正,谢谢!

2025-03-17 09:04:12 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除