莫度编程网

技术文章干货、编程学习教程与开发工具分享

Linux 内核源代码的目录结构

内核技术点合集

Linux 内核源代码包括三个主要部分:

1. 内核核心代码,包括第 3 章所描述的各个子系统和子模块,以及其它的支撑子系统,例

如电源管理、Linux 初始化等

2. 其它非核心代码,例如库文件(因为 Linux 内核是一个自包含的内核,即内核不依赖其它

的任何软件,自己就可以编译通过)、固件集合、KVM(虚拟机技术)等

必看!WSL2 内核选项修改方法,手把手教你编译更新

视频讲解

龙蜥正式开源 Surftrace,协议包解析效率可提升 10 倍

Surftrace 是由系统运维 SIG 推出的一个 ftrace 封装器和开发编译平台,让用户既能基于 libbpf 快速构建工程进行开发,也能作为 ftrace 的封装器进行 trace 命令编写。


项目包含 Surftrace 工具集和 pylcc、glcc(python or generic C language for libbpf Compiler Collection),提供远程和本地 eBPF 的编译能力。通过对 krobe 和 ftrace 相关功能最大化抽象,同时对各种场景下的追踪能力增强(比如网络协议抓包),使得用户非常快速的上手,对定位问题效率提升 10 倍以上。

详解linux内核网络数据包发送在UDP协议层的处理与监控

udp_sendmsg

这个函数定义在net / ipv4 / udp.c,函数很长,分段来看。

UDP插入

如何阅读Linux内核源码?Linux内存管理中SLAB分配器(源码分析)

注:本文讲述的SLAB相关代码是基于Linux内核v4.7,代码网址。

漫画 | 因为用了C语言,Linux内核代码一团糟?

后记:今天是个小短片漫画,其实主要想说明一个道理:一个干净代码库的关键并不是什么类型的语言,而是维护这个代码库的人和团队,无论是设计得多么良好的代码库,用了多么先进的编程语言,如果守不住当初的原则,最终的结果就是代码腐化。

第一,C语言虽然是面向过程的语言,但是却可以实现面向对象的各个特性。C不是一个面向对象的语言,但是Linux内核却是一个面向对象的程序,到处都能看到虚函数表,内核甚至有元编程。

Linus Torvalds 怒斥 Linux 6.15 中“恶心”的测试代码:这玩意儿必须被干掉!

Linux内核kernel配置1—你真懂makefile、menuconfig、xconfig吗

随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。

面对日益庞大的Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选 项,并最终被编译进 Linux 内核。这就需要了解 Linux 的内核配置系统。

众所周知,Linux 内核是由分布在全球的 Linux 爱好者共同开发的,Linux 内核每天都面临着许多新的变化。但是,Linux 内核的组织并没有 出现混乱的现象,反而显得非常的简洁,而且具有很好的扩展性,开发人员可以很方便的向 Linux内核中增加新的内容。原因之一就是 Linux 采用了模块化的内核配置系统,从而保证了内核的扩展性。

深入分析Linux内核源代码6-Linux 内存管理(1)


每天十五分钟,熟读一个技术点,水滴石穿,一切只为渴望更优秀的你!

————零声学院



存储器是一种必须仔细管理的重要资源。在理想的情况下,每个程序员都喜欢无穷大、

快速并且内容不易变(即掉电后内容不会丢失)的存储器,同时又希望它是廉价的。但不幸

的是,当前技术没有能够提供这样的存储器,因此大部分的计算机都有一个存储器层次结构,

C语言宏定义的高级玩法,8个Linux内核常见代码案例教你怎么玩?

在Linux内核中,宏定义是一种强大的工具,用于实现代码的模块化和重用。以下是八个具体案例代码,展示了一些高级的宏定义在Linux内核中的应用。

  1. container_of 宏:
#define container_of(ptr, type, member) \
    ((type *)((char *)(ptr) - offsetof(type, member)))
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言

    Powered By Z-BlogPHP 1.7.4

    蜀ICP备2024111239号-43