Rilascio di FreeBSD 14.0

Dopo due anni e mezzo dalla pubblicazione della branch 13.0, è stato formato il rilascio di FreeBSD 14.0. Le immagini di installazione sono state preparate per le architetture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 e riscv64. Sono inoltre disponibili build per sistemi di virtualizzazione (QCOW2, VHD, VMDK, raw) e ambienti cloud Amazon EC2, Google Compute Engine e Vagrant. La branch FreeBSD 14 sarà l'ultima a supportare piattaforme a 32 bit. In FreeBSD 15 rimarrà solo il supporto per sistemi a 64 bit, ma sarà comunque possibile compilare programmi a 32 bit e utilizzare la modalità COMPAT_FREEBSD32 per eseguire file eseguibili a 32 bit in un ambiente a 64 bit.

Principali modifiche:

  • Come interprete da riga di comando per l'utente root è impostato di default /bin/sh.
  • Per i dispositivi NVME, il driver nda è attivato di default su tutte le piattaforme. Per tornare al vecchio driver nvd, è prevista la configurazione in loader.conf «hw.nvme.use_nvd=1».
  • È stata aggiunta una nuova utility «fwget», che identifica l'hardware che necessita di firmware e installa i relativi pacchetti firmware. Attualmente sono supportati solo dispositivi PCI e firmware per GPU Intel e AMD.
  • È stata aggiunta una nuova utility base64 per la codifica e la decodifica dei dati nel formato base64.
  • È stata aggiunta l'utility tcpsso, che consente di impostare le opzioni del socket per le connessioni TCP esistenti (ad esempio, è possibile modificare il modulo di controllo del sovraccarico o lo stack TCP).
  • Come agente di consegna della posta predefinito, invece di sendmail viene utilizzato dma (DragonFly Mail Agent). Sendmail è incluso nella distribuzione di base ed è stato aggiornato alla versione 8.17.1.
  • In KTLS, l'implementazione del protocollo TLS che opera a livello del kernel di FreeBSD, è stata aggiunta la supporto per l'accelerazione hardware di TLS 1.3 sul lato ricevente. L'accelerazione è fornita tramite l'estensione alle schede di rete di alcune operazioni legate all'elaborazione dei pacchetti crittografati.
  • Nel file di configurazione jail.conf è stata aggiunta la direttiva «.include», che consente di includere file aggiuntivi durante il caricamento della configurazione, nei percorsi dei quali è consentito l'uso di maschere. È stato esteso il parametro sysctl security.bsd.see_jail_proc, che ora consente di vietare agli utenti non autorizzati in un ambiente jail separato di terminare forzatamente, modificare la priorità e fare il debug dei processi.
  • I programmi pw e bsdinstall ora creano utenti nella directory «/home» di default, anziché in «/usr/home». Non viene più creata una symlink per «/home» che punti a «/usr/home».
  • La configurazione di build PROFILE è disabilitata di default: le versioni profiled delle librerie di sistema non sono più fornite, si devono utilizzare strumenti hardware di profilazione (hwpmc).
  • Attivata la creazione di file eseguibili per architetture a 64 bit in modalità PIE (Position Independent Executable).
  • Aggiunta la possibilità di passare l'accesso a TPM (Trusted Platform Module) e GPU nel hypervisor Bhyve (in ambienti virtuali per chip AMD e Intel).
  • L'implementazione del file system ZFS è stata aggiornata alla versione OpenZFS 2.2. È stata aggiunta la supporto per il file system ZFS allo strumento makefs. È possibile creare un pool ZFS associato a un singolo disco virtuale vdev.
  • Aumentato il numero di core CPU supportati (parametro MAXCPU) da 256 a 1024 nei sistemi basati su architetture amd64 e arm64.
  • In UFS, for configurations where logging (soft updates) is enabled, background filesystem checks can be performed using UFS snapshots. Additional hash checks have been added to superblocks, cylinder group maps, and inodes to detect corruption.
  • A tarfs filesystem has been added, which can be used with tar archives compressed using zstd.
  • The boottrace tool has been added to track events that occur during boot and system shutdown.
  • A kernel configuration parameter FIRECRACKER has been added to enable FreeBSD to run in a Firecracker virtualization system, designed for launching virtual machines with minimal overhead. The boot time of FreeBSD 14 under Firecracker has been reduced to 25 milliseconds, allowing FreeBSD environments to be spun up on demand for serverless computing infrastructure.
  • In the bootloader written in Lua, support for executing lua files located in the loader_conf_files directory has been implemented within a special sandbox environment.
  • Supporto NFS ampliato. È stata aggiunta una nuova opzione di montaggio "syskrb5" per il supporto di Kerberos in NFSv 4.1/4.2, e è stata implementata la funzionalità ExchangeID. È ora possibile eseguire nfsd, nfsuserd, mountd, gssd e rpc.tlsservd in un ambiente di rete isolato vnet.
  • Nello script growfs è stata implementata la possibilità di posizionare la partizione di swap alla fine dell'area espandibile su disco.
  • È stato aggiunto un nuovo provider DTrace kinst (dtrace_kinst), che consente di tracciare le strutture del kernel.
  • Nella crittografia del kernel è stata aggiunta la supporto per l'algoritmo di crittografia XChaCha20-Poly1035 AEAD, ainsi che è stata aggiunta un'API per l'utilizzo della curva ellittica curve25519 (per WireGuard).
  • Ridotto il tempo di riavvio. È stato aggiunto il parametro sysctl kern.reboot_wait_time, tramite il quale è possibile modificare il ritardo prima del riavvio effettivo dopo la visualizzazione di tutti i messaggi diagnostici sulla console. Di default, il ritardo è stato rimosso.
  • Nel kernel è stata aggiunta la sottosistema timerfd, che semplifica il porting di programmi da Linux.
  • È stato aggiunto il sysctl machdep.mitigations.zenbleed.enable per bloccare la vulnerabilità Zenbleed nei processori AMD Zen2.
  • In wpa_supplicant e hostapd è stata aggiunta la supporto per Wi-Fi 6. Il driver iwlwifi ora supporta i chip Intel compatibili con Wi-Fi 6E AX411/AX211/AX210.
  • Per il kernel nelle piattaforme amd64, è stata aggiunta la supporto per gli strumenti AddressSanitizer e MemorySanitizer del progetto LLVM.
  • Negli script rc.d è consentito utilizzare il metodo status, anche se il nome del programma (procname) e il file PID non sono definiti nello script.
  • La velocità di trasmissione dati attraverso la porta seriale nel kernel, nei bootloader e nello spazio utente è stata aumentata di default da 9600 a 115200 bps. Il tono della campanella è impostato di default a 800Hz. È stata integrata la compatibilità con devd per l'emissione del segnale tramite la scheda audio. Per la console vt, la campanella è disattivata per default (per attivarla, eseguire i comandi «sysctl kern.vt.enable_bell=1» e «kbdcontrol -b normal»).
  • Migliorato il supporto per l'architettura di accelerazione hardware delle operazioni di rete NXP DPAA2 (Data Path Acceleration Architecture Gen2).
  • Aggiunto il driver igc per i controller Ethernet Intel I225, che supporta velocità di 2.5 Gbps.
  • Di default è attivata l'impostazione net.inet.tcp.nolocaltimewait, che disabilita la creazione di registrazioni timewait per le connessioni TCP chiuse dal lato della sistema locale.
  • Il supporto per il protocollo di comunicazione Netlink (RFC 3549) è stato esteso e attivato per impostazione predefinita. Questo protocollo è utilizzato in Linux per facilitare l'interazione tra il nucleo e i processi nello spazio utente. Alcuni strumenti di rete sono stati aggiornati per sfruttare Netlink.
  • Il filtro pacchetti pf ora supporta la sintassi e il comportamento delle operazioni di normalizzazione dei pacchetti (scrubbing) nella versione pf di OpenBSD. È stata implementata la possibilità di utilizzare il trasporto IPv6 in pfsync. Il formato dei pacchetti pfsync è stato ampliato per supportare code, normalizzazione dei pacchetti e regole route-to.
  • Nell'interfaccia di rete if_stf (IPv6 over IPv4) è stata aggiunta supporto IPv6 la Rapid Deployment (RFC 5969). La modalità IPv6 nodeinfo (RFC 4620) è disattivata per impostazione predefinita.
  • È stato attivato per impostazione predefinita il parametro sysctl net.inet.tcp.nolocaltimewait, che disabilita la creazione di registrazioni con stato timewait per le connessioni TCP interrotte localmente.
  • Per impostazione predefinita, per TCP è stato adottato il meccanismo di controllo della congestione CUBIC anziché NewReno, consentendo un utilizzo più ampio della banda disponibile.
  • Nell'IPv4, l'invio di pacchetti broadcast all'indirizzo zero della subnet è disabilitato a meno che tale indirizzo non sia esplicitamente dichiarato come broadcast. Questa modifica consente l'uso di indirizzi che terminano con «.0» per gli host.
  • Sono state modificate le impostazioni di OpenSSH: scp ora utilizza per default il protocollo SFTP invece di scp/rcp, il supporto per le firme RSA/SHA-1 è stato disabilitato, i parametri VerifyHostKeyDNS e X11Forwarding sono impostati su «no», la direttiva VersionAddendum è stata rimossa e il supporto per le impostazioni HPN è stato eliminato.
  • È stata aggiunta all'utility date l'opzione «-z» per la conversione dei fusi orari.
  • È stata aggiunta all'utility diff l'opzione «—color» per una visualizzazione chiara delle modifiche a colori.
  • È stata aggiunta all'utility sleep la supporto per unità di misura diverse dai secondi (ad esempio, è possibile specificare «sleep 1h 30m»).
  • Alle utility head e tail sono state aggiunte le opzioni «-q» e «-h», ed è stata implementata la possibilità di specificare grandezze con suffissi del sistema internazionale di unità SI. In head è stata rimossa la limitazione sul numero massimo di righe a 2^31.
  • All'utility systat è stato aggiunto il comando «iolat» per visualizzare informazioni sui ritardi di input/output calcolati dal pianificatore CAM.
  • La libreria libncursesw è divisa in due librerie: libtinfow e libncursesw. È stata aggiunta la supporto per l'uso da parte di ncurses della base terminfo, e non solo di termcap.
  • Per l'architettura aarch64 (arm64) è stata implementata e inclusa di default l'opzione di compilazione COMPAT_LIB32, che consente la creazione di librerie a 32 bit per sistemi ARM64, permettendo l'esecuzione di file eseguibili compilati per la piattaforma armv7.
  • Migliorato il supporto per i sistemi cloud. Per AWS EC2 sono stati aggiunti build sperimentali con file system root ZFS e cloud-init. Per Azure sono disponibili immagini per le architetture arm64 e amd64, con scelta tra UFS e ZFS. È stato aggiunto un driver per la scheda di rete virtuale gve (Google Virtual NIC).
  • Il sistema ACPI ha aggiunto supporto per il valore soglia _CR3, che consente di impostare la temperatura al di sopra della quale il sistema verrà messo in modalità sospensione (S3).
  • Aggiornate le versioni delle applicazioni e delle librerie di terze parti incluse nel sistema di base: OpenSSH 9.5p1, OpenSSL 3.0.12 (prima si utilizzava il ramo 1.1.1), awk 2021072, bc 6.6.0, libbsdxml 2.4.7, libfido2 1.13.0, tcpdump 4.99.4, libpcap 1.10.4, xz 5.4.3, zlib 1.3, zstd 1.5.2. L'implementazione dello strumento objdump è stata sostituita con llvm-objdump. Il compilatore Clang è stato aggiornato alla versione 16.
  • Eseguita la pulizia dei sistemi obsoleti:
    • Il supporto per le password temporanee OPIE è stato rimosso dal sistema di base (puoi reinstallare il pacchetto security/opie per riattivarlo).
    • I driver per le schede audio con interfaccia ISA sono stati rimossi.
    • Le utility fmtree e minigzip sono state rimosse.
    • I componenti ATM in netgraph (NgATM) sono stati rimossi.
    • Il processo in background telnetd è stato rimosso (puoi utilizzare il pacchetto net/freebsd-telnetd).
    • La classe VINUM in geom è stata rimossa.
    • Sono stati rimossi i driver obsoleti amr, iscsi_initiator, iir, mn, mly, nlmrsa e twa.
    • Il parametro VESA è stato rimosso dai kernel GENERIC e MINIMAL.
    • Il supporto per le operazioni crittografiche asimmetriche è stato rimosso dal framework crittografico OCF (Open Cryptographic Framework) operante a livello kernel.
    • L'utility mergemaster è stata dichiarata obsoleta e si consiglia di utilizzare etcupdate.
    • L'utility portsnap è stata rimossa (per estrarre i port, utilizzare «git clone https://git.FreeBSD.org/ports.git /usr/ports»).
    • La compilazione per l'architettura armv6 è stata interrotta.
    • Il supporto per l'architettura MIPS è stato rimosso.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster