Die erste Alpha-Version von FreeBSD 15.0 wurde veröffentlicht. Installations-Images wurden für die Architekturen amd64, powerpc64le, aarch64 und riscv64 erstellt. Die Veröffentlichung ist für den 2. Dezember geplant. Ein Update auf den Branch 15.0-ALPHA1 von vorherigen Versionen mithilfe des Tools freebsd-update ist derzeit noch nicht umgesetzt.
Ab dem Branch FreeBSD 15 wird die Unterstützungsdauer signifikanter Branches nach der Veröffentlichung der ersten Version (15.0) von 5 auf 4 Jahre verkürzt, und neue signifikante Branches werden alle zwei Jahre veröffentlicht. Intermediäre Versionen (15.1, 15.2, 15.3) werden im Rahmen eines festen Entwicklungszyklus entwickelt, der die Veröffentlichung neuer Versionen in einem Branch etwa alle 6 Monate vorsieht, anstatt einmal im Jahr, wie es zuvor der Fall war. Unter Berücksichtigung der gleichzeitigen Unterstützung von zwei verschiedenen signifikanten Branches wird eine neue Zwischenversion alle 3 Monate veröffentlicht (15.4, 16.1, 15.5, 16.2 usw.), mit Ausnahme der Vorbereitung auf die ersten Veröffentlichungen neuer signifikanten Branches, vor denen es eine 6-monatige Pause bei den Veröffentlichungen geben wird (zum Beispiel wird die Version 15.3 im Juni 2027 veröffentlicht, 16.0 im Dezember 2027, 15.4 im März 2028, 16.1 im Juni 2028).
Im offiziellen Ankündigung der Alpha-Version von FreeBSD 15 gibt es einen Link zu den Release-Notizen (Kopie) mit einer fehlerhaften Änderungsübersicht. Die genannte Liste ist unsinnig, da sie nicht branchenspezifische Änderungen von FreeBSD 15 enthält, sondern Änderungen in der 14.x-Reihe bezüglich der Veröffentlichung von 14.0. Das heißt, sie enthält alte Daten, die aus zuvor veröffentlichten Release-Notizen zu 14.1, 14.2 und 14.3 übernommen wurden.
Einige Änderungen in der FreeBSD 15-Reihe, die in Git vermerkt sind:
- Die Erstellung von Installations-Images und die Compilation von Binärpaketen für 32-Bit-Architekturen wurde eingestellt. Die Möglichkeit, 32-Bit-Programme zu erstellen und den COMPAT_FREEBSD32-Modus zur Ausführung von 32-Bit-Executable-Dateien in einer 64-Bit-Kernel-basierten Umgebung zu verwenden, bleibt mindestens bis zum Ende des Lebenszyklus der FreeBSD 16-Reihe bestehen.
- Der logische Volume Manager gvinum, der für Software-RAID verwendet wurde, wurde entfernt. Die Entwicklung von Gvinum wurde vor etwa 15 Jahren eingestellt, und es gibt mehrere bekannte Probleme im Code, die bisher nicht behoben wurden. Anstelle von gvinum wird empfohlen, gconcat, gmirror, gstripe, graid oder zfs zu verwenden.
- Der agp-Treiber (Accelerated Graphics Port), der für viele Treiber älterer Grafikkarten erforderlich ist, ist zur Entfernung geplant.
- Der Zustand 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 alternativer Mechanismus zur Verwaltung erweiterter Attribute geplant sind, der für ZFS und NFSv4 verfügbar sein wird. Die Unterschiede zu den traditionellen Methoden von FreeBSD und Linux zur Handhabung erweiterter Attribute bestehen darin, dass die Attribute in einem Dienstverzeichnis präsentiert werden, das im Hauptnamesraum des Dateisystems nicht sichtbar ist und mit der Datei assoziiert ist. Der Umgang mit Attributen erfolgt wie bei normalen Dateien; zum Beispiel kann die Funktion readdir() verwendet werden, um die Attributliste abzurufen.
- Systemaufrufe wurden implementiert, die das inotify-Mechanismus zur Überwachung von Änderungen im Dateisystem bereitstellen.
- Das Hilfsprogramm sndctl wurde hinzugefügt, um die Einstellungen von Soundkarten zu verwalten.
- Das Hilfsprogramm mididump wurde hinzugefügt, um MIDI 1.0-Ereignisse in Echtzeit zu dumpen.
- Das Modul mac_do wurde als einsatzbereit erklärt, das es erlaubt, Richtlinien festzulegen, die es nicht privilegierten Benutzern ermöglichen, die Anmeldeinformationen von Prozessen zu ändern. Eine Dienstprogramm mdo, ähnlich dem Befehl su, wurde vorbereitet, um Befehle unter einem anderen Benutzer auszuführen, benötigt jedoch kein suid root.
- Die Implementierung des TLS-Protokolls auf Kernel-Ebene (KTLS) ist standardmäßig aktiviert.
- Ein neuer Netzwerk-Backend «slirp» wurde zum Hypervisor bhyve hinzugefügt, der die Bibliothek libslirp verwendet und einen Netzwerkstack im Benutzerspeicher implementiert. Der Backend «slirp» ermöglicht den Zugriff auf das Netzwerk des Gastbetriebssystems aus der Hostumgebung, ohne dass eine separate Netzwerkkonfiguration auf der Hostseite erforderlich ist.
- Das Verhalten der Systemaufrufe setgroups, getgroups und initgroups bei der Verarbeitung von Benutzergruppen ist den anderen Plattformen angeglichen (die Implementierungsunterschiede in FreeBSD betrafen die Speicherung der effektiven Gruppen-ID des Prozesses im ersten Element des Listenarrays der Gruppen).
- Die Kerberos-Implementierung im Hauptbestand von FreeBSD wurde von Heimdal Kerberos auf MIT Kerberos umgestellt. Um Heimdal Kerberos beim Build wiederherzustellen, kann das Flag WITHOUT_MITKRB5 verwendet werden. In FreeBSD 16 wird die Unterstützung für den Build von Heimdal Kerberos entfernt.
- In NFS wurde die Unterstützung für die CLONE-Operation hinzugefügt, die in der Spezifikation NFSv4.2 definiert ist und ein schnelles Kopieren von Dateien durch Blockklonierung ermöglicht. ServerDer Modus funktioniert derzeit nur bei der Exportierung von ZFS-Partitionen über NFS.
- Die Zuverlässigkeit von Partitionen mit dem UFS-Dateisystem, die mehr als 2.000.000.000 Inodes enthalten, wurde verbessert.
- Auf amd64-Systemen wurde die Möglichkeit hinzugefügt, mehr als 4 TB RAM zu verwenden.
- Die Funktion readdir_r wurde als veraltet erklärt.
- Im SNMP-Server bsnmpd wurde die Unterstützung für den Transport UDP eingestellt.
- Ein ufshci-Treiber wurde hinzugefügt, um Speichercontroller mit UFSHCI (Universal Flash Storage Host Controller Interface) zu unterstützen.
- Die Einstellung net.inet.tcp.nolocaltimewait ist standardmäßig deaktiviert und als veraltet markiert, d.h. die Standarderstellung von TIME_WAIT-Einträgen für TCP-Verbindungen, die auf der lokalen Systemseite getrennt wurden, wurde wiederhergestellt. Neu hinzugefügt wurde der sysctl net.inet.tcp.msl_local, um die Zeit, die eine Verbindung im STATE TIME_WAIT verbringt, anzupassen.
- Standardmäßig ist die Unterstützung für das Erstellen von Netzwerkverbindungen zu localhost mit INADDR_ANY deaktiviert. Um die Unterstützung wiederherzustellen, kann sysctl net.inet.ip.connect_inaddr_wild auf 1 gesetzt werden.
- Die Sysctl-Einstellung net.link.bridge.member_ifaddrs ist standardmäßig auf 0 gesetzt, was bedeutet, dass in Netzwerkbrücken Schnittstellen ohne Einschränkungen hinzugefügt werden können. IP-Adressen.
- In der Implementierung des UFS1-Dateisystems wurde das Jahr 2038-Problem gelöst (Daten bis 2106 können verwendet werden).
- Die Generierung von RSA-Hostschlüsseln für SSH und EC2 AMI wurde eingestellt.
- Die Socket-Option SO_SPLICE wurde hinzugefügt, um TCP-Verbindungen zu verbinden (ähnlich einem Proxy, der ohne Kopieren von Daten in den Benutzerraum arbeitet).
- In der grep-Utility wird standardmäßig das Durchlaufen von symbolischen Links bei der rekursiven Suche deaktiviert.
- Ein Kernelmodul für nvmf wurde hinzugefügt, um NVMe over Fabric-Controller zu unterstützen, sowie das Utility nvmecontrol zum Anschließen an externe NVMe over Fabric-Controller.
- Die date-Utility unterstützt jetzt die Ausgabe der Zeit mit Nanosekundenpräzision, zum Beispiel gibt "date -Ins" "2024-04-22T12:20:28,763742224+02:00" aus.
- In Jails wurde die Unterstützung der Option zfs.dataset hinzugefügt, um einen ZFS-Partition, Snapshot oder Klon in eine isolierte Jail-Umgebung hinzuzufügen.
- Im tty ist standardmäßig das IUTF8-Flag gesetzt, wodurch die korrekte Entfernung von UTF-8-Zeichen beim Drücken der Rücktaste funktioniert.
- Das Tool dialog wurde durch bsddialog ersetzt.
- Die Versionen von Lua 5.4.8, jemalloc 5.3.0, Awk 04082025, Unicode 16.0.0, CLDR 45.0.0, byacc 20240109, ncurses 6.5 wurden aktualisiert.
Quelle: opennet.ru
