FreeBSD 14.4 läuft deutlich besser in der Cloud und auf Notebooks

FreeBSD 14.4 vereinfacht mit WLAN-Firmware im Installer den Notebooks-Einsatz, lässt sich leichter in die Cloud integrieren und bereitet auf FreeBSD 15 vor.

vorlesen Druckansicht 6 Kommentare lesen
Schriftzug FreeBSD

(Bild: Profit_Image/Shutterstock.com)

Lesezeit: 9 Min.
Von
  • Michael Plura
Inhaltsverzeichnis
close notice

This article is also available in English. It was translated with technical assistance and editorially reviewed before publication.

Das kostenlose Betriebssystem FreeBSD 14.4 hat den Release-Prozess durchlaufen und ist nun verfügbar. Wie in einigen Versionen zuvor gibt es für BSD-Verhältnisse überdurchschnittlich viele Verbesserungen und Erweiterungen, was darauf hindeuten könnte, dass das Interesse an den klassischen unixoiden Systemen weiter wächst. Neben Bugfixes und neuen Treibern gibt es auch Anpassungen, die Benutzer von FreeBSD 14 auf den Wechsel zu dem in Teilen grundlegend modernisierten FreeBSD 15 vorbereiten.

Notebook-Besitzer wird es freuen, dass die Pakete mit der WLAN-Firmware nun den Weg in das bootonly.iso und das mini-memstick.img gefunden haben, denn nur so kann bei der Installation bereits WLAN genutzt werden. Der WLAN-Treiber für Geräte nach Intel IEEE 802.11a/b/g/n/ac/ax/be ist endlich ACPI-fest und unterstützt damit 802.11ax/be sowie Einstellungen für PPAG (Per Platform Antenna Gain). Das Startup-Skript rc.d/bluetooth für den Bluetooth-Stack versucht nun mehrfach, sich mit Bluetooth-Geräten zu verbinden.

Im bislang etwas vernachlässigten Bereich Audio legt FreeBSD 14.4 ebenfalls zu. Neu ist sndctl(8), um ähnlich wie das uralte mixer(8) die Eigenschaften von Audiogeräten zu steuern. Gleichzeitig ist mit dem alten und fehlerhaften MIDI-Sequenzer im Kernel Schluss. Moderne Anwendungen erledigen MIDI im Userland. Ein Fehler in der Implementation von swapon(8) wurde behoben, sodass jetzt per GELI verschlüsselte Auslagerungsdateien auch über den .eli-Suffix in der fstab(5) definiert werden können.

Das Programm nuageinit(8) dient zur Initialisierung von Instanzen in einer Cloud-Umgebung, besteht aus drei rc(8)-Skripten und wird beim ersten Start nach der Systeminstallation ausgefĂĽhrt. FreeBSD 14.4 erweitert es deutlich und unterstĂĽtzt jetzt fĂĽr das Bulk-Passwort-Management beispielsweise auch den chpasswd-Befehl inklusive aller veralteten Syntaxen.

Das Netgraph Control Utility ngctl(8) kann über das neue „-j“-Flag nun auch von außen in ein FreeBSD-Jail ohne eigenes ngctl(8) hineinreichen und dort Netgraph-Objekte (Nodes) verwalten. Beim Anlegen von Jails oder später per „jail -cm“ können FreeBSD-14.4-Jails beliebige „key=value “-Zeichenketten als Metadaten (meta=„...“ und env=„...“) übergeben werden. Das übergeordnete Jail kann beide Metadatenvariablen lesen, während das untergeordnete Jail nur env versteht.

Der EFI-Bootloader loader.efi wird nun auf alle ESPs (EFI System Partitions) eines Multivolume-ZFS-Datasets kopiert, sodass auch beim Ausfall des primären Laufwerks noch gebootet werden kann. Der nvme(4)-Treiber unterstützt BAR5 und ermöglicht es FreeBSD 14.4 damit, auch auf Google-Compute-Engine-4-Systemen zu laufen.

