FreeBSD 15.0 veröffentlichen

Nach zwei Jahren seit der Veröffentlichung der Version 14.0 wurde das Release von FreeBSD 15.0 erstellt. Die Installationsabbilder sind für die Architekturen amd64, aarch64, armv7, powerpc64, powerpc64le und riscv64 vorbereitet. Zusätzlich werden Abbildungen für Virtualisierungssysteme (QCOW2, VHD, VMDK, raw) und Cloud-Umgebungen wie Amazon EC2, Google Compute Engine und Vagrant bereitgestellt.

Ab der Version FreeBSD 15 wird die Unterstützungszeit für bedeutende Branches nach der Erstellung der ersten Version (15.0) von 5 auf 4 Jahre verkürzt, und neue bedeutende Branches werden alle zwei Jahre erstellt. Zwischenversionen (15.1, 15.2, 15.3) werden im Rahmen eines festgelegten Entwicklungszyklus entwickelt, der die Veröffentlichung neuer Versionen in einem Branch etwa alle 6 Monate vorsieht, anstatt wie bisher einmal im Jahr. Bei gleichzeitiger Unterstützung von zwei verschiedenen bedeutenden Branches wird eine neue Zwischenversion alle 3 Monate veröffentlicht (15.4, 16.1, 15.5, 16.2 usw.), mit Ausnahme der Vorbereitungen für die ersten Versionen neuer bedeutender Branches, für die es eine 6-monatige Pause bei den Veröffentlichungen geben wird (zum Beispiel wird die Version 15.3 im Juni 2027 erstellt, 16.0 im Dezember 2027, 15.4 im März 2028 und 16.1 im Juni 2028).

