bk99.de entertain the web since 1997

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

Originalartikel lesen →