Die Treiber fĂĽr schnelle Intel-Netzwerkkarten ix(4) und ixv(4) unterstĂĽtzen jetzt die E610-Familie inklusive neuer PCI-IDs fĂĽr Backplanes, SFP, 10 GbE, 2.5 GbE und die SGMII-Varianten (Serial Media-Independent Interface).

Das Plan 9 Filesystem Protocol (Styx) ist ein Netzwerk-Protokoll, das von den Bell Labs vor über drei Jahrzehnten für das legendäre verteilte Betriebssystem Plan 9 entwickelt wurde. In FreeBSD 14.4 kann der native Hypervisor Bhyve nun das 9P-Dateisystem p9fs(4) nutzen, um virtuellen Maschinen den Zugriff auf Dateien des Hosts zu erlauben. Da p9fs(4) Dateizugriffe direkt über den virtio-p9-Treiber abwickelt, ist diese Methode nicht nur extrem schnell, sondern benötigt im Gegensatz zu NFS, Samba oder SSHFS auch keinen Netzwerkstack. In ferner Zukunft wird p9fs(4) vermutlich durch virtio-fs ersetzt.

Upgrades von FreeBSD 14 auf 15 funktionieren wegen der Vereinheitlichung der Basis- und Userland-Pakete manchmal nicht, da libc(7) von libsys(7) abhängt, beim Upgrade via freebsd-update(8) aber libc(7) zuerst installiert wird. Weitere Aufrufe unter anderem von gunzip(8) brechen dann zusammen mit dem Upgrade-Prozess mit einem Fehler ab. Ein Fix von Colin Percival behebt das Problem bei FreeBSD 14.4.

Mit FreeBSD 15 beginnt der Wechsel von den traditionellen Distribution Sets zum neuen „pkgbase“. Bislang war freebsd-update(8) für das Basissystem zuständig (Kernel, Kernel-Module, /usr/bin, /usr/sbin, /lib usw.), während pkg(8) sich um alles andere kümmerte (Tools, X11, Anwendungen). In FreeBSD 15 wird es beide Systeme geben, mit FreeBSD 16 nur noch „pkgbase“, bei dem alle Pakete per pkg(8) verwaltet werden.

Den Umstieg muss also jeder FreeBSD-Anwender in absehbarer Zeit vollziehen: Die letzte Version von FreeBSD 13 ist Version 13.5, die am 30. April in den End-of-Life-Status wechselt. FreeBSD 14.6 als letztes 14er-Release wird bis November 2028 unterstĂĽtzt, FreeBSD 15 dann bis Dezember 2029 (da greifen die 4 statt 5 Jahre Support-Zyklus). Von da an wird es kein freebsd-update(8) mehr geben.

OpenZFS wurde in FreeBSD 14.4 auf Version 2.2.9 aktualisiert. Das beinhaltet Verbesserungen beim ARC-Shrinking, bessert einige Fehler für „zpool add“-Sicherheitschecks aus und erlaubt „zvol blk-mq“-Synchronization.

Wer FreeBSD schon länger nutzt, kennt das lästige Problem, dass bereits seit FreeBSD 13 und dem Umstieg von ZFS auf OpenZFS neue Installationen auf MBR-partitionierte Laufwerke mit Auto-ZFS in der Regel zu nicht lauffähigen Systemen führen. Das Problem wurde gelöst, indem OpenZFS+MBR nicht mehr als Option angeboten wird.

Für FreeBSD-Neulinge ist es verwunderlich, dass beim ersten Aufruf des Tools „pkg“ für die Paketverwaltung ebendieses pkg(8) zuerst installiert wird. Das merkwürdig wirkende Verhalten ist Absicht, um Inkompatibilitäten zu vermeiden. Das Parsing der Parameter dieses einmalig startenden pkg(7) (ja, 7) wurde bei FreeBSD 14.4 an das Parsing von pkg(8) angeglichen („pkg bootstrap -f“ statt „pkg -f bootstrap“) und könnte bei eigenen Installationsskripten ohne Anpassung zu Fehlern führen.

