Eineinhalb Jahre nach der Veröffentlichung des letzten Updates wurde die Version 10 des Betriebssystems NetBSD veröffentlicht. Es stehen Installationsabbilder mit einer Größe von 630 MB zum Download bereit, die für 57 Systemarchitekturen und 16 verschiedene CPU-Familien verfügbar sind. Der neue Branch umfasst eine Reihe wesentlicher Verbesserungen, wie die Unterstützung von Zugriffskontrolllisten im FFS-Dateisystem, signifikante Leistungsoptimierungen, die Verschlüsselung von Festplatten mit dem Adiantum-Algorithmus und die Implementierung eines Treibers für die VPN-Technologie 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 verfügen nicht über genügend interessierte Entwickler für ihre Weiterentwicklung. Ein Port (acorn26) gehört zur dritten Kategorie, in der nicht funktionierende Ports untergebracht sind, die auf Löschung beantragt werden, sofern sich keine interessierten Enthusiasten zur Weiterentwicklung finden.
Wesentliche Verbesserungen in NetBSD 10:
- Im FFS-Dateisystem wurde die Unterstützung für Zugriffskontrolllisten (POSIX.1e ACL) hinzugefügt, die mithilfe von erweiterten Datei-Attributen realisiert und aus FreeBSD übernommen wurde. Für die Nutzung von ACL wurde ein neuer Dateisystemtyp FFSv2ea vorgeschlagen (nicht standardmäßig aktiviert), auf den bestehende Dateisysteme mit dem Tool fsck_ffs umgestellt werden können.
- Ein Netzwerkinterface wg wurde mit der Implementierung VPN, die mit WireGuard kompatibel ist, hinzugefügt.
- Die Leistungsoptimierung wurde durchgeführt. Die Effizienz des Caches von Dateipfaden im Kernel wurde erhöht. Die Leistung des Job-Schedulers, der für die Arbeit auf big.LITTLE Arm-Systemen optimiert ist, wurde verbessert, welche schnelle und langsame CPU-Kerne kombinieren. Die Leistung der Systemaufrufe select und poll wurde gesteigert. Die Leistung des tmpfs-Dateisystems wurde erhöht. Der Boot-Prozess wurde beschleunigt. Es wurden architekturspezifische Optimierungen für x86 und AArch64 hinzugefügt. Die Eingabe-Ausgabe- und Netzwerkbetriebskapazität auf AArch64-Systemen wurde erhöht.
- Optimierungen im System des virtuellen Speichers wurden umgesetzt: Ein schnellerer Radix-Baum-Algorithmus wird zur Suche nach Speicherseiten verwendet, die Geschwindigkeit der Verfolgung von sauberen und schmutzigen Speicherseiten wurde erhöht, die Leistung von fsync für große Dateien wurde erheblich verbessert, und die Verwaltung von Sperren sowie die Effizienz paralleler Ausführung von Operationen wurden optimiert.
- Die Unterstützung für die Verschlüsselung von Festplatten mit dem Adiantum-Algorithmus wurde hinzugefügt, was eine hohe Effizienz auf Systemen ohne hardwarebeschleunigte AES-Verschlüsselung ermöglicht. Das Dienstprogramm cgdconfig unterstützt jetzt gemeinsam genutzte Schlüssel, die zur Verschlüsselung mehrerer Speichergeräte 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) ist aktiviert worden. Es wurde Unterstützung für hardwarebasierte Beschleunigungsmechanismen zur Verfügung gestellt, die von x86- und Arm-Prozessoren bereitgestellt werden, z.B. Instruktionen zur Beschleunigung von AES und ChaCha. In der vom Kernel bereitgestellten Software-Implementierung von AES wird für alle Architekturen eine konstante Ausführungszeit sichergestellt.
- Die Unterstützung für sicherheitsrelevante Erweiterungen, die von Armv8-A-Prozessoren bereitgestellt werden, wurde hinzugefügt: PAN (Privileged Access Never), PA (Pointer Authentication), BTI (Branch Target Identification).
- Um Sicherheitsprobleme im Kernel zu identifizieren, wurden die Mechanismen Kernel Concurrency Sanitizer und Kernel Memory Sanitizer eingesetzt.
- Im Netzwerk-Stack wurde die Unterstützung für RFC 7048 umgesetzt, die die Funktionalität des IPv6 Neighbor Discovery verbessert und unabhängig von IP-Adressen macht.
- Eine neue Netzwerk-Schnittstelle lagg wurde hinzugefügt, um Netzwerkverbindungen zu aggregieren und Redundanz zu gewährleisten (lagg ersetzt die Schnittstelle agr).
- Der Treiber vether wurde mit der Implementierung virtueller Ethernet-Schnittstellen hinzugefügt, die in Netzwerkbrücken und als Ersatz für tap-Schnittstellen verwendet werden können.
- Der Implementierung von ipsec wurde der 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 Medien) wurde verbessert, welches jetzt fehlerkompatibel mit der Implementierung aus Windows 10 ist. Im Dienstprogramm newfs_udf wurde die Möglichkeit zur Erstellung im UDF 2.50-Format mit separater Partition für Metadaten hinzugefügt. Zusätzlich wurde das Dienstprogramm fsck_udf für die Überprüfung und Wiederherstellung fehlerhafter Dateisysteme im UDF-Format bereitgestellt.
- Im Dienstprogramm fstat wurde die Unterstützung für ZFS hinzugefügt.
- Die Unterstützung des FUSE-Mechanismus (Filesystem in Userspace) wurde erweitert. Der Treiber refuse bietet vollständige Unterstützung für die von 1.1 bis 3.10 verwendeten FUSE-API-Varianten.
- In die Implementierung der Software-RAID wurde die Unterstützung von Konfigurationen mit vertauschter Byte-Reihenfolge (swapped-endian) hinzugefügt. Die Utility raidctl wurde um die Option „-t“ zur Überprüfung der Gültigkeit von Konfigurationsdateien erweitert.
- Ein neues Utility blkdiscard wurde hinzugefügt, um manuelle TRIM-Operationen auf Laufwerken zur Informierung über ungenutzte Blöcke durchzuführen.
- Das Utility scan_ffs ermöglicht jetzt die Anzeige aktueller Statistiken bei Empfang des SIGINFO-Signals (Strg+T).
- Neu enthaltene Programme:
- aiomixer — Audio-Mixer
- realpath — gibt den absoluten Pfad zu einer Datei basierend auf dem relativen Pfad aus.
- tradcpp — Makroprozessor im K&R C-Stil.
- ioctlprint — zeigt ioctl-Werte an.
- testpat — gibt eine Testtabelle zur Bewertung der Farbgenauigkeit des Bildschirms aus.
- warp — klassisches Spiel der BSD-Systeme.
- Rasterfonts Spleen, die unter der BSD-Lizenz zur Verfügung stehen und sowohl für Bildschirme mit niedriger Auflösung als auch für hochauflösende Displays geeignet sind, sind jetzt in ctwm enthalten und aktiviert. Außerdem sind Consolenschriften Terminus enthalten.
- Im Kompatibilitätsschicht zu 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. Es wurde die Unterstützung für Xen PVH hinzugefügt, und die Verwendung von Xen PV-Treibern in HVM-basierten Gastsystemen wurde ermöglicht. Die Implementierung der paravirtualisierten Netzwerkinterfaces wurde ebenfalls verbessert. In den Host-Kernen (Dom0) für Xen wurde die Unterstützung für Multiprozessorsysteme aktiviert. In den Kernen für Xen wurde die Möglichkeit zur Verwendung gemeinsamer Module mit dem normalen Kern bereitgestellt. Netzwerk (xennet) und Block (xbd) Geräte wurden für Multiprozessorsysteme angepasst (erhielten den Status MPSAFE). Die Unterstützung für den Hypervisor HyperV wurde erheblich verbessert und die Möglichkeiten des Hypervisors nvmm (NetBSD Virtual Machine Monitor) erweitert. Es wurde die Möglichkeit hinzugefügt, in den Energiesparmodus zu wechseln, während virtuelle Maschinen in nvmm.
- Die VirtIO-Treiber wurden verbessert, die jetzt die Unterstützung der VirtIO 1.0-Spezifikation implementieren. Ein vio9p-Treiber wurde hinzugefügt, um die VirtIO 9P-Dateisysteme, die von der Host-Umgebung exportiert werden, in Gastsystemen zu montieren. Ein viocon-Treiber für den virtuellen seriellen Port wurde hinzugefügt.
- Es wurden systemische Aufrufe eventfd und timerfd implementiert, die mit Linux kompatibel sind und in compat_linux verwendet werden. Ein systemischer Aufruf fexecve wurde hinzugefügt, um eine Datei über einen Dateideskriptor auszuführen.
- Veraltete Komponenten wurden entfernt, zum Beispiel wurde die Unterstützung für die Technologien HIPPI, FDDI und TokenRing eingestellt, 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 vom Kernel in den Benutzerraum verschoben, die Bibliotheken libXTrap, libXevie und libglut wurden entfernt, sowie viele Treiber für veraltete Geräte.
- Die Unterstützung für Hardware wurde erheblich erweitert. Es wurde Unterstützung für die Möglichkeiten neuer Intel- und AMD-Prozessoren bereitgestellt. 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.) wurden hinzugefügt. Die Unterstützung der MIPS-Architektur wurde erweitert.
- 17 neue Gerätetreiber wurden hinzugefügt, darunter Treiber für Wacom-Tabletts, Realtek 8125 2.5 Gigabit Ethernet, Motorcomm YT8511C / YT8511H Gigabit Ethernet, Intel Ethernet 700, Broadcom GENETv5 Ethernet, Intel QuickAssist-Krypto-Beschleuniger und LTE-Modems Intel XMM7360.
- 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 Drittkomponenten 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
