温暖的电波  

2021年3月31日

摘要: memaps,也就是struct pages数组,对于保留内存也会创建么? 阅读全文
posted @ 2021-03-31 21:19 温暖的电波 阅读(1009) 评论(0) 推荐(0) 编辑

2021年3月30日

摘要: sparsemem 内存模型,详细分析了page_to_pfn与pfn_to_page 阅读全文
posted @ 2021-03-30 21:51 温暖的电波 阅读(2446) 评论(2) 推荐(2) 编辑

2021年3月6日

摘要: 本文基于:linux-5.11 在基于arm64架构的linux内核中, 有两个 表示__pa(x)和__va(x)用于物理地址转换位虚拟地址 或者 虚拟地址转换为物理地址(实际上还有一个__pa_symbol(x))。 这两个表达式是如何进行虚/实地址转换的?这种转换关系是如何确立的?为什么这样转 阅读全文
posted @ 2021-03-06 22:26 温暖的电波 阅读(6585) 评论(0) 推荐(2) 编辑

2021年2月21日

摘要: PageAnon 与 PageSwapBacked两个函数/宏的含义是什么?本文对此进行分析。 阅读全文
posted @ 2021-02-21 16:17 温暖的电波 阅读(1777) 评论(0) 推荐(0) 编辑

2021年1月11日

摘要: 给指针加上身份认证,让地址访问更安全 阅读全文
posted @ 2021-01-11 22:38 温暖的电波 阅读(1438) 评论(0) 推荐(0) 编辑

2020年12月18日

摘要: 来自:https://lwn.net/Articles/837786/ 内核中定义了一个 struct sched_statistics 数据结构专门用于记录任务调度相关的信息以便于开发人员进行系统的调试和优化。 这些信息包括多项非常有用的信息,例如一个线程iowait等待的次数、iowait等待的 阅读全文
posted @ 2020-12-18 23:20 温暖的电波 阅读(217) 评论(0) 推荐(0) 编辑

2020年8月5日

摘要: 源码:4.19.128 背景 在平常开发中偶尔会有这样的场景: 业务脚本中插入一个内核ko模块, 这个内核模块创建一个设备; 然后用户态程序立刻去访问这个内核模块创建的设备文件。 简而言之就是 insmod xxx.ko; open("/dev/xxx"); 但是在一般的嵌入式系统中往往存在一个这样 阅读全文
posted @ 2020-08-05 21:46 温暖的电波 阅读(822) 评论(0) 推荐(0) 编辑

2020年6月30日

摘要: linux中armv8架构各种上下文切换场景中的堆栈切换 阅读全文
posted @ 2020-06-30 22:42 温暖的电波 阅读(2114) 评论(0) 推荐(3) 编辑

2020年6月1日

摘要: 1 去掉64字节的头 dd if=./ramdisk.bin of=./ramdisk.bin.gz bs=64 skip=1 2 创建一个ramdisk的解压环境 mkdir rootfs; mv ramdisk.bin.gz rootfs/ ; cd rootfs/; 3 解压ramdisk 针 阅读全文
posted @ 2020-06-01 21:54 温暖的电波 阅读(438) 评论(0) 推荐(0) 编辑

2020年5月20日

摘要: 问题现象 (1) 内核中通过ioremap映射一段大小0x8000的保留内存,在执行memset(addr, 0, 256)时出现非对齐异常: 1 Unhandled fault: alignment fault (0x96000061) at 0xffffff8009080000 2 Intern 阅读全文
posted @ 2020-05-20 22:18 温暖的电波 阅读(2192) 评论(0) 推荐(0) 编辑