Mit FreeBSD 14.4 gibt es bei newfs(8) zum Anlegen neuer UFS1/UFS2-Dateisystemen (Unix File System) die neue Option „-u“, um „Soft Updates“ zu deaktivieren. Zuvor mussten die hart eingeschalteten Soft Updates im Nachhinein wieder per tunefs(8) entfernt werden.

Soft Updates sind ein von Marshall Kirk McKusick und Gregory R. Ganger ausführlich beschriebener Mechanismus, um FFS und später UFS1/UFS2 sowohl zu beschleunigen als auch sicherer in Bezug auf die Datenkonsistenz der Metadaten zu machen. Um bei einem plötzlichen Stromausfall oder Systemabsturz trotzdem möglichst valide Metadaten auf den Datenträgern zu haben, wurden bei den klassischen BSDs ursprünglich synchrone Schreibzugriffe eingeführt – dabei wird jede winzige Änderung sofort auf die Festplatte geschrieben. Das Anlegen und Schreiben von Dateien (Inode allokieren, Verzeichniseintrag schreiben, Blockbitmap aktualisieren) war so wegen träger Festplatten-Mechanik extrem langsam.

Videos by heise

Soft Updates analysieren unter anderem die Abhängigkeiten der notwendigen Metadatenoperationen voneinander und schreiben diese dann optimiert (aber wiederum synchron) auf den Datenträger. Laut McKusick/Ganger führte das vor allem zu 30 bis 70 Prozent weniger Schreibzugriffen und damit zu einem spürbaren Performance-Boost (nicht vergessen: Ende der 90er hatten wir MFM/RLL hinter uns, nutzten IDE/PATA-Laufwerke, aber standen noch ein paar Jahre vor der Einführung von SATA [~2003]).

Im Laufe von FreeBSD 4.0 (1998), NetBSD 1.5 (2000) und OpenBSD 2.9 (2001) gab es erste Implementationen von Soft Updates. 2010 kam Journaling dazu (SU+J) und 2024 aktivierte FreeBSD bei newfs(8) per Default die Soft Updates. Das war zu einem Zeitpunkt, bei dem OpenBSD 7.4 (2023) den ganzen Soft-Update-Blob komplett entfernte, weil der Code viel zu komplex, schwer wartbar oder erweiterbar war und elend viele Abhängigkeiten mitbrachte. Das mag für manche Open-Source-Systeme kein Problem sein, bei OpenBSD ist es ein kategorisches „no go“.

NetBSD führte bei Version 5.0 als Alternative „Write Ahead Physical Block Logging“ (WAPBL‑Journaling) ein und warf Soft Updates bereits mit Version 6.0 (2012) aus dem System. Außerdem: Viele neue Funktionen konnten nicht implementiert werden, weil sie nicht mit Soft Updates zusammenpassten, und zusätzlich war der Geschwindigkeitsvorteil auf modernen SATA-Festplatten und vor allem -SSDs quasi irrelevant. Ohne Soft Updates bedeutet das bei den BSD-Dateisystemen FFS/UFS1/UFS2 bei einem Crash jedoch deutlich längere Boot-Zeiten wegen des nun notwendigen kompletten fsck(8)-Laufs. Für Datenbestände im Bereich etlicher TByte wäre das nicht mehr praxistauglich, aber da setzt man sowieso ZFS ein.

FreeBSD 14.4 ist als Open-Source-Software unter der freien BSD-Lizenz ab sofort kostenlos für die Architekturen amd64, i386, aarch64, armv7, powerpc, powerpc64 und riscv64 von der Projektseite herunterladbar. Alle Neuerungen beschreiben die Entwickler in den Release Notes. Kleiner Bonus: Die Images für SD-Karten wurden um den Device-Tree-Blob für den Raspberry Pi Zero 2W erweitert, sodass FreeBSD 14.4 nun auch auf diesem Winzling läuft.

(axk)