The eBPF Runtime in the Linux Kernel

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Gbadamosi, Bolaji, Leonardi, Luigi, Pulls, Tobias, Høiland-Jørgensen, Toke, Ferlin-Reiter, Simone, Sorce, Simo, Brunström, Anna
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866912056412733440
author Gbadamosi, Bolaji
Leonardi, Luigi
Pulls, Tobias
Høiland-Jørgensen, Toke
Ferlin-Reiter, Simone
Sorce, Simo
Brunström, Anna
author_facet Gbadamosi, Bolaji
Leonardi, Luigi
Pulls, Tobias
Høiland-Jørgensen, Toke
Ferlin-Reiter, Simone
Sorce, Simo
Brunström, Anna
contents Extended Berkeley Packet Filter (eBPF) is a runtime that enables users to load programs into the operating system (OS) kernel, like Linux or Windows, and execute them safely and efficiently at designated kernel hooks. Each program passes through a verifier that reasons about the safety guarantees for execution. Hosting a safe virtual machine runtime within the kernel makes it dynamically programmable. Unlike the popular approach of bypassing or completely replacing the kernel, eBPF gives users the flexibility to modify the kernel on the fly, rapidly experiment and iterate, and deploy solutions to achieve their workload-specific needs, while working in concert with the kernel. In this paper, we present the first comprehensive description of the design and implementation of the eBPF runtime in the Linux kernel. We argue that eBPF today provides a mature and safe programming environment for the kernel. It has seen wide adoption since its inception and is increasingly being used not just to extend, but program entire components of the kernel, while preserving its runtime integrity. We outline the compelling advantages it offers for real-world production usage, and illustrate current use cases. Finally, we identify its key challenges, and discuss possible future directions.
format Preprint
id arxiv_https___arxiv_org_abs_2410_00026
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle The eBPF Runtime in the Linux Kernel
Gbadamosi, Bolaji
Leonardi, Luigi
Pulls, Tobias
Høiland-Jørgensen, Toke
Ferlin-Reiter, Simone
Sorce, Simo
Brunström, Anna
Operating Systems
Computational Engineering, Finance, and Science
Extended Berkeley Packet Filter (eBPF) is a runtime that enables users to load programs into the operating system (OS) kernel, like Linux or Windows, and execute them safely and efficiently at designated kernel hooks. Each program passes through a verifier that reasons about the safety guarantees for execution. Hosting a safe virtual machine runtime within the kernel makes it dynamically programmable. Unlike the popular approach of bypassing or completely replacing the kernel, eBPF gives users the flexibility to modify the kernel on the fly, rapidly experiment and iterate, and deploy solutions to achieve their workload-specific needs, while working in concert with the kernel. In this paper, we present the first comprehensive description of the design and implementation of the eBPF runtime in the Linux kernel. We argue that eBPF today provides a mature and safe programming environment for the kernel. It has seen wide adoption since its inception and is increasingly being used not just to extend, but program entire components of the kernel, while preserving its runtime integrity. We outline the compelling advantages it offers for real-world production usage, and illustrate current use cases. Finally, we identify its key challenges, and discuss possible future directions.
title The eBPF Runtime in the Linux Kernel
topic Operating Systems
Computational Engineering, Finance, and Science
url https://arxiv.org/abs/2410.00026