标签: Kernel

5 篇文章

浅谈Linux内存alloc: kmalloc, vmalloc, malloc
浅谈Linux内存alloc: kmalloc, vmalloc, malloc kmalloc 定义于include/linux/slab.h,用于内核分配大小小于页大小的内存, 物理上连续。 参数: size: 分配的内存大小,最小值:SLAB分配器为32Bytes,SLOB和SLUB为8Bytes;最大值:SLAB分配器为32MB(25阶)或…
Linux kernel: Misc
前言 记录一下Linux内核中的杂项,希望能帮到你理解源码。 内核宏 container_of 在linux-5.15.54-xanmod源码中使用rg container_of | wc -l一共搜索到了18273次使用。 Linux中常常传入一个结构体的成员,但是想要得到所属结构体及其里面的其它成员,可以使用这个内核宏。 其定义在<lin…
Linux kernel: basics
前言 在阅读Linux源码前,你需要了解下面的内容。 操作系统基本概念 操作系统的两个主要目标 与硬件交互,为硬件平台上的底层编程单元提供服务 为运行在计算机系统上的程序提供运行环境 用户态与内核态 现代的操作系统依靠特殊的硬件特性来禁止用户直接与底层硬件交互,或者禁止直接访问任意的内存地址。 在Intel/AMD CPU上,内核态运行在ring0…
Gentoo Linux practice Notes: Linux Kernel configuration
前言 这是一系列巨长并且更新周期漫长的文章中的第一篇,以最新的longterm内核+XanMod补丁集作为参考,希望能帮助读者理解Linux内核。 当前内核版本: linux-5.15.54-xanmod1 当前架构:AMD64 快速上手 对于新手,仍推荐使用gentoo-kernel-bin来进入新安装的系统,在使用一段时间后,再进行内核的改动。…
Gentoo Linux practice Notes: Linux Kernel compiling
前言 本文基本适用于所有发行版的脱离包管理器控制的内核编译安装,你可以通过git拉取仓库或者网站下载tar ball,但是更推荐使用包管理获取当前运行的内核的源代码,自己重新进行打包,或者手动编译内核。 在Gentoo Linux上,内核的编译占日常滚动的一大部分,编译出一个好用的内核,对Gentoo的整体表现至关重要。在main tree中,内核…