Die Veröffentlichung des kostenlosen UNIX-ähnlichen Betriebssystems OpenBSD 7.7 wird vorgestellt. Das OpenBSD-Projekt wurde 1995 von Theo de Raadt nach einem Konflikt mit den NetBSD-Entwicklern gegründet, in dessen Folge Theo der Zugriff auf das NetBSD-CVS-Repository verweigert wurde. Danach erstellten Theo de Raadt und eine Gruppe Gleichgesinnter ein neues offenes Betriebssystem auf Basis des NetBSD-Quellbaums, dessen Hauptentwicklungsziele Portabilität (13 Hardwareplattformen werden unterstützt), Standardisierung, korrekter Betrieb und proaktive Sicherheit waren und integrierte kryptografische Tools. Das vollständige Installations-ISO-Image des OpenBSD 7.7-Basissystems ist 746 MB groß.
Neben dem Betriebssystem selbst ist das OpenBSD-Projekt für seine Komponenten bekannt, die in anderen Systemen weit verbreitet sind und sich als eine der sichersten und hochwertigsten Lösungen erwiesen haben. Darunter: LibreSSL (Fork von OpenSSL), OpenSSH, PF-Paketfilter, OpenBGPD- und OpenOSPFD-Routing-Daemons, OpenNTPD-NTP-Server, OpenSMTPD-Mailserver, Text-Terminal-Multiplexer (analog zu GNU Screen) tmux, identd-Daemon mit IDENT-Protokollimplementierung, BSDL-Alternative GNU-Groff-Paket – Mandoc, Protokoll zum Organisieren fehlertoleranter Systeme CARP (Common Address Redundancy Protocol), leichter HTTP-Server, OpenRSYNC-Dienstprogramm zur Dateisynchronisierung.
Wichtigste Änderungen:
- Die Implementierung des DRM-Frameworks (Direct Rendering Manager) ist mit dem Linux-Kernel 6.12.21 (in der vorherigen Version – 6.6.52) synchronisiert. Der IntelDRM-Treiber implementiert Unterstützung für die GPU, die in Intel-Prozessoren auf Basis der Arrow Lake-Mikroarchitektur verwendet wird. Der amdgpu-Treiber wurde aktualisiert, um Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) und Radeon RX 9070 (Navi 48) GPUs zu unterstützen.
- Der Port für die ARM64-Architektur implementiert Unterstützung für den SVE-Vektorbefehlssatz (Scalable Vector Extension). Auf Systemen mit Apple M1 ARM-Chips sind Stromverbrauchszustände festgelegt. Im Mechanismus zur physischen Speicherseitenzuordnung (pmap) wurden die Vorgänge zum Leeren des Translation Lookaside Buffer (TLB) optimiert, was die Ausführung des Kernel-Assembly-Tests um etwa 5 % beschleunigt hat. Auf Hardware, die die QARMA3-Verschlüsselung unterstützt, ist der Pointer Authentication Code (PAC) aktiviert, um den Benutzerbereich zu schützen.
- Auf x86_64-Systemen wurde die Unterstützung für den AMD SEV (Secure Encrypted Virtualization)-Mechanismus, der in Virtualisierungssystemen zum Schutz verwendet wird, für Gastsysteme implementiert, die mit QEMU ausgeführt werden. virtuelle Maschinen Um Störungen durch den Hypervisor oder den Host-Systemadministrator zu vermeiden, wurde dem PSP-Treiber, der zur Konfiguration und zum Start von Gastsystemen mit aktiviertem AMD SEV verwendet wird, ein Befehl zum Laden der Firmware in den Chip hinzugefügt.
- Auf x86_64-Systemen wurde die Möglichkeit hinzugefügt, Speicherbereiche größer als 4 GB für DMA zuzuweisen.
- Verbesserte Unterstützung für die Architekturen RISC-V, Sparc64, HPPA, i386 und Powerpc64.
- Verbesserte Handhabung von Out-of-Memory-Situationen (OOM).
- Der Ptrace-Tracing-Mechanismus wurde erweitert, um das Setzen von Haltepunkten in Multithread-Prozessen im GDB-Debugger zu ermöglichen. Befehle zum Lesen und Schreiben des Bereichs hinzugefügt, in dem der überwachte Prozess den Prozessorstatus speichert, wenn die XSAVE-Anweisung verwendet wird.
- Den im btrace-Tracing-System verwendeten BT-Skripten (BPFtrace oder Bug Tracing) wurde Unterstützung für mehrzeilige Konstrukte hinzugefügt. Dem Dienstprogramm btrace wurden zusätzliche Profile und Zeitintervallbenennungen (hz, us, ms, s) hinzugefügt.
- Sysctl-Parameter kern.audio.kbdcontrol hinzugefügt. Wenn dieser auf 0 gesetzt ist, werden die Multimedia-Lautstärketasten auf der Tastatur wie normale Tasten behandelt.
- Verbessertes Crash-Handling und erweiterte Prüfungen beim Wechsel in den Ruhe- und Standby-Modus.
- Der Code zum Stoppen von Prozessen beim Empfang eines Signals wurde überarbeitet, wodurch Probleme beim Stoppen von Multithread-Prozessen gelöst wurden, die in Paketen wie Golang und MPV auftraten.
- Verbesserte Unterstützung für Multiprozessorsysteme (SMP). TCP-Eingabe- und Ausgabetimer können jetzt parallel ausgeführt werden und die Systemaufrufe send() und recv() sind jetzt für die Verwendung einer gemeinsamen Sperre konfiguriert. Mehrere Benutzer-Threads können jetzt parallel an verschiedenen Sockets arbeiten und die TCP-Ausgabe blockiert nicht mehr die IP-Paketverarbeitung.
Die Systemaufrufe open, openat, ptsignal, psignal und prsignal sowie die Systembefehle kern.timeout_stats, kern.allowkmem, kern.video.record, net.inet.gre.allow, net.inet.gre.wccp, kern.global_ptrace, kern.wxabort und kern.malloc.kmemstat wurden von der globalen Sperre befreit. Die Treiber psp, wsmouse und wstpad sowie die Struktur video_filtops wurden in die Kategorie mp-safe übertragen.
- Der VMM-Hypervisor hat die Möglichkeit implementiert, acpipci zum Anschließen von PCI-Bussen zu verwenden.
- Bietet die Möglichkeit, eine alternative Leistungsrichtlinie (Perfpolicy) zu definieren, die angewendet wird, wenn das System mit Batteriestrom läuft.
- Der Befehl sysctl verfügt jetzt über die Option „-f file“, um alle Einstellungen auf einmal aus einer Datei zu laden. In RC-Skripten wird eine neue Option verwendet, um sysctl.conf als Ganzes zu laden, anstatt es Zeile für Zeile zu analysieren.
- Der Befehl pkg_add implementiert einen Aufruf von ldconfig, wenn sich die Liste der gemeinsam genutzten Bibliotheken aufgrund der Installation neuer Pakete geändert hat.
- Unterstützung für neue Hardware hinzugefügt. Verbesserte Unterstützung für MediaTek- und Qualcomm Snapdragon-SoCs (einschließlich X Elite). Verbesserte Unterstützung für Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 und verschiedene Chromebooks. Ice-Treiber für Intel E810 Ethernet 1 Gb/10 Gb/25 Gb/50 Gb/100 Gb und ixv-Treiber für die virtuellen Funktionen Intel Ethernet 82598EB, 82559 und X540 hinzugefügt. Die Arbeiten zur Verlagerung des Netzwerkbetriebs auf die Netzwerkkartenseite wurden fortgesetzt.
- Sysupgrade verfügt über einen Modus zur Offline-Aktualisierung von Systemen mithilfe von Paketen, die im lokalen Dateisystem gespeichert sind.
- Das Dienstprogramm fw_update wurde aktualisiert, um das Herunterladen (nicht Installieren) der Firmware als normaler Benutzer ohne Root-Rechte zu ermöglichen. Flag „-l“ zum Auflisten von Treibern und Dateien hinzugefügt.
- Der SSHD-Auth-Prozess verfügt über einen Schutz gegen die Ausnutzung von Schwachstellen, der auf einer zufälligen Neuverknüpfung der ausführbaren Datei bei jedem Systemstart (Relink) basiert. Durch rekombinanten Code werden Funktionsoffsets weniger vorhersehbar, was die Erstellung von Exploits mit rückgabeorientierten Programmiertechniken erschwert.
- Der Mountd-Prozess wird mithilfe des Uncover-Systemaufrufs isoliert.
- Der Netzwerkstapel implementiert Unterstützung für AF_FRAME-Sockets und die IFT_ETHER-Protokollfamilie, sodass Anwendungen Ethernet-Frames senden und empfangen können. Für ausgehende UDP- und TCP-Pakete wurde eine neue Hashing-Methode implementiert, die die Verkehrsverteilung auf die Warteschlangen optimiert und das Senden von UDP für IPv20/IPv4 und TCP für IPv6 deutlich (~6 %) beschleunigt hat. Das Tun-Gerät verfügt über das implementierte TUNSCAP-ioctl und die Interaktion zwischen Kernel und Benutzerbereich wurde optimiert. Für jeden Flow wurde ein separater Routing-Cache implementiert. Der Vio-Treiber hat den Multiqueue-Modus aktiviert.
- Mit dem Dienstprogramm pfctl können Netzwerkschnittstellen und Warteschlangen mit einem Durchsatz von mehr als 4 Gbit konfiguriert werden.
- In iked, der IKEv2-Protokollimplementierung für IPsec, wurde die Option „natt“ hinzugefügt, um die Verwendung von nat-t zu erzwingen.
- Relayd, ein Hintergrundprozess zum Umleiten und Ausgleichen von Anfragen, unterstützt nun clientseitige Unterstützung. TLS-Zertifikate.
- Das Tool zur Messung der Netzwerkleistung tcpbench hat TLS-Unterstützung hinzugefügt.
- bgpd implementiert Unterstützung für RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message), die Option „Reject As-Set“ ist standardmäßig aktiviert und Adj-RIB-Out-Caching wird bereitgestellt.
- LibreSSL 4.1.0 fügt experimentelle Unterstützung für die Loongarch64-Architektur hinzu, bietet neue Assemblerimplementierungen der Algorithmen SHA-1, SHA-256 und SHA-512 für die AMD64-Architektur (mithilfe der SHA-NI-Anweisung), neue Assemblerimplementierungen von SHA-256 und SHA-512 für AMD64 (mithilfe der CE-Erweiterung), vereinfachte die MD5-Implementierung für AMD64, bietet Caching der Liste widerrufener Zertifikate (CRLs) und portierte die ML-KEM 768- und 1024-Implementierung von BoringSSL.
- OpenSSH wurde aktualisiert. Die Liste der Änderungen finden Sie in der Ankündigung zu OpenSSH 10 (die Unterstützung für digitale DSA-Signaturen wurde entfernt, Authentifizierungsvorgänge wurden in einen separaten SSHD-Auth-Prozess aufgeteilt und standardmäßig wird der hybride Schlüsselaustauschalgorithmus „mlkem768x25519-sha256“ verwendet).
- Die Anzahl der Ports für die AMD64-Architektur betrug 12593 (vorher 12312), für aarch64 12446 (vorher 12148) und für i386 10429 (vorher 10534). Zu den Anwendungsversionen in den Häfen gehören:
- Asterisk 16.30.1, 18.26.1, 20.13.0 und 22.3.0
- Kühnheit 3.7.3
- CMake 3.31.6
- Chrom 135.0.7049.52
- Emacs 30.1
- FFmpeg 6.1.2
- GCC 8.4.0 und 11.2.0
- GNOME 47
- Gehe 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
- Maria DB 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 aus dem KDE-Projekt) und 6.8.2
- Ruby 3.2.8, 3.3.7, 3.4.2
- Rost 1.86.0
- SQLite 3.49.1
- Shotcut 25.01.25
- Sudo 1.9.16p1
- Erdmännchen 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:
- Xenocara-Grafikstapel basierend auf
- 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
- Ungebunden 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ Patches)
- Gdb 6.3 (+ Patches)
- Awk 20250116
- Expats 2.7.1
- zlib 1.3.1 (+ Patches)
Source: opennet.ru
