FreeBSD 15 ist da: Das vor allem für Server und Appliances geeignete BSD hat – für seine Verhältnisse – große Fortschritte gemacht. Vor allem dürfte das an der großen Unterstützung durch die Industrie liegen, die in FreeBSD offenbar einen wichtigen Teil der Diversifizierung bei Open-Source-Betriebssystemen sieht. Neben der überraschend großen Zuwendung durch die von der Bundesregierung finanzierten Sovereign Tech Agency sowie eine lange Liste von Sponsoren hat sich die Entwicklung von FreeBSD deutlich beschleunigt: Netflix, Amazon, Google, Microsoft, Samsung, Nvidia, Intel, Arm, OVHcloud, Klara und viele andere Unternehmen haben die nur durch Spenden finanzierten Entwickler kräftig unterstützt. Nach zwei Jahren Entwicklung ist dadurch ein FreeBSD 15 herausgekommen, das in wichtigen Bereichen spürbare Verbesserungen mitbringt.
FreeBSD 15: Lange Liste an Änderungen und Verbesserungen
Die Liste aller Änderungen in den Release-Notes ist überwältigend lang. Jede kleine Detailverbesserung ist wichtig, aber gerade aus Sicht von Anwendern und Administratoren sind einige Neuigkeiten klar spürbar und verändern die Handhabung von FreeBSD.
Bei den Architekturen fallen langsam auch die letzten 32-Bit-Systeme aus dem Fokus. Nur armv7 wird als letzte 32bittige Plattform unterstützt. Native 32-Bit-Anwendungen für i386, armv6 und powerpc laufen nur noch im 32-Bit-Kompatibilitätsmodus der jeweiligen 64-Bit-Plattformen. Seine Wurzeln als Weiterentwicklung von 386BSD in Form des ursprünglichen FreeBSD/i386 1.0 sind damit gekappt.
Unter FreeBSD 15 sind auch umfangreiche Desktop-Umgebungen wie KDE Plasma 6 (hier auf Xorg statt Wayland) schnell installiert.
Bei der Entwicklung von FreeBSD 15 wurde – auch speziell geleitet durch Sponsoren – ein besonderes Augenmerk auf mobile Geräte wie Laptops und Notebooks gelenkt. Ältere FreeBSD-Versionen liefen selbst auf ThinkPads nur mit einigem Gefummel und einigen Einschränkungen. Mit FreeBSD 15 und den deutlichen Fortschritten beim Powermanagement (vor allem AMD-CPUs), Grafiktreibern und im Bereich WLAN-Treiber ist das am weitesten verbreitete BSD nicht nur leicht zu installieren, sondern wirkt auch flinker und geht sorgsamer mit dem Akku um. Bestes Beispiel: Der oft verwendete iwlwifi(4)-Treiber für Intel IEEE 802.11a/b/g/n/ac/ax/be-Karten unterstützt einige WiFi5- und alle WiFi6/7-Chips.
Da die Implementation neuer WLAN-Standards und die Entwicklung von Intel-, Realtek- und Mediatek-WLAN-Chips weiter voranschreitet, wurde die Kernel-API noch nicht als „stabil“ klassifiziert. Auch das „Ausleihen“ von Linux-Treibern via LinuxKPI wurde verbessert, bei suspend-and-resume fehlen noch wenige Anpassungen. Die von Linux portierten Grafikkartentreiber sind auf dem Stand von Linux 6.12. Der Direct Rendering Manager drm-kmod für Intel- und AMD-GPUs läuft mit manchen GPUs deutlich schneller. Aber es wird auch ausgemistet: Der Bustreiber für AGP-Grafikkarten agp(4) soll mit FreeBSD 16 entfernt werden. Auch fdisk(8) soll in Zukunft zugunsten von gpart(8) entfernt werden; ebenso wie syscons(4), der klassische Konsolentreiber, weil UEFI nicht mit ihm zusammenarbeiten will. Das von Linux bekannte inotify(2)-Interface zum Überwachen von Events im Dateisystem gibt es nun auch nativ unter FreeBSD 15, was das Portieren von systemnahen Werkzeugen vereinfachen dürfte.
Fit für die Cloud und besser im Netzwerk
Die Integration von FreeBSD in Clouds wird von dessen Betreibern durch Sponsoring mächtig vorangetrieben. FreeBSD unterstützt cloudinit und ist kompatibel mit OpenStack. Wichtig sind vor allem die nun OCI-kompatiblen Container Images. Damit ist FreeBSD 15 fit für die Clouds von Amazon, Microsoft, Google, Oracle und anderen Anbietern.
FreeBSD-Entwickler Colin Percival teilte vor einiger Zeit auf X mit, dass dank eines moderneren Sortieralgorithmus der FreeBSD-Kernel deutlich schneller startet. Statt seine SysInits per Bubblesort in die richtige Reihenfolge zu bringen, soll das jetzt verwendete Mergesort bis zu 100x schneller sein. MicroVMs auf den Amazon Web Services (AWS FaaS Lambda mit Firecracker-Hypervisor) sollen mit dem alten FreeBSD 14 in 25ms starten, ein Linux-Kernel hingegen benötigt 75 bis 80ms. Die Optimierung betrifft die AMD64-, aber auch die ARM64-Architektur, die Amazon in der Cloud häufig einsetzt.
Trotz Grafik bei der Installation auf einem UEFI-System läuft bsdinstall(8) anschließend im ressourcensparenden Textmodus.
Das von vielen Administratoren bevorzugte MIT Kerberos ersetzt bei FreeBSD 15 das zuvor eingesetzte Heimdal Kerberos. Es gibt auch einige Verbesserungen für NFS, beispielsweise eine neue Unterstützung für den NFSv4.2-Klonvorgang, bei dem Blockkloning für eine Art CoW (copy-on-write) von Dateien auf einem NFS-Server verwendet wird. Dies funktioniert derzeit nur für exportierte ZFS-Dateisysteme, für die Blockkloning aktiviert ist.
Paketfilter pf(4) nähert sich weiter OpenBSDs pf(4) an
Der Paketfilter pf(4) in FreeBSD 15 unterstützt nun auch die NAT-Syntax seines Pendants in OpenBSD. Seit 2004 nutzt FreeBSD neben IPFW auch den von OpenBSD portierten Paketfilter pf(4), was unter anderem den Anstoß zur Entwicklung von pfSense gab. Aufgrund unterschiedlicher Ziele – FreeBSD fokussiert auf Performance, OpenBSD auf Sicherheit und neue Funktionen – drifteten die ursprünglich identischen pf(4)-Implementierungen zunehmend auseinander, zumal FreeBSD größere Syntaxänderungen wie jene von OpenBSD 4.7 nicht übernahm. Seit etwa 2013 sind beide Varianten nicht mehr kompatibel; Unterschiede zeigen sich etwa bei Speicherallokation oder der Interpretation von IP-Werten. Beide Projekte erkennen jedoch, dass eine engere Zusammenarbeit mehr Sicherheit für FreeBSD und mehr Performance für OpenBSD bringen könnte.
Das hat offenbar auch die Industrie erkannt: Netgate und InnoGames finanzierten gemeinsam den langjährigen FreeBSD-Entwickler Kristof Provost, damit dieser die veraltete FreeBSD-Variante von pf(4) an den aktuellen Stand von OpenBSD anpasst. Natürlich will Netgate so die zentrale Funktion von pfSense, der hauseigenen Firewall-Distribution auf Basis von FreeBSD, moderner und sicherer machen.
Paketverwaltung mal zwei: pkgbase vs freebsd-update
FreeBSD 15 organisiert die Paketverwaltung neu. Das bringt – objektiv betrachtet – einige Vorteile mit sich, sorgt aber – subjektiv empfunden – für unter Umständen katastrophale Probleme. Um es kurz zu machen: Bislang gibt es freebsd-update(8), das für das Basissystem (Kernel, Kernel-Module, /usr/bin, /usr/sbin, /lib usw.) zuständig ist. Ein Update oder Upgrade auf eine neue Version läuft über ein freebsd-update fetch und freebsd-update install.
Das neue pkgbase, bei dem auch das Basissystem über pkg(8) verwaltet wird, kann als Tech Preview unter FreeBSD 15 installiert werden.
Alles, was nach der Installation an Paketen hinzugefügt wurde, muss mit der Paketverwaltung pkg(8) organisiert werden. Dazu zählen alle zusätzlichen Werkzeuge wie tmux(1) oder emacs(1), aber auch Compiler-Suites, Xorg(1), Grafiktreiber, ganze Desktop-Umgebungen oder Anwendungen wie Browser, Office-Pakete oder KiCAD (man kann alle Pakete auch selbst mit eigenen Anpassungen und Optimierungen aus den Quellen (ports) kompilieren). Das funktioniert im Prinzip wie bei anderen Paketverwaltungen:
pkg {search|install|delete} tmux pkg upgrade pkg infoMit upgrade aktualisiert man alle Pakete, info zeigt eine Liste aller per pkg(8) installierten Pakete an.
Ein (vielleicht nur vermeintlicher) Vorteil dabei ist, dass man die Liste, die pkg info ausgibt, einfach komplett via pkg delete -fay löschen kann, ohne dabei das Basissystem zu beeinflussen. Tools, Desktop-Umgebungen, Anwendungen … – alles (!) ist dann in einem Rutsch weg. Das Basissystem ist „sicher“ und man kann wie nach einer frischen Installation ein neues System einrichten.
Aber: freebsd-update(8) ist ein mehrere tausend Zeilen langes Skript mit unzähligen sha256-Aufrufen. Es läuft recht zäh und ist von der Bedienung her nicht überaus anwenderfreundlich – pkg(8) ist wesentlich moderner.
In FreeBSD 15 optional, in FreeBSD 16 Pflicht: pkgbase
Aus diesem Grund findet in FreeBSD 15 ein noch optionaler Umstieg auf pkgbase statt. Wie der Name andeutet, wird dabei auch das Basissystem in das pkg-Format übernommen. Bei FreeBSD 15 kann man während der Installation wählen, ob man das klassische System mit freebsd-update(8) (Distribution Sets) beibehalten oder bereits das neue pkgbase (Packages(Tech Preview)) ausprobieren will. Übrigens: Tech Preview hieß bis vor kurzem noch experimental. Mit FreeBSD 16 soll pkgbase das alte System komplett ersetzen.
Einer der großen Vorteile bei pkgbase dürfte sein, dass man nun beispielsweise die Manual Pages als Paket entfernen kann, und dass das gesamte System nun aus dem Quellcode via ports/Poudriere gebaut werden kann. Vorsicht ist dennoch angebracht, es wird vermutlich einige Probleme geben – beispielsweise sollte make installworld / installkernel durch make buildworld buildkernel update-packages ersetzt werden. Und vor allem sollte man keinesfalls pkgbase und freebsd-update(8) auf einem System parallel einsetzen, das endet garantiert in einer Katastrophe. Als alter FreeBSD-Admin muss man sich nun also etwas umgewöhnen, aber nach kurzer Zeit macht das neue pkgbase durchaus Spaß und erleichtert die Systemverwaltung. Eine ausführliche und lesenswerte Betrachtung von pkgbase samt vieler Kommentare findet sich auf dem FreeBSD-Blog von Vermaden.
Endlich macht FreeBSD auf Notebooks Spaß: Dank der riesigen Fortschritte im Bereich WLAN werden angesteckte USB-WLAN-Adapter (run0 und rtwn0) als auch der interne Intel WiFi-Adapter (iwlwifi0) erkannt.
Ab FreeBSD 15.0: Straffung des Release-Zyklus und kürzerer Support
Vor über einem Jahr kündigte Colin Percival, der Leiter des FreeBSD-Release-Engineering-Teams, zwei Änderungen im Release-Engineering-Prozess an: Erstens wird die Unterstützungsdauer des stable-Zweigs ab FreeBSD 15 von fünf auf vier Jahre nach der jeweiligen .0-Version verkürzt. Zweitens wird es einen fixen und streng gerasterten Veröffentlichungsplan geben, nach dem in jedem Quartal eine neue Minor-Version der jeweils unterstützten stable-Zweige erscheint. Mit der Verkürzung des Supports auf vier Jahre will Percival das Security-Team entlasten, weil es so nur noch zwei statt wie bisher drei FreeBSD-Hauptversionen im Auge behalten muss.
Eine bessere Kommunikation zwischen dem Release-Engineering-Team und den vielen FreeBSD-Entwicklern soll so auch zu nur noch etwa drei Beta-Versionen und einem Release Candidate führen – während in der Vergangenheit manchmal drei bis vier Betas und drei bis sechs Release Candidates nötig waren. Die häufigen und vorhersehbaren Veröffentlichungszeiten sollen den Entwicklern außerdem etwas Druck nehmen, ein Feature noch unbedingt zu implementieren, weil sie nun nur noch sechs Monate und nicht mehr als ein Jahr von dem nächsten Release entfernt sind.
Wichtig: Die Änderungen gelten ab FreeBSD 15, die Versionen 13 (aktuell 13.5) und 14 (aktuell 14.3) werden noch im 5-Jahres-Zyklus unterstützt: FreeBSD 13 also bis voraussichtlich dem 30. April 2026, FreeBSD 14 bis zum 30. November 2028.
Punktlandung: Alles läuft (lief) nach Plan
Die FreeBSD-Entwickler dokumentieren den Weg zu einem neuen Release immer minutiös. Kleine Abweichungen vom vorgegebenen Zeitplan sind bei der Software-Entwicklung natürlich normal, und auch dieses Mal gab es hier und da kleine Verzögerungen – vor allem bei den Beta-Versionen (FreeBSD 15.0-BETA*) im Oktober. Flexibilität ist jedoch wichtig, wie der im letzten Moment eingeschobene vierte Release Candidate (FreeBSD 15.0-RC4) zeigte: Für BSDs üblich ist der Fokus auf korrekte Dokumentation, und RC4 beseitigte einige Unstimmigkeiten in den Manual Pages. Das neue pkgbase benötigte noch eine "backup"-Signatur, dazu kamen notwendige Fehlerbehebungen bei cp(1) und inotify(2). Schließlich mussten noch ein paar Pakete für das DVD-Image umsortiert werden, damit die 4.7-GByte-Grenze nicht überschritten wird.
Der Build-Prozess für das FreeBSD 15.0-RELEASE begann jedoch pünktlich, und auf den Download-Servern des Projektes konnte man bereits ein paar Tage vor dem offiziellen Erscheinen die noch inoffiziellen Installations-Images finden. Dennoch gilt wie seit Jahrzehnten bei FreeBSD üblich: Es könnten Änderungen in letzter Minute einfließen, FreeBSD 15.0-RELEASE ist erst dann offiziell, wenn das GPG-signierte RELEASE-Announcement veröffentlicht wurde – was nun am Dienstag um 01:08 Uhr unserer Zeit geschehen ist.
Erleichterung für Notebooks: Installer mit Firmware
Wer FreeBSD schon lange einsetzt wird bei der ersten Installation mit großer Freude die Fähigkeit des Installers bsdinstall(8) bemerken, notwendige Firmware selbständig bereits während der Installation herunterzuladen. Das erleichtert die Installation auf Systemen mit diversen Host-Adaptern, speziellen Netzwerkkarten und vor allem auf Notebooks über WLAN enorm. Nötig ist dann die Auswahl des landesüblichen WLAN-Regulierungsstandards, in Europa ist das ETSI (European Telecommunications Standards Institute). ETSI2 und ETSI3 sind weiter eingeschränkte Standards für spezielle Hardware, FCC gilt für die USA. Die WLAN-Karte scannt anschließend nach erreichbaren WLAN-Netzwerken und erfragt die passende Passphrase – und schon kann FreeBSD 15 ohne Netzwerkkabel auf dem Notebook installiert werden.
Statt nach der Installation über pciconf(8) die Hardware zu suchen und passende Treiber von Hand zu installieren erledigt der neue FreeBSD 15-Installer das automatisch.
Um die Firmware-Pakete für das laufende System auch während der Installation zu erkennen und herunterzuladen, wird dazu das seit FreeBSD 14 vorhandene fwget(8) aufgerufen. Das Tool unterstützt PCI- und USB-Geräte. Unter einem als Live-System gestarteten FreeBSD 14/15 kann man mit fwget -nv eine Liste der benötigten Firmware-Pakete erhalten, ohne diese zu installieren.
Brandaktuelles Dateisystem: OpenZFS 2.4rc4
Seit FreeBSD 7.0 aus dem Jahr 2008 ist das leistungsstarke ZFS-Dateisystems voll integrierter Teil des Betriebssystems. Bis FreeBSD 12 basierte es auf der stabilen und sicheren Codebasis von Illumos. Mit FreeBSD 13 kam der Wechsel zu OpenZFS, das in der Entwicklung wesentlich aggressiver vorangetrieben wird – inklusive damit einhergehender Probleme wegen manchmal mit heißer Nadel gestrickter Funktionen. FreeBSD 15 implementiert nun sogar den Release Candidate 4 vom kommenden OpenZFS 2.4.0. Es gibt wieder viele neue Funktionen wie default quotas, uncached I/O und noch bessere Verschlüsselung. OpenZFS 2.4.0 soll kompatibel sein mit Linux 4.18 bis 6.17 und FreeBSD 13.3 bis 14.x (sowie hoffentlich FreeBSD 15.0).
Zero-Trust Builds und Reproducible Builds
Leider ist Vertrauen heute ein hohler Begriff. Dass heruntergeladene OpenSource-Binaries auch tatsächlich aus dem bereitgestellten Quellcode entstanden ist, kann man glauben – muss man aber nicht. Durch die populär gewordenen Supply-Chain-Angriffe setzen daher auch die FreeBSD-Entwickler auf ein transparentes Build-Konzept in Form von Zero-Trust-Builds. Der Ansatz baut auf den etablierten Reproducible Builds auf, bei denen sich Binärdateien bitgenau aus dem veröffentlichten Quellcode nachbauen lassen.
Während reproduzierbare Builds primär die Nachprüfbarkeit sicherstellen, geht das Zero-Trust-Modell einen Schritt weiter und entzieht dem Build-Prozess selbst das Vertrauen. Was einzelne Server, Maintainer oder Compiler produzieren, kann man selbst nachprüfen. Dabei erzeugen voneinander unabhängige, deterministische Build-Umgebungen dieselben Artefakte, deren Übereinstimmung kryptografisch verifiziert wird. Manipulationen im Build-Prozess oder in der Toolchain fallen sofort auf. So entsteht ein durchgängig überprüfbarer Produktionsprozess, in dem Manipulationen in Toolchains, CI-Systemen oder Signaturprozessen erkennbar werden. Das ist ein konsequenter Schritt hin zu einer Softwarewelt, in der Sicherheit nicht auf einem von Regierungen und Geheimdiensten unterwanderten Vertrauen beruht, sondern auf Verifizierbarkeit.
FreeBSD 15 kennt nun auch „wertvolle Maschinen“
Ein etwas amüsantes Detail mit durchaus ernsthaftem Praxisnutzen zum Schluss: In der Konfigurationsdatei /etc/rc.conf kann die Option precious_machine="YES" gesetzt werden, um ein versehentliches Herunterfahren des Systems zu verhindern. Dazu wird die Datei /var/run/noshutdown angelegt. Um den Rechner dennoch herunterzufahren oder neu zu starten, muss entweder diese Datei entfernt oder der Befehl shutdown(8) mit dem Parameter -f aufgerufen werden. Ähnlich funktioniert übrigens die seit langem bekannte Datei /var/run/nologin, die bei Vorhandensein das Einloggen von Benutzern verhindert.
Für FreeBSD-Verhältnisse ist FreeBSD 15 ein gewaltiger Schritt nach vorne. Viele Detailänderungen gab es auch bei Releases zuvor, aber die „experimentelle“ Umstellung der Paketverwaltung, die geradezu massiven Verbesserungen für den Einsatz auf dem Notebook und der Mut – oder Wahnsinn – von einer reichlich konservativen Weiterentwicklung hin zu „cutting-edge“-Komponenten (OpenZFS 2.4.0-rc4) lässt FreeBSD in einem neuen Licht erscheinen. Getrieben wird dies vor allem durch die kräftige Unterstützung aus der Industrie und durch Organisationen wie die Sovereign Tech Agency, was für den wachsenden Bedarf an Alternativen spricht. Bei den immer noch gigantischen Wachstumsaussichten im IT-Bereich dürfte genug Platz für mehr als einen Mitspieler und eine diversifizierte Infrastruktur sein.
Alle Neuerungen beschreiben die Entwickler in den Release Notes. Das unter der freien BSD-Lizenz stehende quelloffene FreeBSD 15.0 ist ab sofort kostenlos über die Projektseite für die Hardware-Plattformen amd64, aarch64, armv7, powerpc64/le und riscv64 erhältlich.
(fo)









English (US) ·