Theo de Raadt veröffentlicht OpenBSD 7.7 und markiert damit die 58. Version des auf Sicherheit ausgerichteten Open-Source-Betriebssystems. OpenBSD ist bekannt für seine minimale, überprüfbare Codebasis und sein kompromisslos sicherheitsorientiertes Design. Die Neuerungen betreffen daher vor allem den Sicherheits- und den Netzwerkbereich. Anzeige Der Direct Rendering Manager (drm) in OpenBSD 7.7. ist nun auf dem Stand von Linux 6.12.21. Die Unterstützung für AMD-GPUs und -APUs (amdgpu(4)) wurde um Kernel-Support für Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) sowie die neue Radeon RX 9070 (Navi 48) erweitert. Bei den integrierten Intel GPUs (inteldrm(4)) unterstützt OpenBSD 7.7 nun auch die Core-Ultra-Serie-2-Prozessoren der Intel Arrow Lake-Mikroarchitektur. OpenBSD und Nvidia sind nie Freunde geworden, daher unterstützt auch OpenBSD 7.7 die proprietären Treiber von Nvidia nicht. Das gilt leider auch für die freien Nouveau-Treiber, so dass Nvidia-GPUs nur über generische Treiber (vesa/wsfb) mit massiven Leistungseinbußen laufen. Viele Fixes für ARM und x86, aber auch andere Architekturen Die ARM64-Plattform (arm64) erhielt bei OpenBSD 7.7 Verbesserungen für die SMC-Initialisierung auf Apple M1 MacBooks. Armv9-CPUs unterstützen als Sicherheitsfunktion unter anderem "Pointer Authentication Code" (PAC). Mit PAC sollen ROP-Attacken verhindert werden. ROP (Return-Oriented Programming) ist eine Angriffstechnik, bei der ein Angreifer bestehende kurze Codeabschnitte im Speicher eines Programms, sogenannte Gadgets, geschickt aneinanderreiht, um ohne eigenen Code beliebige Befehle auszuführen. OpenBSD 7.7 unterstützt den aktuellen QARMA3-Algorithmus (Qualcomm ARM Authenticator) für PAC sowie die Scalable Vector Extension (SVE) auf Armv9-Prozessoren. Der OpenBSD 7.7-Kernel für 64bittige x86-CPUs (amd64) kann nun auch unter QEMU mit AMD Secure Encrypted Virtualization (SEV) booten. Die i386-Plattform wurde weiter speicheroptimiert und soll so besser auf Multiprozessorsystemen laufen. Mit i386 sind übrigens keine Intel 80386 gemeint und leider auch nicht die vielen Embedded 80486, sondern System ab dem Pentium-Prozessor - es müsste eigentlich i586 oder i686 (Pentium Pro) heißen. Auch die Plattformen RISC-V, SPARC64, HPPA, PowerPC64 und selbst Luna88k erhielten unter OpenBSD 7.7 ein paar winzige Verbesserungen. Feinschliff am Kernel und mehr SMP beim Netzwerk-Stack Bei den vielen kleinen Änderungen im Kernel stechen vor allem diverse Verbesserungen für Suspend und Hibernate hervor. Den Netzwerkstack Multiprozessor-fest zu machen, schreitet ebenfalls voran. Fast alle Teile des TCP-Stacks laufen nun problemlos auch parallel nebeneinander. Einzig die TCP-Input-Seite verwendet bei OpenBSD 7.7 noch exklusive NetLocks. Für moderate Anwendungsfälle mochte die mangelnde SMP-Fähigkeit lange Zeit ausreichen – eine DualCore-Maschine für flüssiges Multitasking reichte für viele Router/Firewall-Appliances vollkommen aus. Anzeige Betrachtet man jedoch Netzwerkkarten wie die jetzt auch unterstützte Intel E810-Baureihe (ice(4), 1/10/25/50/100GBit/s), so wird klar, dass der Datenfluss sauber auf mehrere CPU-Kerne aufgeteilt werden muss. Ein Zeichen dafür dürfte beispielsweise auch die Vergrößerung der Empfangspuffer für das VirtIO network device (vio(4)) für OpenBSD 7.7-Instanzen unter einem Hypervisor sein. Leider nur wenig Neues gibt es bei den WiFi-Karten, außer der Unterstützung für QCA2066 in dem Qualcomm Technologies QCNFA765 802.11ax-Treiber (qwx(4)). Optimierte Admin-Werkzeuge Da OpenBSD-Entwickler geradezu allergisch auf fette Frameworks und aufgeblähte Software zu reagieren scheinen, sind die Verwaltungswerkzeuge für administrative Aufgaben entsprechend schlicht gehalten und einfach zu handhaben. Da aber auch OpenBSD-Nutzer nichts gegen Arbeitserleichterung haben, werden die entsprechenden Werkzeuge regelmäßig verfeinert und in der Handhabung angeglichen. Wichtige Systemparameter werden über sysctl(8) ausgelesen und wenn möglich gesetzt. Ein "sysctl net.inet.ip.forwarding=1" beispielsweise schaltet das IP-Forwarding auf einem Router oder einer Firewall für die aktuelle Sitzung ein (ohne "=1" zeigt sysctl den Status). In die /etc/sysctl.conf eingetragen (ohne führendes "sysctl") werden diese Werte bei jedem Systemstart automatisch aktiv. In OpenBSD 7.7 ist es nun möglich, sysctl(8) über den Parameter "-f " gleich eine ganze Liste dieser Systemparameter in einem Rutsch zu übergeben. Mit sysupgrade(8) wird OpenBSD auf das jeweils nächste Release oder einen neuen Snapshot aktualisiert. Das Verhalten von sysupgrade(8) wurde etwas klarer definiert, hinzu kommt die Möglichkeit, statt nur auf die nächste auch auf eine explizit angegebene Version zu aktualisieren ("-R 7.7") – laut Entwickler ist das Überspringen von Versionen oder gar ein Downgrading unter Umständen riskant. Für offline-Systeme kann sysupgrade(8) nun auch Upgrade-Dateien nutzen, die lokal gespeichert sind, außerdem arbeitet es näher mit dem Werkzeug für Firmware-Downloads fw_update(8) zusammen. Welche Firmware heruntergeladen werden muss, erkannte fw_update(8) bislang anhand des aktuellen lokalen System Message Buffers (/var/run/dmesg.boot). Um auch OpenBSD-Installationen ohne Zugang zum Internet aktualisieren zu können oder für Tests, kann fw_update(8) jetzt auch eine beliebige dmesg-Datei übergeben werden. Schwerpunkt Netzwerk auf dem neuesten Stand Der Schwerpunktbereich Netzwerk erhält bei neuen OpenBSD-Versionen immer besonders viele, teilweise sehr kleine Neuerungen und Verbesserungen. Bei OpenBSD 7.7 wurde der Border Gateway Protocol (BGP) routing daemon (bgpd(8)) unter anderem um die Spezifikationen für RFC 8538 (Notification Message Support for BGP Graceful Restart) und für RFC 8654 (Extended Message Support for BGP) erweitert. Auch der RPKI-Validator zur Unterstützung des BGP-Routings (rpki-client(8)) erhielt viele Anpassungen. Das OpenBSD-Projekt LibreSSL wird nun als Version 4.1.0 ausgeliefert, OpenSSH hat 10.0 erreicht. Kostenlos und ab sofort verfügbar OpenBSD steht unter der freien MIT-Lizenz und ist als Open-Source-Software frei und im Quelltext verfügbar. OpenBSD 7.7 beinhaltet Xenocara basierend auf Xorg 7.7. Darauf laufen verschiedene Window-Manager und Desktop-Umgebungen wie cwm, dwm, MATE, Xfce 4.20, GNOME 47 und KDE Frameworks 6.12.0 mit KDE Plasma 6.3.3. Für den Desktop gibt es Chromium 135 oder Mozilla Firefox 137/ESR 128.9 und LibreOffice 25.2.1.2, dazu je nach Geschmack einen Emacs 30.1 oder Vim 9.1.1265/Neovim 0.10.4. Als Compiler sind LLVM/Clang 13.0.0, 16.0.6, 18.1.8 und 19.1.7 sowie GCC 8.4.0 and 11.2.0 installierbar. Auf ARM64- und der AMD64-Maschinen lassen sich rund 12.500 Pakete installieren, bei anderen Plattformen sind es teilweise deutlich weniger, weil sich jede OpenBSD-Version nativ auf jeder Plattform übersetzen lassen soll ("eat your own dogfood"). Freie Installationsimages und -anleitungen für vierzehn Hardwareplattformen stehen auf der Projektseite zum Download bereit. Dort findet man auch die Release-Informationen zu OpenBSD 7.7 mit einer detaillierten Übersicht aller Änderungen. (axk)