Release OpenBSD 7.2

Die Veröffentlichung des freien UNIX-ähnlichen Betriebssystems OpenBSD 7.2 wurde vorgestellt. Das Projekt OpenBSD wurde 1995 von Theo de Raadt nach einem Konflikt mit den Entwicklern von NetBSD gegründet, nach dem Theo der Zugang zum CVS-Repository von NetBSD verwehrt wurde. Daraufhin gründete Theo de Raadt mit einer Gruppe Gleichgesinnter ein neues offenes Betriebssystem basierend auf dem Quellbaum von NetBSD, dessen Hauptziele Portabilität (unterstützt 13 Hardware-Plattformen), Standardisierung, korrekte Funktion, proaktive Sicherheit und integrierte kryptografische Mittel waren. Die Größe des vollständigen Installations-ISO-Images des Basisystems OpenBSD 7.2 beträgt 556 MB.

Neben dem Betriebssystem ist das OpenBSD-Projekt bekannt für seine Komponenten, die in anderen Systemen verbreitet und als einige der sichersten und qualitativ hochwertigsten Lösungen anerkannt sind. Dazu gehören: LibreSSL (Fork von OpenSSL), OpenSSH, das Paketfilter-PF, die Routing-Demons OpenBGPD und OpenOSPFD, der NTP-Server OpenNTPD, der Mailserver OpenSMTPD, der Multiplexer für Textterminals (ähnlich GNU screen) tmux, der Daemon identd mit Implementierung des IDENT-Protokolls, die BSDL-Alternative zum GNU groff-Paket – mandoc, das Protokoll für den Aufbau fehlertoleranter Systeme CARP (Common Address Redundancy Protocol), ein leichtgewichtiger HTTP-Server und das Tool zur Dateisynchronisation OpenRSYNC.

