1. OpenBSD 8.0: RTR-Cache-Server, Multi-CPU-Gäste und ein CoW-Dateisystem in Sicht
  2. OpenBSD und die Suche nach einem zukunftsfähigen Dateisystem
Auf einer Seite lesen

OpenBSD 8.0 ist da: Das weltweite verteilte Team von erfahrenen BSD-Entwicklern rund um Theo de Raadt hat die 61. Version seines kompromisslos auf Sicherheit ausgelegten Open-Source-Betriebssystems veröffentlicht. OpenBSD erscheint grundsätzlich halbjährlich und zählt die Versionsnummern bis x.9 hoch, Version 8.0 ist also kein spezielles Major-Release, sondern folgt dem normalen Releasezyklus.

Beim ersten Blick auf das Changelog fällt langjährigen OpenBSD-Nutzern sofort der Umfang auf, der sich im Vergleich zu Version 7.9 gespürt verdoppelt hat. Das könnte vor allem auf die vielen – oft auch irrelevanten – Bugs zurückzuführen sein, die mit Hilfe von KIs gefunden wurden. Die obligatorischen Kunstwerke zum Release – diesmal der Song „The Simps on AI“ und eine KI-Animation von „yvaneht nioj“ (rückwärts lesen) und „clanker“ (nomen est omen) mit den üblichen KI-Ungereimtheiten. Das Changelog verlinkt auf den Song samt Lyrics und einem weiteren Bild.

Neues bei RISC-V, sparc64 und luna88k

Der virtuelle Adressraum des Kernels für amd64 wurde um den Faktor 128 von 4 GiB auf 512 GiB vergrößert. Zusätzlich verspricht die nun zufällige Platzierung der Direct Map in pmap(9) mehr Sicherheit. Zugriffe auf verschlüsselte Swap-Partition werden sowohl für amd64 als auch für arm64 durch AES-Befehle der jeweiligen CPUs beschleunigt. Maschinen mit arm64 können jetzt via Hibernate in den Ruhezustand versetzt und wieder aufgeweckt werden.

Bei riscv64 erkennt der OpenBSD 8.0-Kernel, welche Zusatzfunktionen die CPU unterstützt und welche davon Anwenderprogramme tatsächlich nutzen können. Dazu gehört beispielsweise die Vector Extension „V“ einiger RISC-V-CPUs, bei der einzelne CPU-Instruktionen Berechnungen mit mehreren Datenwerten durchführen können. Das dürfte für wissenschaftliche Berechnungen, Bild- und Signalverarbeitung sowie mathematische Bibliotheken interessant sein. Bessere Hardware-Kompatibilität bei riscv64 versprechen „Bounce Buffers“, also temporäre Speicherbereiche für die Datenübertragung zwischen Geräten und dem eigentlichen Arbeitsspeicher. Moderne RISC-V-Systeme können Interrupts strukturiert und effizient über die Advanced Interrupt Architecture (AIA) verwalten. OpenBSD 8.0 unterstützt dies über die imsic(4)- und aplic(4)-Treiber.

Die sparc64-Architektur ist auf die LLVM-Toolchain gewechselt, dazu gibt es Speicheroptimierungen für SPARC-V9-Architektur. Da die chinesische MIPS-basierte Loongson-Plattform (chinesisch: „Dragon Core“) sich nicht mit Clang 22 übersetzen lässt, wird OpenBSD den Port aufgeben. Der hppa-Port (Hewlett-Packard Precision Architecture HP/PA) erhielt einige Bugfixes. OpenBSD/luna88k für Computer der japanischen Firma Oki Electric Industry, die auf der Motorola 88000-Prozessorfamilie (m88k) basieren, erhielt gleich mehrere Verbesserungen für ihre CMMU (Cache and Memory Management Unit).