Die wichtigsten Änderungen in FreeBSD 15.0 (in den offiziellen Hinweisen zur Veröffentlichung werden neben spezifischen Änderungen für die Version 15.0 viele Funktionen erwähnt, die zuvor in den Versionszweigen 14.1, 14.2 und 14.3 hinzugefügt wurden):

  • Es wurde die Möglichkeit geschaffen, den Paketmanager pkg für die Installation und Aktualisierung der Basissystemkomponenten zu verwenden. Die Pakete pkgbase können auf dem Installationsmedium für die Offline-Installation bereitgestellt oder aus dem Repository pkg.freebsd.org heruntergeladen werden. Im pkg-Konfigurationsfile (/etc/pkg/FreeBSD.conf) ist das FreeBSD-base-Repository standardmäßig nicht enthalten. Der Installer bsdinstall bietet zwei Installationsoptionen an: traditionell und unter Verwendung von Paketen (pkgbase). Die Unterstützung der traditionellen Methode, bei der das Basissystem als monolithische Umgebung betrachtet wird, die mit dem Tool freebsd-update aktualisiert wird, soll in der Version FreeBSD 16 entfernt werden. Die neue Methode, die die Installation des Basissystems als Paketset aus dem FreeBSD-base-Repository vorsieht, wurde standardmäßig in den Builds für virtuelle Maschinen und Abbilder für Cloud-Umgebungen angeboten, wird jedoch bisher als experimentell für reguläre Systeme betrachtet.
  • Die Unterstützung für den Bau von FreeBSD in nicht privilegierten Umgebungen wurde hinzugefügt, die keine Root-Rechte erfordern. Ohne Root-Rechte können auch Installations-ISO-Images und System-Images für virtuelle Maschinen erstellt werden. Während des Baus waren Root-Rechte erforderlich, um Geräte-Dateien zu erstellen, Zugriffsrechte festzulegen und zusätzliche Dateisysteme zu mounten (z. B. beim Erstellen von Disk-Images).
  • Die Unterstützung für reproduzierbare Builds wurde implementiert, die sicherstellen, dass die verteilten Binärdateien aus dem bereitgestellten Quellcode erstellt wurden und keine versteckten Änderungen enthalten. Reproduzierbare Builds gewährleisten die Identität der Binärdateien, die aus dem Quellcode in verschiedenen Build-Umgebungen erzeugt werden.
  • Die Erstellung von Installations-Images und binären Paket-Bauten für 32-Bit-Architekturen wie i386, armv6 und powerpc wurde eingestellt. Von den 32-Bit-Plattformen bleibt nur armv7. Die Möglichkeit, 32-Bit-Programme zu kompilieren und den COMPAT_FREEBSD32-Modus für die Ausführung von 32-Bit-Executable-Dateien in einer 64-Bit-Kernel-Umgebung zu nutzen, bleibt mindestens bis zum Ende des Lebenszyklus des FreeBSD 16-Zweigs erhalten.
  • Systemaufrufe mit Implementierung des inotify-Mechanismus zur Überwachung von Änderungen im Dateisystem wurden hinzugefügt.
  • 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.
  • 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.
  • Der Zustand der DRM-Treiber i915 und amdgpu ist mit dem Linux-Kernel 6.9 synchronisiert. Die Treiber für drahtlose Geräte rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) und iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) sind mit dem Linux-Kernel 6.17 synchronisiert.
  • Die TLS-Protokollimplementierung auf der Kernel-Seite (KTLS) ist standardmäßig aktiviert.
  • 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.
  • 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.
  • 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.
  • 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).
  • Im Paketmanager pkg ist standardmäßig ein neues Repository FreeBSD-kmods aktiviert, in dem Pakete mit Modulen des Kernels bereitgestellt werden, die für bestimmte Release-Zweige 15.x-RELEASE zusammengestellt wurden, anstatt für den ständig aktualisierten Zweig 15-STABLE. Das Repository FreeBSD-kmods löst das Problem bei der Installation von Treibern, die an instabile Kernel-Interfaces (zum Beispiel Grafiktreiber) gekoppelt sind. Die zuvor im /etc/pkg/FreeBSD.conf vorhandenen Repositories "FreeBSD" und "FreeBSD-kmods" wurden in "FreeBSD-ports" und "FreeBSD-ports-kmods" umbenannt.
  • In NFS wurde die Unterstützung für die in der NFSv4.2-Spezifikation definierte Operation CLONE hinzugefügt, die ein schnelles Kopieren von Dateien durch Blockklonierung auf dem Server ermöglicht. Der Modus funktioniert bisher nur beim Export von ZFS-Partitionen über NFS.
  • Auf amd64-Systemen wurde die Möglichkeit hinzugefügt, mehr als 4TB RAM zu verwenden.
  • Ein ufshci-Treiber zur Unterstützung von Speicherkontrollern mit UFSHCI (Universal Flash Storage Host Controller Interface) wurde hinzugefügt.
  • 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.
  • Die Zuverlässigkeit der Funktionsweise der Bereiche mit dem UFS-Dateisystem, das mehr als 2.000.000.000 Inodes enthält, wurde erhöht. Im UFS1-Dateisystem wurde das Problem des Jahres 2038 gelöst (es können Daten bis zum Jahr 2106 verwendet werden).
  • 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 einen ZFS-Bereich, Snapshots oder Klone in eine isolierte Jail-Umgebung hinzuzufügen. Die jail-Kommandofunktion unterstützt jetzt die Parameter „meta“ und „env“, mit denen Metadaten gebunden oder Umgebungsvariablen übergeben werden können. Es wurde die Möglichkeit hinzugefügt, Jail-Umgebungen über Jail-Descriptoren anzusprechen, wofür die Funktionen jail_set und jail_get sowie die Systemaufrufe jail_attach_jd und jail_remove_jd angeboten werden. Es wurde auch die Möglichkeit hinzugefügt, kevent-Filter zur Überwachung von Operationen wie Erstellung, Löschung, Änderung und Anheften von Jail zu verwenden.
  • Im newsyslog-Dienstprogramm wurde ein Parameter implementiert, um die standardmäßige Komprimierungsmethode (bzip2, xz, zstd, gzip) festzulegen, sodass die Angabe separater Flags (J, X, Y, Z) in jeder Zeile von newsyslog.conf entfällt.
  • In der Standard-C-Bibliothek werden in vielen Funktionen zur Arbeit mit Strings und Speicher Optimierungen auf Basis von SIMD-Instruktionen eingesetzt.
  • In der Gallant-Schriftart, die in virtuellen Terminals verwendet wird, wurden über 4300 neue Glyphen hinzugefügt, einschließlich Glyphen mit kyrillischen Zeichen und mathematischen Symbolen.
  • 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 Dialog-Dienstprogramm, das im Konfigurator bsdconfig und im Installer bsdinstall verwendet wird, wurde durch bsddialog ersetzt.
  • Im adduser-Tool, das in bsdinstall verwendet wird, wird die Erstellung eines separaten ZFS-Datasets (Partitions, Snapshots oder Klonen) für das Benutzerheimverzeichnis ermöglicht, wenn ein ZFS-Dataset bereits für das übergeordnete Verzeichnis verwendet wird. Außerdem wurde die Möglichkeit zur Verwendung der Verschlüsselung von Heimverzeichnissen mittels ZFS hinzugefügt. Zur Verwaltung der Aktivierung dieser Funktionen wurden in adduser.conf die Parameter „Zcreate“ und „Zencrypt“ hinzugefügt.
  • Es werden OCI-kompatible Container-Images und System-Images für Oracle Cloud bereitgestellt.
  • Ein neuer Typ von Images „small“ für Cloud-Umgebungen, die mit AWS EC2 kompatibel sind, wurde hinzugefügt. Im Gegensatz zu den Basis-Images wurden Debugging-Daten, Tests, 32-Bit-Bibliotheken, der Debugger LLDB, der Amazon SSM-Agent und die AWS CLI entfernt. Die Ladezeiten der „base“-Images für EC2 wurden um 76 % beschleunigt.
  • 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, bei denen INADDR_ANY angegeben ist, wurde standardmäßig deaktiviert. Zur Wiederherstellung der Unterstützung kann der sysctl net.inet.ip.connect_inaddr_wild auf den Wert 1 gesetzt werden.
  • 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 Treiber agp (Accelerated Graphics Port), der für die Funktionsweise vieler Treiber für ältere Grafikkarten erforderlich ist, soll in FreeBSD 16 entfernt werden. Auch die Treiber fdc (IBM PC Floppy Disk Controller), firewire (IEEE1394 Serial Bus), le (AMD Am7900 LANCE und Am79C9xx Ethernet) und upgt (USB 802.11g) wurden als veraltet erklärt und zur Entfernung geplant.
  • Die Funktion readdir_r wurde als veraltet erklärt.
  • Im SNMP-Server bsnmpd wurde die Unterstützung für das UDP-Transportprotokoll eingestellt.
  • Die Generierung von Host-Schlüsseln RSA für SSH und EC2 AMIs wurde eingestellt. Die Unterstützung von DSA wurde aus OpenSSH entfernt. Die Datenbank publickey, die an den DES-Algorithmus gebunden ist, wurde entfernt.
  • Die Programme ftpd und shar wurden aus dem Basissystem entfernt; stattdessen sollten die Ports ftp/freebsd-ftpd und sysutils/freebsd-shar verwendet werden.
  • Das Tool fdisk wurde als veraltet erklärt; stattdessen sollte gpart verwendet werden.
  • Im Bereich der veralteten Treiber wurde syscons übersetzt, der nicht mit UEFI kompatibel ist, UTF-8 nicht unterstützt und an die globale Sperre gebunden ist.
  • Die Versionen LLVM 19.1.7, OpenSSH 10.0p2, OpenSSL 3.5.4, OpenZFS 2.4.0rc4, Lua 5.4.8, jemalloc 5.3.0, Awk 20250804 (mit UTF-8-Unterstützung), bc 7.1.0, unicode 16.0.0, ncurses 6.5, libarchive 3.8.2, tcpdump 4.99.5, unbound 1.24.1, less 679, file 5.46, GoogleTest 1.15.2 wurden aktualisiert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4