Die Veröffentlichung des freien plattformübergreifenden UNIX-ähnlichen Betriebssystems OpenBSD 6.9 wurde vorgestellt. Dies ist die 50. Ausgabe des Projekts, das in diesem Jahr 26 Jahre alt wird. Das OpenBSD-Projekt 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 verweigert wurde. Daraufhin gründete Theo de Raadt mit einer Gruppe Gleichgesinnter ein neues offenes Betriebssystem auf Basis des NetBSD-Quellbaum, dessen Hauptziele Portabilität (Unterstützung von 13 Hardware-Plattformen), Standardisierung, korrekte Funktionalität, 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 bekannt für seine Komponenten, die in anderen Systemen verbreitet und als einige der sichersten und qualitativ hochwertigsten Lösungen anerkannt sind. Dazu gehören: LibreSSL (Fork von OpenSSL), OpenSSH, das Paketfilter-PF, die Routing-Demons OpenBGPD und OpenOSPFD, der NTP-Server OpenNTPD, der Mailserver OpenSMTPD, der Multiplexer für Textterminals (ähnlich GNU screen) tmux, der Daemon identd mit Implementierung des IDENT-Protokolls, die BSDL-Alternative zum GNU groff-Paket – mandoc, das Protokoll für den Aufbau fehlertoleranter Systeme CARP (Common Address Redundancy Protocol), ein leichtgewichtiger HTTP-Server und das Tool zur Dateisynchronisation OpenRSYNC.
Hauptverbesserungen:
- Im Softraid-Treiber wurde der RAID1C-Modus mit einer Implementierung von Software-RAID1 zur Datenverschlüsselung hinzugefügt.
- Zwei neue Hintergrundprozesse – dhcpleased und resolvd – wurden hinzugefügt, die zusammen mit slaacd und unwind zur automatischen Konfiguration von Netzwerkinterfaces und zur Namensauflösung in DNS arbeiten. Im dhcpleased wurde das DHCP-Protokoll zur Beschaffung von IP-Adressen implementiert, während resolvd die Verwaltung des Inhalts von resolv.conf basierend auf den von dhcpleased, slaacd und Treibern wie umb erhaltenen Informationen über Namensserver sicherstellt.
- Die anfängliche Unterstützung für Apple-Geräte mit M1-Prozessor wurde hinzugefügt. Dazu gehört die Erkennung der arm64-Kerne Apple Icestorm/Firestorm sowie die Unterstützung des drahtlosen Chips BCM4378, der in SoC Apple M1 verwendet wird.
- 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 vorherigen Version wurde die Unterstützung des RETGUARD-Schutzmechanismus für powerpc64 implementiert, ein Treiber astfb für das Aspeed BMC-Framebuffer hinzugefügt, Probleme mit den Treibern radeondrm und amdgpu auf Systemen mit AMD-GPU behoben und die Möglichkeit zur Netzwerkbooten in den Kernel-Builds für RAM-Disks hinzugefügt. Zudem wurde die Unterstützung für Energiesparmodi der CPU POWER9 sowie für Ausnahmen, die bei Fließkommaoperationen generiert werden, implementiert, und die Unterstützung von IPMI für PowerNV-Systeme wurde hinzugefügt.
- Für ARM64-Plattformen wird Unterstützung für die CPUs Cortex-A78AE, Cortex-X1 und Neoverse V1 bereitgestellt, optimierte ARM64-Varianten der Aufrufe copyin, copyout und kcopy implementiert, ein Cryptox-Treiber hinzugefügt, um die kryptografischen Erweiterungen ARMv8 zu unterstützen, sowie ein SMMU-Treiber für RM System MMU mit Unterstützung für Guard Page. Die Unterstützung für Raspberry Pi, Rock Pi N10, NanoPi und Pinebook Pro wurde verbessert.
- Im Video-Treiber wurde der sysctl-Parameter kern.video.record hinzugefügt, der analog zu kern.audio.record die Aktivierung der Ausgabe eines leeren Bildes bei der Videoaufnahme steuert (zum Erfassen muss der Wert auf 1 gesetzt werden). Prozesse dürfen das Video-Gerät mehrfach öffnen (löst Probleme mit der Verwendung von Webcams in Firefox und BigBlueButton).
- Tracepoints für die Funktionen malloc und free wurden hinzugefügt, die es ermöglichen, mit dt und btrace die mit der Speicherverteilung verbundene Aktivität zu verfolgen. In btrace wurde die Option '-n' zum Parsen des Programms ohne Ausführung von Aktionen hinzugefügt.
- Die Unterstützung für SMP- (Symmetric Multiprocessing) Systeme wurde verbessert. Die UNIX-Socket-Implementierung wurde aus der allgemeinen Kernel-Sperre herausgenommen, ein gemeinsamer Mutex für die Serialisierung von Operationen mit msgbuf hinzugefügt und der Aufruf uvm_pagealloc in den mp-safe Bereich überführt, während die Aufrufe getppid und sendsyslog von Sperrungen befreit wurden.
- Probleme in den DRM-Komponenten (Direct Rendering Manager) wurden behoben, einschließlich Abstürzen im radeondrm-Treiber auf Powerbook5/6 und RV350-Systemen. Die Unterstützung für DRI3 wurde in den amdgpu- und ati-Treibern eingerichtet, um die Kompatibilität mit Linux zu gewährleisten. Geräte werden im Verzeichnis /dev/dri/ erstellt.
- Verbesserungen am Hypervisor VMM wurden vorgenommen. Im Backend zur Verwaltung virtueller Maschinen vmd wurde die Unterstützung für das Booten von komprimierten RAM-Disks hinzugefügt.
- Verbesserungen am Audiosystem wurden vorgenommen. Es wurde die Möglichkeit geschaffen, Audiogeräte sndio ausschließlich für die Wiedergabe und nur für die Aufnahme zuzuweisen. In sndiod wurde ein achtter Ordnung endlicher Impulsfilters (FIR-Filter) implementiert, der es ermöglichte, Rauschen aufgrund von Spektralintegration beim Resampling loszuwerden. Die Funktion zur automatischen Lautstärkeregelung, wenn ein neues Programm zu spielen beginnt (autovolume), ist standardmäßig deaktiviert, und der Standardwert für die Lautstärke wurde auf 127 gesetzt. Das Mischen von Audio von alternativen Geräten mit unterschiedlichen unterstützten Funktionen in sndiod wurde erlaubt.
- Die LLDB-Debugger-Installation ist standardmäßig aktiviert.
- In rcctl, rc.subr und rc.d wurde die Unterstützung für den Logger-Handler hinzugefügt, der das Protokollieren von Meldungen aus Hintergrundprozessen ermöglicht, die Daten an stdout/stderr senden.
- Für Touchpads wurde die Möglichkeit zur Anpassung des Tastenlayouts über wsconsctl bereitgestellt. Die Verarbeitung gleichzeitiger Berührungen wurde in wscons verbessert.
- Für ARM64-Geräte wurde die Unterstützung von APM implementiert, um Daten zum Energieverbrauch und zum Akkustand zu erhalten. Um den Zugriff des Prozesses apmd auf das Dateisystem einzuschränken, wurde der Aufruf unveil verwendet.
- Die Unterstützung von Hardware wurde erweitert. Neue Treiber acpige (zur Verarbeitung von ACPI-Ereignissen wie dem Drücken der Einschalttaste), pchgpio (für GPIO-Controller, die in modernen Intel PCHs integriert sind), ujoy (für Spielecontroller) und uhidpp (für Logitech HID++-Geräte) wurden hinzugefügt. Unterstützung für die AMD Vi- und Intel VTD-IOMMU-Erweiterungen zur Isolation von PCI-Geräten und zur Verhinderung von falschem Speicherzugriff wurde implementiert. Unterstützung für die Lynloong-Computer LM9002/9003 und LM9013 wurde hinzugefügt. Die Treiber pcamux und imxiic haben nun ACPI-Unterstützung.
- Die Unterstützung für Netzwerkadapter wurde verbessert: mvpp (SFP+ und 10G für Marvel Armada Ethernet), mvneta (1000base-x und 2500base-x), mvsw (Marvel SOHO-Switches), rge (Wake on LAN-Unterstützung), Netgear ProSecure UTM25. Für die drahtlosen Treiber iwm, iwn und athn wurde die Unterstützung für RA (802.11n Tx Rate Adaptation) hinzugefügt. Im Wireless-Stack wurde die automatische Auswahl der Modi 11a/b/g/n/ac beim Einsatz der Netzwerkschnittstelle im Access-Point-Modus implementiert.
- Im Netzwerk-Stack wurde ein Treiber veb (Virtueller Ethernet-Brücke) implementiert. Die Unterstützung des Monitor-Modus wurde implementiert, in dem an der Netzwerkschnittstelle eintreffende Pakete nicht an den Netzwerk-Stack zur Verarbeitung weitergeleitet werden, aber Analyseverfahren wie BPF angewendet werden können. Ein neuer Typ von Netzwerkschnittstellen – etherbridge – wurde hinzugefügt. Die Möglichkeit (Befehl route sourceaddr) zur Überschreibung der Quelladresse für Programme wurde bereitgestellt, um den standardmäßigen Adressauswahlalgorithmus zu umgehen. IP-Adressen Es wurde sichergestellt, dass die Netzwerkschnittstellen automatisch aktiviert werden, wenn der automatische Konfigurationsmodus (AUTOCONF4 und AUTOCONF6) eingeschaltet ist.
- Im Installer wurde die Bereitstellung eines komprimierten RAM-Disk-Images (bsd.rd) auf allen Plattformen, die diese Art des Bootens unterstützen, implementiert.
- Die Ausgabe einer Warnung über syslog bei der Verwendung des Platzhalters für die Formatierung von Strings "%n" in printf wurde implementiert.
- Im Routing-Daemon OpenBGPD wurde die Unterstützung für das RTR-Protokoll (Resource Public Key Infrastructure (RPKI) to Router Protocol) hinzugefügt. Zum Anzeigen der grundlegenden Informationen über RTR-Sitzungen wurde der Befehl „bgpctl show rtr“ hinzugefügt.
- Der Code von ospfd und ospf6d wurde umstrukturiert, um ihn mit anderen Routing-Daedra zu vereinheitlichen und die Wartung zu erleichtern. Die Unterstützung für Netzwerkinterfaces im Punkt-zu-Punkt-Modus wurde eingerichtet.
- Im integrierten HTTP-Server httpd wurden neue Optionen „location (found|notfound)“ zur Überprüfung der Existenz von Ressourcen implementiert.
- Im Werkzeug rpki-client wurde die Unterstützung für das RRDP-Protokoll (The RPKI Repository Delta Protocol, RFC 8182) hinzugefügt. Es wurde die Möglichkeit implementiert, mehr als eine URI in der TAL-Datei anzugeben.
- Im Werkzeug dig wurde die Unterstützung für RFC 8914 (Extended DNS Error) und RFC 8976 (ZONEMD) realisiert.
- Im dhclient wurde die Möglichkeit hinzugefügt, Optionen in den Dateien hostname.if mit den Zeilen „dhcp“ anzugeben.
- Im Daemon snmpd wurde die vollständige Unterstützung für die Umwandlung von Trapv1 in Trapv2 (RFC 3584) umgesetzt. In snmpd.conf wurden neue Schlüsselwörter read, write und notify hinzugefügt. Im Werkzeug snmp wurde die Unterstützung für SMI-Aufzählungen realisiert.
- Im DNS-Resolver unwind wurde die Unterstützung für DNS64 und die Annahme von Verbindungen über TCP-Port hinzugefügt.
- Im Werkzeug ftp wurde die Unterstützung für permanente Umleitungen (RFC 7538) und die Möglichkeit zur Sendung des Headers If-Modified-Since bei HTTP/HTTPS-Anfragen hinzugefügt.
- In OpenSMTPD wurde die Option „-a“ hinzugefügt, um die Authentifizierung vor dem Versand von Nachrichten durchzuführen. Die Verschlüsselungsfunktionen wurden auf die Verwendung der Bibliothek libtls umgestellt. In den hörenden Sockets für TLS wurde die Möglichkeit zur Konfiguration mehrerer Zertifikate realisiert, die je nach Name (SNI) ausgewählt werden. der Domain unterscheiden, gesetzt werden. (SNI).
- In LibreSSL wurde die Unterstützung für das Protokoll DTLSv1.2 hinzugefügt. Die Möglichkeit wurde umgesetzt, nur libtls zu kompilieren (‘—enable-libtls-only’) ohne libcrypto und libssl.
- Das Paket OpenSSH wurde aktualisiert. Eine detaillierte Übersicht der Verbesserungen finden Sie hier: OpenSSH 8.5, OpenSSH 8.6.
- Die Anzahl der Ports für die Architektur AMD64 betrug 11310, für aarch64 — 10943, für i386 — 10468. Unter den Versionen der Anwendungen in den Ports befinden sich: 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 Applications 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, die in OpenBSD 6.9 enthalten sind, wurden aktualisiert:
- Der Grafikstapel Xenocara basierend 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
Die Veröffentlichung von OpenBSD 6.9 wird von dem neuen Lied „Vetera Novis“ begleitet.
Quelle: opennet.ru
