Loading

摘要: google protobuf是一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。google protobuf是跨语言的,并且自带了一个编译器(protoc),只需要用它进行编译,可以编译成Java、python、C++、C#、Go等代码,然后 阅读全文
posted @ 2024-07-10 21:29 kuraxii 阅读(164) 评论(0) 推荐(0)
摘要: slab分配器 1. 前言 本节关注内存区管理,也就是说,关注具有连续内存地址或任意长度的内存单元序列 在使用伙伴系统的场景下,如果为了存放很少的字节(比如malloc(32)),而分配一整个页框,很显然,这一种很大的浪费。而新的方法则是引入一种新的数据结构来描述如何在同一页框中分配小的内存区域。但 阅读全文
posted @ 2024-04-26 00:46 kuraxii 阅读(85) 评论(0) 推荐(0)
摘要: 非连续内存管理 从前面的章节我们知道,把内存映射待一组连续的页框是最好的选择,这样会充分利用高速缓存并获得较低的平均访问时间。不过,如果对内存区的请求不是很频繁,那么,通过连续的线性地址来访问非连续的页框这样的一种分配方式就会显得很有意义。 这种模式主要是避免了外碎片,而缺点是打乱了内核页表。显然, 阅读全文
posted @ 2024-04-26 00:43 kuraxii 阅读(111) 评论(0) 推荐(0)
摘要: 管理区分配器(The Zone Allocator) 相关函数: alloc_pages(gfp_mask, order) struct page * fastcall__alloc_pages(unsigned int gfp_mask, unsigned int order, struct zo 阅读全文
posted @ 2024-04-14 01:09 kuraxii 阅读(110) 评论(0) 推荐(0)
摘要: 每cpu页帧缓存 (The Per-CPU Page Frame Cache) 内核经常请求和释放单个页框。在这样的场景下,页的分配效率比较低。为了提升系统性能,内存管理区引入了每cpu叶帧缓存(The Per-CPU Page Frame Cache)。每个 cpu 的高速缓存会预先缓存一些单个页 阅读全文
posted @ 2024-04-14 01:08 kuraxii 阅读(233) 评论(0) 推荐(0)
摘要: 伙伴系统算法 为什么使用伙伴系统算法? 在系统的使用过程中,频繁的请求和释放页框,势必会导致已分配的页框之间分散存在了许多小块的空闲页框。由次带来的问题是,即使有足够的空叶匡可以满足请求,但要分配一个大块的连续页框就可能无法满足。 本质上说,避免外碎片由两种方法 利用分页单元把一组非连续空闲页框映射 阅读全文
posted @ 2024-04-14 01:07 kuraxii 阅读(148) 评论(0) 推荐(0)
摘要: 名词解释 虚拟页(VP, Virtual Page),虚拟空间中的页; 物理页(PP, Physical Page),物理内存中的页; 磁盘页(DP, Disk Page),磁盘中的页。 linux中的分页 (linux 2.6.11) 页全局目录(PGD, Page Global Director 阅读全文
posted @ 2024-04-11 23:21 kuraxii 阅读(153) 评论(0) 推荐(0)
摘要: 目录wsl基本介绍 以及 安装编译内核下载linux源码使用wsl内核配置添加uvc内核驱动编译内核切换wsl内核重启内核 最近有一个摄像头的项目,想着为什么不直接使用wsl呢。查阅了网络上大量的资料,修改了WSL2内核来支持UVC wsl基本介绍 以及 安装 wsl(windows subsyst 阅读全文
posted @ 2024-04-11 12:06 kuraxii 阅读(2932) 评论(1) 推荐(2)