【开源分享】深挖 Linux 内核的新功能特性,以 io_uring, cgroup, ebpf, llvm 为代表,包含开源项目,代码案例,文章,视频,架构脑图等

wenchao1024 · · 951 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

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

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

951 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传