De uitgave van het gratis UNIX-achtige besturingssysteem OpenBSD 7.7 is gepresenteerd. Het OpenBSD-project werd in 1995 opgericht door Theo de Raadt na een conflict met de ontwikkelaars van NetBSD, waardoor Theo geen toegang meer had tot de CVS-repository van NetBSD. Hierna creëerde Theo de Raadt samen met een groep gelijkgestemden een nieuw open besturingssysteem op basis van de broncode van NetBSD, waarbij de belangrijkste ontwikkelingsdoelen zijn draagbaarheid (ondersteuning voor 13 hardwareplatforms), standaardisatie, betrouwbaarheid, proactieve veiligheid en geïntegreerde cryptografische middelen. De grootte van het volledige installatie-ISO-image van de basisversie van OpenBSD 7.7 is 746 MB.
Naast het besturingssysteem zelf, is het OpenBSD-project bekend om zijn componenten die populair zijn geworden in andere systemen en zich hebben bewezen als een van de veiligste en hoogst kwalitatieve oplossingen. Onder deze componenten zijn: LibreSSL (fork van OpenSSL), OpenSSH, het packetfilter PF, de routeringsdemons OpenBGPD en OpenOSPFD, de NTP-server OpenNTPD, de mailserver OpenSMTPD, de multiplexor voor tekstterminals (vergelijkbaar met GNU screen) tmux, de identd-demons met implementatie van het IDENT-protocol, de BSDL-alternatief voor het GNU groff-pakket — mandoc, het protocol voor het organiseren van redundante systemen CARP (Common Address Redundancy Protocol), en de lichte http-server en het bestandssynchronisatieprogramma OpenRSYNC.
Belangrijkste wijzigingen:
- De implementatie van het drm (Direct Rendering Manager) framework is gesynchroniseerd met de Linux-kernel 6.12.21 (in de vorige release was dat 6.6.52). In de inteldrm-driver is ondersteuning toegevoegd voor de GPU die wordt gebruikt in Intel-processors op basis van de microarchitectuur Arrow Lake. In de amdgpu-driver is ondersteuning toegevoegd voor de GPU Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) en Radeon RX 9070 (Navi 48).
- In de port voor de ARM64-architectuur is ondersteuning geïmplementeerd voor de vectorinstructieset SVE (Scalable Vector Extension). Op systemen met ARM-chips van Apple M1 is het mogelijk om energieverbruikstoestanden in te stellen. In het mechanisme voor het in kaart brengen van fysieke geheugenpagina's (pmap, physical mapping) zijn de operaties voor het wissen van de cache van de associatieve vertaling (TLB) geoptimaliseerd, wat de uitvoering van de kernbouwtest met ongeveer 5% heeft versneld. Op hardware die de QARMA3-encryptie ondersteunt, is pointer authenticatie (PAC, Pointer Authentication Code) ingeschakeld ter bescherming van de gebruikersruimte.
- Op x86_64-systemen voor gastsystemen die via QEMU worden uitgevoerd, is ondersteuning voor de AMD SEV (Secure Encrypted Virtualization)-mechanisme geïmplementeerd, dat in virtualisatiesystemen wordt gebruikt voor bescherming virtuele machines tegen interventie van de hypervisor of de beheerder van het host-systeem. In de psp-stuurprogramma, die wordt gebruikt voor de configuratie en uitvoering van gastsystemen met inschakeling van AMD SEV, is een opdracht toegevoegd voor het laden van firmware in de chip.
- Op x86_64-systemen is de mogelijkheid toegevoegd om geheugengebieden groter dan 4 GB voor DMA toe te wijzen.
- De ondersteuning voor de architecturen RISC-V, Sparc64, HPPA, i386 en Powerpc64 is verbeterd.
- De afhandeling van situaties met onvoldoende geheugen in het systeem (OOM) is verbeterd.
- In het traceermechanisme ptrace zijn mogelijkheden toegevoegd waarmee in de gdb-debugger breekpunten in meer-draadprocessen kunnen worden ingesteld. Opdrachten zijn toegevoegd voor het lezen en schrijven van de gebieden waarin de toestand van de processor wordt opgeslagen bij het gebruik van de XSAVE-instructie in het te traceren proces.
- In scripts geschreven in de BT-taal (BPFtrace of Bug Tracing) die in het btrace-tracingsysteem worden toegepast, is ondersteuning voor meerregelconstructies toegevoegd. In de btrace-tool zijn extra profielen en benoemingen voor tijdsintervallen (hz, us, ms, s) toegevoegd.
- Een sysctl-parameter kern.audio.kbdcontrol is toegevoegd, waarbij het instellen op 0 betekent dat de multimedia-toetsen voor volume op het toetsenbord worden behandeld als gewone toetsen.
- De afhandeling van fouten is verbeterd en de controles zijn uitgebreid bij het overgaan in slaap- en wachtmodi.
- De code voor het stoppen van processen bij ontvangst van een signaal is herzien, wat problemen met het stoppen van meer-draadprocessen heeft opgelost, zoals die zich voordeden in pakketten zoals golang en mpv.
- De ondersteuning voor multiprocessorsystemen (SMP) is geoptimaliseerd. Er is parallelle werking van TCP-invoertijdschakelaars gerealiseerd, en de systeemoproepen send() en recv() zijn overgezet naar het gebruik van een gemeenschappelijke vergrendeling. Meerdere gebruikersdraad kunnen nu parallel met verschillende sockets werken, en TCP-uitvoer verstoort de verwerking van IP-pakketten niet meer.
De systeemoproepen open, openat, ptsignal, psignal en prsignal zijn bevrijd van globale vergrendeling, evenals sysctl kern.timeout_stats, kern.allowkmem, kern.video.record, net.inet.gre.allow, net.inet.gre.wccp, kern.global_ptrace, kern.wxabort, kern.malloc.kmemstat. De psp-, wsmouse- en wstpad-stuurprogramma's zijn naar mp-safe overgezet, evenals de structuur video_filtops.
- In de hypervisor VMM is de mogelijkheid geïmplementeerd om acpipci te gebruiken voor het aansluiten van PCI-bussen.
- De mogelijkheid is toegevoegd om een alternatieve prestatiebeleid (perfpolicy) te definiëren, die wordt toegepast wanneer het systeem op batterij draait.
- De syctl-opdracht heeft de optie “-f file” gekregen voor het tegelijk laden van alle instellingen uit een bestand. In rc-scripts is de nieuwe optie toegepast om sysctl.conf in één keer te laden, in plaats van regel voor regel te parseren.
- In de pkg_add-opdracht is de aanroep ldconfig geïmplementeerd, als tijdens de installatie van nieuwe pakketten de lijst van gedeelde bibliotheken is gewijzigd.
- Ondersteuning voor nieuwe hardware is toegevoegd. De ondersteuning voor MediaTek- en Qualcomm Snapdragon SoC's is verbeterd (inclusief X Elite). De ondersteuning voor apparaten zoals de Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 en diverse Chromebook is verbeterd. De ice-driver voor Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb en de ixv-driver voor Intel Ethernet virtual functions 82598EB, 82559 en X540 is toegevoegd. Er is verder gewerkt aan het verplaatsen van netwerkoperaties naar de netwerkkaarten.
- In sysupgrade is een modus geïmplementeerd voor offline systeemupdates met behulp van pakketten die zijn opgeslagen in het lokale bestandssysteem.
- In de utility fw_update is de mogelijkheid toegevoegd om firmware te downloaden (niet installeren) door een normale gebruiker zonder root-rechten. Een vlag “-l” is toegevoegd voor het weergeven van de lijst met stuurprogramma's en bestanden.
- Voor het proces sshd-auth is bescherming tegen exploitatie kwetsbaarheden ingeschakeld, gebaseerd op willekeurige hercompilatie van het uitvoerbare bestand bij elke systeemopstart (relink). Hercompilatie maakt functie-offsets minder voorspelbaar, wat het creëren van exploits die gebruikmaken van return-oriented programming-methoden bemoeilijkt.
- Isolatie van het proces mountd is verzekerd met behulp van de systeemaanroep unveil.
- In de netwerkstack is ondersteuning voor AF_FRAME-sockets en het IFT_ETHER-protocolfamilie geïmplementeerd, waardoor toepassingen Ethernet-frames kunnen verzenden en ontvangen. Voor uitgaande UDP- en TCP-pakketten is een nieuwe hash-methode geïntroduceerd, die het verkeer optimaliseert en de verzending van UDP voor IPv4/IPv6 en TCP voor IPv6 aanzienlijk (~20%) versnelt. Voor het tun-apparaat is ioctl TUNSCAP geïmplementeerd en de interactie tussen de kernel en de gebruikersruimte is geoptimaliseerd. Er is een aparte routeringscache per thread geïmplementeerd. In de vio-driver is de multiqueue-modus ingeschakeld.
- In de utility pfctl is het toegestaan om de bandbreedte voor netwerkinterfaces en wachtrijen te definiëren die groter is dan 4Gbit.
- In iked, de implementatie van het IKEv2-protocol voor IPsec, is de optie 'natt' toegevoegd voor gedwongen gebruik van nat-t.
- In relayd, het achtergrondproces voor het doorsturen en balanceren van verzoeken, is ondersteuning voor clienten geïmplementeerd. TLS-certificaten.
- De netwerkprestatie meettool tcpbench heeft ondersteuning voor TLS toegevoegd.
- In bgpd is ondersteuning voor RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message), geïmplementeerd en is standaard de optie 'reject as-set' geactiveerd, wat zorgt voor caching van Adj-RIB-Out.
- In LibreSSL 4.1.0 is experimentele ondersteuning voor de loongarch64-architectuur toegevoegd, met nieuwe assembleerimplementaties van de algoritmes SHA-1, SHA-256 en SHA-512 voor de amd64-architectuur (SHA-NI-instructie gebruikt), nieuwe assembleerimplementaties van SHA-256 en SHA-512 voor Aarch64 (CE-extensie ingezet), en de MD5-implementatie voor amd64 is vereenvoudigd, met caching van de lijst met ingetrokken certificaten (CRL's); de implementatie van ML-KEM 768 en 1024 is van BoringSSL overgezet.
- OpenSSH is bijgewerkt. De lijst met wijzigingen is te vinden in de aankondiging van OpenSSH 10 (ondersteuning voor digitale handtekeningen DSA is verwijderd, authenticatieoperaties zijn in een apart proces sshd-auth geplaatst, standaard is het hybride algoritme voor sleuteluitwisseling 'mlkem768x25519-sha256' geactiveerd).
- Het aantal poorten voor de AMD64-architectuur is 12593 (was 12312), voor aarch64 — 12446 (was 12148), voor i386 — 10429 (was 10534). Onder de versies van applicaties in de poorten:
- Asterisk 16.30.1, 18.26.1, 20.13.0 en 22.3.0
- Audacity 3.7.3
- CMake 3.31.6
- Chromium 135.0.7049.52
- Emacs 30.1
- FFmpeg 6.1.2
- GCC 8.4.0 en 11.2.0
- GNOME 47
- Go 1.24.1
- JDK 8u442, 11.0.26, 17.0.14 en 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
- MariaDB 11.4.5
- Mono 6.12.0.199
- Mozilla Firefox 137.0 en ESR 128.9.0
- Mozilla Thunderbird 128.9.0
- Mutt 2.2.14 en NeoMutt 20250113
- Node.js 22.14.0
- OpenLDAP 2.6.9
- PHP 8.2.28, 8.3.19 en 8.4.5
- Postfix 3.10.1
- PostgreSQL 17.4
- Python 2.7.18 en 3.12.9
- Qt 5.15.16 (+ patches van het KDE-project) en 6.8.2
- Ruby 3.2.8, 3.3.7, 3.4.2
- Rust 1.86.0
- SQLite 3.49.1
- Shotcut 25.01.25
- Sudo 1.9.16p1
- Suricata 7.0.7
- Tcl/Tk 8.5.19 en 8.6.16
- Vim 9.1.1265 en Neovim 0.10.4
- Xfce 4.20.0
- Componenten van derden in OpenBSD 7.7 zijn bijgewerkt:
- De grafische stack Xenocara is gebaseerd op X.Org 7.7 met xserver 21.1.16 + patches, freetype 2.13.3, fontconfig 2.15.0, Mesa 23.3.6, xterm 395, xkeyboard-config 2.20, fonttosfnt 1.2.4.
- LLVM/Clang 16.0.6 (+ patches)
- GCC 4.2.1 (+ patches) en 3.3.6 (+ patches)
- Perl 5.40.1 (+ patches)
- NSD 4.9.1
- Unbound 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ patches)
- Gdb 6.3 (+ patches)
- Awk 20250116
- Expat 2.7.1
- zlib 1.3.1 (+ patches)
Bron: opennet.ru
