会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
流水灯
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
25
26
27
28
29
30
31
32
33
···
107
下一页
2023年6月23日
__KERNEL__ 宏的作用
摘要: 编译内核代码,会定义宏 __KERNEL__ The kernel includes a set of headers that is exported to userspace. Many headers can be exported as-is but other headers requir
阅读全文
posted @ 2023-06-23 21:37 流水灯
阅读(100)
评论(0)
推荐(0)
2023年6月22日
linux 内核虚拟地址空间 --- fixmap 区域
摘要: 在系统启动的汇编阶段,为kernel image、dtb 建立了临时页表,开启了MMU,进入了虚拟空间的世界,进入到start_kernel,内核要访问内存,要访问IO地址空间,那么就必须要为物理地址建立页表,以实现物理地址和虚拟地址之间的映射。 在内核初始化前期,内存管理系统还未初始化,现在除了临
阅读全文
posted @ 2023-06-22 23:09 流水灯
阅读(308)
评论(0)
推荐(0)
二级页表参数解释
摘要: // 每个 PGD 页表项对应 512 个 PTE#define PTRS_PER_PTE 512// 由于只有二级页表,二级页表没有 PMD,所以为1,表示一个 PGD 页表项对应一个 PMD 页表项 #define PTRS_PER_PMD 1// 一共有 2048 个 PGD 页表项,也就是一
阅读全文
posted @ 2023-06-22 14:33 流水灯
阅读(98)
评论(0)
推荐(0)
2023年6月10日
linux 内存管理 --- MMU 未开启时的内存映射内核页表建立
摘要: 在arm平台下,zImage.bin压缩镜像是由bootloader加载到物理内存,然后跳到zImage.bin里一段程序,它专门用于将被压缩的kernel解压缩到KERNEL_RAM_PADDR开始的一段内存中,接着跳进真正的kernel去执行,内核总是驻留在内存中。该kernel的执行起点是st
阅读全文
posted @ 2023-06-10 21:50 流水灯
阅读(745)
评论(0)
推荐(0)
2023年6月4日
linux 内核解压
摘要: kernel 自解压 顶层的vmlinux: elf格式,反汇编得到的是未压缩的内核的反汇编文件,这个vmlinux才是真正的Linux内核。 arch/arm/boot/compressed/vmlinux: elf格式,包含解压缩程序、Image二进制代码的压缩版;反汇编,从指令执行地址可知,只
阅读全文
posted @ 2023-06-04 19:42 流水灯
阅读(242)
评论(0)
推荐(0)
2023年6月3日
linux 内存管理 ------ malloc 与 mmap 的关系
摘要: 低于128K的内存分配采用具有内存池缓存机制的 brk 方式,可以减少缺页中断、系统调用的次数。高于128K时采用匿名内存映射区的mmap方式, 避免产生太大的内存碎片 如果分配后的虚拟内存没有被访问的话,虚拟内存是不会映射到物理内存的,这样就不会占用物理内存了。只有在访问已分配的虚拟地址空间的时候
阅读全文
posted @ 2023-06-03 12:21 流水灯
阅读(1863)
评论(0)
推荐(0)
Linux页表与ARM硬件页表
摘要: 早期Linux内核是基于x86体系结构设计的,x86页表中有3个标志位是ARM32硬件页表项没有的。PTE_DIRTY:cpu在写操作时会设置该标志位,表示对应页面被写过,为脏页。PTE_YOUNG:CPU访问该页时会设置该标志位。在页面换出时,如果该标志位位置了,说明该页刚被访问过,页面是youn
阅读全文
posted @ 2023-06-03 11:59 流水灯
阅读(267)
评论(0)
推荐(0)
2023年5月28日
linux 分支预测
摘要: 有一个元素为 0 到 100 之间随机数字组成的一维数组: 接下来,对这个数组做两个操作: 第一个操作,循环遍历数组,把小于 50 的数组元素置为 0; 第二个操作,将数组排序; 那么问题来了,你觉得先遍历再排序速度快,还是先排序再遍历速度快呢? 对于 if 条件语句,意味着此时至少可以选择跳转到两
阅读全文
posted @ 2023-05-28 14:18 流水灯
阅读(117)
评论(0)
推荐(0)
2023年5月26日
linux 物理内存管理
摘要: 内存管理的目标 外存是程序存储的地方,内存是进程运行的地方。 内存管理的目标除了实现进程之间的隔离、进程与内核之间的隔离、减少物理内存并发使用的数量之外,还有以下几个目标。 1、减少内存碎片,包括外部碎片和内部碎片。外部碎片是指还在内存分配器中的内存,但是由于比较分散,无法满足用户大块连续内存分配的
阅读全文
posted @ 2023-05-26 23:05 流水灯
阅读(828)
评论(0)
推荐(0)
2023年5月20日
ARMv7-A 处理器窥探 —— MMU/TLB
摘要: 0、基本概念 MMU 用作虚拟地址和物理地址的相互转换,是为了能够给 OS 提供统一视角的虚拟地址空间; TLB 的作用是作为 MMU 的 Cache,以提高 MMU 的性能,他们之间的关系如下: 1、ARM 处理器发出地址访问(虚拟地址),首先过 MMU 地址翻译单元的 TLB,如果 TLB 命中
阅读全文
posted @ 2023-05-20 17:38 流水灯
阅读(1275)
评论(0)
推荐(0)
上一页
1
···
25
26
27
28
29
30
31
32
33
···
107
下一页
公告