io_uring und eBPF verändern Linux-Programme
Zusammenfassung
Pekka Enberg und Glauber Costa erklären, wie io_uring sowie eBPF Systemaufrufe reduzieren und sichere Programme näher am Kernel ausführen.
Ideen
- io_uring tauscht Einreichungen und Ergebnisse über gemeinsame Ringpuffer aus.
- Gebündelte Operationen verringern Wechsel zwischen Userspace und Kernel.
- eBPF lädt überprüfte Programme an ausgewählte Kernel-Hooks.
- Maps übertragen Zustände zwischen BPF-Programmen und Anwendungen.
Einsichten
- Programmierbare Kernelpfade verschieben die Grenze zwischen Betriebssystem und Anwendung.
- Gemeinsamer Speicher steigert Leistung und verlangt sorgfältige Lebenszyklusregeln.
- Ein Verifier ersetzt nicht jede Laufzeit- und Berechtigungsprüfung.
Fakten
- io_uring erschien erstmals in Linux 5.1.
- eBPF entwickelte sich aus dem Berkeley Packet Filter.
- Beide Schnittstellen werden über normale Linux-Systemaufrufe gesteuert.
Empfehlungen
- Begrenze eBPF-Rechte auf benötigte Administratorrollen.
- Miss Warteschlangentiefe und Latenz statt nur maximalen Durchsatz.
Referenzen
Der Link zur Originalquelle öffnet einen neuen Tab.