Symbol Who
Preview Image

linux内核数据结构-XArray

Guide XArray 是一种抽象数据类型,其行为就像一个非常大的指针数组。它满足许多与哈希或传统的可调整大小的数组相同的需求。与散列不同,它允许您以高效缓存的方式明智地转到下一个或上一个条目。与可调整大小的数组相比,无需复制数据或更改 MMU 映射即可增长数组。与双向链表相比,它具有更高的内存效率、可并行性和缓存友好性。它利用 RCU 来执行查找而无需锁定。 XArray与树、哈希表...

Preview Image

【译】黑客CEO的金融世界观 Calling All Hackers

原文:Calling All Hackers 原作者: cts 前言 嗨, 我是 cts,也被称为 gf_256、ephemeral 或其他一些代号。 我曾是一名黑客,而现在是一家小公司的老板兼 CEO 。在这篇文章中,我想分享我在走这两条截然不同的道路时的经验。 黑客,是洞悉世界运行规律的人。 这种洞察力体现在当你输入 google.com 并按下回车时,你清楚背后发生了什...

Preview Image

linux内核笔记(八)vmalloc、持久映射、固定映射

vmalloc、持久映射、固定映射 回顾一下第五、六章的内容:在32位的内核虚拟地址空间中, 只有$1G$的可用空间 (总共$2^{32} = 4G$ - 用户空间$3G$),如果物理内存超出$1G$, 那么kernel将无法寻址超出的那部分物理内存 (即高端内存 HIGH_MEMORY), 为了解决这个问题,kernel将内核空间分了两部分:可直接线性映射物理内存的$896MiB$普通内...

Preview Image

linux内核笔记(七)伙伴系统(Buddy System)

伙伴系统 在内核初始化完成后,内存管理的责任由伙伴系统(Buddy System)承担。它是基于一种相对简单效率的算法的高效的内存管理技术,一直到最新版本都还在使用。 伙伴系统的基本思想是将内存或资源分成大小相等的块(称为伙伴),每个块可以被分配给一个进程或线程使用。当一个进程或线程请求内存或资源时,系统会搜索一个空闲的伙伴来满足请求,如果找到了一个空闲的伙伴,系统会将其分配给请求者,并...

Preview Image

linux内核笔记(六)启动时的内存初始化

启动时的内存初始化 涉及硬件架构相关的功能均以i386结构为例 (经典的x86 且有高端内存的处理逻辑) 系统引导时,内核在物理内存中的结构 引导将内核载入到内存中,并跳转到相应的内存地址开始执行内核代码,在ia32架构下,内核在内存中的架构如上。 _text、_etext、_edata、_end的具体地址在编译后的System.map下,以线性地址表示,如: ...