Die Veröffentlichung des freien, plattformübergreifenden, UNIX-ähnlichen Betriebssystems OpenBSD 7.1 wurde vorgestellt. Das Projekt OpenBSD wurde 1995 von Theo de Raadt gegründet, nachdem es zu Konflikten mit den Entwicklern von NetBSD gekommen war, wodurch Theo der Zugang zum CVS-Repository von NetBSD verwehrt wurde. Daraufhin gründete Theo de Raadt zusammen mit Gleichgesinnten ein neues, offenes Betriebssystem basierend auf dem NetBSD-Quellbaum, dessen Hauptziele die Portabilität (Unterstützung von 13 Hardware-Plattformen), die Standardisierung, die korrekte Funktion, proaktive Sicherheit und integrierte kryptografische Mittel wurden. Die Größe des vollständigen Installations-ISO-Images des Basisystems OpenBSD 7.1 beträgt 580 MB.
Neben dem Betriebssystem ist das OpenBSD-Projekt bekannt für seine Komponenten, die sich in anderen Systemen verbreitet haben und sich als einige der sichersten und qualitativ hochwertigsten Lösungen etabliert haben. Dazu gehören: LibreSSL (Fork von OpenSSL), OpenSSH, das Paketfilter PF, die Routing-Demons OpenBGPD und OpenOSPFD, der NTP-Server OpenNTPD, die Mailserver OpenSMTPD, der Textterminal-Multiplexer (ähnlich GNU Screen) tmux, der identd-Dämon mit Implementierung des IDENT-Protokolls, die BSDL-Alternative zum GNU groff-Paket — mandoc, das Protokoll zur Organisation von fehlertoleranten Systemen CARP (Common Address Redundancy Protocol), ein leichter HTTP-Server, das Dateisynchronisierungstool OpenRSYNC. Server Für die ARM64-Architektur wurde die Unterstützung für Raspberry Pi 5 hinzugefügt, der acpicpu-Treiber implementiert, apm (Advanced Power Management) und sysctl hw.cpuspeed auf Geräten mit Qualcomm Snapdragon X Elite sichergestellt.
Hauptverbesserungen:
- Die Unterstützung für Mac-Computer mit dem ARM-Chip Apple M1 (Apple Silicon), wie z. B. Apple M1 Pro/Max und Apple T2 Macs, wurde als einsatzbereit erklärt. Treiber für SPI, I2C, DMA-Controller, Tastatur, Touchpad, Energie- und Leistungsmanagement wurden hinzugefügt. Die Unterstützung für Wi-Fi, GPIO, Framebuffer, USB, Display und NVMe-Speicher wurde sichergestellt.
- Die Unterstützung der ARM64-Architektur wurde verbessert. Treiber für gpiocharger, gpioleds und gpiokeys wurden hinzugefügt, die die Unterstützung von Ladevorgängen, Beleuchtungen und Tasten, die an GPIO angeschlossen sind (z.B. wie im Pinebook Pro umgesetzt), gewährleisten. Neue Treiber wurden hinzugefügt: mpfclock (PolarFire SoC MSS-Taktsteuerung), cdsdhc (Cadence SD/SDIO/eMMC Hostcontroller), mpfiic (PolarFire SoC MSS I2C-Controller) und mpfgpio (PolarFire SoC MSS GPIO).
- Die Unterstützung für die RISC-V 64-Architektur wurde verbessert, wobei Treiber für uhid und fido integriert wurden, die die Installation auf GPT-Laufwerken ermöglichen.
- In der mount_msdos-Dienstprogramm ist standardmäßig die Verwendung von langen Dateinamen aktiviert.
- Der Code des Garbage Collectors für Unix-Sockets wurde überarbeitet.
- Der sysctl hw.perfpolicy ist standardmäßig auf „auto“ gesetzt, was bedeutet, dass im Betrieb mit Netzstrom der Modus für maximale Leistung aktiviert und bei Akkubetrieb ein adaptiver Algorithmus verwendet wird.
- Die Unterstützung von Mehrprozesssystemen (SMP) wurde verbessert. Die Ereignisfilter von unbenannten Kanälen, kqread, Audio und Sockets sowie der BPF-Mechanismus wurden auf mp-sicher umgestellt. Die Systemaufrufe poll, select, ppoll und pselect wurden umgeschrieben und werden jetzt über kqueue implementiert. Die Systemaufrufe kevent, getsockname, getpeername, accept und accept4 wurden von Sperrmechanismen befreit. Eine Kernel-Schnittstelle für atomare Funktionen load und store wurde hinzugefügt, die die Verwendung von int- und long-Typen in Strukturelementen ermöglicht, die Referenzzählung verwenden.
- Die Implementierung des Rahmenwerks drm (Direct Rendering Manager) wurde mit dem Linux-Kernel 5.15.26 synchronisiert (im vorherigen Release — 5.10.65). Der inteldrm-Treiber unterstützt nun Chips von Intel auf Basis der Mikroarchitekturen Elkhart Lake, Jasper Lake und Rocket Lake. Im amdgpu-Treiber wurde die Unterstützung für APU/GPU Van Gogh, Rembrandt „Yellow Carp“ Ryzen 6000, Navi 22 „Navy Flounder“, Navi 23 „Dimgrey Cavefish“ und Navi 24 „Beige Goby“ hinzugefügt.
- Die FreeType-Bibliothek umfasst nun subpixel Rendering für Schriften.
- Das Dienstprogramm realpath wurde hinzugefügt, um den absoluten Pfad einer Datei auszugeben.
- In das Dienstprogramm rcctl wurde der Befehl «ls rogue» hinzugefügt, um Hintergrundprozesse anzuzeigen, die gestartet wurden, aber nicht in rc.conf.local enthalten sind.
- In BPFtrace wurde die Unterstützung von Variablen für Prüfungen implementiert. In btrace wurden die Skripte kprofile.bt zum Profiling des Kernel-Stacks und runqlat.bt zur Erkennung von Verzögerungen beim Scheduler hinzugefügt.
- In libc wurde die Unterstützung für RFC6840 hinzugefügt, das die Unterstützung des AD-Flags und die Einstellung ‚trust-ad‘ für DNSSEC definiert.
- In apm und apmd wurde die Anzeige der prognostizierten Akkuladungszeit hinzugefügt.
- Die Möglichkeit, eine Datenbank für capabilities in /etc/login.conf.d zu speichern, wurde bereitgestellt, um die manuelle Hinzufügung eigener Kontoklassen aus Paketen zu vereinfachen.
- In malloc wurde das Caching von Speicherbereichen von 128k bis 2M sichergestellt.
- Im Archivierer pax wurde die Unterstützung für erweiterte Header mit mtime-, atime- und ctime-Daten implementiert.
- In den Dienstprogrammen gzip und gunzip wurde die Option „-k“ hinzugefügt, um die ursprüngliche Datei beizubehalten.
- In das Dienstprogramm openrsync wurden die Optionen „—compare-dest“ zur Überprüfung des Vorhandenseins von Dateien in zusätzlichen Verzeichnissen sowie „—max-size“ und „—min-size“ zur Begrenzung der Dateigröße hinzugefügt.
- Der Befehl seq wurde hinzugefügt, um Zahlenfolgen auszugeben.
- Die universelle softwaretechnische Implementierung von trigonometrischen Funktionen wurde aus FreeBSD 13 übertragen (die Implementierungen in Assembler für x86 wurden deaktiviert).
- Die Implementierung der Funktionen lrint, lrintf, llrint und llrintf wurde aus FreeBSD übertragen (zuvor wurde die Implementierung aus NetBSD verwendet).
- Im Tool fdisk wurden zahlreiche Änderungen und Korrekturen im Zusammenhang mit der Arbeit mit Festplattenpartitionen vorgenommen.
- Unterstützung von neuer Hardware hinzugefügt, darunter Intel PCH GPIO-Controller (für Cannon Lake H- und Tiger Lake H-Plattformen), NXP PCF85063A/TP RTC, Synopsys Designware UART, Intel 2.5Gb Ethernet, SIMCom SIM7600, RTL8156B, MediaTek MT7601U USB-WLAN, BCM4387 WLAN.
- Enthalten sind um lizenzierte Firmware für drahtlose Realtek-Chips, die die Verwendung der Treiber rsu, rtwn und urtwn ohne manuelles Laden der Firmware ermöglichen.
- In den Treibern ixl (Intel Ethernet 700), ix (Intel 82598/82599/X540/X550) und aq (Aquantia AQC1xx) wurde die Unterstützung für die Hardwareverarbeitung von VLAN-Tags sowie die Berechnung/Überprüfung von Prüfziffern für IPv4, TCP4/6 und UDP4/6 integriert.
- Ein Soundtreiber für Intel Jasper Lake-Chips wurde hinzugefügt. Unterstützung für den Xbox One-Controller hinzugefügt.
- Im drahtlosen IEEE 802.11-Stack wurde Unterstützung für 40MHz-Kanäle im 802.11n-Modus und erste Unterstützung für den Standard 802.11ac (VHT) realisiert. Für die Treiber wurde ein optionaler Hintergrundscan-Handler hinzugefügt. Bei der Auswahl eines Access Points haben nun die 5GHz-Kanäle Vorrang, gefolgt von den 2GHz-Kanälen.
- Die Implementierung des Treibers vxlan wurde neu geschrieben, der jetzt unabhängig vom Bridge-Subsystem arbeitet.
- Im Installer wurde die Logik zum Aufruf des Tools pkg_add überarbeitet, um die Häufigkeit von Dateibewegungen während des Updates zu reduzieren. Im Dokument install.site wurde der Prozess zur Einrichtung der Installation und des Updates dokumentiert. Firmware, deren Verbreitung in Drittprodukten erlaubt ist, wurde für alle Architekturen hinzugefügt. Das Tool fw_update wird für die Installation proprietärer Firmware genutzt, die auf dem Installationsmedium verfügbar ist.
- In xterm wurde aus Sicherheitsgründen die Mausverfolgung standardmäßig deaktiviert.
- In usbhidctl und usbhidaction wurde der Zugriff auf das Dateisystem durch den Systemaufruf unveil isoliert.
- In dhcpd wurde standardmäßig das Binden an Netzwerkschnittstellen, die sich im nicht aktiven Zustand ('down') befinden, sichergestellt, um den Empfang von Paketen sofort nach der Aktivierung der Netzwerkschnittstelle zu gewährleisten.
- In OpenSMTPD (smtpd) wurde standardmäßig die TLS-Überprüfung für ausgehende Verbindungen 'smtps://' und 'smtp+tls://' aktiviert.
- In httpd wurde eine Überprüfung der Protokollversion implementiert, die Möglichkeit hinzugefügt, eigene Fehlertextdateien zu definieren, und die Verarbeitung von komprimierten Daten verbessert. Zudem wurde in der httpd.conf die Option gzip-static hinzugefügt, um vorab komprimierte Dateien mit dem gzip-Flag im Header content-encoding zu liefern.
- In IPsec ist im Parameter proto von iked.conf die Angabe einer Protokollliste erlaubt. Der Befehl „show certinfo“ wurde zur Utility ikectl hinzugefügt, um vertrauenswürdige Zertifizierungsstellen und Zertifikate anzuzeigen. In iked wurde die Verarbeitung fragmentierter Nachrichten verbessert.
- In rpki-client wurde die Unterstützung zur Überprüfung offener Schlüssel für BGPsec-Router hinzugefügt und die Überprüfung von X509-Zertifikaten verbessert. Ein Cache für verifizierungspflichtige Dateien wurde hinzugefügt. Die Kompatibilität mit RFC 6488 wurde verbessert.
- bgpd hat den Parameter „port“ erhalten, der in den Sektionen „listen on“ und „neighbor“ verwendet werden kann, um sich an eine nicht standardmäßige Netzportnummer zu binden. Der Code wurde umgearbeitet, um mit RIB (Routing Information Base) zu arbeiten, wobei auch zukünftige Multipath-Unterstützung berücksichtigt wurde.
- Im Konsolenfenster-Manager tmux („terminal multiplexer“) wurden die Möglichkeiten für farbige Ausgaben erweitert. Die Befehle pane-border-format, cursor-colour und cursor-style wurden hinzugefügt.
- In LibreSSL wurde die Unterstützung für RFC 3779 (Erweiterungen von X.509 für IP-Adressen und autonome Systeme) sowie den Mechanismus Certificate Transparency (ein unabhängiges öffentliches Protokoll aller ausgestellten und zurückgezogenen Zertifikate, das eine unabhängige Prüfung aller Änderungen und Aktionen von Zertifizierungsstellen ermöglicht und sofortige Überwachung jeglicher Versuche zur geheimen Erstellung falscher Einträge erlaubt) portiert. Die Kompatibilität mit OpenSSL 1.1 wurde erheblich verbessert, und identische Verschlüsselungsnamen wie bei OpenSSL für TLSv1.3 wurden verwendet. Viele Funktionen wurden auf die Verwendung von calloc() umgestellt. In libssl und libcrypto wurden zahlreiche neue Aufrufe hinzugefügt.
- Das OpenSSH-Paket wurde aktualisiert. Eine detaillierte Übersicht über die Verbesserungen ist in den Berichten zu OpenSSH 8.9 und OpenSSH 9.0 zu finden. Das Utility scp wurde standardmäßig auf die Verwendung von SFTP anstelle des veralteten Protokolls SCP/RCP umgestellt.
- Die Anzahl der Ports für die AMD64-Architektur beträgt 11301 (früher 11325), für aarch64 - 11081 (früher 11034), für i386 - 10136 (früher 10248). Unter den Versionen der Anwendungen in den Ports: Asterisk 16.25.1, 18.11.1 und 19.3.1 Audacity 2.4.2 CMake 3.20.3 Chromium 100.0.4896.75 Emacs 27.2 FFmpeg 4.4.1 GCC 8.4.0 und 11.2.0 GNOME 41.5 Go 1.17.7 JDK 8u322, 11.0.14 und 17.0.2 KDE Applications 21.12.2 KDE Frameworks 5.91.0 Krita 5.0.2 LLVM/Clang 13.0.0 LibreOffice 7.3.2.2 Lua 5.1.5, 5.2.4 und 5.3.6 MariaDB 10.6.7 Mono 6.12.0.122 Firefox 99.0 und ESR 91.8.0 Thunderbird 91.8.0 Mutt 2.2.2 und NeoMutt 20211029 Node.js 16.14.2 OpenLDAP 2.4.59 PHP 7.4.28, 8.0.17 und 8.1.4 Postfix 3.5.14 PostgreSQL 14.2 Python 2.7.18, 3.8.13, 3.9.12 und 3.10.4 Qt 5.15.2 und 6.0.4 R 4.1.2 Ruby 2.7.5, 3.0.3 und 3.1.1 Rust 1.59.0 SQLite 2.8.17 und 3.38.2 Shotcut 21.10.31 Sudo 1.9.10 Suricata 6.0.4 Tcl/Tk 8.5.19 und 8.6.8 TeX Live 2021 Vim 8.2.4600 und Neovim 0.6.1 Xfce 4.16
- Die Komponenten von Drittanbietern in OpenBSD 7.1 wurden aktualisiert:
- Der grafische Stack Xenocara auf Basis von X.Org 7.7 mit xserver 1.21.1 + Patches, freetype 2.11.0, fontconfig 2.12.94, Mesa 21.3.7, xterm 369, 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.4.0
- Unbound 1.15.0
- Ncurses 5.7
- Binutils 2.17 (+ Patches)
- Gdb 6.3 (+ Patch)
- Awk 12.10.2021
- Expat 2.4.7
Quelle: opennet.ru
