Die Veröffentlichung des freien, UNIX-ähnlichen Betriebssystems OpenBSD 7.7 wurde vorgestellt. Das OpenBSD-Projekt wurde 1995 von Theo de Raadt gegründet, nachdem es zu einem Konflikt mit den Entwicklern von NetBSD kam, infolgedessen der Zugang von Theo zum CVS-Repository von NetBSD gesperrt wurde. Danach gründete Theo de Raadt mit einer Gruppe Gleichgesinnter auf Basis des Quellbaum von NetBSD ein neues freies Betriebssystem, dessen Hauptziele Portabilität (unterstützt 13 Hardwareplattformen), Standardisierung, Zuverlässigkeit, proaktive Sicherheit und integrierte kryptografische Mittel sind. Die Größe des vollständigen Installations-ISO-Images des Basisbetriebsystems OpenBSD 7.7 beträgt 746 MB.
Neben dem Betriebssystem ist das OpenBSD-Projekt für seine Komponenten bekannt, die in anderen Systemen weit verbreitet sind und sich als eine der sichersten und qualitativ hochwertigsten Lösungen etabliert haben. Dazu gehören: LibreSSL (ein Fork von OpenSSL), OpenSSH, der Paketfilter PF, die Routing-Dämonen OpenBGPD und OpenOSPFD, der NTP-Server OpenNTPD, der Mailserver OpenSMTPD, der Terminalsynchronisierer tmux (eine Alternative zu GNU screen), der identd-Dämon mit der Implementierung des IDENT-Protokolls, die BSDL-Alternative zum GNU groff-Paket – mandoc, das Protokoll zur Einrichtung von ausfallsicheren Systemen CARP (Common Address Redundancy Protocol), ein leichter HTTP-Server und das Dateisynchronisierungstool OpenRSYNC.
Wesentliche Änderungen:
- Die Implementierung des Frameworks drm (Direct Rendering Manager) wurde mit dem Linux-Kernel 6.12.21 synchronisiert (in der vorherigen Version — 6.6.52). Der Treiber inteldrm unterstützt die GPU, die in Intel-Prozessoren der Mikroarchitektur Arrow Lake verwendet wird. 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 ARM64-Architektur wurde die Unterstützung des SVE (Scalable Vector Extension)-Befehlssatzes implementiert. Auf Systemen mit Apple M1 ARM-Chips wird der Energieverbrauch über den Energiestatus gesteuert. Im Mechanismus der Abbildung physischer Speicherseiten (pmap, physical mapping) wurden die Operationen zum Leeren des TLB (Translation Lookaside Buffer) optimiert, was die Durchführung des Kernel-Bautests um etwa 5 % beschleunigte. Auf Geräten mit Unterstützung des QARMA3-Verschlüsselungsmechanismus wurde zur Sicherung des Benutzerspeichers die Zeiger-Autentifizierung (PAC, Pointer Authentication Code) aktiviert.
- Auf x86_64-Systemen wurde für Gastsysteme, die mit QEMU betrieben werden, die Unterstützung des AMD SEV (Secure Encrypted Virtualization)-Mechanismus implementiert, der in Virtualisierungssystemen zum Schutz eingesetzt wird. virtuellen Maschinen vor Eingriffen durch den Hypervisor oder den Administrator des Host-Systems. Im psp-Treiber, der für die Konfiguration und den Start von Gastsystemen mit aktivem AMD SEV verwendet wird, wurde ein Befehl zum Laden der Firmware in den Chip hinzugefügt.
- Auf x86_64-Systemen wurde die Möglichkeit hinzugefügt, DMA-Bereiche mit mehr als 4 GB Speicher zuzuweisen.
- Die Unterstützung der Architekturen RISC-V, Sparc64, HPPA, i386 und Powerpc64 wurde verbessert.
- Die Verarbeitung von Situationen mit speicherknappen Systemen (OOM) wurde optimiert.
- Im ptrace-Tracking-Mechanismus wurden Funktionen hinzugefügt, die es ermöglichen, im Debugger gdb Haltepunkte in Mehrprozessanwendungen zu setzen. Befehle zum Lesen und Schreiben des Bereichs wurden hinzugefügt, in dem der Zustand der CPU im überwachten Prozess unter Verwendung des XSAVE-Befehls gespeichert wird.
- In Skripten in der Sprache BT (BPFtrace oder Bug Tracing), die im btrace-Tracking-System verwendet werden, wurde die Unterstützung für mehrzeilige Konstruktionen hinzugefügt. Der btrace-Dienstprogramm enthält zusätzliche Profile und Benennungen für Zeitintervalle (hz, us, ms, s).
- Der sysctl-Parameter kern.audio.kbdcontrol wurde hinzugefügt, bei dem Multimedia-Tasten zur Lautstärkesteuerung auf der Tastatur, wenn auf 0 gesetzt, als normale Tasten behandelt werden.
- Die Verarbeitung von Fehlern wurde verbessert und die Überprüfungen beim Wechsel in den Schlafmodus und den Ruhezustand wurden erweitert.
- Der Code zum Stoppen von Prozessen beim Empfang eines Signals wurde überarbeitet, was Probleme mit dem Anhalten von Mehrprozessanwendungen löste, die sich in Paketen wie golang und mpv zeigten.
- Verbesserte Unterstützung für Mehrprozessorsysteme (SMP). Die parallele Ausführung von Eingabe- und Ausgabetimern über TCP wurde gewährleistet, und die Systemaufrufe send() und recv() verwenden jetzt eine gemeinsame Sperre. Mehrere Benutzer-Threads können nun parallel mit unterschiedlichen Sockets arbeiten, wobei die TCP-Ausgabe die Verarbeitung von IP-Paketen nicht mehr blockiert.
Die globalen Sperren wurden bei den Systemaufrufen open, openat, ptsignal, psignal und prsignal sowie bei 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 entfernt. Die Treiber psp, wsmouse und wstpad sowie die Struktur video_filtops wurden als mp-safe klassifiziert.
- Im Hypervisor VMM wurde die Möglichkeit zur Verwendung von acpipci zur Anbindung von PCI-Bussen implementiert.
- Es wurde die Möglichkeit geschaffen, eine alternative Politik mit Leistungseinstellungen (perfpolicy) zu definieren, die beim Betrieb des Systems mit Akku angewendet wird.
- Dem Befehl sysctl wurde die Option „-f file“ hinzugefügt, um alle Einstellungen auf einmal aus einer Datei zu laden. In den rc-Skripten wurde die neue Option angewendet, um sysctl.conf vollständig zu laden, anstatt sie zeilenweise zu parsen.
- Im pkg_add-Team wurde ein Aufruf von ldconfig implementiert, wenn sich die Liste der gemeinsam genutzten Bibliotheken nach der Installation neuer Pakete geändert hat.
- Unterstützung für neue Hardware hinzugefügt. Verbesserte Unterstützung für MediaTek SoCs und Qualcomm Snapdragon (einschließlich X Elite). Verbesserte Unterstützung für Geräte wie Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 und verschiedene Chromebooks. Der ice-Treiber für Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb sowie der ixv-Treiber für virtuelle Funktionen von Intel Ethernet 82598EB, 82559 und X540 wurden hinzugefügt. Die Arbeiten zur Auslagerung von Netzwerkoperationen auf die Netzwerkkarten werden fortgesetzt.
- Im sysupgrade wurde ein Modus für das Offline-Upgrade von Systemen mit Paketen, die im lokalen Dateisystem gespeichert sind, implementiert.
- Der fw_update-Utility wurde die Möglichkeit hinzugefügt, Firmware als normaler Benutzer ohne Root-Rechte herunterzuladen (nicht zu installieren). Ein Flag «-l» wurde hinzugefügt, um eine Liste von Treibern und Dateien auszugeben.
- Für den sshd-auth-Prozess ist ein Schutz gegen die Ausnutzung von Sicherheitsanfälligkeiten aktiviert, der auf einer zufälligen Neuverknüpfung der ausführbaren Datei bei jedem Systemstart basiert (relink). Diese Neuverknüpfung sorgt dafür, dass die Offsetwerte der Funktionen schwerer vorhersehbar sind, was die Erstellung von Exploits, die Rücksprung-orientierte Programmierung verwenden, erschwert.
- Der Prozess mountd ist mithilfe des Systemaufrufs unveil isoliert.
- Im Netzwerk-Stack wurde die Unterstützung für AF_FRAME-Sockets und das IFT_ETHER-Protokoll hinzugefügt, sodass Anwendungen Ethernet-Frames senden und empfangen können. Für ausgehende UDP- und TCP-Pakete kommt eine neue Hashmethode zum Einsatz, die die Verteilung des Datenverkehrs auf Warteschlangen optimiert und die UDP-Übertragung für IPv4/IPv6 sowie TCP für IPv6 deutlich (~20%) beschleunigt. Für das Gerät tun wurde ioctl TUNSCAP implementiert und die Interaktion zwischen Kernel und Benutzerspace optimiert. Ein individueller Routing-Cache für jeden Thread wurde eingerichtet. Der vio-Treiber unterstützt den Multiqueue-Modus.
- In dem Tool pfctl für Netzwerkschnittstellen und Warteschlangen wurde die Definition einer Bandbreite von mehr als 4 Gbit erlaubt.
- In iked, der Implementierung des IKEv2-Protokolls für IPsec, wurde die Option „natt“ zur erzwungenen Verwendung von nat-t hinzugefügt.
- In relayd, dem Hintergrundprozess für die Weiterleitung und Lastverteilung von Anfragen, wurde die Unterstützung für Clientanfragen implementiert. TLS-Zertifikaten.
- Das Netzwerkleistungsmesswerkzeug tcpbench hat Unterstützung für TLS erhalten.
- In bgpd wurde die Unterstützung für RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message) implementiert, und die Option „reject as-set“ ist standardmäßig aktiviert, mit Caching für Adj-RIB-Out.
- In LibreSSL 4.1.0 wurde experimentelle Unterstützung für die Architektur loongarch64 hinzugefügt, neue assemblerbasierte Implementierungen der Algorithmen SHA-1, SHA-256 und SHA-512 für die Architektur amd64 (unter Verwendung der SHA-NI-Anweisung) angeboten, sowie neue assemblerbasierte Implementierungen von SHA-256 und SHA-512 für Aarch64 (unter Verwendung der CE-Erweiterung). Die MD5-Implementierung für amd64 wurde vereinfacht und es wurde Caching für die Liste der widerrufenen Zertifikate (CRLs) implementiert; die Implementierung von ML-KEM 768 und 1024 wurde aus BoringSSL übernommen.
- OpenSSH wurde aktualisiert. Eine Liste der Änderungen finden Sie im Ankündigungsdokument zu OpenSSH 10 (Unterstützung für digitale DSA-Signaturen entfernt, Authentifizierungsoperationen wurden in einen separaten Prozess sshd-auth ausgelagert, standardmäßig wird der hybride Schlüsselaustauschalgorithmus „mlkem768x25519-sha256“ verwendet).
- Die Anzahl der Ports für die AMD64-Architektur 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 (+ Patches vom KDE-Projekt) 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
- Aktualisierte Komponenten von Drittanbietern, die in OpenBSD 7.7 enthalten sind:
- Grafik-Stack Xenocara basierend auf 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
