È stato rilasciato OpenBSD 7.7, un sistema operativo open-source simile a UNIX. Il progetto OpenBSD è stato fondato da Theo de Raadt nel 1995 dopo un conflitto con gli sviluppatori di NetBSD, che aveva portato alla chiusura dell'accesso di Theo al repository CVS di NetBSD. Successivamente, Theo de Raadt e un gruppo di sostenitori hanno creato un nuovo sistema operativo open-source basato sugli alberi di sorgente di NetBSD, con l'obiettivo principale di garantire portabilità (supporta 13 piattaforme hardware), standardizzazione, corretto funzionamento, sicurezza proattiva e strumenti crittografici integrati. La dimensione dell'immagine ISO completa per l'installazione del sistema base OpenBSD 7.7 è di 746 MB.
Oltre al sistema operativo stesso, il progetto OpenBSD è noto per i suoi componenti che sono stati adottati in altri sistemi e si sono affermati come alcune delle soluzioni più sicure e di alta qualità. Tra questi: LibreSSL (fork di OpenSSL), OpenSSH, il filtro pacchetti PF, i demoni di routing OpenBGPD e OpenOSPFD, il server NTP OpenNTPD, il server di posta OpenSMTPD, il multiplexore di terminali testuali (simile a GNU screen) tmux, il demone identd che implementa il protocollo IDENT, l'alternativa BSDL al pacchetto GNU groff — mandoc, il protocollo per organizzare sistemi ad alta disponibilità CARP (Common Address Redundancy Protocol), un server http leggero, e lo strumento di sincronizzazione file OpenRSYNC.
Principali modifiche:
- L'implementazione del framework drm (Direct Rendering Manager) è sincronizzata con il kernel Linux 6.12.21 (nella precedente release — 6.6.52). Nel driver inteldrm è stata implementata il supporto per le GPU utilizzate nei processori Intel basati sull'architettura Arrow Lake. Nel driver amdgpu è stato aggiunto il supporto per la GPU Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) e Radeon RX 9070 (Navi 48).
- Nel porta per l'architettura ARM64 è stata implementata la supporto per l'insieme di istruzioni vettoriali SVE (Scalable Vector Extension). Nei sistemi con chip ARM Apple M1 è garantita l'impostazione degli stati di consumo energetico. Nel meccanismo di mapping delle pagine di memoria fisica (pmap, physical mapping) sono state ottimizzate le operazioni di reset del buffer della traduzione associativa (TLB), il che ha accelerato di circa il 5% l'esecuzione del test di compilazione del kernel. Su hardware con supporto per la crittografia QARMA3 è stata abilitata l'autenticazione dei puntatori (PAC, Pointer Authentication Code) per proteggere lo spazio utente.
- Su sistemi x86_64 per macchine virtuali eseguite tramite QEMU, è stato implementato il supporto per il meccanismo AMD SEV (Secure Encrypted Virtualization), utilizzato nei sistemi di virtualizzazione per la protezione di macchine virtuali da eventuali intrusioni da parte del hypervisor o dell'amministratore del sistema host. Nel driver psp, utilizzato per configurare e avviare sistemi guest con AMD SEV attivato, è stato aggiunto un comando per caricare il firmware nel chip.
- Su sistemi x86_64 è stata aggiunta la possibilità di allocare per DMA aree di memoria superiori a 4 GB.
- Migliorato il supporto per le architetture RISC-V, Sparc64, HPPA, i386 e Powerpc64.
- Migliorata la gestione delle situazioni di esaurimento della memoria nel sistema (OOM).
- Il meccanismo di tracciamento ptrace ha acquisito capacità che consentono di impostare punti di interruzione nel debugger gdb nei processi multithreading. Sono stati aggiunti comandi per la lettura e la scrittura dell'area in cui, nel processo tracciato, viene salvato lo stato del processore utilizzando l'istruzione XSAVE.
- Negli script in linguaggio BT (BPFtrace o Bug Tracing), utilizzati nel sistema di tracciamento btrace, è stato aggiunto il supporto per strutture multilinea. Sono stati aggiunti profili e denominazioni degli intervalli temporali (hz, us, ms, s) all'utilità btrace.
- È stato aggiunto il parametro sysctl kern.audio.kbdcontrol, impostandolo su 0, i tasti multimendiali per il controllo del volume sulla tastiera verranno trattati come normali tasti.
- Migliorato il trattamento degli errori e ampliati i controlli durante il passaggio a modalità sospensione e attesa.
- Rivisitato il codice per fermare i processi al ricevimento del segnale, risolvendo problemi con l'arresto di processi multithreading, che si manifestavano in pacchetti come golang e mpv.
- Supporto avanzato per sistemi multiprocessore (SMP). È garantito il funzionamento parallelo dei timer di input e output TCP, e le chiamate di sistema send() e recv() sono state trasferite all'uso di un blocco comune. Più thread utente possono ora funzionare in parallelo con socket diversi, e l'output TCP non blocca più l'elaborazione dei pacchetti IP.
Rimosse le global locks dalle chiamate di sistema open, openat, ptsignal, psignal e prsignal, così come 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. I driver psp, wsmouse e wstpad, così come la struttura video_filtops, sono stati resi mp-safe.
- Nel hypervisor VMM è stata implementata la possibilità di utilizzare acpipci per collegare bus PCI.
- È stata fornita la possibilità di definire una politica alternativa con impostazioni di prestazioni (perfpolicy), applicabile quando il sistema opera a batteria.
- Aggiunta all'argomento sysctl l'opzione "-f file" per caricare tutte le impostazioni da un file. Negli script rc, la nuova opzione è stata applicata per caricare totalmente sysctl.conf, invece di interpretarlo riga per riga.
- Nella squadra pkg_add è stata implementata la chiamata a ldconfig, se l'elenco delle librerie condivise è stato modificato a seguito dell'installazione di nuovi pacchetti.
- Aggiunto supporto per nuovo hardware. Migliorato il supporto per SoC MediaTek e Qualcomm Snapdragon (incluso X Elite). Migliorato il supporto per dispositivi Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 e vari Chromebook. Aggiunto il driver ice per Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb e il driver ixv per le funzioni virtuali Intel Ethernet 82598EB, 82559 e X540. Proseguono i lavori per spostare l'esecuzione delle operazioni di rete sulle schede di rete.
- In sysupgrade è stata implementata una modalità per l'aggiornamento offline dei sistemi utilizzando pacchetti salvati nel filesystem locale.
- Nell'utilità fw_update è stata aggiunta la possibilità di caricare (senza installare) i firmware come utente normale senza diritti root. È stato aggiunto il flag "-l" per visualizzare l'elenco dei driver e dei file.
- Per il processo sshd-auth è stata abilitata la protezione contro l'esploitazione delle vulnerabilità, basata sulla ricomposizione casuale del file eseguibile ad ogni avvio del sistema (relink). La ricomposizione rende poco prevedibili gli spostamenti delle funzioni, rendendo difficile la creazione di exploit che utilizzano metodi di programmazione orientati al ritorno.
- È stata garantita l'isolamento del processo mountd utilizzando la chiamata di sistema unveil.
- Nello stack di rete è stata implementata la supporto per i socket AF_FRAME e la famiglia di protocolli IFT_ETHER, che permette alle applicazioni di inviare e ricevere frame Ethernet. Per i pacchetti in uscita UDP e TCP è stato adottato un nuovo metodo di hashing, che ha ottimizzato la distribuzione del traffico tra le code e ha notevolmente (~20%) accelerato l'invio di UDP per IPv4/IPv6 e TCP per IPv6. Per il dispositivo tun è stata implementata l'ioctl TUNSCAP e ottimizzata l'interazione tra il kernel e lo spazio utente. È stato realizzato un cache di routing separato per ogni thread. Nel driver vio è stata inclusa la modalità multiqueue.
- Nell'utilità pfctl per le interfacce di rete e le code è stato consentito di definire la larghezza di banda superiore a 4 Gbit.
- In iked, the implementation of the IKEv2 protocol for IPsec has added the 'natt' option for forced use of nat-t.
- In relayd, a background process for redirecting and load balancing requests, client support has been implemented. certificati TLS..
- The network performance measurement tool tcpbench has added support for TLS.
- In bgpd, support for RFC 8654 (BGP Extended Message) and RFC 8538 (BGP Notification Message) has been implemented, with the 'reject as-set' option enabled by default and Adj-RIB-Out caching provided.
- LibreSSL 4.1.0 has added experimental support for the loongarch64 architecture, proposed new assembler implementations of SHA-1, SHA-256, and SHA-512 algorithms for the amd64 architecture (utilizing SHA-NI instruction), new assembler implementations of SHA-256 and SHA-512 for Aarch64 (employing CE extension), simplified the MD5 implementation for amd64, and provided caching of the revoked certificate list (CRLs), with ML-KEM 768 and 1024 implementations migrated from BoringSSL.
- OpenSSH has been updated. The change log can be found in the OpenSSH 10 announcement (DSA digital signature support has been removed, authentication operations are moved to a separate sshd-auth process, and the hybrid key exchange algorithm 'mlkem768x25519-sha256' is enabled by default).
- Il numero di porte per l'architettura AMD64 è stato aggiornato a 12593 (precedentemente 12312), per aarch64 a 12446 (precedentemente 12148), e per i386 a 10429 (precedentemente 10534). Tra le versioni delle applicazioni in porto:
- Asterisk 16.30.1, 18.26.1, 20.13.0 e 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 e 11.2.0
- GNOME 47
- Go 1.24.1
- JDK 8u442, 11.0.26, 17.0.14 e 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 e ESR 128.9.0
- Mozilla Thunderbird 128.9.0
- Mutt 2.2.14 e NeoMutt 20250113
- Node.js 22.14.0
- OpenLDAP 2.6.9
- PHP 8.2.28, 8.3.19 e 8.4.5
- Postfix 3.10.1
- PostgreSQL 17.4
- Python 2.7.18 e 3.12.9
- Qt 5.15.16 (+ patch dal progetto KDE) e 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 e 8.6.16
- Vim 9.1.1265 e Neovim 0.10.4
- Xfce 4.20.0
- Componenti di terze parti inclusi in OpenBSD 7.7 aggiornati:
- Stack grafico Xenocara basato su X.Org 7.7 con xserver 21.1.16 + patch, 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 (+ patch)
- GCC 4.2.1 (+ patch) e 3.3.6 (+ patch)
- Perl 5.40.1 (+ patch)
- NSD 4.9.1
- Unbound 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ patch)
- Gdb 6.3 (+ patch)
- Awk 20250116
- Expat 2.7.1
- zlib 1.3.1 (+ patch)
Fonte: opennet.ru
