【开源分享】深挖 Linux 内核的新功能特性,以 io_uring, cgroup, ebpf, llvm 为代表,包含开源项目,代码案例,文章,视频,架构脑图等
1、io_uring
io_uring(以前称为aioring)是一个用于存储设备异步 I/O操作的Linux 内核系统调用接口,解决了与/或/等函数提供的类似接口的性能问题,用于对文件描述符访问的数据进行操作。
文档
开源项目
精选文章
视频
二、cgroup
cgroups,其名称源自控制组群(英语:control groups)的简写,是Linux内核的一个功能,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。
这个项目最早是由Google的工程师(主要是Paul Menage和Rohit Seth)在2006年发起,最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名词有许多不同的意义,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核中。自那以后,又添加了很多功能。
文档
开源项目
文章
视频
三、ebpf——Linux 内核中顶级子模块
eBPF 是一项革命性的技术,起源于 Linux 内核,可以在操作系统内核中运行沙盒程序。它用于安全有效地扩展内核的功能,而无需更改内核源代码或加载内核模块。
从历史上看,由于内核具有监督和控制整个系统的特权,操作系统一直是实现可观察性、安全性和网络功能的理想场所。同时,操作系统内核由于其核心作用和对稳定性和安全性的高要求,难以演进。因此,与在操作系统之外实现的功能相比,操作系统级别的创新率传统上较低。
文档
开源项目
文章
视频
四、llvm
LLVM 项目是模块化和可重用的编译器和工具链技术的集合。尽管有它的名字,LLVM 与传统的虚拟机几乎没有关系。“LLVM”这个名字本身不是首字母缩写词;它是项目的全名。
LLVM 最初是伊利诺伊大学的一个研究项目,其目标是提供一种现代的、基于 SSA 的编译策略,能够支持任意编程语言的静态和动态编译。从那时起,LLVM 已经发展成为一个由多个子项目组成的伞形项目,其中许多子项目被各种 商业和开源项目用于生产,并被广泛用于学术研究。LLVM 项目中的代码根据 “Apache 2.0 License with LLVM exceptions”获得许可。
文档
LLVM命令指南
开源项目
文章
视频
以上所有资源内容,都整合到我的Github项目中了:https://github.com/0voice/kernel_new_features
目前项目还在不断完善当中,有需要的开发者,可以去下载学习。 记得给小弟一个Star,谢谢!