Dopo sei mesi di sviluppo, è stato rilasciato FreeBSD 15.1. Sono state preparate le build di installazione per le architetture amd64, aarch64, armv7, powerpc64, powerpc64le e riscv64. Sono inoltre disponibili build per sistemi di virtualizzazione (QCOW2, VHD, VMDK, raw) e ambienti cloud Amazon EC2, Google Compute Engine e Vagrant. Il rilascio di FreeBSD 15.1 sarà supportato fino ad aprile 2027, mentre gli aggiornamenti per la branch 15.x verranno rilasciati fino al 31 dicembre 2029.
Variazioni principali:
- I driver dei dispositivi wireless rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) e iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) sono stati sincronizzati con il kernel Linux 7.0.
- Nel kernel è stato implementato un framework per la selezione dello scheduler. Nella configurazione del kernel sui sistemi amd64, oltre allo scheduler SCHED_ULE di default, è stata attivata la build dello scheduler classico SCHED_4BSD. È stato aggiunto il parametro sysctl kern.sched per la selezione dello scheduler al momento dell'avvio.
- È stato fatto un lavoro per garantire il supporto dello standard C23 nel codice base per le build dei compilatori in modalità C23. È previsto un supporto completo per C23 nella branch FreeBSD 16. Il nuovo standard introduce le costanti nullptr, il tipo _BitInt(n) e le parole chiave bool, true e false, che potrebbero confliggere con identificatori omonimi definiti nel codice precedente. Il supporto per C23 permetterà di utilizzare nel codice FreeBSD nuove funzionalità del linguaggio, come il file di intestazione stdbit.h, la funzione memalignment(), e i file limits.h e stdint.h aggiornati con il macro _WIDTH e il tipo char8_t.
- Nel filtro pacchetti ipfw è stata implementata la possibilità di specificare maschere arbitrarie nelle tabelle (lookup table), consentendo di ignorare qualsiasi combinazione di bit nelle chiavi e negli elementi della tabella; ad esempio, si possono utilizzare maschere non consecutive indirizzi IP, come «lookup src-ip4:255.255.253.255. È stato rimosso il codice per la compatibilità con le versioni del filtro pacchetti ipfw rilasciate prima del rilascio di FreeBSD 8.
- È consentito l'instradamento dei pacchetti IPv6 verso i divert-socket, nei quali in precedenza era consentito il funzionamento solo con IPv4. Nella command line ifconfig è stato aggiunto il flag ‘stableaddr’ per generare indirizzi IPv6 stabili, invariati per ogni sottorete (Stateless Address Autoconfiguration, RFC 7217).
- La shell di default per gli utenti «root» e «freebsd» è stata sostituita da csh a sh.
- È stato aggiunto lo strumento setaudit per gestire le politiche di audit del sistema.
- Nello strumento find sono state aggiunte le opzioni «-xattr» e «-xattrname» per cercare file tenendo conto degli attributi estesi dei file.
- Nell'utilità newfs è stata aggiunta l'opzione «-u» per disattivare il meccanismo di soft updates e il journaling per UFS2.
- È stata rimossa di default l'utilità ipfs, utilizzata per salvare e ripristinare le tabelle di traduzione degli indirizzi, e disabilitata la funzionalità necessaria al suo funzionamento nel kernel (può essere ripristinata nelle impostazioni di compilazione).
- Nello script bsdinstall è abilitata di default l'installazione di pkgbase con i componenti indicati nella variabile COMPONENTS. Il vecchio metodo di installazione basato su distset rimane disponibile, se è definita la variabile DISTRIBUTIONS.
- Nelle librerie standard sono state aggiunte le funzioni tdestroy,
strdupa,
strndupa,
posix_spawnattr_getexecfd_np,
posix_spawnattr_setexecfd_np,
pthread_tryjoin_np.
Nelle funzioni memcpy, memmove e memset sui sistemi AArch64 sono state implementate ottimizzazioni basate su istruzioni MOPS (Memory Operations). - È stata aggiunta la libreria libuvmem con implementazioni del meccanismo di allocazione della memoria vmem, che opera nello spazio utente e fornisce un'API compatibile con vmem per le applicazioni.
- Nei formati per macchine virtuali e sistemi cloud è stato incluso il gestore di pacchetti pkg e implementato il supporto per l'aggiornamento atomico del pacchetto con il sistema di base al primo avvio.
- Nella configurazione del kernel MINIMAL è stato incluso il driver virtio_scsi, che consente di avviare il sistema in macchine virtuali basato su qemu/kvm.
- Sono stati implementati le syscall pdwait e pdfork per il nuovo meccanismo di creazione e terminazione dei processi, che utilizza i descrittori dei processi.
- Nella compatibilità con Linux è stata aggiunta la chiamata fcntl F_DUPFD_QUERY, che utilizza kcmp KCMP_FILE per verificare il file descriptor nei contenitori Linux.
- È stata abilitata la compilazione del driver iwx per gli adattatori wireless Intel AX210/AX211/AX411 con supporto Wi-Fi 6E e Wi-Fi 7.
- Sono stati aggiornati i driver. È stato aggiunto il supporto per gli adattatori di rete Intel E835-XXV-4 e Intel E835 Ethernet, controller RAID utilizzati in server Fujitsu PRIMERGY, così come SSD NVMe utilizzati in Google Compute Engine C4. È stato migliorato il supporto per le schede Raspberry Pi. È stato aggiunto il supporto per i contatori di monitoraggio delle prestazioni (hwpmc), forniti nella CPU Intel Alder Lake, Alder Lake-N ed Emerald Rapids.
- Il driver hid è stato configurato per fornire accesso agli utenti del gruppo game, consentendo l'uso di controller di gioco senza elevare i privilegi, utilizzando librerie come libsdl.
- Nell'utilità mt è stata garantita la compatibilità con le unità a nastro che supportano gli standard LTO-10 e LTO-10P (Linear Tape-Open Generation 10).
- Nel comando «zpool prefetch» è stato aggiunto il supporto per i metadati BRT (Block Reference Table), che migliorano le prestazioni di clonazione e liberazione dei blocchi.
- Nel client NFS è stato aggiunto il supporto per l'esportazione tramite NFS di file system che non tengono conto della casse nei nomi di file e cartelle.
Durante il boot senza disco tramite NFSv4 è stato implementato il supporto per il montaggio della partizione NFS come filesystem radice e il mapping dei nomi o degli identificatori degli utenti tramite nfsuserd. È stato aggiunto il supporto iniziale per l'estensione a NFSv4.2 con POSIX ACL. server Nel client NFSv4 è stato aggiunto il supporto per l'attributo di archiviazione (UF_ARCHIVE), utilizzato nel client NFS di Windows. - Nell'interfaccia splash è stata aggiunta la possibilità di impostare uno screen saver in formato PNG, visualizzato al termine del funzionamento del sistema.
- È stato aggiunto il sysctl net.inet.ipf.jail_allowed, che consente di legare a un ambiente Jail il proprio set di impostazioni e regole del filtro pacchetti ipfilter.
- È stato aggiunto il sysctl allow.vmm_ppt per il passaggio dell'accesso agli dispositivi PCI in ambienti isolati basati su hypervisor bhyve.
- Nel driver GPU basato su virtio è stato implementato il supporto per ambienti virtuali basati su Parallels Desktop.
- È stato aggiunto il supporto per i registri FGT (Fine-Grained Trap), il meccanismo Extended Destination ID e le istruzioni MOPS (Memory Operations), che ampliano le capacità di virtualizzazione e migliorano le prestazioni sui sistemi ARM64. È stato aggiunto il supporto per l'estensione ARM64 LASS (Linear Address Space Separation) per rafforzare l'isolamento tra il kernel e lo spazio utente.
- Nell'implementazione del framebuffer dell'hypervisor bhyve è stato aggiunto il supporto per i socket UNIX, che consentono di passare la console grafica a Jail non tramite rete.
- Aggiornate le versioni di OpenZFS 2.4.2, OpenSSL 3.5.6, NSS 3.123.1, xz 5.8.3, tcpdump 4.99.6, zlib 1.3.2, zstd 1.5.7, blocklistd 2026-02-07, ncurses 6.6, bsddialog 1.0.5, bmake 20251111, SQLite 3.50.4, unbound 1.25.1, MIT Kerberos 1.22.2, Heimdal Kerberos 1.22.2.
- Il font da console spleen è stato aggiornato alla versione 2.2.0 e ampliato con simboli aggiuntivi (trattino lungo, trattino corto, segno meno, parentesi angolari, quadrato bianco, croce e croce doppia). È stato migliorato l'allineamento dei simboli sugli schermi ad alta densità di pixel. Le tabelle dei simboli Unicode sono state aggiornate alla versione 17.0.0, che include 4803 simboli.
- Il sottosistema blacklist è stato rinominato in blocklist con il processo in background blocklistd. Le vecchie impostazioni negli script rc e nelle regole del filtro pacchetti continuano a funzionare, ma generano un avviso.
- Lo strumento OpenPAM è stato spostato nel nuovo pacchetto FreeBSD-pam, mentre la libreria Zstandard e l'utilità zstd nel pacchetto FreeBSD-zstd.
- Sui sistemi installati tramite il pacchetto freebsd-base, è stato bloccato l'invocazione degli script di installazione installworld e installkernel per evitare disallineamenti di stato del sistema con i pacchetti.
- È stata interrotta la generazione di build nel formato OCI (Oracle Cloud Infrastructure).
- Sono state dichiarate obsolete e saranno rimosse nella versione FreeBSD 16 le utilità fdisk, bsdlabel, lpr, lpd, lpc, lpq, lprm, lp, pac, lptest e chkprintcap. Per lavorare con le partizioni invece di fdisk e bsdlabel si raccomanda di utilizzare gpart o bsdinstall, e per l'organizzazione della stampa, utilizzare il pacchetto print/cups o sysutils/LPRng. In FreeBSD 16 si prevede anche di rimuovere gli sysctls hw.ata.rotating e hw.ata.unmapped_io, e i driver hifn (acceleratori crittografici Hifn 7751/7951/7811/7955/7956), safe (acceleratori crittografici SafeNet SafeXcel 1141/1741), le (AMD Am7900 LANCE e Am79C9xx ILACC/PCnet Ethernet), fdc (controllore disco floppy) e agp (Accelerated Graphics Port).
Fonte: opennet.ru