Hauptverbesserungen:

  • Die Unterstützung für ARM-Architektursysteme wurde verbessert, einschließlich Unterstützung für die ARM-Chips Apple M2 und Ampere Altra. Unterstützung für das Lenovo ThinkPad x13s und andere Geräte auf Basis des SoC Qualcomm Snapdragon 8cx Gen 3 (SC8280XP) wurde hinzugefügt.
  • Die Möglichkeit, in Oracle Cloud-Umgebungen mit dem RAM-Disk-Kernel (bsd.rd) und dem Kernel für Multiprozessorsysteme (bsd.mp) zu booten, wurde hinzugefügt.
  • Das kstat-Gerät wurde eingeführt, das Statistiken über die Kernelarbeit exportiert, die mit dem kstat-Tool angezeigt werden können.
  • Für jedes CPU-Kern mit Unterstützung für MPERF/APERF wurden Frequenzsensoren implementiert. Während des Betriebs im Akkubetrieb wird die CPU-Frequenz je nach Last skaliert.
  • Auf ARM64-Systemen wurde eine anfängliche Unterstützung für den Energiesparmodus hinzugefügt. Die Begrenzung der unterstützten CPUs wurde auf 256 erhöht. Es wurde die Möglichkeit umgesetzt, über eine framebuffer-basierte Konsole (glass console) zur seriellen Konsole (serial console) zu wechseln.
  • Der Code zur Erkennung von CPU 386sx/386dx, NexGen, Rise und alten Cyrix-Prozessoren, die vor dem Cyrix M2-Chip veröffentlicht wurden, wurde entfernt.
  • Die Unterstützung für Multiprozessorsysteme (SMP) wurde verbessert. Funktionen zur Bandbreitenbegrenzung (rate limit), zur ARP-Datensatzsuche und zum Route Timer wurden auf mp-safe umgestellt. Es wurde die Möglichkeit für parallele Operationen wie das Umpacken von IPv4-Paketen und das Umleiten von IP-Paketen realisiert. In den Funktionen zur Verarbeitung eingehender UDP- und IP-Pakete wurden Socket-Blockaden eingeführt, die mutex verwenden. Die Systemaufrufe kbind und pledge wurden von Blockierungen befreit. Es wurden Blockierungen für UNIX-Sockets implementiert, die auf der Ebene einzelner Sockets wirken.
  • Die Implementierung des DRM-Frameworks (Direct Rendering Manager) ist mit dem Linux-Kernel 5.15.69 synchronisiert (im vorherigen Release – 5.15.26). Der Intel-DRM-Treiber hat Unterstützung für Intel-Architekturen basierend auf Alder Lake und Raptor Lake hinzugefügt. Unterstützung für nicht seitenaligned Framebuffer wurde implementiert (verwendet, zum Beispiel, im MacBook Pro 2021 14″ und 16″).
  • Verbesserungen wurden im Hypervisor VMM vorgenommen. Im VMD wurde Unterstützung für Benutzerraum-Handler auf Basis von MMIO hinzugefügt. Im VMM wurde die Emulation von Ein- / Ausgabepunkten in den Benutzerraum übertragen. Die internen Strukturen und Schnittstellen in VMD, VMCTL und VMM wurden vereinheitlicht. Monitoring-Funktionen wurden hinzugefügt. virtuelle Maschinen mit Hilfe von SNMP AgentX unter Verwendung der VM-MIB-Parameter (RFC7666).
  • Die Variable $rcexec in den Startup-Skripten rc.d wurde durch die Funktion rc_exec ersetzt. Eine neue Variable daemon_execdir wurde hinzugefügt, die es ermöglicht, das Verzeichnis vor der Ausführung der Funktion rc_exec zu ändern. In rc.d und rcctl wurde eine neue Aktion configtest zum Überprüfen der Syntax der Konfiguration hinzugefügt.
  • Das Paket enthält das Tool ts, das zu den über die Standard-Eingabe empfangenen Zeilen die Zeit hinzufügt, in der jede Zeile empfangen wurde.
  • Im Tool ps wurde die Option „-f“ zur Baumstrukturierung von Prozessen hinzugefügt, die die Beziehungen zwischen übergeordneten und untergeordneten Prozessen widerspiegelt.
  • Im Tool openrsync wurde die Option „—contimeout“ zur Festlegung eines Timeout für die Verbindungsherstellung implementiert.
  • Im Tool pkg_add ist nun standardmäßig das Caching aktiviert, die Arbeit mit Paketen wurde optimiert und es wurde ein Fortschrittsanzeiger für den Übertragungsprozess hinzugefügt.
  • In fdisk wurde die Arbeit mit GPT- und MBR-Tabellen verbessert, Warnungen bei falscher Platzierung von MBR- und GPT-Partitionen wurden hinzugefügt.
  • Im Tool disklabel wurde die Unterstützung des Schlüsselworts raid in Vorlagen für die automatische Platzierung von Partitionen mit RAID hinzugefügt. Die Unterstützung für die Bearbeitung von Festplattengemeinsamkeiten wurde eingestellt. Die Unterstützung für die Attribute 'bs' (Größe des Bootblocks), 'sb' (Größe des Superblocks) und d[0-4] (Festplattendaten) wurde eingestellt.
  • Im Verzeichnis /usr/share/btrace wurde eine Sammlung nützlicher btrace-Skripte für die dynamische Nachverfolgung und Inspektion von Anwendungen bereitgestellt.
  • In die Soundbibliothek sndio wurde die Funktion sio_flush zur sofortigen Beendigung der Wiedergabe hinzugefügt.
  • Das Paket enthält das Tool llvm-profdata zur Verarbeitung von Profiling-Daten.
  • Im Tool wc wurde die Wortzählung beschleunigt.
  • Unterstützung neuer Hardware hinzugefügt, einschließlich neuer Treiber:
    • aplaudio (Audiokomponente von Apple).
    • aplmca (MCA-Controller von Apple).
    • aplsart (Apple SART).
    • alpdc, apldchidev, apldckbd, apldcms, aplrtk (Tastatur und Trackpad von Apple M2).
    • qcgpio, qciic (GPIO- und GENI I2C-Controller für Qualcomm Snapdragon).
    • sfgpio, stfclock, stfpinctrl, stftemp (Treiber für GPIO, Timer und Sensoren von SiFive-Platinen).
    • sxirintc (Interrupt-Controller für Allwinner-Chips).
    • gpiorestart (Treiber für einen GPIO-Reset).
    • IPMI hat die Unterstützung für Stromsensoren erweitert.
    • Im EHCI wurde die Unterstützung für den Controller hinzugefügt, der auf Marvell 3720-Platinen verwendet wird.
  • Der IGC-Treiber für Gigabit-Ethernet-Adapter Intel I225 enthält Hardwarebeschleunigung für die Berechnung von Prüfziffern für IPv4, TCP und UDP. Im IX-Treiber für Ethernet-Adapter Intel 82598/82599/X540/X550 wurde Hardwarebeschleunigung für die Verarbeitung von TCP-Segmenten (Large Receive Offloading) implementiert, die über die Option tso in ifconfig aktiviert wird.
  • Der IWX-Treiber unterstützt Intel AX210/AX211-Chips und erweitert die Palette der erkannten drahtlosen Geräte.
  • Die Möglichkeit zum Booten von Software-RAID-1-Partitionen (softraid) auf amd64-, sparc64- und arm64-Systemen wurde hinzugefügt.
  • In SNMPD und XLOCK wurde eine Privilegientrennung implementiert.
  • In den Funktionen bind und connect für UNIX-Sockets wurde eine Isolierung basierend auf dem Systemaufruf unveil sichergestellt.
  • Ein neuer Systemaufruf ypconnect wurde hinzugefügt, um einen Socket für die Verbindung zu Server YP unter Verwendung einer IP-Adresse aus der gesperrten Datei ypbinding zu erstellen. Im YPLDAP wurde der Modus 'local bind' hinzugefügt, der die Bindung des RPC-Sockets an das Loopback-Interface ermöglicht, um externe Verbindungen zum Server auszuschließen.
  • Die im Verzeichnis /sbin platzierten Programme hcpleased, mountd, nfsd, pflogd, resolvd, slaacd und unwind wurden auf dynamisches Linking umgestellt, um zusätzliche Sicherheitsmaßnahmen für dynamisch gelinkte ausführbare Dateien zu aktivieren.
  • Im Netzwerk-Stack wurden die Systemaufrufe sendmmsg und recvmmsg implementiert, die es ermöglichen, im Rahmen eines einzigen Systemaufrufs mehrere Nachrichten zu senden und zu empfangen, die zuvor separate Aufrufe von sendmsg und recvmsg erforderten.
  • Im Paketfilter PF wurde die Verarbeitung von IGMP- und ICMP6-MLD-Paketen (Multicast Listener Discovery) geändert, was die Arbeit mit Steuer-Multicast-Paketen in der Standardkonfiguration verbessert hat. Eine strengere Überprüfung von IGMP/MLD-Nachrichten wurde implementiert.
  • In IPsec wurde die Arbeit mit Zertifikaten verbessert. In iked wurde die Kompatibilität mit OpenIKED verbessert. Der Befehl ikectl show stats gibt jetzt Statistiken über erfolgreiche und fehlerhafte Verbindungen zu iked aus.
  • In bgpd wurde ein Filter max-communities hinzugefügt, um die Anzahl der erlaubten Communities zu begrenzen. RFC 9234 (Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages) wurde implementiert, und die vollständige Unterstützung von RFC 7911 (Advertisement of Multiple Paths in BGP) wurde sichergestellt. Statische Hashes wurden durch RB-Bäume ersetzt, um die Leistung großer Systeme zu steigern. Ein Prozess bgplgd wurde hinzugefügt, der einen FastCGI-Server mit REST API für die Befehle bgpctl bereitstellt.
  • Im rpki-client wurde die Verwendung mehrerer CRL-URIs in Zertifikaten erlaubt. Ein Parameter skiplist wurde implementiert, um Domains zu ignorieren. Die Möglichkeit zur Überprüfung von ASPA (Autonomous System Provider Authorization) und sig-Dateien wurde hinzugefügt, die Dekodierung von TAL (RFC 8630) wurde implementiert, die Überprüfung von EE-Zertifikaten wurde verschärft und die Kompatibilität mit den HTTP-Spezifikationen wurde verbessert.
  • In snmpd wurde die Verwendung von Objektnamen anstelle von OID in snmpd.conf erlaubt. Es wurde die Möglichkeit hinzugefügt, eine schwarze Liste zum Ausschließen von Teilbäumen von der Ausgabe festzulegen. Die Implementierung des AgentX-Protokolls wurde um die Unterstützung des Master-Agenten erweitert.
  • Im httpd wurden neue MIME-Typen definiert.
  • Das ftp-Tool wurde auf die Verwendung von Verbindungen umgestellt, die im nicht blockierenden Modus mit ppoll verarbeitet werden.
  • In tmux („Terminal-Multiplexer“) wurde die Möglichkeit zur Verwendung von ACLs hinzugefügt, um die Verbindung mehrerer Benutzer über einen Socket zu organisieren.
  • Die Pakete LibreSSL und OpenSSH wurden aktualisiert. Eine detaillierte Übersicht der Verbesserungen kann in den Berichten zu LibreSSL 3.6.0 und OpenSSH 9.1 eingesehen werden.
  • Die Anzahl der Ports für die Architektur AMD64 beträgt 11451 (vorher 11301), für aarch64 — 11261 (vorher 11081), für i386 — 10225 (vorher 10136). Unter den Anwendungsversionen in den Ports befinden sich:
    • Asterisk 16.28.0, 18.14.0 und 19.6.0
    • Audacity 2.4.2
    • CMake 3.24.2
    • Chromium 105.0.5195.125
    • Emacs 28.2
    • FFmpeg 4.4.2
    • GCC 8.4.0 und 11.2.0
    • GHC 9.2.4
    • GNOME 42.4
    • Go 1.19.1
    • JDK 8u342, 11.0.16 und 17.0.4
    • KDE Gear 22.08.1
    • KDE Frameworks 5.98.0
    • Krita 5.1.1
    • LLVM/Clang 13.0.0
    • LibreOffice 7.4.1.2
    • Lua 5.1.5, 5.2.4 und 5.3.6
    • MariaDB 10.9.3
    • Mono 6.12.0.182
    • Mozilla Firefox 105.0.1 und ESR 102.3.0
    • Mozilla Thunderbird 102.3.0
    • Mutt 2.2.7 und NeoMutt 20220429
    • Node.js 16.17.1
    • OCaml 4.12.1
    • OpenLDAP 2.6.3
    • PHP 7.4.30, 8.0.23 und 8.1.10
    • Postfix 3.7.2
    • PostgreSQL 14.5
    • Python 2.7.18, 3.9.14 und 3.10.7
    • Qt 5.15.6 und 6.3.1
    • R 4.2.1
    • Ruby 2.7.6, 3.0.4 und 3.1.2
    • Rust 1.63.0
    • SQLite 3.39.3
    • Shotcut 22.06.23
    • Sudo 1.9.11.2
    • Suricata 6.0.6
    • Tcl/Tk 8.5.19 und 8.6.12
    • TeX Live 2021
    • Vim 9.0.0192 und Neovim 0.7.2
    • Xfce 4.16
  • Die Komponenten von Drittanbietern, die in OpenBSD 7.2 enthalten sind, wurden aktualisiert:
    • Der Grafik-Stack Xenocara basiert auf X.Org 7.7 mit xserver 1.21.4 + Patches, freetype 2.12.1, fontconfig 2.13.94, Mesa 22.1.7, xterm 372, xkeyboard-config 2.20, fonttosfnt 1.2.2.
    • LLVM/Clang 13.0.0 (+ Patches)
    • GCC 4.2.1 (+ Patches) und 3.3.6 (+ Patches)
    • Perl 5.32.1 (+ Patches)
    • NSD 4.6.0
    • Unbound 1.16.3
    • Ncurses 5.7
    • Binutils 2.17 (+ Patches)
    • Gdb 6.3 (+ Patch)
    • Awk 12.9.2022
    • Expat 2.4.9

Quelle: opennet.ru

60GB SSD 8Gb DDR4