Die Veröffentlichung des plattformunabhängigen UNIX-ähnlichen Betriebssystems OpenBSD 7.0 wird vorgestellt. Dies ist die 51. Ausgabe des Projekts, das am 18. Oktober 26 Jahre alt wird. Das OpenBSD-Projekt wurde 1995 von Theo de Raadt gegründet, nachdem es zu Konflikten mit den Entwicklern von NetBSD kam, die dazu führten, dass Theo der Zugang zum CVS-Repository von NetBSD entzogen wurde. Daraufhin gründete Theo de Raadt mit einer Gruppe Gleichgesinnter ein neues Open-Source-Betriebssystem auf Basis des NetBSD-Quellbaum, dessen Hauptziele Portabilität (unterstützt 13 Hardware-Plattformen), Standardisierung, korrekte Funktionsweise, proaktive Sicherheit und integrierte Kryptografie-Tools sind. Die Größe des vollständigen Installations-ISO-Images des Basissystems OpenBSD 7.0 beträgt 554 MB.
Neben dem Betriebssystem selbst ist das OpenBSD-Projekt bekannt für seine Komponenten, die auch in anderen Systemen verbreitet sind und sich als eines der sichersten und qualitativ hochwertigsten Lösungen etabliert haben. Dazu gehören: LibreSSL (Fork von OpenSSL), OpenSSH, der Paketfilter PF, die Routing-Dämonen OpenBGPD und OpenOSPFD, der NTP-Server OpenNTPD und Mail-Server. der Server OpenSMTPD, Terminal-Multiplexer (Analog zu GNU Screen) tmux, identd-Demonstrator mit Implementierung des IDENT-Protokolls, BSDL-Alternative zum GNU groff-Paket — mandoc, Protokoll zur Organisation von hochverfügbaren Systemen CARP (Common Address Redundancy Protocol), leichtgewichtiger HTTP-Server, OpenRSYNC-Dateisynchronisations-Utility.
Wesentliche Verbesserungen:
- Ein Port für 64-Bit-Systeme auf Basis der RISC-V-Architektur wurde hinzugefügt. Derzeit wird die Ausführung auf HiFive Unmatched-Boards und teilweise auf dem PolarFire SoC Icicle Kit unterstützt.
- Im ARM64-Port wurde die Unterstützung von Apple-Geräten mit M1-Prozessor verbessert, jedoch ist sie noch nicht vollständig ausgereift. Aktuell wird die Installation von OpenBSD auf einer GPT-Disk unterstützt, und es gibt Treiber für USB 3, NVME, GPIO und SPMI. Neben M1 wurde auch die Unterstützung für Raspberry Pi 3 Model B+ und SoC-basierte Boards von Rockchip RK3399 im ARM64-Port erweitert.
- Für die AMD64-Architektur ist der GCC-Compiler standardmäßig deaktiviert (nur Clang bleibt aktiv). Zuvor war GCC bereits für die Architekturen armv7 und i386 deaktiviert worden.
- Die Unterstützung für die SGI-Plattform wurde eingestellt.
- Für die Plattformen amd64, arm64, i386, sparc64 und powerpc64 wird standardmäßig ein Kernel-Build mit Unterstützung für die dynamische Trace-System dt aktiviert. Ein kprobes-Anbieter wurde hinzugefügt, um Informationen über Ereignisse auf Kernel-Ebene zu sammeln.
- Im btrace wurde die Unterstützung der Operatoren "" in Filtern implementiert, und die Verweildauer im Userspace wird beim Analysieren des Kernel-Stacks ausgegeben.
- Es wurde eine Konfigurationsdatei /etc/bsd.re-config hinzugefügt, die verwendet werden kann, um den Kernel während des Bootvorgangs zu konfigurieren und bestimmte Geräte ein- oder auszuschalten.
- Es wird die Erkennung von TPM 2.0-Geräten sowie die ordnungsgemäße Ausführung von Befehlen zum Wechsel in den Energiesparmodus sichergestellt (löst das Problem beim Aufwecken von ThinkPad X1 Carbon Gen 9 und ThinkPad X1 Nano).
- Die Implementierung von kqueue wurde auf die Verwendung von Mutexen umgestellt.
- Es wurde die Möglichkeit hinzugefügt, die Puffergröße für PF_UNIX-Sockets über sysctl anzupassen. Die Standardpuffergröße wurde auf 8 KB erhöht.
- Die Unterstützung für multiprozessorfähige Systeme (SMP) wurde verbessert. Der Aufruf von pmap_extract() wurde auf mp-sicher für hppa- und amd64-Systeme umgestellt. Der Code zur Zählung der Referenzen auf anonyme Objekte sowie Teile des Ausnahmebehandlungshandlers und der Funktionen lseek, connect und setrtable wurden aus der globalen Kernel-Sperre ausgegliedert. Es wurden separate CPU-Nachrichtenschlangen-Puffer für jeden Kern bei einem Systemabsturz (Panic) implementiert.
- Die Implementierung des Direct Rendering Manager (drm) wurde mit dem Linux-Kernel 5.10.65 synchronisiert. Im inteldrm-Treiber wurde die Unterstützung für Intel-Chips auf Basis der Tiger-Lake-Mikroarchitektur verbessert. Im amdgpu-Treiber wurde die Unterstützung für die GPUs Navi 12, Navi 21 "Sienna Cichlid", Arcturus und die APU Cezanne "Green Sardine" Ryzen 5000 eingeführt.
- Die Unterstützung für neue Hardware wurde hinzugefügt, einschließlich Aquantia AQC111U/AQC112U USB Ethernet, Aquantia 1/2,5/5/10 Gb/s PCIe Ethernet, Cadence GEM, Broadcom BCM5725, RTL8168FP/RTL8111FP/RTL8117. Die Unterstützung für Intel-Plattformen basierend auf der Tiger-Lake-Mikroarchitektur wurde verbessert. Ein ucc-Treiber für USB HID Consumer Control-Tastaturen wurde hinzugefügt, die Anwendungstasten, Audiowiedergabesteuerung und Lautstärkeregelung verwenden.
- Verbesserungen im Hypervisor VMM wurden vorgenommen. Ein Limit von 512 VCPU pro virtueller Maschine wurde hinzugefügt. Probleme mit VCPU-Blockierungen wurden behoben. Im Backend für die Verwaltung von virtuellen Maschinen hat vmd Unterstützung für den Schutz vor Gastbetriebssystemen mit schädlichen virtio-Treibern erhalten.
- Das Timeout-Tool wurde aus NetBSD übernommen, um die Ausführungszeit von Befehlen zu begrenzen.
- In dem Dateisynchronisierungs-Tool openrsync wurden die Optionen 'include' und 'exclude' implementiert.
- Im ps-Tool wird nun die Ausgabe von Informationen über verwandte Gruppen bereitgestellt.
- Dem Texteditor mg wurde der Befehl 'dired-jump' hinzugefügt.
- In den Dienstprogrammen fdisk und newfs wurde die Unterstützung für Festplatten mit einer Sektorgröße von 4K verbessert. Der Initialisierungscode für MBR/GPT in fdisk wurde überarbeitet, und es wurde die Erkennung von GPT-Partitionen wie „BIOS Boot“, „APFS“, „APFS ISC“, „APFS Recovry“ (sic), „HiFive FSBL“ und „HiFive BBL“ hinzugefügt. Eine Option „-A“ wurde hinzugefügt, um GPT zu initialisieren, ohne die Bootpartitionen zu entfernen.
- Im Dienstprogramm traceroute wurde die Verarbeitung von Prüfpaketen und DNS-Anfragen im asynchronen Modus implementiert, um die Geschwindigkeit zu erhöhen.
- Im Dienstprogramm doas sind nun drei Versuche zur Eingabe des Passworts vorgesehen.
- In xterm wurde durch den Systemaufruf unveil() eine Isolierung des Zugriffs auf das Dateisystem erreicht. Die ftpd-Prozesse sind durch den Aufruf pledge geschützt.
- Eine Protokollausgabe über die falsche Verwendung des Formats '%n' in der printf-Funktion wurde implementiert.
- In der IPsec-Implementierung in iked wurde die Unterstützung für die DNS-Konfiguration auf der Client-Seite hinzugefügt.
- In snmpd wurde standardmäßig die Unterstützung für die Protokolle SNMPv1 und SNMPv2c zugunsten von SNMPv3 deaktiviert.
- Standardmäßig sind die Prozesse dhcpleased und resolvd aktiviert, um die Konfiguration von IPv4-Adressen über DHCP zu ermöglichen. Das Dienstprogramm dhclient bleibt als Option im System. Im Dienstprogramm route wurde der Befehl „nameserver“ hinzugefügt, um Informationen über den DNS-Server an resolvd zu übermitteln.
- In LibreSSL wurde die Unterstützung für die TLSv3-API von OpenSSL 1.1.1 hinzugefügt, und ein neuer X.509-Validator aktiviert, der die korrekte Überprüfung von kreuzsignierten Zertifikaten unterstützt.
- In OpenSMTPD wurden die TLS-Optionen «cafile=(Pfad)», «nosni», «noverify» und «servername=(Name)» hinzugefügt. Bei smtp ist es nun möglich, die Verschlüsselungsmethoden und TLS-Protokolle auszuwählen.
- Das Paket OpenSSH wurde aktualisiert. Eine detaillierte Übersicht der Verbesserungen finden Sie hier: OpenSSH 8.7, OpenSSH 8.8. Die Unterstützung für digitale Signaturen rsa-sha wurde deaktiviert.
- Die Anzahl der Ports für die Architektur AMD64 beträgt 11325, für aarch64 – 11034, und für i386 – 10248. Unter den Anwendungsversionen in den Ports befinden sich: FFmpeg 4.4, GCC 8.4.0 und 11.2.0, GNOME 40.4, Go 1.17, JDK 8u302, 11.0.12 und 16.0.2, KDE Applications 21.08.1, KDE Frameworks 5.85.0, LLVM/Clang 11.1.0, LibreOffice 7.2.1.2, Lua 5.1.5, 5.2.4 und 5.3.6, MariaDB 10.6.4, Node.js 12.22.6, PHP 7.3.30, 7.4.23 und 8.0.10, Postfix 3.5.12, PostgreSQL 13.4, Python 2.7.18, 3.8.12 und 3.9.7, Qt 5.15.2 und 6.0.4, Ruby 2.6.8, 2.7.4 und 3.0.2, Rust 1.55.0, SQLite 3.35.5, Xfce 4.16.
- Die Komponenten von Drittanbietern, die in OpenBSD 7.0 enthalten sind, wurden aktualisiert:
- Der grafische Stack Xenocara basiert auf X.Org 7.7 mit xserver 1.20.13 + Patches, freetype 2.10.4, fontconfig 2.12.4, Mesa 21.1.8, xterm 367, xkeyboard-config 2.20, fonttosfnt 1.2.2.
- LLVM/Clang 11.1.0 (+ Patches)
- GCC 4.2.1 (+ Patches) und 3.3.6 (+ Patches)
- Perl 5.32.1 (+ Patches)
- NSD 4.3.7
- Unbound 1.13.3
- Ncurses 5.7
- Binutils 2.17 (+ Patches)
- Gdb 6.3 (+ Patch)
- Awk 18.12.2020
- Expat 2.4.1
Quelle: opennet.ru
