OpenBSD 7.7 unterstützt Intel E810 bis 100 GBit/s und Radeon RX 9070 GPUs

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