Nach sechsmonatiger Entwicklung wurde die Version FreeBSD 14.1 veröffentlicht. Installationsabbilder wurden für die Architekturen amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 und riscv64 vorbereitet. Zusätzlich wurden Builds für Virtualisierungsplattformen (QCOW2, VHD, VMDK, raw) und Cloud-Umgebungen wie Amazon EC2, Google Compute Engine und Vagrant erstellt.
Wesentliche Änderungen:
- Es wurden Verbesserungen am Soundstack vorgenommen. Die Möglichkeit, Audiogeräte im asynchronen Modus zu trennen, wurde implementiert, was beispielsweise für das heiße Abziehen von USB-Soundkarten erforderlich ist. Das Framework snd_clone und die damit verbundenen sysctl-Parameter wurden entfernt, was die Soundunterstützung vereinfachte. Anstelle separater Geräte-Dateien für jeden Audiosignalweg (/dev/dspX.Y) wird jetzt nur die Hauptgerätedatei (/dev/dspX) erstellt.
- Die Funktionen zur Verarbeitung von Strings und Speicher in libc wurden mit SIMD-Instruktionen auf AMD64-Systemen optimiert. Es wurden 17 Funktionen vorgeschlagen, die durch SIMD optimiert sind, sowie 9 Funktionen, die auf Funktionen umgeleitet wurden, die durch SIMD optimiert sind. Bei Tests wurde die Leistung der neuen Funktionen bei der Verarbeitung von 64-Zeichen-Strings um das 5,54-Fache gesteigert.
- Unterstützung für die Konfiguration mittels cloud-init wurde integriert, ein Tool zur Systemkonfiguration während des Bootvorgangs. Darunter fällt unter anderem die Erstellung von Benutzern/Gruppen, das Hinzufügen von SSH-Schlüsseln, das Einrichten von Netzwerkkonfigurationen, die Festlegung des Startskripts nuageinit und die Konfiguration von Festplattenpartitionen (config-drive). Die Implementierung ist kompatibel mit OpenStack und vielen хостинг-Anbietern.
- Für neue UFS2-Dateisysteme, die mit dem Tool newfs erstellt werden, ist standardmäßig das Journaling (soft updates) aktiviert.
- Es wurde die Möglichkeit zur Erstellung eines Kernels ausschließlich mit IPv6-Unterstützung (INET6), ohne IPv4 (INET).
- In der Anwendung adduser, die in bsdinstall verwendet wird, wird ein separater ZFS-Dataset (Partition, Snapshot oder Klon) für das Benutzerhomeverzeichnis erstellt, wenn bereits ein ZFS-Dataset für das übergeordnete Verzeichnis verwendet wird. Zudem wurde die Möglichkeit hinzugefügt, die Homeverzeichnisse mithilfe von ZFS zu verschlüsseln. Um diese Funktionen zu aktivieren, wurden die Parameter „Zcreate“ und „Zencrypt“ in die Datei adduser.conf aufgenommen.
- In «libutil» wurde die Funktion «setusercontext» um die Unterstützung zur Priorisierung von Prozessen basierend auf den Einstellungen aus der Datei «.login.conf», die im Home-Verzeichnis abgelegt ist, erweitert. Bei der Priorisierung oder Umask wurde die Unterstützung für den Wert «inherit» hinzugefügt, bei dem die Priorität und Umask gleich der des übergeordneten Prozesses gesetzt werden.
- Das Dienstprogramm «date» hat nun Unterstützung für Nanosekunden-Genauigkeit; zum Beispiel zeigt «date -Ins» die Ausgabe «2024-06-04T10:20:28,763742224+05:00», während «date +%N» «415050400» ausgibt.
- Das Dienstprogramm «dtrace» ermöglicht die Ausgabe in Formate, die für die automatische Analyse und Ansicht geeignet sind, wie JSON, XML und HTML.
- Das Dienstprogramm «usbconfig» enthält jetzt die Möglichkeit, zusätzliche Informationen über USB-Geräte und Hersteller anzuzeigen, die den Beschreibungen aus der Datei /usr/share/misc/usb_vendors entsprechen.
- Im Treiber «ice» wurde die Unterstützung für Intel E800 Ethernet-Controller mit einer Bandbreite von 100 Gb/s hinzugefügt.
- Im Ethernet-Treiber «msc» wurde die Möglichkeit hinzugefügt, die MAC-Adresse basierend auf dem Parameter «smsc95xx.macaddr» festzulegen, der von bestimmten Modellen der Raspberry Pi-Platine übermittelt wird.
- Es wurden Maßnahmen zur Stabilitätsverbesserung des Treibers «iwlwifi» für Intel-WLAN-Chips ergriffen.
- Die Möglichkeit zur Verwendung mehrerer PCI MCFG-Bereiche auf amd64- und i386-Systemen zur Segmentierung des Adressraums von PCI-Geräten wurde hinzugefügt.
- Die Unterstützung für Hardware wurde erweitert.
- Im NFS-Handler «mountd» wird zur Dekodierung von Verzeichnisnamen in der Datei «exports» die Bibliothek «strunvis» verwendet, was die Verwendung von Sonderzeichen wie Leerzeichen in Verzeichnisnamen ermöglicht. Neue Sysctl-Variablen kern.rpc.unenc und kern.rpc.tls wurden hinzugefügt, um NFS-over-TLS zu konfigurieren.
- Der Bootloader kann jetzt Konfigurationsdateien lesen, die in der Variablen local_loader_conf_files aufgelistet sind, nach den in der Datei /boot/loader.conf.local definierten Konfigurationsdateien. Zudem wurde die Möglichkeit hinzugefügt, Einstellungen aus SMBIOS in Verbindung mit Hersteller- und Produkt-IDs auszulesen. Die Erkennung der Konsole auf EFI-Systemen wurde verbessert. Die Framebuffer-Implementierung im Bootloader kann jetzt Konsolen-Videotreiber verwenden.
- Die Möglichkeit zur Verwendung des LinuxBoot-Bootloaders (loader.kboot) zum Laden von FreeBSD aus Linux-basierten Umgebungen auf aarch64- und amd64-Systemen wurde realisiert.
- In der rc.conf wurde die Unterstützung für den Parameter kdc_restart hinzugefügt, der einen automatischen Neustart des kdc (Kerberos 5-Server) im Falle eines Absturzes ermöglicht. Zusätzlich steht der Parameter kdc_restart_delay zur Verfügung, mit dem eine Verzögerung vor dem Neustart festgelegt werden kann.
- Standardmäßig wurden zur Reduzierung der Größe der Berichte, die per E-Mail gesendet werden, die Informationen über Änderungen bei der Ausführung regelmäßig geplanter Aufgaben und Skripte, die die Sicherheit überprüfen, verkürzt. Für die Konfiguration des Ausgabevergleichs können die Parameter daily_diff_flags und security_status_diff_flags in periodic.conf verwendet werden.
- Die Versionen von Drittanbieter-Komponenten wurden aktualisiert: Clang/LLVM 18.1.5, OpenZFS 2.2.4, OpenSSH 9.7p1, awk 2024-01-22 (unterstützt UTF-8 und den Modus „-csv“), libarchive 3.7.4, sendmail 8.18.1, unbound 1.20.0.
Quelle: opennet.ru
