mirror of
https://github.com/0voice/kernel_new_features.git
synced 2026-02-03 02:23:50 +08:00
27 KiB
27 KiB
🔰 深挖 Linux 内核的新功能特性,以 io_uring, cgroup, ebpf, llvm, kvm, ceph, fuse 为代表,包含开源项目,代码案例,文章,视频,架构脑图等
🔥 io_uring
文档
- 官方文档: Efficient I/O with io_uring
- 其他文档:
- Improved Storage Performance Using the New Linux Kernel I.O Interface
- I/O-uring speed the RocksDB & TiKV
- The Evolution of File Descriptor Monitoring in Linux
- io_uring-BPF
- Enabling Financial-Grade Secure Infrastructure with Confidential Computing
- Boosting Compaction in B-Tree Based Key-Value Store by Exploiting Parallel Reads in Flash SSDs
- Programming Emerging Storage Interfaces
- I/O is faster than the OS
- StefanMetzmacher_sambaxp2021_multichannel_io-uring-rev0-presentation
- I/O Stack
- io_uring-徐浩-阿里云
开源项目
- axboe/liburing: io_uring 库,liburing为设置和拆掉 io_uring 实例,还有一个简化接口不需要(或不想)处理完整内核的应用程序边执行。
- shuveb/io_uring-by-example: 一个io_uring 示例的库
- bytedance/monoio: 基于io-uring的Rust异步运行时
- spacejam/rio: Rust io_uring库,构建在libc上,线程和异步友好,抗误用
- Iceber/iouring-go: 提供易于使用的异步IO接口io_uring
- frevib/io_uring-echo-server: io_uring echo server
- hodgesds/iouring-go: Io_uring支持go
- dshulyak/uring: 用于io_uring框架的Golang库(无CGO)
- quininer/ritsu: 一个实验性的基于io-uring的异步运行时。
- shuveb/loti-examples: 源代码示例程序,从主的io_uring指南
- xuanyi-fu/xynet: 基于io_uring和c++ 20协程的网络库
- KuiBaDB/kbio: 一个基于io_uring的异步IO框架
- shuveb/loti: io_uring教程,例子和参考
- MarkReedZ/mrloop: C语言使用io_uring的事件循环
- tchaloupka/during: dlang io_uring包装
- omegacoleman/arkio: 基于异步IO的内核IO库
- ciconia/awesome-io_uring: 一个很棒的io_uring资源、库和工具的分类集合。
- ddeka0/AsyncIO: 一个用于异步套接字服务器的CPP包装器,使用linux最新的io_uring API
- uroni/fuseuring: 使用io_uring实现一个用户空间Linux fuse服务器
- yunwei37/co-uring-WebServer: 一个使用io_uring和cpp20协同程序的c++高性能Web服务器
- romange/helio: 一个基于io_uring Linux接口的现代后端开发框架
- 3541/short-circuit: Linux高性能web服务器,基于io_uring构建。
- anolis-os-archive/perf-test-for-io_uring: 一个用于io_uring性能测试的框架。
- BlazeWasHere/Cnidus: 基于io_uring的C语言web框架。
- AnSpake/osiris: 一个简单的服务器/客户端,使用io_uring
文章
- io_uring 高效 IO
- [译] Linux 异步 I_O 框架 io_uring:基本原理、程序示例与性能压测(2020)
- 浅析开源项目之io_uring
- io_uring 系统性整理
- io_uring(1) – 我们为什么会需要 io_uring
- io_uring(2)- 从创建必要的文件描述符 fd 开始
- 下一代异步 IO io_uring 技术解密
- 小谈io_uring
- 智汇华云 | 新时代IO利器-io_uring
- Linux 5.1 的 io_uring
- What is io_uring?
- io_uring_setup
- io_uring_enter
- io_uring_register
- The Low-level io_uring Interface
- Submission Queue Polling
- Efficient IO with io_uring
视频(提取码:1024)
- Speeding Up VM’s I_O Sharing Host's io_uring Queues With Guests by Stefano Garzarella【2020】
- Asynchronous I_O and coroutines for smooth data streaming - Björn Fahller - NDC TechTown 2021
- Guilherme Bernal - Reaching 200k req_s on a single core with io_uring - Crystal 1.0 Conference
- Improved Storage Performance Using the New Linux Kernel I O Interface (SDC 2019)
- io_uring- BPF controlled I_O - Pavel Begunkov
- io_uring in QEMU- high-performance disk I_O for Linux
- Kernel Recipes 2019 - Faster IO through io_uring
- SDC2021- Samba Multi-Channel_io_uring Status Update
- Speeding Up VM’s I_O Sharing Host's io_uring Queues With Guests - Stefano Garzarella, Red Hat
- USENIX ATC '19 - Asynchronous I_O Stack_ A Low-latency Kernel I_O Stack for Ultra-Low Latency SSDs
- 来自阿里云的 Linux 内核 io_uring 介绍与实践
🔥 cgroup
文档
-
官方文档:
- Control Groups definition, implementation details, examples and API
- CPU Accounting Controller; account CPU usage for groups of tasks
- documents the cpusets feature; assign CPUs and Mem to a set of tasks
- Device Whitelist Controller; description, interface and security
- checkpointing; rationale to not use signals, interface
- Memory Resource Controller; implementation details
- Memory Resource Controller; design, accounting, interface, testing
- Resource Counter API
-
其他文档:
- cgroups介绍
- CgroupMemcgMaster
- Resource Management
- Challenges with the memory resource controller and its performance
- Ressource Management in Linux with Control Groups
- System Programming for Linux Containers Control Groups (cgroups)
- Managing Resources with cgroups
- 5 years of cgroup v2
- Linux’s new unified control group system
- cgroups_intro
- red_hat_enterprise_linux-6-resource_management_guide-en-us
- An introduction to Control Groups (cgroups)
- Using Linux Control Groups and Systemd to Manage CPU Time and Memory
- An introduction to cgroups and cgroupspy
开源项目
- containerd/cgroups: 用于创建、管理、检查和销毁cgroup。cgroup上设置的资源格式使用这里找到的OCI运行时规范。
- mhausenblas/cinf: 一个查看命名空间和cgroups的命令行工具
- flouthoc/vas-quod: 用Rust编写的一个极小的容器运行时
- poelzi/ulatencyd: 使用cgroups最小化linux系统延迟的守护进程
- haosdent/jcgroup: jcgroup是JVM上的cgroup包装器。您可以使用这个库来限制线程的CPU共享、磁盘I/O速度、网络带宽等。
- kinvolk/traceloop: 使用BPF和可重写的环形缓冲区跟踪cgroup中的系统调用
- tianon/cgroupfs-mount: 挂载cgroupfs (v1)层次结构的简单(过时)脚本,特别是用于Debian打包的结构化脚本
- francisbouvier/cgroups: 一个库来管理cgroups Linux内核特性
- bpowers/mstat: 这个工具运行在Linux上,利用cgroups内核API(也被Docker等容器基础设施使用)来记录一组进程随时间的内存使用情况。
文章
- Linux cgroups 概述
- 【译】Control Group v2(cgroupv2 权威指南)(KernelDoc, 2021)
- How I Used CGroups to Manage System Resources
- Cgroups控制cpu,内存,io示例
- Linux Control Groups V1 和 V2 原理和区别
- Linux资源管理之cgroups简介
- 彻底搞懂容器技术的基石: cgroup
- 深入理解 Linux Cgroup 系列(一):基本概念
- 深入理解 Linux Cgroup 系列(二):玩转 CPU
- 深入理解 Linux Cgroup 系列(三):内存
- Cgroup - 从CPU资源隔离说起
- Cgroup - Linux内存资源管理
- Cgroup - Linux的IO资源隔离
- Cgroup - Linux的网络资源隔离
- 用 cgroups 管理 cpu 资源
- 用 cgruops 管理进程内存占用
- 用 cgroups 管理进程磁盘 io
视频(提取码:1024)
- Containers_ cgroups, Linux kernel namespaces, ufs, Docker, and intro to Kubernetes pods
- Understanding and Working with the Cgroups Interface - Michael Anderson, The PTR Group, LLC
- Linux Container Primitives- cgroups, namespaces, and more!
- Cgroups, namespaces, and beyond
- Kubernetes On Cgroup v2 - Giuseppe Scrivano, Red Hat
- Cgroup Slab Memory Controller and Time Namespace - DevConf.CZ 2021
- Modern Linux Servers with cgroups - Brandon Philips, CoreOS
- LISA21 - 5 Years of Cgroup v2- The Future of Linux Resource Control
- Limit CPU usage on Ubuntu with Systemd cgroups
- What's new in control groups (cgroups) version 2
🔥 ebpf
文档
-
官方文档:
- 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: 列出了 eBPF opcode,项目是 iovisor 总结的系列文档、pre。
- Advanced_BPF_Kernel_Features_for_the_Container_Age_FOSDEM
- BPF to eBPF
- Calico-eBPF-Dataplane-CNCF-Webinar-Slides
- Combining System Visibility and Security Using eBPF
- DPDK+eBPF
- Experience and Lessons Learned
- Fast Packet Processing using eBPF and XDP
- Kernel Tracing With eBPF
- Kernel analysis using eBPF
- Making the Linux TCP stack more extensible with eBPF
- Performance Analysis Superpowers with Linux eBPF
- Performance Implications of Packet Filtering with Linux eBPF
- The Next Linux Superpower eBPF Primer
- eBPF - From a Programmer’s Perspective
- eBPF In-kernel Virtual Machine & Cloud Computin
- eBPF for perfomance analysis and networking
- eBPF in CPU Scheduler
- eBPF-based Content and Computation-aware Communication for Real-time Edge Computing
开源项目
- cilium/cilium: 用于提供、保护和观察容器工作负载之间的网络连接——云原生,并由革命性的内核技术eBPF提供支持,https://cilium.io/
- BPF Compiler Collection (BCC): BCC -基于bpf的Linux IO分析、联网、监控等工具
- bpftrace: Linux eBPF的高级跟踪语言
- Falco: 一种行为活动监视器,旨在检测应用程序中的异常活动。Falco在ebp的帮助下在Linux内核层对系统进行审计。它通过其他输入流(如容器运行时度量和Kubernetes度量)丰富了收集到的数据,并允许持续监视和检测容器、应用程序、主机和网络活动。
- Katran: 高性能的四层负载均衡器
- LLVM Compiler: 一个模块化和可重用的编译器和工具链技术的集合。
- microsoft/ebpf-for-windows: 运行在Windows上的eBPF实现
- aquasecurity/libbpfgo: 一个用于Linux ebbpf项目的Go库。
- aquasecurity/tracee: Linux的运行时安全和取证工具。
- libbpf/libbpf: libbpf是一个基于C/ c++的库,作为上游Linux内核的一部分进行维护。它包含一个eBPF加载器,它接管处理LLVM生成的eBPF ELF文件,以便将其加载到内核中。
- libbpf/libbpf-rs: Rust生态系统的最小和固执的epf工具
- foniod/redbpf: Rust库用于构建和运行BPF/eBPF模块
- aya-rs/aya: 一个用于Rust编程语言的eBPF库,其构建的重点是开发人员的体验和可操作性。
- cilium/hubble: 使用eBPF的Kubernetes网络、服务和安全可观测性
- kubearmor/KubeArmor: 一个云本地运行时安全强制系统,它在系统级别限制容器和节点的行为(如进程执行、文件访问和网络操作)。
- iovisor/kubectl-trace: 使用kubectl在kubernetes集群上调度bpftrace程序
- iovisor/ply: 一款基于eBPF的Linux动态跟踪软件。
文章
视频(提取码:1024)
🔥 llvm
文档
- 官方文档:
- 其他文档:
开源项目
文章
视频(提取码:1024)
🔥 kvm
文档
- 官方文档:
- 其他文档:
开源项目
文章
视频(提取码:1024)
🔥 ceph
文档
- 官方文档:
- 其他文档:
开源项目
文章
视频(提取码:1024)
🔥 fuse
文档
- 官方文档:
- 其他文档:


