Bericht über die Entwicklung von FreeBSD für das zweite Quartal 2025

Der Bericht über die Entwicklung des FreeBSD-Projekts im zweiten Quartal 2025 wurde veröffentlicht. Zu den Änderungen gehören:

  • Das FreeBSD Core Team arbeitet an Richtlinien für die Nutzung von KI und großen Sprachmodellen in der Entwicklung. Als mögliche Anwendungsbereiche für KI in FreeBSD werden die Übersetzung von Dokumentationen, die Zusammenfassung großer/unverständlicher Dokumente, das Verfolgen von Fehlern und die Analyse von Code genannt. Eine Anwendung von KI zur Codegenerierung wird vorerst nicht geplant, hauptsächlich aufgrund möglicher Lizenzprobleme.
  • Der Installer hat die Unterstützung des Systems pkgbase hinzugefügt, das es ermöglicht, Komponenten des Basissystems in einem Format zu installieren, das für die Verwaltung und Aktualisierung mit dem Paketmanager pkg geeignet ist. Pakete pkgbase können sowohl auf dem Installationsmedium für die Offline-Installation bereitgestellt als auch aus dem Repository pkg.freebsd.org heruntergeladen werden.
  • Die Entwicklung des Projekts bsd-user-4-linux, das die Ausführung von in Linux-Systemen für FreeBSD kompilierte Anwendungen ermöglicht, geht weiter. Ziel des Projekts ist es, Pakete für FreeBSD in Linux zu erstellen, wobei die native Build-Werkzeuge von FreeBSD verwendet werden. Für die Ausführung von FreeBSD-Executables in Linux wird ein Fork des QEMU-Emulators verwendet, der im User Mode Emulation Modus arbeitet, der für die Ausführung von Prozessen gedacht ist, die für andere CPUs und Betriebssysteme kompiliert wurden (QEMU führt die Übersetzung von Systemaufrufen und die Verarbeitung von Signalen durch). In der aktuellen Entwicklungsphase können FreeBSD-Instanzen bereits mit dem Befehl „make -j80 buildworld“ in Linux neu kompiliert werden. Die Ausführung grundlegender Systemwerkzeuge wie sh, bash, find, grep, git und clang funktioniert. Zu den jüngsten Änderungen gehört der Wechsel zur Codebasis QEMU 9.2 und die Implementierung der Unterstützung des Mechanismus kqueue() in Linux mit libkqueue.
  • Für FreeBSD wird die Virtualisierungsplattform Sylve entwickelt, die es ermöglicht, den Start über eine Weboberfläche zu steuern. virtuelle Maschinen auf der Basis des Hypervisors Bhyve und Containern auf der Grundlage von Jail-Umgebungen. Das Projekt zielt darauf ab, Funktionen ähnlich dem Linux-Distribution Proxmox VE bereitzustellen, jedoch basiert auf FreeBSD, Bhyve und ZFS. Zu den Änderungen im zweiten Quartal gehört die Hinzufügung von Grafiken zur Visualisierung der CPU-Auslastung, des RAM-Verbrauchs und der Netzwerkaktivität, eine Schnittstelle zur Arbeit mit Netzwerk-Schnittstellen, Funktionen zur Verwaltung von Dateisystemen, Partitionen, Pools und Snapshots von ZFS, Unterstützung für das Laden von Abbilden virtueller Maschinen über die Weboberfläche, Funktionen zum Erstellen und Löschen von virtuellen Maschinen für Bhyve mit Unterstützung für die VNC-Konsole, die Durchleitung von PCI-Geräten und die Bindung an ausgewählte CPU-Kerne.
  • Der libvirt-Port für den Hypervisor bhyve wurde verbessert. Ein Projekt zur Testung des bhyve-Treibers von libvirt in einem kontinuierlichen Integrationssystem mit FreeBSD wurde vorgestellt. Die Kompatibilität des bhyve-Treibers wurde erhöht. Unterstützung für virtio-rnd-Geräte, NVRAM-Konfiguration und erweiterte Statistiken wurde hinzugefügt. Unterstützung für den Netzwerkzugang über NAT basierend auf dem Paketfilter pf wurde implementiert.
  • Die Verarbeitung von tlsbase auf amd64-Systemen wurde verbessert, was sich positiv auf die Leistung von Anwendungen auswirkt, die TLS (Thread-Local Storage) manuell verwalten, wie z.B. Wine.
  • Im Linker rtld (Runtime Linker) wurde die Option „-z initfirst“ implementiert, die zusätzliche Möglichkeiten zur Steuerung der Initialisierungsreihenfolge in dynamisch verlinkten Anwendungen bietet.
  • Die Unterstützung der Kqueue-Introspektion wurde hinzugefügt und die Möglichkeiten zur Analyse der Nutzung von Kernereignisverarbeitungsmechanismen in Prozessen wurden erweitert. In der Utility procstat wurde der Bericht über den Status von Kqueue implementiert.
  • Im Kern wurde das FLAG EXTERROR implementiert, das auf das Vorhandensein erweiterten Fehlers informieren kann. Mithilfe von EXTERROR können Anwendungen zusätzliche diagnostische Informationen bei Fehlern erhalten, die über den Fehlercode hinausgehen.
  • In der Codebasis von FreeBSD 15 wurde die Erstellung von Installationsabbildern und den Aufbau von Binärpaketen für 32-Bit-Architekturen i386 und powerpc eingestellt. Von den 32-Bit-Plattformen bleibt in der FreeBSD 15-Zweig nur die Plattform armv7. Der MODUS COMPAT_FREEBSD32, der die Ausführung von 32-Bit-Executables in 64-Bit-Umgebungen ermöglicht, bleibt erhalten, aber in den Ports wird die Unterstützung für 32-Bit-Bauten eingestellt.
  • In der FreeBSD 15 Reihe wurde das Verhalten der Systemaufrufe setgroups, getgroups und initgroups bei der Verarbeitung von Benutzergruppen anderen Plattformen angenähert (der Unterschied in der Implementierung unter FreeBSD bestand darin, dass die effektive Gruppen-ID des Prozesses im nullten Element des Gruppenlisten-Arrays gespeichert wurde).
  • Es wird an der Ersetzung der Kerberos-Implementierung im Basissystem von FreeBSD von Heimdal Kerberos auf MIT Kerberos gearbeitet. MIT Kerberos ist bereits in der FreeBSD 15-CURRENT Reihe enthalten, wird jedoch momentan nur über die Option WITH_MITKRB5 aktiviert.
  • Die ersten Releases der Anwendung SysctlTUI wurden veröffentlicht, die eine textbasierte Benutzeroberfläche zur Navigation durch den Baum der sysctl-Parameter, zur Anzeige verwandter Metadaten und zur Änderung der Einstellungen bietet.
    Bericht über die Entwicklung von FreeBSD für das zweite Quartal 2025
  • Es wird an einem neuen Geomman-Partitionierungsmanager (GEOM Manager) gearbeitet, der auf sade basiert und zusätzliche Funktionen wie das Verschieben, Kopieren und Einfügen von Festplattenpartitionen bietet. Neben UFS unterstützt Geomman auch ext2, ext3, ext4, exFAT und NTFS, und es ist eine Unterstützung für ZFS geplant. Unter anderem können bestehende Partitionen mit ext4-Dateisystemen vergrößert und verkleinert sowie neue exFAT-Partitionen erstellt werden.
  • Die Arbeiten zur Verbesserung des Sound-Stacks von FreeBSD wurden fortgesetzt. Der Sound-Treiber wurde bereinigt, das Dienstprogramm sndctl hinzugefügt, die Unterstützung für AFMT_FLOAT implementiert, die Funktionalität mit Soundgeräten auf Laptops erheblich verbessert und mit dem Refactoring der MIDI-Subsystem begonnen.
  • Die Portierung der DRM-Treiber (i915 und amdgpu) von Linux-Kernel 6.9 wurde abgeschlossen. Die Änderungen werden für die FreeBSD 15-CURRENT Reihe entwickelt, sollen aber voraussichtlich auch in die 14-STABLE Reihe rückportiert werden.
  • Es wird an der Implementierung der Energiesparmodi S0ix und s2idle (Suspend-To-Idle) gearbeitet, die den Energieverbrauch bei der Nutzung von FreeBSD auf modernen Laptops mit Intel- und AMD-Prozessoren senken sollen, von denen einige den Schlafmodus S3 nicht unterstützen. Im USB4-Treiber wurde die Möglichkeit hinzugefügt, in den Energiesparmodus C3 zu wechseln.
  • Für den FreeBSD 15 Branch wird die Unterstützung für benannte Dateiattribute (erweiterte Attribute im Solaris-Stil) entwickelt, die als alternativer Mechanismus zur Verwaltung erweiterter Attribute vorgesehen sind, die für ZFS und NFSv4 verfügbar sind. Die Unterschiede zu den traditionell für FreeBSD und Linux verwendeten Methoden zur Handhabung erweiterter Attribute liegen in der Darstellung der Attribute in einem für das Hauptnamensraum des FS unsichtbaren Verwaltungsverzeichnis, das mit der Datei assoziiert ist. Der Umgang mit den Attributen erfolgt wie bei normalen Dateien; beispielsweise kann die Funktion readdir() verwendet werden, um die Liste der Attribute zu bestimmen.
  • Es wurden Patches zur Implementierung der Mount-Option "packrat" vorbereitet, die aggressives Caching von Daten im lokalen, nichtflüchtigen Speicher auf der Clientseite für NFSv4.1/4.2 ermöglicht.
  • Auf Basis von LinuxKPI, einer Schicht zur Ausführung von Linux-Treibern unter FreeBSD, wird ein aktualisierter net80211-Stack mit Unterstützung für die Standards Wi-Fi 5 (802.11ac) und Wi-Fi 6 (802.11ax) entwickelt. Die Firmware iwlwififw für den Intel iwlwifi-Treiber wurde aus dem Basisystem entfernt zugunsten einer Installation aus Ports und der Nutzung des Tools fwget. In linuxkpi wurde die Unterstützung für wlan_tkip implementiert, die die Verwendung der kryptografischen Protokolle TKIP (Temporal Key Integrity Protocol) und Michael (Message Integrity Code) ermöglicht.
  • Die Unterstützung für die Debugging-Schnittstelle, die in XHCI USB-Controllern bereitgestellt wird, wurde implementiert, um ein spezielles USB 3-Kabel zur Steuerung des Debuggings des FreeBSD-Kernels zu nutzen. Eine solche Schnittstelle kann zur Fehlersuche bei Problemen in Grafiktreibern verwendet werden, die zu Ausgabenfehlern führen.
  • Es wird an der Portierung der ursprünglichen Implementierung der HFS- und HFS+-Dateisysteme für den FreeBSD-Kernel gearbeitet, deren Treiber von Apple veröffentlicht wurde.
  • Ein FreeBSD-Port für das Pinephone Pro-Smartphone wurde vorbereitet, der Firmware mit Unterstützung für die Steuerung über den Touchscreen und einer einfachen Desktop-Umgebung enthält. Leider hat das Projekt Pine64 vor einigen Tagen die Einstellung der Produktion und den Verkauf von PinePhone Pro-Smartphones bekannt gegeben.
  • Die Anzahl der Ports ist von 36332 auf 36605 gestiegen. Zu den Aktualisierungen in den Ports gehören: GCC 15, OpenJDK 24.0.1, GNOME 47, KDE Plasma 6.4.1, KDE Framework 6.15.0, Sway 1.11, Qt 6.9.1, Ruby 3.4.4, Rust 1.87.0, SDL 3.2.16, Xorg-Server 21.1.18. Standardmäßig sind die Versionen Go 1.24, Perl 5.40, Ruby 3.3 und PostgreSQL 17 aktiv. Die Umgebung für Linuxulator wurde auf Rocky Linux 9 aktualisiert.
  • Optionale Unterstützung für den Port-Einstellungsbau mit Compiler-Flags hinzugefügt, die zusätzliche Sicherheitsverstärkungsmodi beinhalten. In make.conf wurden Einstellungen implementiert:
    • WITH_FORTIFY zum Schutz vor Pufferüberläufen durch die Hinzufügung zusätzlicher Überprüfungen in Funktionen wie memcpy, strcpy und sprintf;
    • WITH_STACK_AUTOINIT für die automatische Initialisierung lokaler Variablen;
    • WITH_ZEROREGS zum Schutz vor ROP-Exploits (Return-Oriented Programming) und Informationslecks über CPU-Register.

Quelle: opennet.ru

60GB SSD 8Gb DDR4