OpenBSD 7.7 veröffentlicht

Die Veröffentlichung des freien UNIX-ähnlichen Betriebssystems OpenBSD 7.7 wurde vorgestellt. Das Projekt OpenBSD wurde 1995 von Theo de Raadt nach einem Konflikt mit den Entwicklern von NetBSD gegründet, der dazu führte, dass Theo der Zugriff auf das CVS-Repository von NetBSD verweigert wurde. Daraufhin schuf Theo de Raadt mit einer Gruppe Gleichgesinnter auf der Basis des Quellbaum von NetBSD ein neues Open-Source-Betriebssystem, dessen Hauptziele Portabilität (unterstützt 13 Hardware-Plattformen), Standardisierung, korrekte Funktionsweise, proaktive Sicherheit und integrierte kryptografische Mittel sind. Die Größe des vollständigen Installations-ISO-Images des Basissystems OpenBSD 7.7 beträgt 746 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.

Hauptänderungen:

  • Die Umsetzung des drm (Direct Rendering Manager)-Frameworks ist mit dem Kernel Linux 6.12.21 synchronisiert (in der vorherigen Version – 6.6.52). Im Treiber inteldrm wurde die Unterstützung für die in Intel-Prozessoren basierende Mikroarchitektur Arrow Lake implementiert. Im Treiber amdgpu wurde die Unterstützung für die GPU Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) und Radeon RX 9070 (Navi 48) hinzugefügt.
  • Im Port für die Architektur ARM64 wurde die Unterstützung des Vektoroperationssatzes SVE (Scalable Vector Extension) implementiert. Auf Systemen mit ARM-Chips von Apple M1 wurde das Energiemanagement implementiert. Im Mechanismus zur Abbildung physischer Speicherseiten (pmap, physische Abbildung) wurden die Puffer-Ausscheidungsoperationen der assoziativen Übersetzung (TLB) optimiert, was die Ausführung des Kernels um etwa 5 % beschleunigte. Auf Geräten, die den QARMA3-Verschlüsselungsalgorithmus zur Sicherung des Adressraums des Benutzers unterstützen, ist die Zeiger-Authentifizierung (PAC, Pointer Authentication Code) aktiviert.
  • Auf x86_64-Systemen, die Gastbetriebssysteme mittels QEMU ausführen, wurde die Unterstützung des Mechanismus AMD SEV (Secure Encrypted Virtualization) implementiert, der in Virtualisierungssystemen zum Schutz eingesetzt wird. virtuelle Maschinen vor Eingriffen durch den Hypervisor oder den Administrator des Host-Systems. Im Driver psp, der zur Konfiguration und zum Start von Gastbetriebssystemen mit aktiviertem AMD SEV verwendet wird, wurde ein Befehl hinzugefügt, um die Firmware in den Chip zu laden.
  • Auf x86_64-Systemen wurde die Möglichkeit hinzugefügt, für DMA Bereiche des Hauptspeichers größer als 4 GB zuzuweisen.
  • Die Unterstützung für die Architekturen RISC-V, Sparc64, HPPA, i386 und Powerpc64 wurde verbessert.
  • Die Behandlung von Situationen des Speichermangels im System (OOM) wurde verbessert.
  • Die ptrace-Trace-Mechanismen wurden um Funktionen erweitert, die es ermöglichen, Haltepunkte im Debugger gdb in Mehrfach-Threads-Prozessen zu setzen. Befehle zum Lesen und Schreiben des Bereichs, in dem im nachverfolgten Prozess der Zustand des Prozessors mithilfe des Befehls XSAVE gespeichert wird, wurden hinzugefügt.
  • In Skripten in der Sprache BT (BPFtrace oder Bug Tracing), die im btrace-Tracing-System verwendet werden, wurde die Unterstützung für mehrzeilige Konstruktionen hinzugefügt. Der btrace-Utility wurden zusätzliche Profile und Benennungen von Zeitintervallen (hz, us, ms, s) hinzugefügt.
  • Ein sysctl-Parameter kern.audio.kbdcontrol wurde hinzugefügt, dessen Einstellung auf 0 Multimedia-Tasten zur Lautstärkeregelung auf der Tastatur wie normale Tasten behandelt.
  • Die Behandlung von Fehlern wurde verbessert und die Überprüfungen beim Wechsel in den Ruhezustand und den Wartemodus wurden erweitert.
  • Der Code zum Stoppen von Prozessen beim Eintreffen eines Signals wurde überarbeitet, was Probleme mit dem Stoppen von Mehrfach-Threads-Prozessen behoben hat, die in Paketen wie golang und mpv aufgetreten sind.
  • Die Unterstützung für multiprozessorfähige Systeme (SMP) wurde verbessert. Die gleichzeitige Verarbeitung von TCP-Ein- und -Ausgabe-Timern wurde sichergestellt, während die Systemaufrufe send() und recv() auf die Verwendung von gemeinsamen Sperren umgestellt wurden. Mehrere Benutzer-Threads können nun parallel mit verschiedenen Sockets arbeiten, ohne dass die TCP-Ausgabe die Verarbeitung von IP-Paketen blockiert.

    Die Systemaufrufe open, openat, ptsignal, psignal und prsignal sowie sysctl kern.timeout_stats, kern.allowkmem, kern.video.record, net.inet.gre.allow, net.inet.gre.wccp, kern.global_ptrace, kern.wxabort, kern.malloc.kmemstat wurden von der globalen Sperre befreit. Die Treiber psp, wsmouse und wstpad sowie die Struktur video_filtops wurden zu mp-safe konvertiert.

  • Im Hypervisor VMM wurde die Möglichkeit implementiert, acpipci zur Anbindung von PCI-Bussen zu verwenden.
  • Es besteht die Möglichkeit, eine alternative Leistungsrichtlinie (perfpolicy) zu definieren, die beim Betrieb des Systems von der Batterie angewendet wird.
  • In das sysctl-Kommando wurde die Option „-f file“ hinzugefügt, um alle Einstellungen aus einer Datei auf einmal zu laden. In den rc-Skripten wird die neue Option verwendet, um sysctl.conf vollständig zu laden, anstatt sie zeilenweise zu parsen.
  • Im Befehl pkg_add wurde ein Aufruf von ldconfig implementiert, wenn sich die Liste der gemeinsam genutzten Bibliotheken als Ergebnis der Installation neuer Pakete geändert hat.
  • Die Unterstützung neuer Hardware wurde hinzugefügt. Die Unterstützung für die SoC MediaTek und Qualcomm Snapdragon (einschließlich X Elite) wurde verbessert. Die Unterstützung für Geräte wie das Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 und verschiedene Chromebook wurde verbessert. Der Treiber ice für Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb und der Treiber ixv für virtuelle Funktionen von Intel Ethernet 82598EB, 82559 und X540 wurden hinzugefügt. Die Arbeit zur Auslagerung von Netzoperationen auf die Grafikkarten wurde fortgesetzt.
  • Im sysupgrade wurde ein Modus für Offline-Updates von Systemen mit Paketen, die im lokalen Dateisystem gespeichert sind, implementiert.
  • Im Dienstprogramm fw_update wurde die Möglichkeit zur Bereitstellung (nicht Installation) von Firmware für normale Benutzer ohne Root-Rechte hinzugefügt. Ein Flag „-l“ wurde hinzugefügt, um eine Liste von Treibern und Dateien anzuzeigen.
  • Für den Prozess sshd-auth wurde ein Schutz gegen die Ausnutzung von Sicherheitsanfälligkeiten aktiviert, der auf einer zufälligen Umstrukturierung der ausführbaren Datei bei jedem Systemstart basiert (relink). Die Umstrukturierung erschwert vorhersehbare Offset-Positionen von Funktionen, was die Erstellung von Exploits, die auf rückkehrorientierten Programmiermethoden basieren, erschwert.
  • Die Isolierung des mountd-Prozesses wurde mit dem Systemaufruf unveil sichergestellt.
  • Im Netzwerk-Stack wurde die Unterstützung für Sockets AF_FRAME und die Protokollfamilie IFT_ETHER implementiert, wodurch Anwendungen Ethernet-Frames senden und empfangen können. Für ausgehende UDP- und TCP-Pakete wurde eine neue Hashing-Methode verwendet, die die Verteilung des Traffics auf Warteschlangen optimiert und die UDP-Übertragung für IPv4/IPv6 und TCP für IPv6 erheblich (~20%) beschleunigt. Für das Gerät tun wurde ioctl TUNSCAP implementiert und die Interaktion zwischen Kernel und Benutzerraum optimiert. Für jeden Thread wurde ein separater Routing-Cache implementiert. Im Treiber vio wurde der Modus multiqueue aktiviert.
  • Im Dienstprogramm pfctl wurde die Definition von Bandbreiten für Netzwerkinterfaces und Warteschlangen, die 4 GBit überschreiten, ermöglicht.
  • In iked, der Implementierung des IKEv2-Protokolls für IPsec, wurde die Option „natt“ hinzugefügt, um nat-t zwangsweise zu verwenden.
  • In relayd, einem Hintergrundprozess zur Umleitung und Lastverteilung von Anfragen, wurde die Unterstützung für Client-Zertifikate implementiert. TLS-Zertifikate.
  • Das Netzwerkleistungs-Messwerkzeug tcpbench unterstützt jetzt TLS.
  • In bgpd wurde die Unterstützung für RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message) implementiert, standardmäßig ist die Option „reject as-set“ aktiviert, und es wurde ein Caching für Adj-RIB-Out bereitgestellt.
  • In LibreSSL 4.1.0 wurde experimentelle Unterstützung für die Architektur loongarch64 hinzugefügt, es wurden neue Assembler-Implementierungen der Algorithmen SHA-1, SHA-256 und SHA-512 für die Architektur amd64 (SHA-NI-Befehl aktiviert), neue Assembler-Implementierungen für SHA-256 und SHA-512 für Aarch64 (CE-Erweiterung aktiviert), und die MD5-Implementierung für amd64 wurde vereinfacht, auch wurde ein Caching der Rückrufzertifikatslisten (CRLs) gewährleistet, und die Implementierung von ML-KEM 768 und 1024 wurde aus BoringSSL portiert.
  • OpenSSH wurde aktualisiert. Die Änderungsprotokoll kann im Ankündigung von OpenSSH 10 eingesehen werden (Unterstützung für digitale DSA-Signaturen entfernt, Authentifizierungsoperationen in einen separaten Prozess sshd-auth ausgegliedert, standardmäßig ist der hybride Schlüsselwechselalgorithmus „mlkem768x25519-sha256“ aktiviert).
  • Die Anzahl der Ports für die Architektur AMD64 beträgt 12593 (früher 12312), für aarch64 — 12446 (früher 12148), für i386 — 10429 (früher 10534). Unter den Versionen der Anwendungen in den Ports:
    • Asterisk 16.30.1, 18.26.1, 20.13.0 und 22.3.0
    • Audacity 3.7.3
    • CMake 3.31.6
    • Chromium 135.0.7049.52
    • Emacs 30.1
    • FFmpeg 6.1.2
    • GCC 8.4.0 und 11.2.0
    • GNOME 47
    • Go 1.24.1
    • JDK 8u442, 11.0.26, 17.0.14 und 21.0.6
    • KDE Gears 24.12.3
    • KDE Frameworks 6.12.0
    • KDE Plasma 6.3.3
    • Krita 5.2.9
    • LLVM/Clang 13.0.0, 16.0.6, 18.1.8, 19.1.7
    • LibreOffice 25.2.1.2
    • Lua 5.1.5, 5.2.4, 5.3.6, 5.4.7
    • MariaDB 11.4.5
    • Mono 6.12.0.199
    • Mozilla Firefox 137.0 und ESR 128.9.0
    • Mozilla Thunderbird 128.9.0
    • Mutt 2.2.14 und NeoMutt 20250113
    • Node.js 22.14.0
    • OpenLDAP 2.6.9
    • PHP 8.2.28, 8.3.19 und 8.4.5
    • Postfix 3.10.1
    • PostgreSQL 17.4
    • Python 2.7.18 und 3.12.9
    • Qt 5.15.16 (+ KDE-Projekt-Patches) und 6.8.2
    • Ruby 3.2.8, 3.3.7, 3.4.2
    • Rust 1.86.0
    • SQLite 3.49.1
    • Shotcut 25.01.25
    • Sudo 1.9.16p1
    • Suricata 7.0.7
    • Tcl/Tk 8.5.19 und 8.6.16
    • Vim 9.1.1265 und Neovim 0.10.4
    • Xfce 4.20.0
  • Die Komponenten von Drittanbietern in OpenBSD 7.7 wurden aktualisiert:
    • Der Xenocara-Grafikstack auf Basis von X.Org 7.7 mit xserver 21.1.16 + Patches, freetype 2.13.3, fontconfig 2.15.0, Mesa 23.3.6, xterm 395, xkeyboard-config 2.20, fonttosfnt 1.2.4.
    • LLVM/Clang 16.0.6 (+ Patches)
    • GCC 4.2.1 (+ Patches) und 3.3.6 (+ Patches)
    • Perl 5.40.1 (+ Patches)
    • NSD 4.9.1
    • Unbound 1.22.0
    • Ncurses 6.4
    • Binutils 2.17 (+ Patches)
    • Gdb 6.3 (+ Patches)
    • Awk 20250116
    • Expat 2.7.1
    • zlib 1.3.1 (+ Patches)

Quelle: opennet.ru

60GB SSD 8Gb DDR4