Die erste Alpha-Version von FreeBSD 15.0 wurde vorbereitet. Installationspakete wurden für die Architekturen amd64, powerpc64le, aarch64 und riscv64 erstellt. Der Release ist für den 2. Dezember geplant. Ein Upgrade auf den Branch 15.0-ALPHA1 von früheren Versionen mit dem Tool freebsd-update ist derzeit nicht implementiert.
Ab dem Branch FreeBSD 15 wurde die Wartungszeit für wesentliche Branches nach der Erstellung des ersten Releases (15.0) von 5 auf 4 Jahre verkürzt, und neue wesentliche Branches werden alle zwei Jahre erstellt. Zwischenversionen (15.1, 15.2, 15.3) werden im Rahmen eines festen Entwicklungszyklus entwickelt, der die Veröffentlichung neuer Versionen in einem Branch ungefähr alle 6 Monate vorsieht, anstatt einmal pro Jahr wie bisher. Angesichts der gleichzeitigen Wartung von zwei verschiedenen wesentlichen Branches wird eine neue Zwischenversion alle 3 Monate veröffentlicht (15.4, 16.1, 15.5, 16.2 usw.), mit Ausnahme der Vorbereitung der ersten Releases neuer wesentlicher Branches, vor denen eine 6-monatige Pause bei den Releases liegen wird (z.B. wird der Release 15.3 im Juni 2027 erstellt, 16.0 im Dezember 2027, 15.4 – im März 2028, 16.1 – im Juni 2028).
In der offiziellen Ankündigung der Alpha-Version von FreeBSD 15 gibt es einen Link zu den Release-Notes (Kopie) mit einer fehlerhaften Änderungsübersicht. Die genannte Liste ist sinnlos, da sie nicht spezifische Änderungen für den Branch FreeBSD 15 enthält, sondern Änderungen im Branch 14.x in Bezug auf Release 14.0, d.h. es wurden alte Daten aus zuvor veröffentlichten Release-Notizen 14.1, 14.2 und 14.3 übernommen.
Einige Änderungen im Branch FreeBSD 15, die in Git markiert sind:
- Die Erstellung von Installationsabbildern und binären Paketversionen für 32-Bit-Architekturen wurde eingestellt. Die Möglichkeit, 32-Bit-Programme zu kompilieren und den COMPAT_FREEBSD32-Modus zum Ausführen von 32-Bit-Ausführungsdateien in einer 64-Bit-Kernel-basierten Umgebung zu nutzen, bleibt mindestens bis zum Ende des Lebenszyklus des Branches FreeBSD 16 erhalten.
- Der logische Volume-Manager gvinum, der für softwarebasierte RAID-Anwendungen verwendet wurde, wurde entfernt. Die Entwicklung von Gvinum wurde vor etwa 15 Jahren eingestellt, und im Code gibt es zahlreiche bekannte Probleme, die niemand zu beheben bemüht hat. Statt gvinum wird empfohlen, gconcat, gmirror, gstripe, graid oder zfs zu verwenden.
- Der agp-Treiber (Accelerated Graphics Port), der für den Betrieb vieler Treiber für alte Grafikkarten erforderlich ist, wird für die Beseitigung vorgesehen.
- Der Status der DRM-Treiber i915 und amdgpu wurde mit dem Linux-Kernel 6.9 synchronisiert.
- Die Unterstützung für benannte Dateiattribute (erweiterte Attribute im Solaris-Stil) wurde hinzugefügt, die als alternatives Management-System für erweiterte Attribute, das für ZFS und NFSv4 verfügbar ist, geplant werden. Die Unterschiede zu den traditionellen Methoden für FreeBSD und Linux im Umgang mit erweiterten Attributen beziehen sich auf die Darstellung der Attribute in einem speziellen Verzeichnis, das im Hauptnamenraum des FS nicht sichtbar ist und mit der Datei verknüpft ist. Der Umgang mit Attributen erfolgt wie mit normalen Dateien; so kann zur Bestimmung der Attributliste die Funktion readdir() verwendet werden.
- Systemaufrufe mit der Implementierung des inotify-Mechanismus zur Überwachung von Änderungen in Dateisystemen wurden realisiert.
- Ein neues Tool sndctl zur Verwaltung der Soundkarten-Einstellungen wurde hinzugefügt.
- Das Tool mididump wurde hinzugefügt, um MIDI-Ereignisse 1.0 in Echtzeit zu dumpen.
- Das Modul mac_do wurde als einsatzbereit erklärt, das Richtlinien ermöglicht, die nicht privilegierten Benutzern erlauben, die Anmeldeinformationen von Prozessen zu ändern. Um Befehle unter einem anderen Benutzer auszuführen, wurde das Dienstprogramm mdo vorbereitet, das ähnlich wie das Dienstprogramm su ist, jedoch keine suid root benötigt.
- Die TLS-Protokollimplementierung auf der Kernel-Seite (KTLS) ist standardmäßig aktiviert.
- Der Hypervisor bhyve hat ein neues Netzwerk-Backend "slirp" erhalten, das die libslirp-Bibliothek mit einer Netzwerk-Stack-Implementierung im Benutzerspeicher nutzt. Das Backend "slirp" ermöglicht den Netzwerkzugriff auf das Gastbetriebssystem aus der Hostumgebung, ohne dass eine separate Netzwerkkonfiguration auf der Host-Seite erforderlich ist.
- Das Verhalten der Systemaufrufe setgroups, getgroups und initgroups bei der Verarbeitung von Benutzergruppen wurde anderen Plattformen angenähert (der Unterschied in der Implementierung in FreeBSD bestand darin, dass die effektive Gruppenidentifikation im nullten Element des Arrays mit der Liste der Gruppen gespeichert wurde).
- Die Kerberos-Implementierung im Hauptbestandteil von FreeBSD wurde von Heimdal Kerberos auf MIT Kerberos umgestellt. Um Heimdal Kerberos beim Bauen wieder zu aktivieren, kann das Flag WITHOUT_MITKRB5 verwendet werden. In FreeBSD 16 wird die Unterstützung für den Bau von Heimdal Kerberos entfernt.
- Die NFS-Unterstützung für die in der Spezifikation NFSv4.2 definierte CLONE-Operation wurde hinzugefügt, die ein schnelles Kopieren von Dateien durch Blockklonierung ermöglicht. ServerDer Modus funktioniert derzeit nur beim Export von ZFS-Partitionen über NFS.
- Die Zuverlässigkeit von Partitionen mit dem UFS-Dateisystem wurde verbessert, die mehr als 2.000.000.000 Inodes enthalten.
- Auf amd64-Systemen wurde die Möglichkeit hinzugefügt, mehr als 4TB RAM zu verwenden.
- Die Funktion readdir_r wurde als veraltet erklärt.
- Im SNMP-Server bsnmpd wurde die Unterstützung für das UDP-Transportprotokoll eingestellt.
- Ein ufshci-Treiber zur Unterstützung von Speicherkontrollern mit UFSHCI (Universal Flash Storage Host Controller Interface) wurde hinzugefügt.
- Die Einstellung net.inet.tcp.nolocaltimewait ist standardmäßig deaktiviert und als veraltet erklärt. Das bedeutet, dass die Standarderstellung von TIME_WAIT-Einträgen für TCP-Verbindungen, die von der lokalen Systemseite getrennt wurden, wiederhergestellt wurde. Zur Einstellung der Verweildauer einer Verbindung im TIME_WAIT-Zustand wurde ein neuer sysctl net.inet.tcp.msl_local hinzugefügt.
- Die Unterstützung für die Erstellung von Netzwerkverbindungen zu localhost, indem INADDR_ANY angegeben wird, ist standardmäßig deaktiviert. Um die Unterstützung wiederherzustellen, kann die sysctl-Einstellung net.inet.ip.connect_inaddr_wild auf 1 gesetzt werden.
- Sysctl net.link.bridge.member_ifaddrs ist standardmäßig auf 0 gesetzt, d.h. es können Interfaces zu Netzwerkbrücken hinzugefügt werden, ohne IP-Adressen.
- In der Implementierung des UFS1-Dateisystems wurde das Problem des Jahres 2038 gelöst (Daten bis ins Jahr 2106 können verwendet werden).
- Die Generierung von RSA-Hostschlüsseln für SSH und EC2 AMI wurde eingestellt.
- Die Option SO_SPLICE zum Verbinden von TCP-Verbindungen wurde zu den Netzwerksockets hinzugefügt (ähnlich einem Proxy, der ohne Kopieren von Daten in den Benutzerspeicher funktioniert).
- In der grep-Dienstprogramm ist standardmäßig die Verarbeitung von symbolischen Links beim rekursiven Suchen deaktiviert.
- Ein nvmfta-Kernelmodul zur Unterstützung von NVMe over Fabric-Controllern und das nvmecontrol-Dienstprogramm zum Anschluss an einen externen NVMe over Fabric-Controller wurden hinzugefügt.
- Im date-Dienstprogramm wurde die Unterstützung für die Ausgabe von Zeiten mit Nanosekunden-Genauigkeit hinzugefügt, zum Beispiel gibt „date -Ins“ „2024-04-22T12:20:28,763742224+02:00“ aus.
- Im Jail wurde die Unterstützung für die Option zfs.dataset hinzugefügt, um ein ZFS-Volume, einen Snapshot oder einen Klon in die isolierte Jail-Umgebung hinzuzufügen.
- Im tty ist standardmäßig das Flag IUTF8 gesetzt, wodurch das Löschen von UTF-8-Zeichen bei Drücken der Rücktaste korrekt funktioniert.
- Das Tool dialog wurde durch bsddialog ersetzt.
- Die Versionen Lua 5.4.8, jemalloc 5.3.0, Awk 04082025, unicode 16.0.0, CLDR 45.0.0, byacc 20240109 und ncurses 6.5 wurden aktualisiert.
Quelle: opennet.ru
