Die neue Version des plattformübergreifenden UNIX-ähnlichen Betriebssystems OpenBSD 6.9 wurde veröffentlicht. Dies ist die 50. Ausgabe des Projekts, das in diesem Jahr 26 Jahre alt wird. Das OpenBSD-Projekt wurde 1995 von Theo de Raadt nach einem Konflikt mit den Entwicklern von NetBSD gegründet, infolgedessen Theo der Zugang zum CVS-Repository von NetBSD verwehrt wurde. Daraufhin schuf Theo de Raadt mit einer Gruppe Gleichgesinnter auf Basis des Quellbaum von NetBSD ein neues Open-Source-Betriebssystem, dessen Hauptziele Portabilität (unterstützt 13 Hardwareplattformen), Standardisierung, zuverlässiger Betrieb, aktive Sicherheit und integrierte kryptografische Mittel sind. Die Größe des vollständigen Installations-ISO-Images des Basissystems OpenBSD 6.9 beträgt 544 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 Verbesserungen:
- Der Softraid-Treiber hat einen RAID1C-Modus hinzugefügt, der eine softwarebasierte Implementierung von RAID1 mit Datenverschlüsselung bietet.
- In das System wurden zwei neue Hintergrundprozesse integriert: dhcpleased und resolvd, die zusammen mit slaacd und unwind arbeiten, um Netzwerkschnittstellen automatisch zu konfigurieren und DNS-Namen zu ermitteln. Der dhcpleased-Prozess implementiert das DHCP-Protokoll zur Ermittlung von IP-Adressen, während resolvd die Verwaltung des Inhalts von resolv.conf basierend auf Informationen über die von dhcpleased, slaacd und ähnlichen Treibern wie umbs bereitgestellten Nameserver übernimmt.
- Die erste Unterstützung für Apple-Geräte mit M1-Prozessor wurde hinzugefügt. Dazu gehört die Erkennung der arm64-Kerne Apple Icestorm/Firestorm und die Unterstützung der drahtlosen BCM4378-Chips, die in SoC Apple M1 verwendet werden.
- Die Unterstützung der Plattform powerpc64, die für 64-Bit-Systeme auf Basis der POWER8- und POWER9-Prozessoren entwickelt wird, wurde verbessert. Im Vergleich zur früheren Version bietet powerpc64 nun Unterstützung für den RETGUARD-Schutzmechanismus, einen neuen astfb-Treiber für den Framebuffer des Aspeed BMC sowie Lösungen für Probleme mit den Treibern radeondrm und amdgpu auf Systemen mit AMD-Grafikprozessoren. Zudem wurde in den Kernel-Builds für den RAM-Disk die Möglichkeit der Netzwerkverbindung hinzugefügt, wobei auch die Unterstützung für Energiesparmodi des CPU POWER9 und von Ausnahmen, die bei Fließkommaoperationen generiert werden, implementiert wurde. Additionally, wurde die Unterstützung für IPMI in PowerNV-Systemen integriert.
- Für die ARM64-Plattform wurde die Unterstützung für die CPUs Cortex-A78AE, Cortex-X1 und Neoverse V1 bereitgestellt. Außerdem wurden optimierte Varianten für die ARM64-Aufrufe copyin, copyout und kcopy implementiert. Ein neuer cryptox-Treiber zur Unterstützung der ARMv8-Kryptoerweiterungen sowie ein smmu-Treiber für das RM System MMU mit Unterstützung für Guard Page wurden hinzugefügt. Die Unterstützung für Geräte wie Raspberry Pi, Rock Pi N10, NanoPi und Pinebook Pro wurde ebenfalls verbessert.
- Im Video-Treiber wurde der sysctl-Parameter kern.video.record hinzugefügt, der analog zu kern.audio.record die Ausgabe eines leeren Bildes bei dem Versuch, Video aufzunehmen, steuert (um die Aufnahme zu ermöglichen, ändern Sie den Wert auf 1). Prozessen ist es erlaubt, das Video-Gerät mehrmals zu öffnen (dies löst Probleme bei der Nutzung von Webcams in Firefox und BigBlueButton).
- Trace-Punkte für die Aufrufe von malloc und free wurden hinzugefügt, die es ermöglichen, die mit der Speicherzuweisung verbundene Aktivität mittels dt und btrace zu verfolgen. In btrace wurde die Option '-n' für die Analyse des Programms ohne Durchführung von Aktionen hinzugefügt.
- Die Unterstützung für Mehrprozessorsysteme (SMP) wurde verbessert. Die Implementierung von UNIX-Sockets wurde aus der globalen Kernel-Sperre herausgeführt, ein gemeinsamer Mutex zur Serialisierung der Operationen mit msgbuf hinzugefügt und der Aufruf von uvm_pagealloc in mp-sicher umgewandelt. Die Aufrufe von getppid und sendsyslog wurden von Sperren befreit.
- Probleme in den DRM (Direct Rendering Manager)-Komponenten wurden behoben, einschließlich der Abstürze im radeondrm-Treiber auf Systemen Powerbook5/6 und RV350. Die Unterstützung für DRI3 in den Treibern amdgpu und ati wurde optimiert, um die Erstellung von Geräten im Verzeichnis /dev/dri/ für die Kompatibilität mit Linux zu ermöglichen.
- Verbesserungen am Hypervisor VMM wurden vorgenommen. Im Backend zur Verwaltung von virtuellen Maschinen vmd wurde die Unterstützung für das Booten von komprimierten RAM-Laufwerken hinzugefügt.
- Verbesserungen wurden am Audiosystem vorgenommen. Es wurde die Möglichkeit eingeführt, Audiodateien über sndio ausschließlich für die Wiedergabe oder ausschließlich für die Aufnahme zuzuweisen. In sndiod wurde ein niederfrequenter Filter mit endlicher Impulsantwort (FIR-Filter) neunter Ordnung implementiert, der Störungen aufgrund überlappender Spektren beim Resampling beseitigt. Standardmäßig ist die automatisierte Lautstärkeregelung (autovolume) deaktiviert, und eine Lautstärke von 127 wird als Standardwert eingestellt. Das Mischen von Audio von alternativen Geräten mit unterschiedlichen unterstützten Funktionen in sndiod ist erlaubt.
- Die Installation und der Aufbau des Debuggers LLDB sind standardmäßig aktiviert.
- In rcctl, rc.subr und rc.d wurde die Unterstützung für den Logger-Handler eingeführt, der es ermöglicht, Protokolle von Hintergrundprozessen zu organisieren, die Daten an stdout/stderr senden.
- Für Touchpads gibt es die Möglichkeit, die Tastaturbelegung über wsconsctl zu konfigurieren. In wscons wurde die Verarbeitung gleichzeitiger Berührungen verbessert.
- Für ARM64-Geräte wurde die Nutzung von APM zur Erfassung von Energieverbrauchsdaten und Akkuladestatus implementiert. Um den Zugriff des Prozesses apmd auf das Dateisystem einzuschränken, wird der Aufruf unveil verwendet.
- Die Unterstützung für Hardware wurde erweitert. Neue Treiber acpige (für die Verarbeitung von ACPI-Ereignissen, wie das Drücken des Netzschalters), pchgpio (für GPIO-Controller, die in modernen Intel PCH verbaut sind), ujoy (für Gaming-Controller) und uhidpp (für Logitech HID++-Geräte) wurden hinzugefügt. Außerdem wurde die Unterstützung für AMD Vi- und Intel VTD-IOMMU-Erweiterungen zur Isolierung von PCI-Geräten und zur Unterbindung unzulässigen Zugriffs auf den Speicher implementiert. Unterstützung für die Computer Lynloong LM9002/9003 und LM9013 wurde hinzugefügt. In die Treiber pcamux und imxiic wurde Unterstützung für ACPI integriert.
- Verbesserte Unterstützung für Netzwerkkarten: mvpp (SFP+ und 10G für Marvel Armada Ethernet), mvneta (1000base-x und 2500base-x), mvsw (Marvel SOHO-Switches), rge (Unterstützung für Wake on LAN), Netgear ProSecure UTM25. Für die WLAN-Treiber iwm, iwn und athn wurde die Unterstützung für RA (802.11n Tx Rate Adaptation) hinzugefügt. Im drahtlosen Stack wurde ein automatischer Moduswechsel 11a/b/g/n/ac beim Einsatz der Netzwerkschnittstelle als Access Point implementiert.
- Im Netzwerkstack wurde der Treiber veb (Virtual Ethernet Bridge) implementiert. Der Überwachungsmodus ermöglicht es, dass eingehende Pakete an die Netzwerkschnittstelle nicht an den Netzwerkstack zur Verarbeitung weitergeleitet werden, jedoch können Mechanismen zur Verkehrsanalysierung wie BPF angewendet werden. Ein neuer Typ von Netzwerkschnittstellen – etherbridge – wurde hinzugefügt. Die Möglichkeit zur Überschreibung der Quelle (Befehl route sourceaddr) für Programme, um den standardmäßigen Adressauswahlalgorithmus zu umgehen, wurde bereitgestellt. IP-Adressen Das automatische Hochfahren der Netzwerkschnittstellen wurde mit Aktivierung des Autokonfigurationsmodus (AUTOCONF4 und AUTOCONF6) sichergestellt.
- Im Installer wurde die Bereitstellung eines komprimierten RAM-Image (bsd.rd) auf allen Plattformen implementiert, die einen solchen Bootvorgang unterstützen.
- Die Ausgabe von Warnungen über die Verwendung der printf-Zeichenfolgenersetzung «%n» wurde über syslog implementiert.
- Im OpenBGPD-Routing-Daemon wurde die Unterstützung für das RTR-Protokoll (Resource Public Key Infrastructure (RPKI) to Router Protocol) hinzugefügt. Der Befehl «bgpctl show rtr» wurde hinzugefügt, um grundlegende Informationen über RTR-Sitzungen anzuzeigen.
- Der Code von ospfd und ospf6d wurde umstrukturiert, um die Vereinheitlichung mit anderen Routing-Daemons zu fördern und die Wartung zu vereinfachen. Die Unterstützung für Netzwerk-Interfaces im Point-to-Point-Modus wurde implementiert.
- Im integrierten HTTP-Server httpd wurden neue Optionen «location (found|notfound)» eingeführt, um das Vorhandensein von Ressourcen zu überprüfen.
- Im Tool rpki-client wurde die Unterstützung für das RRDP-Protokoll (The RPKI Repository Delta Protocol, RFC 8182) hinzugefügt. Es ist nun möglich, mehr als eine URI in der TAL-Datei anzugeben.
- Im Tool dig wurde die Unterstützung für RFC 8914 (Extended DNS Error) und RFC 8976 (ZONEMD) implementiert.
- Im dhclient wurde die Möglichkeit hinzugefügt, Optionen in den Dateien hostname.if unter Verwendung von Zeilen «dhcp» anzugeben.
- Im Daemon snmpd wurde die vollständige Unterstützung für die Umwandlung von Trapv1 in Trapv2 (RFC 3584) implementiert. Neue Schlüsselwörter read, write und notify wurden in snmpd.conf hinzugefügt. Das Tool snmp unterstützt nun SMI-Enumerationen.
- Im DNS-Resolver 'unwind' wurde die Unterstützung für DNS64 und die Annahme von Verbindungen über den TCP-Port hinzugefügt.
- Das FTP-Tool unterstützt jetzt permanente Weiterleitungen (RFC 7538) und die Möglichkeit, den Header 'If-Modified-Since' beim Versenden von HTTP/HTTPS-Anfragen zu senden.
- In OpenSMTPD wurde die Option '-a' zur Authentifizierung vor dem Versand einer Nachricht hinzugefügt. Die Verschlüsselungswerkzeuge wurden zur Verwendung der Bibliothek libtls geändert. In den lauschernden Sockets für TLS kann nun eine Konfiguration mehrerer Zertifikate eingerichtet werden, die je nach Name ausgewählt werden. Nach Abschluss des Transfers kann die Domain auf unser Hosting gerichtet werden. (SNI).
- In LibreSSL wurde die Unterstützung für das Protokoll DTLSv1.2 hinzugefügt. Es besteht nun die Möglichkeit, nur libtls ('--enable-libtls-only') ohne libcrypto und libssl zu bauen.
- Das OpenSSH-Paket wurde aktualisiert. Eine detaillierte Übersicht über die Verbesserungen finden Sie hier: OpenSSH 8.5, OpenSSH 8.6.
- Die Anzahl der Ports für die Architektur AMD64 beträgt 11310, für aarch64 10943 und für i386 10468. Zu den Versionen der Anwendungen in den Ports gehören: Xfce 4.16, Asterisk 18.3.0, Chromium 90.0.4430.72, FFmpeg 4.3.2, GCC 8.4.0, GNOME 3.38, Go 1.16.2, KDE-Anwendungen 20.12.3, Krita 4.4.3, LLVM/Clang 10.0.1, LibreOffice 7.0.5.2, Lua 5.3.6, MariaDB 10.5.9, Firefox 88.0 und ESR 78.10.0, Thunderbird 78.10.0, Node.js 12.16.1, PHP 8.0.3, Postfix 3.5.10, PostgreSQL 13.2, Python 3.9.2, Ruby 3.0.1, Rust 1.51.0.
Die Komponenten von Drittanbietern für OpenBSD 6.9 wurden aktualisiert:
- Der Grafik-Stack Xenocara basiert auf X.Org 7.7 mit xserver 1.20.10 + Patches, freetype 2.10.4, fontconfig 2.12.4, Mesa 20.0.8, xterm 367, xkeyboard-config 2.20, fonttosfnt 1.2.1.
- LLVM/Clang 10.0.1 (+ Patches)
- GCC 4.2.1 (+ Patches) und 3.3.6 (+ Patches)
- Perl 5.32.1 (+ Patches)
- NSD 4.3.6
- Unbound 1.13.1
- Ncurses 5.7
- Binutils 2.17 (+ Patches)
- Gdb 6.3 (+ Patch)
- Awk 18.12.2020
- Expat 2.2.10
Zur Veröffentlichung von OpenBSD 6.9 wurde das neue Lied „Vetera Novis“ herausgebracht.
Quelle: opennet.ru
