Nach anderthalb Jahren seit der Veröffentlichung des letzten Updates ist das Betriebssystem NetBSD 10 erschienen. Für den Download stehen Installationsabbilder mit einer Größe von 630 MB zur Verfügung, die für 57 Systemarchitekturen und 16 verschiedene CPU-Familien bereitgestellt werden. Der neue Release umfasst eine Reihe wesentlicher Verbesserungen, darunter die Unterstützung von Zugriffssteuerungslisten im FFS-Dateisystem, erhebliche Leistungsoptimierungen, Festplattensch encryption mittels des Adiantum-Algorithmus und die Implementierung eines Treibers für VPN WireGuard im Kernel.
Das Projekt unterstützt 8 primäre Ports, die das Kernstück der Entwicklungsstrategie von NetBSD bilden: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 und xen, sowie 49 sekundäre Ports, die mit CPUs wie alpha, hppa, m68010, m68k, sh3, sparc und vax verbunden sind. Sekundäre Ports werden weiterhin unterstützt, haben jedoch an Relevanz verloren oder weisen nicht genügend Entwickler auf, die an ihrer Entwicklung interessiert sind. Ein Port (acorn26) gehört zur dritten Kategorie, in der nicht funktionsfähige Ports untergebracht sind, die auf eine Löschung warten, wenn sich keine interessierten Entwickler finden.
Wesentliche Verbesserungen in NetBSD 10:
- Im Dateisystem FFS wurde die Unterstützung für Access Control Lists (POSIX.1e ACL) hinzugefügt, implementiert mit Hilfe von erweiterten Datei-Attributen und migriert von FreeBSD. Ein neuer FSTyp FFSv2ea (nicht standardmäßig verwendet) wird zur Nutzung von ACLs angeboten, auf den bestehende FStypen mit dem Tool fsck_ffs umgestellt werden können.
- Eine Netzwerk-Schnittstelle wg wurde hinzugefügt mit einer Implementierung VPN, die mit WireGuard kompatibel ist.
- Die Leistungsoptimierung wurde durchgeführt. Die Effizienz des Caches für Datei-Pfade im Kern wurde erhöht. Die Leistung des Task-Schedulers, der für Systeme mit big.LITTLE Arm konzipiert ist, welche schnelle und langsame CPU-Kerne kombinieren, wurde verbessert. Die Leistung der Systemaufrufe select und poll wurde gesteigert. Die Leistung des Dateisystems tmpfs wurde optimiert. Der Ladevorgang wurde beschleunigt. Optimierungen, die spezifisch für die Architekturen x86 und AArch64 sind, wurden hinzugefügt. Die Bandbreite von Ein- und Ausgabe sowie Netzwerkoperationen auf AArch64-Systemen wurde erhöht.
- Optimierungen im virtuellen Speichersystem wurden vorgenommen: Ein schnellerer Radixbaum-Algorithmus wird zur Seitenreservesuche verwendet, die Geschwindigkeit der Verfolgung von sauberen und schmutzigen Speicherseiten wurde erhöht, die fsync-Leistung für große Dateien erheblich verbessert, und die Handhabung von Sperren sowie die Effizienz beim parallelen Ausführen von Operationen wurden verbessert.
- Die Unterstützung für die Festplattverschlüsselung mit dem Adiantum-Algorithmus wurde hinzugefügt, um eine hohe Effizienz auf Systemen ohne Hardwarebeschleunigung für AES-Verschlüsselung zu erreichen. In das cgdconfig-Tool wurde die Unterstützung für gemeinsame Schlüssel integriert, die zur Verschlüsselung mehrerer Laufwerke verwendet werden können. Der Standard-Hash-Algorithmus für Passwörter wurde auf Argon2id geändert. Die automatische Verschlüsselung von Swap-Partitionen (vm.swap_encrypt=1) wurde aktiviert. Außerdem wurde die Unterstützung für hardwarebasierte Verschlüsselungsbeschleunigungsmechanismen, die von x86- und Arm-Prozessoren bereitgestellt werden, wie Anweisungen zur Beschleunigung von AES und ChaCha, hinzugefügt. In der vom Kernel bereitgestellten Softwareimplementation von AES wurde die Ausführungszeit für alle Architekturen konstant gehalten.
- Unterstützung für sicherheitsrelevante Erweiterungen, die in Armv8-A-Prozessoren bereitgestellt werden: PAN (Privileged Access Never), PA (Pointer Authentication), BTI (Branch Target Identification), wurde hinzugefügt.
- Um Sicherheitsprobleme im Kernel zu erkennen, werden die Mechanismen Kernel Concurrency Sanitizer und Kernel Memory Sanitizer eingesetzt.
- Der Netzwerk-Stack implementiert die Unterstützung von RFC 7048, die die Funktionsweise des IPv6 Neighbor Discovery-Mechanismus verbessert und unabhängig von Adressen macht.
- Eine neue Netzwerkschnittstelle lagg wurde hinzugefügt, um Netzverbindungen zu aggregieren und Ausfallsicherheit zu gewährleisten (lagg ersetzt die Schnittstelle agr).
- Der vether-Treiber mit der Implementierung von virtuellen Ethernet-Schnittstellen, die in Netzwerkbrücken und anstelle von tap-Schnittstellen verwendet werden können, wurde hinzugefügt.
- Zur Implementierung von ipsec wurde sysctl net.key.allow_different_idtype hinzugefügt, um die Kompatibilität mit anderen VPNs zu verbessern.
- Die Unterstützung für das UDF-Format (Universal Disk Format, Dateisystem für optische Platten) wurde verbessert, das nun auf Fehlerkompatibilität mit der Implementierung in Windows 10 abgestimmt ist. Das Tool newfs_udf ermöglicht jetzt die Erstellung im UDF 2.50-Format mit einem separaten Abschnitt für Metadaten. Ein neues Tool fsck_udf wurde hinzugefügt, um fehlerhafte Dateisysteme im UDF-Format zu überprüfen und wiederherzustellen.
- Die fstat-Utility unterstützt jetzt ZFS.
- Die Unterstützung des FUSE (Filesystem in Userspace)-Mechanismus wurde erweitert. Der refuse-Treiber bietet vollständige Unterstützung für die API-Varianten von FUSE, die in den Versionen 1.1 bis 3.10 verwendet werden.
- In die Implementierung der Software-RAID wurde die Unterstützung von Konfigurationen mit umgekehrter Byte-Reihenfolge (swapped-endian) hinzugefügt. In die raidctl-Utility wurde die Option „-t“ zum Überprüfen der Korrektheit von Konfigurationsdateien integriert.
- Eine neue Utility namens blkdiscard wurde hinzugefügt, um manuelle TRIM-Operationen auf Laufwerken zum Informieren über ungenutzte Blöcke auszuführen.
- In die scan_ffs-Utility wurde die Möglichkeit integriert, aktuelle Statistiken beim Empfang des SIGINFO-Signals (Ctrl+T) anzuzeigen.
- Neue Programme wurden hinzugefügt:
- aiomixer — Lautstärke-Mixer
- realpath — gibt den absoluten Pfad einer Datei basierend auf dem relativen Pfad aus.
- tradcpp — ein Makroprozessor im K&R C-Stil.
- ioctlprint — zeigt die Werte von ioctl an.
- testpat — gibt eine Testtabelle zur Bewertung der Farbwiedergabe des Bildschirms aus.
- warp — ein klassisches BSD-Spiel.
- In den ctwm integrierte und verwendete Rasterfonts Spleen, die unter der BSD-Lizenz bereitgestellt werden und sowohl für Bildschirme mit niedriger Auflösung als auch für hochauflösende Bildschirme verfügbar sind. Zudem sind die Konsolenschriften Terminus enthalten.
- Im Kompatibilitätsschicht für Linux (compat_linux) wurde die Unterstützung für die Mechanismen eventfd, timerfd, POSIX-Timer, preadv und pwritev hinzugefügt.
- Die Unterstützung für Virtualisierung wurde verbessert. Xen PVH wird nun unterstützt und es ist möglich, Xen PV-Treiber in HVM-basierten Gastsystemen zu verwenden. Die Implementierung der paravirtualisierten Netzwerkschnittstellen wurde verbessert. In den Host-Kerneln (Dom0) für Xen wurde die Unterstützung für Mehrkernsysteme aktiviert. In den Kernen für Xen besteht die Möglichkeit, Module zu verwenden, die mit dem normalen Kern gemeinsam sind. Netzwerk- (xennet) und Block- (xbd) Geräte wurden für Mehrkernsysteme angepasst (erhielten den MPSAFE-Status). Die Unterstützung für den Hypervisor HyperV wurde erheblich verbessert und die Funktionen des Hypervisors nvmm (NetBSD Virtual Machine Monitor) erweitert. Die Möglichkeit zum Wechsel in den Energiesparmodus wurde hinzufügen, während die virtuellen Maschinen in nvmm.
- Die VirtIO-Treiber wurden verbessert, einschließlich der Unterstützung der VirtIO 1.0-Spezifikation. Ein vio9p-Treiber wurde hinzugefügt, um in den Gastbetriebssystemen das VirtIO 9P-Dateisystem zu montieren, das von der Host-Umgebung exportiert wird. Ein viocon-Treiber für virtuelle serielle Ports wurde hinzugefügt.
- Es wurden system calls wie eventfd und timerfd implementiert, die mit Linux kompatibel sind und in compat_linux verwendet werden. Der system call fexecve wurde hinzugefügt, um eine Datei über einen Dateideskriptor auszuführen.
- Veraltete Komponenten wurden entfernt, wie zum Beispiel die Unterstützung für die Technologien HIPPI, FDDI und TokenRing. Die Treiber nsmb und mount_smbfs für SMBFS wurden aus dem Kernel entfernt (unterstützen keine neuen Versionen des SMB-Protokolls). Die Unterstützung für IPv6 Router Advertisement wurde aus dem Kernel in den Benutzermodus verschoben, die Bibliotheken libXTrap, libXevie und libglut wurden entfernt, und die Treiber für viele veraltete Geräte wurden entfernt.
- Die Hardwareunterstützung wurde erheblich erweitert. Unterstützung für die Funktionen neuer Intel- und AMD-Prozessoren wurde sichergestellt. Neu hinzugefügte Unterstützung für neue ARM-Plattformen (Raspberry Pi 4, Orange Pi 5, Lichee Pi Zero, ODROID-N2+, M1 Mac Mini, HummingBoard Pulse, UDOO Neo Full, PINE64 Quartz64, Asus Tinker usw.). Die Architekturunterstützung für MIPS wurde erweitert.
- 17 neue Gerätetreiber wurden hinzugefügt, darunter Treiber für Wacom-Tablets, Realtek 8125 2.5 Gigabit Ethernet, Motorcomm YT8511C / YT8511H Gigabit Ethernet, Intel Ethernet 700, Broadcom GENETv5 Ethernet, Intel QuickAssist Kryptobeschleuniger und Intel XMM7360 LTE-Modems.
- Die Grafiktreiber für Intel-, NVIDIA- und AMD-GPUs für x86-Systeme wurden aktualisiert. Das DRM/KMS-Subsystem wurde mit dem Linux-Kernel 5.6 synchronisiert.
- Die Versionen von Drittanbieter-Komponenten wurden aktualisiert, einschließlich des Fenstermanagers ctwm 4.0.3, gcc 10.5, lua 5.4.6, OpenSSL 3.0.12, postfix 3.8.4, tmux 3.2a, OpenSSH 9.6, X.org Server 21.1.7, BIND 9.18.24, Heimdal Kerberos 7.8.0, unbound 1.19.1, wpa_supplicant 2.9, OpenLDAP 2.5.6, binutils 2.34, libfido2 1.13.0, pam-u2f 1.2.0, zlib 1.2.13.
Quelle: opennet.ru