Die Hardware-Unterstützung wurde für zahlreiche Plattformen ausgebaut, aber auch bestehende Treiber wurden verbessert. So funktionieren unter anderem der Touchscreen des Samsung Galaxy Book4 Edge und die Multitouch-Funktion des HONOR MagicBook zuverlässiger. Für die RISC-V-SoCs SpacemiT K1 und K3 kamen zusätzliche PCIe-, USB-, Ethernet-, Takt- und Interrupt-Funktionen hinzu. Es werden weitere Qualcomm- und Rockchip-Chips unterstützt sowie neue Treiber für Samsung-BIOS-Funktionen, Laptop-Akkus und Rockchip-OTP-Speicher ergänzt. Auf Apple-Systemen wurde die IOMMU-Unterstützung für USB-Controller verbessert. Zusätzliche Gerätekennungen erweitern die Hardware-Kompatibilität bei Geräten mit AMD-CPUs. Darüber hinaus wurden Fehler bei der Interrupt-Behandlung, bei Pufferüberläufen und bei DMA behoben sowie Speicherlecks und Probleme beim Wiederaufbau von SoftRAIDs korrigiert.

Mehr Intel Netzwerk-Treiber und besserer Paketfilter pf(4)

Neu in OpenBSD 8.0 ist die Unterstützung für Intels Panther-Lake- und Wildcat-Lake-Ethernet-Chips via em(4) sowie für Intel-E610-Ethernet-Chips über ix(4). Deutliche Fortschritte gab es erneut im WLAN-Bereich, wobei der Schwerpunkt auf den Qualcomm-Chips für den qwx(4)-Treiber (802.11a/ac/ax/b/g/n) und den qwz(4)-Treiber für WiFi 7 liegt.

Bei OpenBSD 8.0 haben die Entwickler die Zuverlässigkeit und Sicherheit der integrierten Firewall pf(4) (Packet Filter) in Bezug auf Speicherzugriffsfehler und die Absicherung der Kernel-Schnittstellen verbessert. Behoben wurden unter anderem eine Null-Pointer-Dereferenzierung im Outbound-Paketpfad sowie ein Out-of-Bounds-Read in der Funktion pf_rule_copyin(). Die ioctl-Schnittstellen von pf akzeptieren zudem keine nicht-terminierten Zeichenketten mehr, wodurch potenzielle Angriffsflächen reduziert werden. Race Conditions bei den Verbindungszählern, die zu Unterläufen (Counter Underflows) führen konnten, sind beseitigt. Präparierte TCP-Reset-Pakete können keine gültigen Verbindungszustände mehr löschen.

Der native OpenBSD-Webserver httpd(8) erhielt etliche Neuerungen. So können nun direkt benutzerdefinierte HTTP-Header gesetzt werden – ein Feature, für das bislang häufig ein vorgelagerter Proxy wie relayd(8) oder nginx erforderlich war. Darüber hinaus wurde der Default-TLS-Cipher-Set in httpd.conf(5) von compat auf secure umgestellt, wodurch sehr alte Clients gegebenenfalls keine Verbindung mehr aufbauen können. Auch die Request-Validierung wurde gestärkt: httpd(8) weist CL.TE-Request-Framing gemäß RFC 9112 zurück und lehnt obs-fold mit HTTP 400 ab. Hinzu kommen diverse Stabilitäts- und Sicherheitsfixes, darunter die Verbreiterung der Server-Flags auf 64-Bit-Integer, die Durchsetzung von max request body bei Chunked-Requests an FastCGI, die Ablehnung gemeinsam genutzter TLS-Listener mit unterschiedlicher Client-CA/CRL sowie die Bereinigung doppelt gesendeter FastCGI-Parameter und abgeschnittener Fehlermeldungen.

rtrd(8): Neuer RTR-Cache-Server für RPKI-Daten

