# kernel_new_features **Repository Path**: wolf_3795/kernel_new_features ## Basic Information - **Project Name**: kernel_new_features - **Description**: 一个深挖 Linux 内核的新功能特性,以 io_uring, cgroup, ebpf, llvm 为代表,包含开源项目,代码案例,文章,视频,架构脑图等 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-12-07 - **Last Updated**: 2025-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🔰 深挖 Linux 内核的新功能特性,以 io_uring, cgroup, ebpf, llvm 为代表,包含开源项目,代码案例,文章,视频,架构脑图等 所有数据来源于互联网。所谓取之于互联网,用之于互联网。 如果涉及版权侵犯,请邮件至 wchao_isvip@163.com ,我们将第一时间处理。 如果您对我们的项目表示赞同与支持,欢迎您 lssues我们,或者邮件 wchao_isvip@163.com 我们,更加欢迎您 pull requests 加入我们。 感谢您的支持! ## 🔥 [io_uring](https://en.wikipedia.org/wiki/Io_uring)
#### —— 2019 年 Linux 5.1 内核首次引入的高性能 异步 I/O 框架,能显著加速 I/O 密集型应用的性能。
### 文档 - 官方文档: [Efficient I/O with io_uring](https://github.com/0voice/kernel_new_features/blob/main/io_uring.pdf) - 其他文档: - [Improved Storage Performance Using the New Linux Kernel I.O Interface](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/Improved%20Storage%20Performance%20Using%20the%20New%20Linux%20Kernel%20I.O%20Interface.pdf) - [I/O-uring speed the RocksDB & TiKV](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/IO-uring%20speed%20the%20RocksDB%20%26%20TiKV.pdf) - [The Evolution of File Descriptor Monitoring in Linux](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/The%20Evolution%20of%20File%20Descriptor%20Monitoring%20in%20Linux.pdf) - [io_uring-BPF](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/io_uring-BPF.pdf) - [Enabling Financial-Grade Secure Infrastructure with Confidential Computing](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/Enabling%20Financial-Grade%20Secure%20Infrastructure%20with%20Confidential%20Computing.pdf) - [Boosting Compaction in B-Tree Based Key-Value Store by Exploiting Parallel Reads in Flash SSDs](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/Boosting%20Compaction%20in%20B-Tree%20Based%20Key-Value%20Store%20by%20Exploiting%20Parallel%20Reads%20in%20Flash%20SSDs.pdf) - [Programming Emerging Storage Interfaces](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/Programming%20Emerging%20Storage%20Interfaces.pdf) - [I/O is faster than the OS](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/O%20is%20faster%20than%20the%20OS.pdf) - [StefanMetzmacher_sambaxp2021_multichannel_io-uring-rev0-presentation](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/StefanMetzmacher_sambaxp2021_multichannel_io-uring-rev0-presentation.pdf) - [I/O Stack](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/O%20Stack.pdf) - [io_uring-徐浩-阿里云](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E6%A1%A3/io_uring-%E5%BE%90%E6%B5%A9-%E9%98%BF%E9%87%8C%E4%BA%91.pdf) ### 开源项目 - [axboe/liburing](https://github.com/axboe/liburing): io_uring 库,liburing为设置和拆掉 io_uring 实例,还有一个简化接口不需要(或不想)处理完整内核的应用程序边执行。 - [shuveb/io_uring-by-example](https://github.com/shuveb/io_uring-by-example): 一个io_uring 示例的库 - [bytedance/monoio](https://github.com/bytedance/monoio): 基于io-uring的Rust异步运行时 - [spacejam/rio](https://github.com/spacejam/rio): Rust io_uring库,构建在libc上,线程和异步友好,抗误用 - [Iceber/iouring-go](https://github.com/Iceber/iouring-go): 提供易于使用的异步IO接口io_uring - [frevib/io_uring-echo-server](https://github.com/frevib/io_uring-echo-server): io_uring echo server - [hodgesds/iouring-go](https://github.com/hodgesds/iouring-go): Io_uring支持go - [dshulyak/uring](https://github.com/dshulyak/uring): 用于io_uring框架的Golang库(无CGO) - [quininer/ritsu](https://github.com/quininer/ritsu): 一个实验性的基于io-uring的异步运行时。 - [shuveb/loti-examples](https://github.com/shuveb/loti-examples): 源代码示例程序,从主的io_uring指南 - [xuanyi-fu/xynet](https://github.com/xuanyi-fu/xynet): 基于io_uring和c++ 20协程的网络库 - [KuiBaDB/kbio](https://github.com/KuiBaDB/kbio): 一个基于io_uring的异步IO框架 - [shuveb/loti](https://github.com/shuveb/loti): io_uring教程,例子和参考 - [MarkReedZ/mrloop](https://github.com/MarkReedZ/mrloop): C语言使用io_uring的事件循环 - [tchaloupka/during](https://github.com/tchaloupka/during): dlang io_uring包装 - [omegacoleman/arkio](https://github.com/omegacoleman/arkio): 基于异步IO的内核IO库 - [ciconia/awesome-io_uring](https://github.com/ciconia/awesome-io_uring): 一个很棒的io_uring资源、库和工具的分类集合。 - [ddeka0/AsyncIO](https://github.com/ddeka0/AsyncIO): 一个用于异步套接字服务器的CPP包装器,使用linux最新的io_uring API - [uroni/fuseuring](https://github.com/uroni/fuseuring): 使用io_uring实现一个用户空间Linux fuse服务器 - [yunwei37/co-uring-WebServer](https://github.com/yunwei37/co-uring-WebServer): 一个使用io_uring和cpp20协同程序的c++高性能Web服务器 - [romange/helio](https://github.com/romange/helio): 一个基于io_uring Linux接口的现代后端开发框架 - [3541/short-circuit](https://github.com/3541/short-circuit): Linux高性能web服务器,基于io_uring构建。 - [anolis-os-archive/perf-test-for-io_uring](https://github.com/anolis-os-archive/perf-test-for-io_uring): 一个用于io_uring性能测试的框架。 - [BlazeWasHere/Cnidus](https://github.com/BlazeWasHere/Cnidus): 基于io_uring的C语言web框架。 - [AnSpake/osiris](https://github.com/AnSpake/osiris): 一个简单的服务器/客户端,使用io_uring ### 文章 - [io_uring 高效 IO](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/io_uring%20%E9%AB%98%E6%95%88%20IO.md) - [ [译] Linux 异步 I_O 框架 io_uring:基本原理、程序示例与性能压测(2020)](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/%5B%E8%AF%91%5D%20Linux%20%E5%BC%82%E6%AD%A5%20I_O%20%E6%A1%86%E6%9E%B6%20io_uring%EF%BC%9A%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86%E3%80%81%E7%A8%8B%E5%BA%8F%E7%A4%BA%E4%BE%8B%E4%B8%8E%E6%80%A7%E8%83%BD%E5%8E%8B%E6%B5%8B%EF%BC%882020%EF%BC%89.md) - [浅析开源项目之io_uring](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/%E6%B5%85%E6%9E%90%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E4%B9%8Bio_uring.md) - [io_uring 系统性整理](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/io_uring%20%E7%B3%BB%E7%BB%9F%E6%80%A7%E6%95%B4%E7%90%86.md) - [io_uring(1) – 我们为什么会需要 io_uring](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/io_uring%EF%BC%881%EF%BC%89%20%E2%80%93%20%E6%88%91%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E9%9C%80%E8%A6%81%20io_uring.md) - [io_uring(2)- 从创建必要的文件描述符 fd 开始](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/io_uring%EF%BC%882%EF%BC%89-%20%E4%BB%8E%E5%88%9B%E5%BB%BA%E5%BF%85%E8%A6%81%E7%9A%84%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6%20fd%20%E5%BC%80%E5%A7%8B.md) - [下一代异步 IO io_uring 技术解密](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/%E4%B8%8B%E4%B8%80%E4%BB%A3%E5%BC%82%E6%AD%A5%20IO%20io_uring%20%E6%8A%80%E6%9C%AF%E8%A7%A3%E5%AF%86.md) - [小谈io_uring](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/%E5%B0%8F%E8%B0%88io_uring.md) - [智汇华云 | 新时代IO利器-io_uring](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/%E6%99%BA%E6%B1%87%E5%8D%8E%E4%BA%91%20%7C%20%E6%96%B0%E6%97%B6%E4%BB%A3IO%E5%88%A9%E5%99%A8-io_uring.md) - [Linux 5.1 的 io_uring](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/Linux%205.1%20%E7%9A%84%20io_uring.md) - [What is io_uring?](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/What%20is%20io_uring%3F) - [io_uring_setup](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/io_uring_setup.md) - [io_uring_enter](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/io_uring_enter.md) - [io_uring_register](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/io_uring_register.md) - [The Low-level io_uring Interface](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/The%20Low-level%20io_uring%20Interface.md) - [Submission Queue Polling](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/Submission%20Queue%20Polling.md) - [Efficient IO with io_uring](https://github.com/0voice/kernel_new_features/blob/main/io_uring/%E6%96%87%E7%AB%A0/Efficient%20IO%20with%20io_uring.md) ### 视频(提取码:1024) - [Speeding Up VM’s I_O Sharing Host's io_uring Queues With Guests by Stefano Garzarella【2020】](https://pan.baidu.com/s/1eQC_OQhfBnkd8t6NbBnseQ) - [Asynchronous I_O and coroutines for smooth data streaming - Björn Fahller - NDC TechTown 2021](https://pan.baidu.com/s/1l5ZEOIwRKwWbnhZPnsj4hQ) - [Guilherme Bernal - Reaching 200k req_s on a single core with io_uring - Crystal 1.0 Conference](https://pan.baidu.com/s/1EzFLmdpq9hEGhTsxhSF5NA) - [Improved Storage Performance Using the New Linux Kernel I O Interface (SDC 2019)](https://pan.baidu.com/s/19vzNrSVAbjXP_XC5eNxj8g) - [io_uring- BPF controlled I_O - Pavel Begunkov](https://pan.baidu.com/s/1g5KLbY9nQ2FIQkN7a3MGDw) - [io_uring in QEMU- high-performance disk I_O for Linux](https://pan.baidu.com/s/1VFOdf6H6rRp3o2EHPmjLXA) - [Kernel Recipes 2019 - Faster IO through io_uring](https://pan.baidu.com/s/1z7sFE2oFDcS6DAbod4UyOQ) - [SDC2021- Samba Multi-Channel_io_uring Status Update](https://pan.baidu.com/s/1-YlabCqs03LS7nJxaOqPKQ) - [Speeding Up VM’s I_O Sharing Host's io_uring Queues With Guests - Stefano Garzarella, Red Hat](https://pan.baidu.com/s/1QW3zvykzFwYKsMZUZK7orA) - [USENIX ATC '19 - Asynchronous I_O Stack_ A Low-latency Kernel I_O Stack for Ultra-Low Latency SSDs](https://pan.baidu.com/s/1sWdfkSU9yjoY53A4wvkcfQ) - [来自阿里云的 Linux 内核 io_uring 介绍与实践](https://pan.baidu.com/s/1FykA5evNh3O3JK4Cu9fs0Q) ## 🔥 [cgroup](https://zh.wikipedia.org/wiki/Cgroups)
#### —— 限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。
### 文档 - 官方文档: - [Control Groups definition, implementation details, examples and API](https://web.archive.org/web/20120618145303/http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt) - [CPU Accounting Controller; account CPU usage for groups of tasks](https://web.archive.org/web/20120618145303/http://www.kernel.org/doc/Documentation/cgroups/cpuacct.txt) - [documents the cpusets feature; assign CPUs and Mem to a set of tasks](https://web.archive.org/web/20120618145303/http://www.kernel.org/doc/Documentation/cgroups/cpusets.txt) - [Device Whitelist Controller; description, interface and security](https://web.archive.org/web/20120618145303/http://www.kernel.org/doc/Documentation/cgroups/devices.txt) - [checkpointing; rationale to not use signals, interface](https://web.archive.org/web/20120618145303/http://www.kernel.org/doc/Documentation/cgroups/freezer-subsystem.txt) - [Memory Resource Controller; implementation details](https://web.archive.org/web/20120618145303/http://www.kernel.org/doc/Documentation/cgroups/memcg_test.txt) - [Memory Resource Controller; design, accounting, interface, testing](https://web.archive.org/web/20120618145303/http://www.kernel.org/doc/Documentation/cgroups/memory.txt) - [Resource Counter API](https://web.archive.org/web/20120618145303/http://www.kernel.org/doc/Documentation/cgroups/resource_counter.txt) - 其他文档: - [cgroups介绍](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/cgroups%E4%BB%8B%E7%BB%8D.pdf) - [CgroupMemcgMaster](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/CgroupMemcgMaster.pdf) - [Resource Management](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/Resource%20Management.pdf) - [Challenges with the memory resource controller and its performance](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/%20Challenges%20with%20the%20memory%20resource%20controller%20and%20its%20performance.pdf) - [Ressource Management in Linux with Control Groups](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/Ressource%20Management%20in%20Linux%20with%20Control%20Groups.pdf) - [System Programming for Linux Containers Control Groups (cgroups)](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/System%20Programming%20for%20Linux%20Containers%20Control%20Groups%20(cgroups).pdf) - [Managing Resources with cgroups](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/Managing%20Resources%20with%20cgroups.pdf) - [5 years of cgroup v2](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/5%20years%20of%20cgroup%20v2.pdf) - [Linux’s new unified control group system](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/%20Linux%E2%80%99s%20new%20unified%20control%20group%20system.pdf) - [cgroups_intro](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/cgroups_intro.pdf) - [red_hat_enterprise_linux-6-resource_management_guide-en-us](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/red_hat_enterprise_linux-6-resource_management_guide-en-us.pdf) - [An introduction to Control Groups (cgroups)](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/An%20introduction%20to%20Control%20Groups%20(cgroups).pdf) - [Using Linux Control Groups and Systemd to Manage CPU Time and Memory](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/%20Using%20Linux%20Control%20Groups%20and%20Systemd%20to%20Manage%20CPU%20Time%20and%20Memory.pdf) - [An introduction to cgroups and cgroupspy](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E6%A1%A3/An%20introduction%20to%20cgroups%20and%20cgroupspy.pdf) ### 开源项目 - [containerd/cgroups](https://github.com/containerd/cgroups): 用于创建、管理、检查和销毁cgroup。cgroup上设置的资源格式使用这里找到的OCI运行时规范。 - [mhausenblas/cinf](https://github.com/mhausenblas/cinf): 一个查看命名空间和cgroups的命令行工具 - [flouthoc/vas-quod](https://github.com/flouthoc/vas-quod): 用Rust编写的一个极小的容器运行时 - [poelzi/ulatencyd](https://github.com/poelzi/ulatencyd): 使用cgroups最小化linux系统延迟的守护进程 - [haosdent/jcgroup](https://github.com/haosdent/jcgroup): jcgroup是JVM上的cgroup包装器。您可以使用这个库来限制线程的CPU共享、磁盘I/O速度、网络带宽等。 - [kinvolk/traceloop](https://github.com/kinvolk/traceloop): 使用BPF和可重写的环形缓冲区跟踪cgroup中的系统调用 - [tianon/cgroupfs-mount](https://github.com/tianon/cgroupfs-mount): 挂载cgroupfs (v1)层次结构的简单(过时)脚本,特别是用于Debian打包的结构化脚本 - [francisbouvier/cgroups](https://github.com/francisbouvier/cgroups): 一个库来管理cgroups Linux内核特性 - [bpowers/mstat](https://github.com/bpowers/mstat): 这个工具运行在Linux上,利用cgroups内核API(也被Docker等容器基础设施使用)来记录一组进程随时间的内存使用情况。 ### 文章 - [Linux cgroups 概述](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/linux%20cgroups%20%E6%A6%82%E8%BF%B0.md) - [【译】Control Group v2(cgroupv2 权威指南)(KernelDoc, 2021)](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/%5B%E8%AF%91%5D%20Control%20Group%20v2%EF%BC%88cgroupv2%20%E6%9D%83%E5%A8%81%E6%8C%87%E5%8D%97%EF%BC%89%EF%BC%88KernelDoc%2C%202021%EF%BC%89.md) - [How I Used CGroups to Manage System Resources](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/How%20I%20Used%20CGroups%20to%20Manage%20System%20Resources.md) - [Cgroups控制cpu,内存,io示例](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/Cgroups%E6%8E%A7%E5%88%B6cpu%EF%BC%8C%E5%86%85%E5%AD%98%EF%BC%8Cio%E7%A4%BA%E4%BE%8B.md) - [Linux Control Groups V1 和 V2 原理和区别](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/Linux%20Control%20Groups%20V1%20%E5%92%8C%20V2%20%E5%8E%9F%E7%90%86%E5%92%8C%E5%8C%BA%E5%88%AB.md) - [Linux资源管理之cgroups简介](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/Linux%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E4%B9%8Bcgroups%E7%AE%80%E4%BB%8B.md) - [彻底搞懂容器技术的基石: cgroup](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/%E5%BD%BB%E5%BA%95%E6%90%9E%E6%87%82%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%9F%BA%E7%9F%B3%EF%BC%9A%20cgroup.md) - [深入理解 Linux Cgroup 系列(一):基本概念](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%20Linux%20Cgroup%20%E7%B3%BB%E5%88%97%EF%BC%88%E4%B8%80%EF%BC%89%EF%BC%9A%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.md) - [深入理解 Linux Cgroup 系列(二):玩转 CPU](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%20Linux%20Cgroup%20%E7%B3%BB%E5%88%97%EF%BC%88%E4%BA%8C%EF%BC%89%EF%BC%9A%E7%8E%A9%E8%BD%AC%20CPU.md) - [深入理解 Linux Cgroup 系列(三):内存](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%20Linux%20Cgroup%20%E7%B3%BB%E5%88%97%EF%BC%88%E4%B8%89%EF%BC%89%EF%BC%9A%E5%86%85%E5%AD%98.md) - [Cgroup - 从CPU资源隔离说起](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/Cgroup%20-%20%E4%BB%8ECPU%E8%B5%84%E6%BA%90%E9%9A%94%E7%A6%BB%E8%AF%B4%E8%B5%B7.md) - [Cgroup - Linux内存资源管理](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/Cgroup%20-%20Linux%E5%86%85%E5%AD%98%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86.md) - [Cgroup - Linux的IO资源隔离](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/Cgroup%20-%20Linux%E7%9A%84IO%E8%B5%84%E6%BA%90%E9%9A%94%E7%A6%BB.md) - [Cgroup - Linux的网络资源隔离](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/Cgroup%20-%20Linux%E7%9A%84%E7%BD%91%E7%BB%9C%E8%B5%84%E6%BA%90%E9%9A%94%E7%A6%BB.md) - [用 cgroups 管理 cpu 资源](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/%E7%94%A8%20cgroups%20%E7%AE%A1%E7%90%86%20cpu%20%E8%B5%84%E6%BA%90.md) - [用 cgruops 管理进程内存占用](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/%E7%94%A8%20cgruops%20%E7%AE%A1%E7%90%86%E8%BF%9B%E7%A8%8B%E5%86%85%E5%AD%98%E5%8D%A0%E7%94%A8.md) - [用 cgroups 管理进程磁盘 io](https://github.com/0voice/kernel_new_features/blob/main/cgroups/%E6%96%87%E7%AB%A0/cgroups%20%E7%AE%A1%E7%90%86%E8%BF%9B%E7%A8%8B%E7%A3%81%E7%9B%98%20io.md) ### 视频 - [Containers_ cgroups, Linux kernel namespaces, ufs, Docker, and intro to Kubernetes pods](https://pan.baidu.com/s/1dfmOxOESpgT9rj4VH1BmRA)---提取码: k4hn - [Understanding and Working with the Cgroups Interface - Michael Anderson, The PTR Group, LLC](https://pan.baidu.com/s/1wD5MRvHheJv1P8i1iQmosQ)---提取码: 54vs - [Linux Container Primitives- cgroups, namespaces, and more!](https://pan.baidu.com/s/1LZ9Ff1EuTArxcv6e0c8-2A)---提取码: cjwd - [Cgroups, namespaces, and beyond](https://pan.baidu.com/s/1IjOURq5X6TEwZn6G5LUhog)---提取码: at6x - [Kubernetes On Cgroup v2 - Giuseppe Scrivano, Red Hat](https://pan.baidu.com/s/1apHDcsiCpiZITd_TwfezCg)---提取码: 552y - [Cgroup Slab Memory Controller and Time Namespace - DevConf.CZ 2021](https://pan.baidu.com/s/1qhVtHJtQjM-7mJVQVDMPwg)---提取码: gayh - [Modern Linux Servers with cgroups - Brandon Philips, CoreOS](https://pan.baidu.com/s/1okbzLkfA7d0uKJRyj3iyDg)---提取码: afm1 - [LISA21 - 5 Years of Cgroup v2- The Future of Linux Resource Control](https://pan.baidu.com/s/1AGo7vUC0F0uKO5gCd4wVxg)---提取码: ygrv - [Limit CPU usage on Ubuntu with Systemd cgroups](https://pan.baidu.com/s/17gB4Lv4LyznfMwTxd9Ae_Q)---提取码: ktva - [What's new in control groups (cgroups) version 2](https://pan.baidu.com/s/1r3V4Htltuy58OUmXGC5aXQ)---提取码: w2tz ## 🔥 [ebpf](https://ebpf.io/)
#### —— Linux 内核中顶级子模块
### 文档 - 官方文档: - Linux 内核:https://www.kernel.org/doc/Documentation/networking/filter.txt and https://www.kernel.org/doc/html/latest/bpf/# - 开发QA: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/bpf/bpf_devel_QA.rst - eBPF-Helpers:https://github.com/iovisor/bpf-docs/blob/master/bpf_helpers.rst/ - 其他文档: - [iovisor/bpf-docs](https://github.com/iovisor/bpf-docs): 列出了 eBPF opcode,项目是 iovisor 总结的系列文档、pre。 - [Advanced_BPF_Kernel_Features_for_the_Container_Age_FOSDEM](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Advanced_BPF_Kernel_Features_for_the_Container_Age_FOSDEM.pdf) - [BPF to eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/BPF%20to%20eBPF.pdf) - [Calico-eBPF-Dataplane-CNCF-Webinar-Slides](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Calico-eBPF-Dataplane-CNCF-Webinar-Slides.pdf) - [Combining System Visibility and Security Using eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Combining%20System%20Visibility%20and%20Security%20Using%20eBPF.pdf) - [DPDK+eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/DPDK%2BeBPF.pdf) - [Experience and Lessons Learned](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Experience%20and%20Lessons%20Learned.pdf) - [Fast Packet Processing using eBPF and XDP](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Fast%20Packet%20Processing%20using%20eBPF%20and%20XDP.pdf) - [Kernel Tracing With eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Kernel%20Tracing%20With%20eBPF.pdf) - [Kernel analysis using eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Kernel%20analysis%20using%20eBPF.pdf) - [Making the Linux TCP stack more extensible with eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Making%20the%20Linux%20TCP%20stack%20more%20extensible%20with%20eBPF.pdf) - [Performance Analysis Superpowers with Linux eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Performance%20Analysis%20Superpowers%20with%20Linux%20eBPF.pdf) - [Performance Implications of Packet Filtering with Linux eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/Performance%20Implications%20of%20Packet%20Filtering%20with%20Linux%20eBPF.pdf) - [The Next Linux Superpower eBPF Primer](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/The%20Next%20Linux%20Superpower%20eBPF%20Primer.pdf) - [eBPF - From a Programmer’s Perspective](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/eBPF%20-%20From%20a%20Programmer%E2%80%99s%20Perspective.pdf) - [eBPF In-kernel Virtual Machine & Cloud Computin](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/eBPF%20In-kernel%20Virtual%20Machine%20%26%20Cloud%20Computin.pdf) - [eBPF for perfomance analysis and networking](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/eBPF%20for%20perfomance%20analysis%20and%20networking.pdf) - [eBPF in CPU Scheduler](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/eBPF%20in%20CPU%20Scheduler.pdf) - [eBPF-based Content and Computation-aware Communication for Real-time Edge Computing](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E6%A1%A3/eBPF-based%20Content%20and%20Computation-aware%20Communication%20for%20Real-time%20Edge%20Computing.pdf) ### 开源项目 - [cilium/cilium](https://github.com/cilium/cilium): 用于提供、保护和观察容器工作负载之间的网络连接——云原生,并由革命性的内核技术eBPF提供支持,https://cilium.io/ - [BPF Compiler Collection (BCC)](https://github.com/iovisor/bcc): BCC -基于bpf的Linux IO分析、联网、监控等工具 - [bpftrace](https://github.com/iovisor/bpftrace): Linux eBPF的高级跟踪语言 - [Falco](https://github.com/falcosecurity/falco): 一种行为活动监视器,旨在检测应用程序中的异常活动。Falco在ebp的帮助下在Linux内核层对系统进行审计。它通过其他输入流(如容器运行时度量和Kubernetes度量)丰富了收集到的数据,并允许持续监视和检测容器、应用程序、主机和网络活动。 - [Katran](https://github.com/facebookincubator/katran): 高性能的四层负载均衡器 - [LLVM Compiler](https://github.com/llvm/llvm-project/): 一个模块化和可重用的编译器和工具链技术的集合。 - [microsoft/ebpf-for-windows](https://github.com/microsoft/ebpf-for-windows): 运行在Windows上的eBPF实现 - [aquasecurity/libbpfgo](https://github.com/aquasecurity/libbpfgo): 一个用于Linux ebbpf项目的Go库。 - [aquasecurity/tracee](https://github.com/aquasecurity/tracee): Linux的运行时安全和取证工具。 - [libbpf/libbpf](https://github.com/libbpf/libbpf): libbpf是一个基于C/ c++的库,作为上游Linux内核的一部分进行维护。它包含一个eBPF加载器,它接管处理LLVM生成的eBPF ELF文件,以便将其加载到内核中。 - [libbpf/libbpf-rs](https://github.com/libbpf/libbpf-rs): Rust生态系统的最小和固执的epf工具 - [foniod/redbpf](https://github.com/foniod/redbpf): Rust库用于构建和运行BPF/eBPF模块 - [aya-rs/aya](https://github.com/aya-rs/aya): 一个用于Rust编程语言的eBPF库,其构建的重点是开发人员的体验和可操作性。 - [cilium/hubble](https://github.com/cilium/hubble): 使用eBPF的Kubernetes网络、服务和安全可观测性 - [kubearmor/KubeArmor](https://github.com/kubearmor/KubeArmor): 一个云本地运行时安全强制系统,它在系统级别限制容器和节点的行为(如进程执行、文件访问和网络操作)。 - [iovisor/kubectl-trace](https://github.com/iovisor/kubectl-trace): 使用kubectl在kubernetes集群上调度bpftrace程序 - [iovisor/ply](https://github.com/iovisor/ply): 一款基于eBPF的Linux动态跟踪软件。 ### 文章 - [什么是 eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/%E4%BB%80%E4%B9%88%E6%98%AF%20eBPF.md) - [eBPF详解](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/eBPF%E8%AF%A6%E8%A7%A3.md) - [BPF 和 eBPF 初探](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/BPF%20%E5%92%8C%20eBPF%20%E5%88%9D%E6%8E%A2.md) - [Linux 内核监测技术 eBPF](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/Linux%20%E5%86%85%E6%A0%B8%E7%9B%91%E6%B5%8B%E6%8A%80%E6%9C%AF%20eBPF.md) - [eBPF 如何简化服务网格](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/eBPF%20%E5%A6%82%E4%BD%95%E7%AE%80%E5%8C%96%E6%9C%8D%E5%8A%A1%E7%BD%91%E6%A0%BC.md) - [eBPF 用户空间虚拟机实现相关](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/eBPF%20%E7%94%A8%E6%88%B7%E7%A9%BA%E9%97%B4%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%AE%9E%E7%8E%B0%E7%9B%B8%E5%85%B3.md) - [基于 eBPF 实现容器运行时安全](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/%E5%9F%BA%E4%BA%8E%20eBPF%20%E5%AE%9E%E7%8E%B0%E5%AE%B9%E5%99%A8%E8%BF%90%E8%A1%8C%E6%97%B6%E5%AE%89%E5%85%A8.md) - [深入理解 Cilium 的 eBPF 收发包路径](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%20Cilium%20%E7%9A%84%20eBPF%20%E6%94%B6%E5%8F%91%E5%8C%85%E8%B7%AF%E5%BE%84.md) - [eBPF 概述,第 1 部分:介绍](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/eBPF%20%E6%A6%82%E8%BF%B0%EF%BC%8C%E7%AC%AC%201%20%E9%83%A8%E5%88%86%EF%BC%9A%E4%BB%8B%E7%BB%8D.md) - [eBPF 概述,第 2 部分:机器和字节码](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/eBPF%20%E6%A6%82%E8%BF%B0%EF%BC%8C%E7%AC%AC%202%20%E9%83%A8%E5%88%86%EF%BC%9A%E6%9C%BA%E5%99%A8%E5%92%8C%E5%AD%97%E8%8A%82%E7%A0%81.md) - [eBPF 概述,第 3 部分:软件开发生态](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/eBPF%20%E6%A6%82%E8%BF%B0%EF%BC%8C%E7%AC%AC%203%20%E9%83%A8%E5%88%86%EF%BC%9A%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E7%94%9F%E6%80%81.md) - [eBPF 概述,第 4 部分:在嵌入式系统运行](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/eBPF%20%E6%A6%82%E8%BF%B0%EF%BC%8C%E7%AC%AC%204%20%E9%83%A8%E5%88%86%EF%BC%9A%E5%9C%A8%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%BB%9F%E8%BF%90%E8%A1%8C.md) - [eBPF 概述,第 5 部分:跟踪用户进程](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/eBPF%20%E6%A6%82%E8%BF%B0%EF%BC%8C%E7%AC%AC%205%20%E9%83%A8%E5%88%86%EF%BC%9A%E8%B7%9F%E8%B8%AA%E7%94%A8%E6%88%B7%E8%BF%9B%E7%A8%8B.md) - [【译】大规模微服务利器:eBPF + KubernetesKubeCon, 2020](https://github.com/0voice/kernel_new_features/blob/main/ebpf/%E6%96%87%E7%AB%A0/%E3%80%90%E8%AF%91%5D%E3%80%91%E5%A4%A7%E8%A7%84%E6%A8%A1%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%88%A9%E5%99%A8%EF%BC%9AeBPF%20%2B%20Kubernetes%EF%BC%88KubeCon%2C%202020%EF%BC%89.md) ### 视频 - [Netflix talks about Extended BPF - A new software type](https://pan.baidu.com/s/1VD-dsBheyJmDUhiIUJiQOw)---提取码: 83sv - [containers_ebpf_kernel](https://pan.baidu.com/s/1NFzeWCJHmsXnzmDTHnt9vg)---提取码: hxkt ## 🔥 [llvm](https://llvm.org/)
#### —— 模块化、可重用的编译器以及工具链技术的集合
### 文档 - 官方文档: - [LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation](https://github.com/0voice/kernel_new_features/blob/main/llvm/%E6%96%87%E6%A1%A3/%20A%20Compilation%20Framework%20for%20Lifelong%20Program%20Analysis%20%26%20Transformation.pdf) - [Introduction to the LLVM Compiler System](https://github.com/0voice/kernel_new_features/blob/main/llvm/%E6%96%87%E6%A1%A3/Introduction%20to%20the%20LLVM%20Compiler%20System.pdf) - [LLVM语言参考手册](https://web.archive.org/web/20120611064155/http://llvm.org/docs/LangRef.html) - [LLVM语言参考手册-中文版](https://llvm.liuxfe.com/docs/langref/) - [入门LLVM核心库](https://getting-started-with-llvm-core-libraries-zh-cn.readthedocs.io/zh_CN/latest/) - 用户指南: - [使用CMake构建LLVM](https://llvm.org/docs/CMake.html): 使用CMake构建系统的主要入门指南的附录。 - [在ARM平台上构建LLVM指南](https://llvm.org/docs/HowToBuildOnARM.html): 关于在ARM上构建和测试LLVM/Clang的注意事项。 - [如何使用配置文件引导优化构建Clang和LLVM](https://llvm.org/docs/HowToBuildWithPGO.html): 使用PGO构建LLVM/Clang的注意事项。 - [如何为ARM平台交叉编译compiler-rt Builtins](https://llvm.org/docs/HowToCrossCompileBuiltinsOnArm.html): 关于交叉构建和测试ARM的编译器-rt内置函数的注意事项。 - [如何使用Clang/LLVM交叉编译Clang/LLVM](https://llvm.org/docs/HowToCrossCompileLLVM.html):关于交叉构建和测试LLVM / Clang的注意事项。 - [使用Microsoft Visual Studio开始使用LLVM系统](https://llvm.org/docs/GettingStartedVS.html):Windows上使用Visual Studio的主要入门指南的附录。 - [LLVM的分析和转换Passes](https://llvm.org/docs/Passes.html):LLVM中实现的优化和分析列表 - [当前版本的发布说明](https://llvm.org/docs/ReleaseNotes.html):这描述了新功能,已知错误和其他限制。 - [如何提交LLVM错误报告](https://llvm.org/docs/HowToSubmitABug.html): 有关正确提交有关您在LLVM系统中遇到的任何错误的信息的说明。 - [sphinx模板快速入门](https://llvm.org/docs/SphinxQuickstartTemplate.html):使用LLVM测试基础结构的参考手册。 - [LLVM测试套件基础结构指南](https://llvm.org/docs/TestingGuide.html):使用LLVM测试基础结构的参考手册。 - [LLVM测试套件使用指南](https://llvm.org/docs/TestSuiteGuide.html):描述如何编译和运行测试套件基准测试。 - [如何构建C,C ++,ObjC和ObjC ++前端](https://clang.llvm.org/get_started.html):从源代码构建clang前端的说明。 - [LLVM词典](https://llvm.org/docs/Lexicon.html):LLVM中使用的首字母缩略词,术语和概念的定义。 - [如何将构建配置添加到LLVM Buildbot基础结构](https://llvm.org/docs/HowToAddABuilder.html):有关将新构建器添加到LLVM buildbot master的说明。 - [YAML I/O](https://llvm.org/docs/YamlIO.html):使用LLVM的YAML I/O库的参考指南。 - [前端作者的性能提示](https://llvm.org/docs/Frontend/PerformanceTips.html):前端作者关于如何生成IR的技巧的集合,LLVM能够有效地优化。 - [Dockerfiles用于构建LLVM的指南](https://llvm.org/docs/Docker.html):使用随LLVM提供的Dockerfiles的参考。 - 编程文档: - [LLVM扩展](https://llvm.org/docs/Extensions.html):LLVM特定的工具和格式扩展LLVM寻求兼容性。 - [CommandLine 2.0库手册](https://llvm.org/docs/CommandLine.html):提供有关使用命令行解析库的信息。 - [LLVM编码标准](https://llvm.org/docs/CodingStandards.html):详细介绍了LLVM编码标准,并提供了有关编写高效C ++代码的有用信息。 - [如何为类层次结构设置LLVM样式的RTTI](https://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html):如何让`isa<>`,`dyn_cast<>`等可供您的类层次的客户。 - [扩展LLVM:添加指令,内在函数,类型等](https://llvm.org/docs/ExtendingLLVM.html):在这里查看如何向LLVM添加指令和内在函数。 - [libFuzzer - 用于覆盖引导的模糊测试的库](https://llvm.org/docs/LibFuzzer.html):用于编写进程中引导模糊器的库 - [模糊LLVM库和工具](https://llvm.org/docs/FuzzingLLVM.html):有关编写和使用Fuzzers查找LLVM中的错误的信息. - [Scudo硬化分配器](https://llvm.org/docs/ScudoHardenedAllocator.html):一个实现安全加固的malloc()的库。 - 子系统文档 - [编写LLVM Passes](https://llvm.org/docs/WritingAnLLVMPass.html):有关如何编写LLVM转换和分析的信息 - [编写LLVM后端](https://llvm.org/docs/WritingAnLLVMBackend.html):有关如何为机器目标编写LLVM后端的信息 - [LLVM与目标无关的代码生成器](https://llvm.org/docs/CodeGenerator.html):LLVM代码生成器的设计和实现。如果您正在将LLVM重新定位到新架构,设计新的codegen传递或增强现有组件,则非常有用。 - [机器IR(MIR)格式参考手册](https://llvm.org/docs/MIRLangRef.html):MIR序列化格式的参考手册,用于测试LLVM的代码生成过程。 - [TableGen](https://llvm.org/docs/TableGen/index.html):描述了TableGen工具,LLVM代码生成器大量使用它。 - [LLVM别名分析基础结构](https://llvm.org/docs/AliasAnalysis.html):有关如何编写新别名分析实现或如何使用现有分析的信息。 - [MemorySSA](https://llvm.org/docs/MemorySSA.html):有关LLVM中的MemorySSA实用程序的信息,以及如何使用它。 - [使用LLVM进行垃圾收集](https://llvm.org/docs/GarbageCollection.html):接口源语言编译器应该用于编译GC程序。 - [使用LLVM进行源级别调试](https://llvm.org/docs/SourceLevelDebugging.html):本文档描述了LLVM源代码级调试器背后的设计和理念。 - [LLVM中的自动矢量化](https://llvm.org/docs/Vectorizers.html):本文档描述了LLVM中矢量化的当前状态 - [LLVM中的异常处理](https://llvm.org/docs/ExceptionHandling.html):本文档描述了LLVM中异常处理的设计和实现 - [如何添加一个受约束的浮点内在函数](https://llvm.org/docs/AddingConstrainedIntrinsics.html):在LLVM中添加新的约束数学内在时,提供必要的步骤。 - [LLVM bugpoint工具:设计和使用](https://llvm.org/docs/Bugpoint.html):自动错误查找器和测试用例减少器描述和使用信息 - [LLVM Bitcode文件格式](https://llvm.org/docs/BitCodeFormat.html):这描述了用于LLVM“bc”文件的文件格式和编码。 - [支持库](https://llvm.org/docs/SupportLibrary.html):本文档描述了LLVM支持库(lib/Support)以及如何使LLVM源代码可移植 - [LLVM链接时间优化:设计和实现](https://llvm.org/docs/LinkTimeOptimization.html):本文档描述了LLVM模块间优化器与链接器及其设计之间的接口 - [LLVM黄金插件](https://llvm.org/docs/GoldPlugin.html):如何在Linux上使用链接时优化来构建程序。 - [使用GDB调试JIT-ed代码](https://llvm.org/docs/DebuggingJITedCode.html):如何使用GDB调试JITed代码。 - [MCJIT设计与实施](https://llvm.org/docs/MCJITDesignAndImplementation.html):描述了MCJIT执行引擎的内部工作原理 - [LLVM分支权重元数据](https://llvm.org/docs/BranchWeightMetadata.html):提供有关分支预测信息的信息。 - [LLVM块频率术语](https://llvm.org/docs/BlockFrequencyTerminology.html):提供有关BlockFrequencyInfo 分析过程中使用的术语的信息 - [LLVM中的分段堆栈](https://llvm.org/docs/SegmentedStacks.html):本文档描述了分段堆栈以及它们在LLVM中的使用方式 - [LLVM的可选丰富的反汇编输出](https://llvm.org/docs/MarkedUpDisassembly.html):本文档介绍了可选的丰富反汇编输出语法 - [如何使用属性](https://llvm.org/docs/HowToUseAttributes.html):回答有关新属性基础结构的一些问题。 - [NVPTX后端用户指南](https://llvm.org/docs/NVPTXUsage.html):本文档描述了使用NVPTX后端编译GPU内核。 - [AMDGPU后端用户指南](https://llvm.org/docs/AMDGPUUsage.html):本文档描述了使用AMDGPU后端编译GPU内核。 - [LLVM中的堆栈映射和补丁点](https://llvm.org/docs/StackMaps.html):LLVM支持将指令地址映射到值的位置并允许修补代码。 - [在big endian模式下使用ARM NEON指令](https://llvm.org/docs/BigEndianNEON.html):LLVM支持在大端ARM目标上生成NEON指令有点不直观。本文档解释了实施和理由。 - [LLVM代码覆盖映射格式](https://llvm.org/docs/CoverageMappingFormat.html):LLVM代码覆盖映射格式 - [LLVM中的垃圾收集安全点](https://llvm.org/docs/Statepoints.html):这描述了一组垃圾收集支持的实验扩展。 - [MergeFunctions Pass,它是如何工作的](https://llvm.org/docs/MergeFunctions.html):描述合并优化的函数。 - [InAlloca属性的设计和使用](https://llvm.org/docs/InAlloca.html):inalloca参数属性的描述。 - [FaultMaps和隐式检查](https://llvm.org/docs/FaultMaps.html):LLVM支持折叠控制流入错误机器指令。 - [用clang编译CUDA](https://llvm.org/docs/CompileCudaWithLLVM.html):LLVM对CUDA的支持。 - [LLVM中的协同程序](https://llvm.org/docs/Coroutines.html):LLVM中的协同程序. - [全局指令选择](https://llvm.org/docs/GlobalISel.html):这描述了原型指令选择替换GlobalISel - [XRay仪表](https://llvm.org/docs/XRay.html):有关如何在LLVM中使用XRay的高级文档。 - [使用XRay进行调试](https://llvm.org/docs/XRayExample.html):如何使用XRay调试应用程序的示例。 - [Microsoft PDB文件格式](https://llvm.org/docs/PDB/index.html):Microsoft PDB(程序数据库)文件格式的详细说明。 - [控制流程验证工具设计文档](https://llvm.org/docs/CFIVerify.html):控制流完整性验证工具的说明 - [投机负荷强化](https://llvm.org/docs/SpeculativeLoadHardening.html):Spectre v1的推测负载强化缓解的描述 - [堆栈安全分析](https://llvm.org/docs/StackSafetyAnalysis.html):本文档描述了局部变量的堆栈安全性分析的设计。 ### LLVM命令指南 #### 基本命令 | 命令 | 说明 | | :----------------------------------------------------------- | :-------------------------------- | | [llvm-as](https://llvm.liuxfe.com/docs/man/llvm-as.html) | LLVM汇编器 | | [llvm-dis](https://llvm.liuxfe.com/docs/man/llvm-dis.html) | LLVM反汇编器 | | [opt](https://llvm.liuxfe.com/docs/man/opt.html) | LLVM优化器 | | [llc](https://llvm.liuxfe.com/docs/man/llc.html) | LLVM静态编译器 | | [lli](https://llvm.liuxfe.com/docs/man/lli.html) | LLVM字节码解释器 | | [llvm-link](https://llvm.liuxfe.com/docs/man/llvm-link.html) | LLVM字节码连接器 | | [llvm-lib](https://llvm.liuxfe.com/docs/man/llvm-lib.html) | LLVM的与lib.exe兼用的库工具 | | [llvm-lipo](https://llvm.liuxfe.com/docs/man/llvm-lipo.html) | 用于处理通用二进制文件的LLVM工具 | | [llvm-config](https://llvm.liuxfe.com/docs/man/llvm-config.html) | 打印LLVM编译选项 | | [llvm-cxxmap](https://llvm.liuxfe.com/docs/man/llvm-cxxmap.html) | Mangled name重映射工具 | | [llvm-diff](https://llvm.liuxfe.com/docs/man/llvm-diff.html) | LLVM 结构”diff” | | [llvm-cov](https://llvm.liuxfe.com/docs/man/llvm-cov.html) | 发出覆盖信息 | | [llvm-profdata](https://llvm.liuxfe.com/docs/man/llvm-profdata.html) | 配置数据工具 | | [llvm-stress](https://llvm.liuxfe.com/docs/man/llvm-stress.html) | 生成随机的.ll文件 | | [llvm-symbolizer](https://llvm.liuxfe.com/docs/man/llvm-symbolizer.html) | 将地址转换为源代码中的位置 | | [llvm-dwarfdump](https://llvm.liuxfe.com/docs/man/llvm-dwarfdump.html) | 转储并检验DWARF调试信息 | | [dsymutil](https://llvm.liuxfe.com/docs/man/dsymutil.html) | 操作存档文件中的DWARF调试符号文件 | | [llvm-mca](https://llvm.liuxfe.com/docs/man/llvm-mca.html) | LLVM机器码分析器 | | [llvm-readobj](https://llvm.liuxfe.com/docs/man/llvm-readobj.html) | LLVM目标文件分析器 | #### GNU bintils替代命令 | 命令 | 说明 | | :----------------------------------------------------------- | :--------------------------------- | | [llvm-addr2line](https://llvm.liuxfe.com/docs/man/llvm-addr2line.html) | addr2line的替代品 | | [llvm-ar](https://llvm.liuxfe.com/docs/man/llvm-ar.html) | LLVM归档器 | | [llvm-cxxfilt](https://llvm.liuxfe.com/docs/man/llvm-cxxfilt.html) | LLVM符合名称分析器 | | [llvm-nm](https://llvm.liuxfe.com/docs/man/llvm-nm.html) | 列出LLVM字节码和目标文件中的符号表 | | [llvm-objcopy](https://llvm.liuxfe.com/docs/man/llvm-objcopy.html) | 目标文件复制和编辑工具 | | [llvm-objdump](https://llvm.liuxfe.com/docs/man/llvm-objdump.html) | LLVM目标文件转储器 | | [llvm-ranlib](https://llvm.liuxfe.com/docs/man/llvm-ranlib.html) | 库存档索引生成工具 | | [llvm-readelf](https://llvm.liuxfe.com/docs/man/llvm-readelf.html) | GNU风格的LLVM对象读取器 | | [llvm-size](https://llvm.liuxfe.com/docs/man/llvm-size.html) | 打印目标文件尺寸信息 | | [llvm-strings](https://llvm.liuxfe.com/docs/man/llvm-strings.html) | 打印目标文件中的字符串 | | [llvm-strip](https://llvm.liuxfe.com/docs/man/llvm-strip.html) | 目标文件去除调试信息工具 | #### 调试工具 | 命令 | 说明 | | :----------------------------------------------------------- | :------------------- | | [bugpoint](https://llvm.liuxfe.com/docs/man/bugpoint.html) | 自动测试用例缩减工具 | | [llvm-extract](https://llvm.liuxfe.com/docs/man/llvm-extract.html) | 从LLVM模块中提取函数 | | [llvm-bcanalyzer](https://llvm.liuxfe.com/docs/man/llvm-bcanalyzer.html) | LLVM字节码分析器 | #### 开发工具 | 命令 | 说明 | | :----------------------------------------------------------- | :-------------------------- | | [FileCheck](https://llvm.liuxfe.com/docs/man/filechcke.html) | 灵活的模式匹配文件验证程序 | | [tblgen](https://llvm.liuxfe.com/docs/man/tblgen.html) | 目标描述到C++代码生成器 | | [lit](https://llvm.liuxfe.com/docs/man/lit.html) | LLVM集成测试仪 | | [llvm-build](https://llvm.liuxfe.com/docs/man/llvm-build.html) | LLVM项目构建实用程序 | | [llvm-exegesis](https://llvm.liuxfe.com/docs/man/llvm-exegesis.html) | LLVM机器指令基准 | | [llvm-pdbutil](https://llvm.liuxfe.com/docs/man/llvm-pdbutil.html) | PDB文件取证和诊断 | | [llvm-locstats](https://llvm.liuxfe.com/docs/man/llvm-locstats.html) | 计算DWARF调试位置的统计信息 | ### 开源项目 - [emscripten-core/emscripten](https://github.com/emscripten-core/emscripten): Emscripten:一个llvm到webassembly的编译器 - [tinygo-org/tinygo](https://github.com/tinygo-org/tinygo): 微控制器、WebAssembly (WASM/WASI)和命令行工具。基于LLVM。 - [numba/numba](https://github.com/numba/numba): 使用LLVM支持NumPy动态Python编译器 - [avast/retdec](https://github.com/avast/retdec): RetDec是一个基于LLVM的可重定向机器码反编译器。 - [lifting-bits/mcsema](https://github.com/lifting-bits/mcsema): 将x86、amd64、aarch64、sparc32和sparc64程序二进制代码提升到LLVM位码的框架 - [microsoft/DirectXShaderCompiler](https://github.com/microsoft/DirectXShaderCompiler): 这个repo托管了DirectX Shader编译器的源代码,它是基于LLVM/Clang的。 - [andreasfertig/cppinsights](https://github.com/andreasfertig/cppinsights): c++洞察力——用编译器的眼光看你的源代码 - [google/souper](https://github.com/google/souper): LLVM IR的超优化器 - [HikariObfuscator/Hikari](https://github.com/HikariObfuscator/Hikari): LLVM模糊处理 - [dotnet/llilc](https://github.com/dotnet/llilc):这个repo包含LLILC,一个基于LLVM的。net Core编译器。它包括一组跨平台的。net代码生成工具,可以将MSIL字节码编译成LLVM支持的平台。 - [banach-space/llvm-tutor](https://github.com/banach-space/llvm-tutor): 用于教学和学习的树外LLVM通行证的集合 - [numba/llvmlite](https://github.com/numba/llvmlite): 用于编写JIT编译器的轻量级LLVM python绑定 - [yrnkrn/zapcc](https://github.com/yrnkrn/zapcc): zapcc是一个基于clang的缓存c++编译器,旨在执行更快的编译 - [go-llvm/llgo](https://github.com/go-llvm/llgo): 基于llvm的编译器 - [eliben/llvm-clang-samples](https://github.com/eliben/llvm-clang-samples): unmaintenance:使用LLVM和Clang编译库和工具的例子 ### 文章 - [LLVM 入门篇](https://github.com/0voice/kernel_new_features/blob/main/llvm/%E6%96%87%E7%AB%A0/LLVM%20%E5%85%A5%E9%97%A8%E7%AF%87.md) - [LLVM :Clang入门](https://github.com/0voice/kernel_new_features/blob/main/llvm/%E6%96%87%E7%AB%A0/LLVM%20:Clang%E5%85%A5%E9%97%A8.md) - [LLVM编译器框架介绍](https://github.com/0voice/kernel_new_features/blob/main/llvm/%E6%96%87%E7%AB%A0/LLVM%E7%BC%96%E8%AF%91%E5%99%A8%E6%A1%86%E6%9E%B6%E4%BB%8B%E7%BB%8D.md) - [Llvm编译的基本概念和流程](https://github.com/0voice/kernel_new_features/blob/main/llvm/%E6%96%87%E7%AB%A0/llvm%E7%BC%96%E8%AF%91%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5%E5%92%8C%E6%B5%81%E7%A8%8B.md) - [后端技术的重用:LLVM不仅仅让你高效](https://github.com/0voice/kernel_new_features/blob/main/llvm/%E6%96%87%E7%AB%A0/%E5%90%8E%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E9%87%8D%E7%94%A8%EF%BC%9ALLVM%E4%B8%8D%E4%BB%85%E4%BB%85%E8%AE%A9%E4%BD%A0%E9%AB%98%E6%95%88.md) - [编译优化|LLVM代码生成技术详解及在数据库中的应用](https://github.com/0voice/kernel_new_features/blob/main/llvm/%E6%96%87%E7%AB%A0/%E7%BC%96%E8%AF%91%E4%BC%98%E5%8C%96%EF%BD%9CLLVM%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E6%8A%80%E6%9C%AF%E8%AF%A6%E8%A7%A3%E5%8F%8A%E5%9C%A8%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8.md) - [编译器及底层名词解释](https://github.com/0voice/kernel_new_features/blob/main/llvm/%E6%96%87%E7%AB%A0/%E7%BC%96%E8%AF%91%E5%99%A8%E5%8F%8A%E5%BA%95%E5%B1%82%E5%90%8D%E8%AF%8D%E8%A7%A3%E9%87%8A.md) ### 视频 - [How LLVM & Clang work](https://pan.baidu.com/s/1yTDS9Bn5CiFGhotKjNfcIw)---提取码: 225f - [2021 LLVM Dev Mtg “Otter- Tracing & Visualizing OpenMP Programs as DAGs Through LLVM's OMPT...”](https://pan.baidu.com/s/1lbO_764_sXgMf5mgwajdcw)---提取码: d2k2 - [2021 LLVM Dev Mtg “Navigating Exotic SIMD Lands with an LLVM Guide”](https://pan.baidu.com/s/1SAbepiyv0X6W7Qxf6qVxuA)---提取码: 5v6s - [2019 LLVM Developers’ Meeting- E. Christopher & J. Doerfert “Introduction to LLVM”](https://pan.baidu.com/s/1_g5P0r0Cku30w3m2LiJgWw)---提取码: 8u6e - [2019 LLVM Developers’ Meeting- S. Haastregt & A. Stulova “An overview of Clang ”](https://pan.baidu.com/s/1VOhM2SOeWnRoy24jaWw7dQ)---提取码: r6ct - [P. Goldsborough “clang-useful- Building useful tools with LLVM and clang for fun and profit](https://pan.baidu.com/s/1DkpEdZXeBISJMuExVtpZKg)---提取码: xemt ## 🔥 联系专栏 #### [Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈](https://ke.qq.com/course/4032547?flowToken=1041395) #### 关注微信公众号【后台服务架构师】——【联系我们】,免费获取更多FFmepg学习资料!