È stato presentato il rilascio del sistema operativo OpenBSD 7.0, una piattaforma UNIX-like multi-piattaforma. Si segnala che questo è il 51° rilascio del progetto, che compirà 26 anni il 18 ottobre. Il progetto OpenBSD è stato fondato da Theo de Raadt nel 1995 dopo un conflitto con gli sviluppatori di NetBSD, a seguito del quale l'accesso di Theo al repository CVS di NetBSD è stato chiuso. Successivamente, Theo de Raadt e un gruppo di collaboratori hanno creato un nuovo sistema operativo open source sulla base dell'albero dei sorgenti di NetBSD, con l'obiettivo principale di garantire 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.0 è di 554 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).
Principali miglioramenti:
- Aggiunto un port per sistemi a 64 bit basati sull'architettura RISC-V. Attualmente viene supportato il funzionamento sulle schede HiFive Unmatched e parzialmente sul PolarFire SoC Icicle Kit.
- Nel port per le piattaforme ARM64 è stata migliorata, ma non ancora completata, il supporto per i dispositivi Apple con processore M1. Nella sua forma attuale supporta l'installazione di OpenBSD su un disco con GPT e ha driver per USB 3, NVME, GPIO e SPMI. Oltre all'M1, nel port ARM64 è stato anche ampliato il supporto per Raspberry Pi 3 Model B+ e schede basate su SoC Rockchip RK3399.
- Per l'architettura AMD64, il compilatore GCC è disattivato di default (è rimasto solo Clang). In precedenza, GCC era stato disattivato per le architetture armv7 e i386.
- È stata interrotta la manutenzione della piattaforma SGI.
- Per le piattaforme amd64, arm64, i386, sparc64 e powerpc64, è attivata di default la compilazione del kernel con supporto per il sistema di tracciamento dinamico dt. È stato aggiunto il provider kprobes per raccogliere informazioni sugli eventi a livello kernel.
- In btrace è stato implementato il supporto per gli operatori "" nei filtri e garantito l'output del tempo trascorso nello spazio utente durante l'analisi dello stack del kernel.
- È stato aggiunto il file di configurazione /etc/bsd.re-config, che può essere utilizzato per configurare il kernel durante il caricamento e abilitare/disabilitare determinati dispositivi.
- È stato garantito il riconoscimento della presenza di dispositivi TPM 2.0 e l'esecuzione corretta dei comandi per passare alla modalità di sospensione (risolvendo il problema con il risveglio dei laptop ThinkPad X1 Carbon Gen 9 e ThinkPad X1 Nano).
- L'implementazione di kqueue è stata trasferita all'uso di mutex.
- È stata implementata la possibilità di configurare tramite sysctl la dimensione del buffer per i socket PF_UNIX. La dimensione del buffer predefinita è stata aumentata a 8 KB.
- Migliorato il supporto per sistemi multiprocessore (SMP). La chiamata pmap_extract() è stata convertita in mp-safe sui sistemi hppa e amd64. È stato estratto dal blocco generale del kernel il codice per il conteggio dei riferimenti agli oggetti anonimi, parte del gestore di eccezioni e delle funzioni lseek, connect e setrtable. Implementati buffer di messaggi separati per ciascun core CPU in caso di crash (panic).
- L'implementazione del framework drm (Direct Rendering Manager) è stata sincronizzata con il kernel Linux 5.10.65. Nel driver inteldrm è stato migliorato il supporto per i chip Intel basati sull'architettura micro Tiger Lake. Nel driver amdgpu è stato implementato il supporto per la GPU Navi 12, Navi 21 «Sienna Cichlid», Arcturus e APU Cezanne «Green Sardine» Ryzen 5000.
- Aggiunto il supporto per nuove apparecchiature, tra cui Aquantia AQC111U/AQC112U USB Ethernet, Aquantia 1/2.5/5/10Gb/s PCIe Ethernet, Cadence GEM, Broadcom BCM5725, RTL8168FP/RTL8111FP/RTL8117. Migliorato il supporto per le piattaforme Intel basate sull'architettura micro Tiger Lake. Aggiunto driver ucc per tastiere con interfaccia USB HID Consumer Control, che utilizzano i pulsanti per l'apertura delle applicazioni, il controllo della riproduzione audio e la modifica del volume.
- Miglioramenti apportati all'ipervisor VMM. Aggiunto un limite di 512 VCPU per macchina virtuale. Risolti problemi con i blocchi VCPU. Nel backend per la gestione delle macchine virtuali vmd è stato introdotto il supporto per la protezione contro sistemi guest con driver virtio dannosi.
- Portato da NetBSD l'utilità timeout, che consente di limitare il tempo di esecuzione dei comandi.
- Nell'utilità di sincronizzazione file openrsync sono state implementate le opzioni «include» ed «exclude».
- Nell'utilità ps è stata garantita l'uscita di informazioni sui gruppi secondari.
- Nel editor di testo mg è stata aggiunta il comando «dired-jump».
- Nelle utility fdisk e newfs è migliorato il supporto per i dischi con dimensione del settore 4K. In fdisk è stato rielaborato il codice per l'inizializzazione di MBR/GPT e aggiunto il riconoscimento delle partizioni GPT «BIOS Boot», «APFS», «APFS ISC», «APFS Recovery» (sic), «HiFive FSBL» e «HiFive BBL». Aggiunta l'opzione «-A» per l'inizializzazione di GPT senza rimuovere le partizioni di avvio.
- Nell'utilità traceroute, per velocizzare il lavoro, è stata implementata la gestione di pacchetti di verifica e richieste DNS in modalità asincrona.
- Nell'utilità doas è stata concessa una possibilità di tre tentativi per l'inserimento della password.
- In xterm è stata garantita l'isolamento dell'accesso al filesystem attraverso la chiamata di sistema unveil(). I processi ftpd sono protetti mediante la chiamata pledge.
- È stata implementata la registrazione nel log delle informazioni sull'uso improprio del parametro di formattazione «%n» nella funzione printf.
- Nell'implementazione di IPsec in iked è stata aggiunta la supporto per la configurazione DNS lato client.
- In snmpd il supporto per i protocolli SNMPv1 e SNMPv2c è disabilitato per favorire l'uso di SNMPv3.
- Per impostazione predefinita, sono abilitati i processi dhcpleased e resolvd, che consentono la configurazione degli indirizzi IPv4 tramite DHCP. L'utility dhclient è stata mantenuta nel sistema come opzione. Nel comando route è stata aggiunta l'opzione «nameserver» per inviare informazioni sul server DNS a resolvd.
- In LibreSSL è stato aggiunto il supporto per l'API TLSv3 di OpenSSL 1.1.1 e attivato un nuovo validatore X.509 che supporta la corretta verifica dei certificati firmati incrociati.
- In OpenSMTPD sono state aggiunte opzioni TLS «cafile=(path)», «nosni», «noverify» e «servername=(name)». In smtp è possibile selezionare i parametri di crittografia e i protocolli TLS.
- Il pacchetto OpenSSH è stato aggiornato. È possibile visualizzare una panoramica dettagliata delle migliorie qui: OpenSSH 8.7, OpenSSH 8.8. È stato disabilitato il supporto per le firme digitali rsa-sha.
- Il numero di porte per l'architettura AMD64 ammonta a 11325, per aarch64 — 11034, per i386 — 10248. Tra le versioni delle applicazioni nelle porte: FFmpeg 4.4, GCC 8.4.0 e 11.2.0, GNOME 40.4, Go 1.17, JDK 8u302, 11.0.12 e 16.0.2, KDE Applications 21.08.1, KDE Frameworks 5.85.0, LLVM/Clang 11.1.0, LibreOffice 7.2.1.2, Lua 5.1.5, 5.2.4 e 5.3.6, MariaDB 10.6.4, Node.js 12.22.6, PHP 7.3.30, 7.4.23 e 8.0.10, Postfix 3.5.12, PostgreSQL 13.4, Python 2.7.18, 3.8.12 e 3.9.7, Qt 5.15.2 e 6.0.4, Ruby 2.6.8, 2.7.4 e 3.0.2, Rust 1.55.0, SQLite 3.35.5, Xfce 4.16.
- Sono stati aggiornati i componenti di terze parti inclusi in OpenBSD 7.0:
- Il stack grafico Xenocara basato su X.Org 7.7 con xserver 1.20.13 + patch, freetype 2.10.4, fontconfig 2.12.4, Mesa 21.1.8, xterm 367, xkeyboard-config 2.20, fonttosfnt 1.2.2.
- LLVM/Clang 11.1.0 (+ patch)
- GCC 4.2.1 (+ patch) e 3.3.6 (+ patch)
- Perl 5.32.1 (+ patch)
- NSD 4.3.7
- Unbound 1.13.3
- Ncurses 5.7
- Binutils 2.17 (+ patch)
- Gdb 6.3 (+ patch)
- Awk 18.12.2020
- Expat 2.4.1
Fonte: opennet.ru
