È stato rilasciato OpenBSD 7.8, un sistema operativo UNIX-like libero. Il progetto OpenBSD è stato fondato da Theo de Raadt nel 1995 dopo un conflitto con gli sviluppatori di NetBSD, che ha portato alla chiusura dell'accesso al repository CVS di NetBSD per Theo. Successivamente, Theo de Raadt e un gruppo di sostenitori hanno creato un nuovo sistema operativo aperto basato sull'albero dei sorgenti di NetBSD, con obiettivi principali di portabilità (supporto per 13 piattaforme hardware), standardizzazione, corretto funzionamento, sicurezza proattiva e strumenti crittografici integrati. La dimensione dell'immagine ISO di installazione completa del sistema base OpenBSD 7.8 è di 597 MB.
Oltre al sistema operativo in sé, 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, filtro di pacchetto PF, demoni di routing OpenBGPD e OpenOSPFD, server NTP OpenNTPD, posta elettronica OpenSMTPD, multiplexer di terminale testuale (analogo a GNU screen) tmux, demone identd con implementazione del protocollo IDENT, alternativa BSDL al pacchetto GNU groff — mandoc, protocollo per l'organizzazione di sistemi resilienti CARP (Common Address Redundancy Protocol), server http leggero, utility di sincronizzazione file OpenRSYNC. server Sono stati implementati sistemi di chiamata waitid (attesa di modifiche nello stato del processo), pinsyscall (per la trasmissione di informazioni riguardo al punto d'ingresso execve per protezione contro exploit ROP), getthrname e setthrname (per ottenere e impostare il nome del thread).
Variazioni principali:
- Nel port per l'architettura ARM64 è stata aggiunta la supporto per le schede Raspberry Pi 5, è stato implementato il driver acpicpu, è stato garantito il funzionamento di apm (Advanced Power Management) e sysctl hw.cpuspeed sui dispositivi con chip Qualcomm Snapdragon X Elite.
- È stato implementato il supporto per il flag FD_CLOFORK (close-on-fork) per la chiusura del descrittore di file per i processi figli dopo la chiamata alla funzione fork(). Rispetto ad altre implementazioni, questo flag viene resettato dopo la chiamata alla funzione exec() per motivi di sicurezza e praticità.
- È stata aggiunta una sottosistema per l'esecuzione delle operazioni a livello elevato di allocazione, pianificazione e gestione delle interruzioni software (soft interrupt dispatcher).
- Il kernel è stato adattato per utilizzare i nanosecondi anziché i tick del timer durante l'esecuzione della funzione sleep, il che consente di evitare la perdita di precisione dovuta alle conversioni da nanosecondi a tick e viceversa durante l'inizio delle operazioni dalle funzioni di libreria nello spazio utente.
- È stata aumentata la compatibilità con i file system basati sul meccanismo FUSE (Filesystem in Userspace), nelle cui implementazioni viene utilizzata la libreria libfuse.
- Migliorato il supporto per le modalità di sospensione e attesa. Garantita l'assegnazione preventiva dello spazio di lavoro per la modalità di sospensione durante l'avvio. Aggiunta la possibilità di utilizzare la modalità di attesa per i dispositivi collegati tramite GPIO. Aggiunto il supporto per la modalità di sospensione dei laptop con CPU AMD utilizzando la modalità a basso consumo S0ix. Implementato sysctl ddb.suspend, che consente di saltare la sospensione dei driver inteldrm e amdgpu, in modo che lo schermo rimanga attivo. Aumentata l'affidabilità della modalità di sospensione S3 utilizzando il driver grafico amdgpu.
- Migliorato il supporto per sistemi multi-processore (SMP). Garantita la parallellizzazione del stack TCP su diversi core della CPU. Per la gestione del traffico TCP e dei pacchetti di rete in entrata, ora possono essere utilizzati fino a 8 thread (ma non più dei core della CPU). Implementata l'esecuzione parallela delle operazioni di ricostruzione dei frammenti dei pacchetti IPv6 e dell'analisi dei parametri di routing IPv6. Rimosse le lock globali dalle chiamate di sistema close() e listen().
- L'implementazione del framework drm (Direct Rendering Manager) è sincronizzata con il kernel Linux 6.12.50 (nell'ultima versione - 6.12.21). Aggiunti nuovi driver qcdrm e qcdpc per la sottosistema DRM dei chip Qualcomm Snapdragon e per il controller DisplayPort Qualcomm.
- Implementato il supporto per il funzionamento di OpenBSD in macchine virtuali kvm/qemu utilizzando l'estensione AMD SEV-ES (Encrypted State) per la protezione del sistema ospite. Nel hypervisor vmd è stata aggiunta la possibilità di avviare sistemi ospiti in modalità AMD SEV-ES, per attivarla è stato aggiunto il parametro "seves" in vm.conf. Aggiornati i dispositivi Virtio emulati network, block, entropy e scsi, nei quali è stato implementato il supporto per la specifica Virtio 1.2.
- L'utilità pkg-config è stata convertita da una propria implementazione in Perl a utilizzare lo strumento pkgconf 2.4.3, scritto in C.
- Come utilità watch, che lancia periodicamente comandi e mostra la loro uscita, è stato utilizzato il programma iwatch.
- Nello script di sicurezza, che esegue controlli di sicurezza periodici, è stata aggiunta la funzionalità per la creazione di backup GPT/MBR. Per ripristinare una copia GPT/MBR da un file, è stata aggiunta l'opzione "-R" all'utilità fdisk.
- Nel processo in background apmd è stata aggiunta l'opzione "-w percent" e il gestore /etc/apm/warnlow per organizzare l'output dell'avviso quando il livello della batteria scende sotto la soglia indicata.
- È stato implementato un nuovo sistema di profilazione gprof, che utilizza la chiamata di sistema profil.
- È stato ampliato il supporto hardware e sono stati aggiunti nuovi driver:
- acpiwmi — Windows Management Instrumentation.
- amdpmc — controller di gestione dell'energia AMD.
- bcmmip — controller MSI BCM2712.
- bcmstbgpio — controller GPIO Broadcom.
- bcmstbintc — controller delle interruzioni Broadcom.
- bcmstbpinctrl — multiplexing dei pin Broadcom.
- bcmstbrescal — controller di calibrazione del reset Broadcom.
- bcmstbreset — controller del reset Broadcom.
- rpone — controller periferico Raspberry Pi RP1.
- rpiclock — controller dell'orologio Raspberry Pi RP1.
- rpipwm — controller PWM Raspberry Pi RP1.
- rpirtc — orologio in tempo reale Raspberry Pi.
- iasuskbd(4) — ASUS I2C HID.
- Nel driver della web camera uvideo è stata aggiunta la supporto al codec H.264.
- È stato aggiunto il processo in background lldpd con implementazione dei protocolli LLDP (Link Layer Discovery Protocol) e l'utilità lldp per la gestione.
- È stato aggiunto il processo in background bpflogd per la cattura dei pacchetti di rete tramite bpf (Berkeley Packet Filter) e la loro registrazione in un log in formato tcpdump.
- In iked, implementazione del protocollo IKEv2 per IPsec, è stata aggiunta la possibilità di caricare più certificati da un file.
- La libreria LibreSSL è stata aggiornata alla versione 4.2.0, che offre un'API per l'utilizzo dell'algoritmo di scambio chiave ML-KEM (CRYSTALS-Kyber), resistente agli attacchi da parte dei computer quantistici.
- Aggiornato OpenSSH. È possibile consultare l'elenco delle modifiche negli annunci di OpenSSH 10.1 e 10.2:
- Il numero di porte per l'architettura AMD64 è stato di 12651 (era 12593), per aarch64 — 12506 (era 12446), per i386 — 10457 (era 10429). Tra le versioni delle applicazioni nei port:
- Asterisk 22.5.2
- Audacity 3.7.5
- CMake 3.31.8
- Chromium 141.0.7390.54
- Emacs 30.2
- FFmpeg 6.1.3
- GCC 8.4.0 e 11.2.0
- GHC 9.8.3
- GNOME 48
- Go 1.25.1
- JDK 8u462, 11.0.28, 17.0.16, 21.0.8 e 25.0.0
- KDE Applications 25.08.1
- KDE Frameworks 6.18.0
- KDE Plasma 6.4.5
- Krita 5.2.13
- LLVM/Clang 19.1.7, 20.1.8 e 21.1.2
- LibreOffice 25.8.1.1
- Lua 5.1.5, 5.2.4, 5.3.6 e 5.4.7
- MariaDB 11.4.7
- Mono 6.12.0.199
- Mozilla Firefox 143.0.3 e ESR 140.3.1
- Mozilla Thunderbird 143.3.1
- Mutt 2.2.15 e NeoMutt 20250905
- Node.js 22.20.0
- OCaml 4.14.2
- OpenLDAP 2.6.10
- PHP 8.2.29, 8.3.26 e 8.4.13
- Postfix 3.5.25 e 3.10.1
- PostgreSQL 17.6
- Python 2.7.18 e 3.12.11
- Qt 5.15.16 (+ patch di kde) e 6.8.3
- R 4.5.1
- Ruby 3.2.9, 3.3.9 e 3.4.6
- Rust 1.90.0
- SQLite 3.50.4
- Shotcut 25.08.16
- Sudo 1.9.17p2
- Suricata 7.0.7
- Tcl/Tk 8.5.19 e 8.6.16
- TeX Live 2025
- Vim 9.1.1706 e Neovim 0.11.4
- Xfce 4.20.0
- Componenti di terze parti inclusi in OpenBSD 7.8 sono stati aggiornati:
- Stack grafico Xenocara basato su X.Org 7.7 con xserver 21.1.18 + patch, freetype 2.13.3, fontconfig 2.15.0, Mesa 25.0.7, xterm 399, xkeyboard-config 2.20, fonttosfnt 1.2.4.
- LLVM/Clang 19.1.7 (+ patch)
- GCC 4.2.1 (+ patch) e 3.3.6 (+ patch)
- Perl 5.40.1 (+ patch)
- NSD 4.3.0
- Unbound 1.24.0
- Ncurses 6.4
- Binutils 2.17 (+ patch)
- Gdb 6.3 (+ patch)
- Awk 20250116
- Expat 2.7.3
- zlib 1.3.1 (+ patch)
Fonte: opennet.ru
