Nach sechsmonatiger Entwicklung wurde das Release von FreeBSD 15.1 veröffentlicht. Installationspakete sind für die Architekturen amd64, aarch64, armv7, powerpc64, powerpc64le und riscv64 verfügbar. Zudem werden Pakete für Virtualisierungssysteme (QCOW2, VHD, VMDK, raw) und Cloud-Umgebungen wie Amazon EC2, Google Compute Engine und Vagrant bereitgestellt. Die Veröffentlichung von FreeBSD 15.1 wird bis April 2027 unterstützt, und Updates für die Version 15.x werden bis zum 31. Dezember 2029 bereitgestellt.
Wesentliche Änderungen:
- Die Treiber für drahtlose Geräte rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) und iwlwifi (Intel 802.11a/b/g/n/ac/ax/be) sind mit dem Linux-Kernel 7.0 synchronisiert.
- Im Kernel wurde ein Framework zur Auswahl des Task-Schedulers implementiert. In der Kernel-Konfiguration auf amd64-Systemen wurde zusätzlich zum standardmäßig verwendeten SCHED_ULE-Scheduler die klassische Scheduler-Option SCHED_4BSD aktiviert. Ein sysctl-Parameter kern.sched wurde hinzugefügt, um den Task-Scheduler während des Bootvorgangs auszuwählen.
- Es wurden Arbeiten zur Unterstützung des C23-Standards im Code für Compiler-Bauten im C23-Modus durchgeführt. Eine vollständige Unterstützung von C23 wird in der FreeBSD 16-Version erwartet. Der neue Standard führt die Konstanten nullptr, den Typ _BitInt(n) und die Schlüsselwörter bool, true und false ein, die mit bereits bestehenden Identifikatoren im alten Code in Konflikt geraten könnten. Die Unterstützung von C23 ermöglicht es, neue Sprachfeatures in FreeBSD zu nutzen, wie die Header-Datei stdbit.h, die Funktion memalignment() und aktualisierte limits.h und stdint.h mit dem Makro _WIDTH und dem Typ char8_t.
- Im Paketfilter ipfw wurde die Möglichkeit implementiert, beliebige Masken in Lookup-Tabellen zu definieren, die es erlauben, beliebige Bit-Kombinationen in Schlüsseln und Tabellenelementen zu ignorieren. Beispielsweise können nicht zusammenhängende Masken verwendet werden. IP-Adressen, wie 'lookup src-ip4:255.255.253.255'. Der Code zur Unterstützung von Versionen des ipfw-Paketfilters, die vor der Veröffentlichung von FreeBSD 8 geliefert wurden, wurde entfernt.
- Es wurde die Weiterleitung von IPv6-Paketen an divert-Sockets ermöglicht, in denen zuvor nur mit IPv4 gearbeitet werden konnte. Der Befehl ifconfig wurde um das Flag 'stableaddr' erweitert, um stabile IPv6-Adressen zu generieren, die für jedes Subnetz unverändert bleiben (Stateless Address Autoconfiguration, RFC 7217).
- Die Standard-Shell für die Benutzer 'root' und 'freebsd' wurde von csh auf sh umgestellt.
- Das Dienstprogramm setaudit wurde hinzugefügt, um Richtlinien für die Systemüberwachung zu verwalten.
- In das Dienstprogramm find wurden die Optionen '-xattr' und '-xattrname' aufgenommen, um Dateien unter Berücksichtigung erweiterter Dateiattribute zu suchen.
- In das Dienstprogramm newfs wurde die Option '-u' hinzugefügt, um den Soft-Updates-Mechanismus und das Logging für UFS2 zu deaktivieren.
- Das Dienstprogramm ipfs wurde standardmäßig entfernt, das zur Speicherung und Wiederherstellung der Adressübersetzungstabellen verwendet wurde, und die dafür erforderliche Funktionalität im Kernel wurde deaktiviert (kann in den Build-Einstellungen zurückgegeben werden).
- Im Skript bsdinstall ist die Installation von pkgbase mit den in der Variablen COMPONENTS angegebenen Komponenten standardmäßig aktiviert. Die alte Methode der Installation über distset bleibt verfügbar, wenn die Variable DISTRIBUTIONS definiert ist.
- Den Standardbibliotheken wurden die Funktionen tdestroy,
strdupa,
strndupa,
posix_spawnattr_getexecfd_np,
posix_spawnattr_setexecfd_np,
pthread_tryjoin_np hinzugefügt.
In den Funktionen memcpy, memmove und memset auf AArch64-Systemen wurden Optimierungen auf Basis der MOPS (Memory Operations) Instruktionen implementiert. - Die libuvmem-Bibliothek mit der Implementierung des vmem-Speicherallokationsmechanismus wurde hinzugefügt, der im Benutzerspeicher arbeitet und eine vmem-kompatible API für Anwendungen bereitstellt.
- In die Images für virtuellen Maschinen und Cloud-Systeme wurde der Paketmanager pkg integriert, und die Unterstützung für atomare Paketaktualisierungen mit dem Basissystem beim ersten Booten wurde implementiert.
- Der virtio_scsi-Treiber wurde in die MINIMAL-Kernelkonfiguration aufgenommen, um das System zu booten in virtuellen Maschinen wurde vereinfacht. basierend auf qemu/kvm.
- Die Systemaufrufe pdwait und pdfork wurden für den neuen Mechanismus zur Erstellung und Beendigung von Prozessen implementiert, der Prozess-Deskriptoren verwendet.
- In die Kompatibilitätsschicht für Linux wurde fcntl F_DUPFD_QUERY hinzugefügt, das kcmp KCMP_FILE zur Überprüfung von Dateideskriptoren in Linux-Containern verwendet.
- Der iwx-Treiber für Intel AX210/AX211/AX411 Wireless-Adapter mit Unterstützung für Wi-Fi 6E und Wi-Fi 7 wurde integriert.
- Die Treiber wurden aktualisiert. Unterstützung für die Intel E835-XXV-4 und Intel E835 Ethernet Netzwerkkarten sowie RAID-Controller, die in Servern Fujitsu PRIMERGY und die in Google Compute Engine C4 verwendeten NVMe-Speichergeräte. Verbesserte Unterstützung für Raspberry Pi-Plattformen. Unterstützung für Leistungsüberwachungszähler (hwpmc) hinzugefügt, die in Intel CPU Alder Lake, Alder Lake-N und Emerald Rapids bereitgestellt werden.
- Der hid-Treiber ist so konfiguriert, dass er Benutzern der Gruppe game Zugriff gewährt, wodurch der Zugriff auf Spielecontroller ohne Erhöhen der Berechtigungen mittels Bibliotheken wie libsdl ermöglicht wird.
- Die mt Utility stellt die Kompatibilität mit Bandlaufwerken sicher, die die Standards LTO-10 und LTO-10P (Linear Tape-Open Generation 10) unterstützen.
- Der Befehl "zpool prefetch" unterstützt jetzt BRT (Block Reference Table) Metadaten, die die Leistung beim Klonen und Freigeben von Blöcken verbessern.
- Der NFS-Client unterstützt jetzt die Exportierung von Dateisystemen über NFS, die bei Dateinamen und Verzeichnissen nicht auf Groß- und Kleinschreibung achten.
Bei der Netzwerk-Boot-Option ohne Festplatte über NFSv4 wurde die Unterstützung für das Mounten des NFS-Teils als Root-Dateisystem sowie das Mapping von Benutzernamen oder IDs über nfsuserd implementiert. Erste Unterstützung für die Erweiterung von NFSv4.2 mit POSIX ACL hinzugefügt. der Server Im NFSv4-Client wurde die Unterstützung für das Attribut Archivierung (UF_ARCHIVE) hinzugefügt, das im NFS-Client von Windows verwendet wird. - Im Splash-Interface wurde die Möglichkeit hinzugefügt, einen PNG-Startbildschirm anzuzeigen, der beim Herunterfahren des Systems angezeigt wird.
- Es wurde der sysctl net.inet.ipf.jail_allowed hinzugefügt, der es ermöglicht, eine eigene Reihe von Einstellungen und ipfilter-Regeln an die Jail-Umgebung zu binden.
- Der sysctl allow.vmm_ppt wurde hinzugefügt, um den Zugriff auf PCI-Geräte in isolierten Umgebungen, die auf dem Hypervisor bhyve basieren, weiterzuleiten.
- Der GPU-Treiber auf Basis von Virtio unterstützt nun virtuelle Umgebungen, die auf Parallels Desktop basieren.
- Unterstützung für FGT-Register (Fine-Grained Trap), den Mechanismus Extended Destination ID und MOPS-Befehle (Memory Operations), die die Virtualisierungsmöglichkeiten erweitern und die Leistung auf ARM64-Systemen verbessern, wurde hinzugefügt. Zudem wurde die ARM64-Erweiterung LASS (Linear Address Space Separation) implementiert, um die Isolation zwischen Kernel und Benutzerraum zu verstärken.
- Im Framebuffer des bhyve-Hypervisors wurde die Unterstützung für UNIX-Sockets hinzugefügt, die es ermöglichen, die grafische Konsole in Jails nicht über das Netzwerk weiterzuleiten.
- Die Versionen von OpenZFS 2.4.2, OpenSSL 3.5.6, NSS 3.123.1, xz 5.8.3, tcpdump 4.99.6, zlib 1.3.2, zstd 1.5.7, blocklistd 2026-02-07, ncurses 6.6, bsddialog 1.0.5, bmake 20251111, SQLite 3.50.4 und unbound 1.25.1 wurden aktualisiert. MIT Kerberos 1.22.2 und Heimdal Kerberos 1.22.2 sind ebenfalls enthalten.
- Die Konsolenschriftart spleen wurde auf Version 2.2.0 aktualisiert und um zusätzliche Symbole erweitert (langes und kurzes Gedankenstrich, Bindestrich, spitze Klammern, weißes Quadrat, Kreuz und Doppelkreuz). Die Ausrichtung der Symbole auf hochauflösenden Bildschirmen wurde verbessert. Die Unicode-Zeichentabellen wurden auf Version 17.0.0 aktualisiert, die 4803 neue Zeichen enthält.
- Das Subsystem blacklist wurde in blocklist umbenannt, mit dem Hintergrundprozess blocklistd. Die alten Einstellungen in den rc-Skripten und Regeln für die Paketfilterung bleiben gültig, führen jedoch zur Ausgabe einer Warnmeldung.
- Das OpenPAM-Werkzeug wurde in das neue Paket FreeBSD-pam verschoben, während die Zstandard-Bibliothek und die zstd-Utility in das Paket FreeBSD-zstd überführt wurden.
- Auf Systemen, die über die Pakete freebsd-base installiert wurden, wurde der Aufruf der Installationsskripte installworld und installkernel gesperrt, um Inkonsistenzen zwischen dem Systemzustand und den Paketen zu vermeiden.
- Die Erstellung von Builds im OCI-Format (Oracle Cloud Infrastructure) wurde eingestellt.
- Die folgenden Programme sind als veraltet gekennzeichnet und werden in FreeBSD 16 entfernt: fdisk, bsdlabel, lpr, lpd, lpc, lpq, lprm, lp, pac, lptest und chkprintcap. Für die Arbeit mit Partitionen wird empfohlen, gpart oder bsdinstall anstelle von fdisk und bsdlabel zu verwenden. Für den Druckausgabe sollte der Port print/cups oder sysutils/LPRng genutzt werden. Zudem sollen in FreeBSD 16 die sysctls hw.ata.rotating und hw.ata.unmapped_io sowie die Treiber hifn (Krypto-Beschleuniger Hifn 7751/7951/7811/7955/7956), safe (Krypto-Beschleuniger SafeNet SafeXcel 1141/1741), le (AMD Am7900 LANCE und Am79C9xx ILACC/PCnet Etherne), fdc (Floppy-Disk-Controller) und agp (Accelerated Graphics Port) entfernt werden.
Quelle: opennet.ru