Neu in OpenBSD 8.0 ist der Daemon rtrd(8) für das RPKI-to-Router-Protokoll (RTR). Er fungiert als Cache-Server zwischen dem RPKI-Validator rpki-client(8) und BGP-Routern wie bgpd(8). Damit muss nicht mehr jeder BGP-Router die validierten RPKI-Daten (Resource Public Key Infrastructure) separat beziehen und verarbeiten, sondern eine oder mehrere zentrale rtrd(8)-Instanzen können den von rpki-client(8) erzeugten Datenbestand zentral und konsistent verteilen. Kontrolliert wird rtrd(8) – wie bei OpenBSD üblich – über das Kommandozeilen-Werkzeug rtrctl(8). Mit diesem lassen sich RPKI-Payloads aus einer Datei mit bgpd(8)-Syntax importieren, ein individueller Socket für die Kommunikation definieren oder Statistiken im OpenMetrics-Format ausgeben. Der Daemon unterstützt die RTR-Protokollversionen 0, 1 und 2 (letztere als Internet-Draft).

vmd(8)/vmm(4) unterstützen Multi-CPU-Gäste

Mike Larkin hat die native OpenBSD-Virtualisierung um Multi-CPU-Unterstützung erweitert: vmm(4) und der Verwaltungs-Daemon vmd(8) können künftig virtuelle Maschinen mit mehreren Prozessoren betreiben. Während ein Gast bislang im Wesentlichen auf eine virtuelle CPU beschränkt war, lassen sich in OpenBSD 8.0 nun bis zu 64 vCPUs pro VM zuweisen. Dafür wurden unter anderem die Initialisierung zusätzlicher Prozessoren über die lokale APIC und Inter-Processor Interrupts (IPI) implementiert. Die erforderlichen Einstellungen stehen auch in vmctl(8) und vm.conf(5) zur Verfügung.

SMP-fähige Gastbetriebssysteme profitieren von der parallelen Ausführung auf mehreren vCPUs. Die Umsetzung umfasst nicht nur die vCPU-Zuweisung, sondern auch die notwendigen Start- und Synchronisationsmechanismen im Gast. Die Implementierung wurde mit verschiedenen Gastsystemen getestet und erweitert den Einsatzbereich von vmm/vmd: Aus einer schlanken Virtualisierungslösung für einfache Einzel-CPU-Gäste – vor allem in Form von Diensten – wird zunehmend eine Plattform für anspruchsvollere virtuelle Maschinen.

Zusätzlich wurden fehlende LAPIC/IOAPIC-Modi ergänzt, um insbesondere 32-Bit-GNU/Linux-Gäste zu unterstützen. virtio-Geräte können MSI/MSI-X-Interrupts nutzen. Der Zugriff auf das von QEMU stammende QCOW-Format (QEMU Copy On Write) wurde verbessert.

Aktuelle GPU-Unterstützung und komfortabler Sound

Grafikkarten werden unter OpenBSD 8.0 nun über angepasste DRM-Treiber auf Basis von Linux 6.18.53 unterstützt. Der Intel-DRM-Treiber inteldrm(4) kann mit GPUs der Intel Arc A-Serie (DG2/Alchemist) umgehen; zudem wurde ein GuC-Timeout-Problem auf einigen Alder-Lake-Systemen umgangen. Durch den auf 512 GB erweiterten Kernel-Adressraum können amd64-Systeme unter OpenBSD 8.0 jetzt auch mehr als 4 GB VRAM nutzen.

Unter OpenBSD läuft die Audio- und MIDI-Verarbeitung über das Framework sndio(7), das für seine geringen Latenzen bekannt ist. Gesteuert wird sndio(7) – wie bei OpenBSD üblich – über sndioctl(1), das in OpenBSD 8.0 mehrere Verbesserungen und Erweiterungen erhielt: So lassen sich jetzt midithru-Ports steuern, Listenelemente hinzufügen oder entfernen und die sndiod(8) server.mode-Einstellung dynamisch ändern.

Source: Heise · Michael Plura

At a glance

Topic
Technology
Country
🇩🇪 DE
Publisher language
DE
Added to Allnira