Versione di FreeBSD 14.0

Dopo due anni e mezzo dalla pubblicazione del ramo 13.0, è stata realizzata la release FreeBSD 14.0. Le immagini di installazione sono preparate per le architetture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 e riscv64. Inoltre, sono stati preparati assiemi per sistemi di virtualizzazione (QCOW2, VHD, VMDK, raw) e ambienti cloud Amazon EC2, Google Compute Engine e Vagrant. Il ramo FreeBSD 14 sarà l'ultimo a supportare le piattaforme a 32 bit. FreeBSD 15 supporterà solo sistemi a 64 bit, ma manterrà la capacità di creare programmi a 32 bit e utilizzare la modalità COMPAT_FREEBSD32 per eseguire eseguibili a 32 bit in un ambiente a 64 bit.

Principali modifiche:

  • La shell predefinita per l'utente root è /bin/sh.
  • Per i dispositivi NVME, il driver nda è abilitato per impostazione predefinita su tutte le piattaforme. Per restituire il vecchio driver nvd, l'impostazione "hw.nvme.use_nvd=1" è fornita in loader.conf.
  • È stata aggiunta una nuova utility "fwget" che identifica l'hardware che richiede firmware e installa i pacchetti firmware appropriati. Attualmente sono supportati solo i dispositivi PCI e il firmware per GPU Intel e AMD.
  • Aggiunta una nuova utility Base64 per codificare e decodificare i dati Base64.
  • Aggiunta l'utilità tcpsso, che consente di impostare le opzioni socket per le connessioni TCP esistenti (ad esempio, è possibile modificare il modulo di controllo della congestione o lo stack TCP).
  • L'agente di consegna della posta predefinito è dma (DragonFly Mail Agent) invece di sendmail. Sendmail è stato mantenuto nel pacchetto base e aggiornato alla versione 8.17.1.
  • KTLS, l'implementazione del kernel di FreeBSD del protocollo TLS, aggiunge il supporto per l'accelerazione hardware TLS 1.3 sul lato ricevente. L'accelerazione è garantita spostando alcune operazioni relative all'elaborazione dei pacchetti crittografati lato scheda di rete.
  • Al file di configurazione jail.conf è stata aggiunta la direttiva “.include” che permette di includere file aggiuntivi durante il caricamento della configurazione, i cui percorsi consentono l'utilizzo di maschere. Il parametro sysctl security.bsd.see_jail_proc è stato ampliato, con l'aiuto del quale è ora possibile impedire agli utenti non autorizzati in un ambiente jail separato di forzare la terminazione, modificare la priorità e eseguire il debug dei processi.
  • I programmi pw e bsdinstall ora creano gli utenti nella directory /home per impostazione predefinita anziché in /usr/home. Il collegamento simbolico per "/home" che punta a "/usr/home" non viene più creato.
  • Disabilitata per impostazione predefinita l'impostazione di build PROFILE: non vengono più fornite versioni profilate delle librerie di sistema, è necessario utilizzare invece gli strumenti di profilazione hardware (hwpmc).
  • Abilitata la creazione di file eseguibili per architetture a 64 bit in modalità PIE (Position Independent Executable).
  • All'hypervisor Bhyve è stata aggiunta la possibilità di inoltrare l'accesso al TPM (Trusted Platform Module) e alla GPU (in ambienti virtuali per chip AMD e Intel).
  • L'implementazione del file system ZFS è stata aggiornata alla versione OpenZFS 2.2. L'utilità makefs ha aggiunto il supporto per il file system ZFS. Fornisce la possibilità di creare un pool ZFS associato a un singolo disco virtuale vdev.
  • Il numero di core CPU supportati (parametro MAXCPU) nei sistemi basati sull'architettura amd256 e arm1024 è stato aumentato da 64 a 64.
  • In UFS, per le configurazioni in cui è abilitata la registrazione (aggiornamenti software), sono consentiti controlli in background del file system utilizzando gli snapshot UFS. Sono stati aggiunti ulteriori controlli hash ai superblocchi, alle mappe dei gruppi di cilindri e agli inode per rilevare la corruzione.
  • Aggiunto il filesystem tarfs, utilizzabile con archivi tar compressi con zstd.
  • Aggiunto toolkit boottrace per tenere traccia degli eventi che si sono verificati durante l'avvio e l'arresto del sistema.
  • Aggiunta un'opzione di configurazione del kernel FIRECRACKER per consentire a FreeBSD di funzionare sul sistema di virtualizzazione Firecracker, progettato per eseguire macchine virtuali con un sovraccarico minimo. Il tempo di avvio del kernel FreeBSD 14 che esegue Firecracker è stato aumentato a 25 millisecondi, consentendo di avviare gli ambienti FreeBSD secondo necessità per implementare un'infrastruttura di elaborazione serverless.
  • Il caricatore, scritto in Lua, in uno speciale ambiente sandbox, supporta l'esecuzione dei file lua situati nella directory loader_conf_files.
  • Il supporto NFS è stato ampliato. Aggiunta una nuova opzione di montaggio "syskrb5" per supportare Kerberos in NFSv 4.1/4.2 e aggiunto il supporto per l'operazione ExchangeID. Implementata la possibilità di eseguire nfsd, nfsuserd, mountd, gssd e rpc.tlsservd in un ambiente di rete VNET isolato.
  • Lo script growfs implementa la possibilità di posizionare la partizione di swap alla fine dell'area espandibile del disco.
  • È stato aggiunto un nuovo provider DTrace kinst (dtrace_kinst), che consente il tracciamento delle strutture del kernel.
  • Il supporto per l'algoritmo di crittografia XChaCha20-Poly1035 AEAD è stato aggiunto al sottosistema crittografico del kernel ed è stata aggiunta un'API per l'utilizzo della curva ellittica curve25519 (per WireGuard).
  • Tempo di riavvio ridotto. Aggiunto il parametro sysctl kern.reboot_wait_time, attraverso il quale è possibile modificare il ritardo prima del riavvio effettivo dopo che tutti i messaggi diagnostici sono stati inviati alla console. Per impostazione predefinita, il ritardo viene rimosso.
  • Il sottosistema timerfd è stato aggiunto al kernel, semplificando il porting dei programmi da Linux.
  • Aggiunto sysctl machdep.mitigations.zenbleed.enable per bloccare la vulnerabilità Zenbleed sui processori AMD Zen2.
  • Il supporto Wi-Fi 6 è stato aggiunto a wpa_supplicant e hostapd. Il driver iwlwifi supporta i chip Intel che supportano Wi-Fi 6E AX411/AX211/AX210.
  • Il kernel sui sistemi amd64 fornisce il supporto per gli strumenti AddressSanitizer e MemorySanitizer del progetto LLVM.
  • Gli script rc.d consentono l'uso del metodo status, anche se il nome del programma (procname) e il file PID non sono definiti nello script.
  • La velocità di trasmissione predefinita del kernel, del bootloader e della porta seriale dello spazio utente è stata aumentata da 9600 bps a 115200 bps. Il segnale acustico predefinito è impostato su 800 Hz. Viene fornita l'integrazione con devd per emettere segnali acustici attraverso la scheda audio. Per la console vt, il segnale acustico è disabilitato per impostazione predefinita (per abilitarlo è necessario eseguire i comandi “sysctl kern.vt.enable_bell=1” e “kbdcontrol -b normal”).
  • Supporto migliorato per l'architettura di accelerazione hardware di rete NXP DPAA2 (Data Path Acceleration Architecture Gen2).
  • Aggiunto driver igc per controller Ethernet Intel I225, che supporta la velocità di 2.5 Gbps.
  • Per impostazione predefinita, è abilitata l'impostazione net.inet.tcp.nolocaltimewait, che disabilita la creazione di record timewait per le connessioni TCP che vengono terminate sul lato del sistema locale.
  • Supporto per il protocollo di comunicazione Netlink (RFC 3549) utilizzato in Linux per organizzare le interazioni tra il kernel e i processi dello spazio utente. Alcune utility di rete sono state convertite per utilizzare Netlink.
  • Il filtro dei pacchetti pf fornisce compatibilità con la sintassi e il comportamento delle operazioni di normalizzazione dei pacchetti (scrubbing) della versione OpenBSD di pf. pfsync implementa la possibilità di utilizzare il trasporto IPv6. Il formato del pacchetto pfsync è stato esteso per supportare code, normalizzazione dei pacchetti e regole di instradamento.
  • Aggiunto all'interfaccia di rete if_stf (IPv6 su IPv4). Supporto IPv6 Implementazione rapida (RFC 5969). La modalità nodeinfo IPv6 (RFC 4620) è disabilitata per impostazione predefinita.
  • Il parametro sysctl net.inet.tcp.nolocaltimewait è abilitato per impostazione predefinita, disabilitando la creazione di voci sullo stato timewait per le connessioni TCP interrotte localmente.
  • Per impostazione predefinita, TCP utilizza il meccanismo di controllo della congestione della rete CUBIC invece di NewReno, che consente un maggiore utilizzo della larghezza di banda disponibile.
  • IPv4 disabilita l'invio di pacchetti broadcast all'indirizzo di sottorete zero a meno che tale indirizzo non sia dichiarato esplicitamente come indirizzo broadcast. La modifica consente agli host di utilizzare indirizzi che terminano con ".0".
  • Sono state modificate le impostazioni di OpenSSH: in scp è abilitato di default il protocollo SFTP al posto di scp/rcp, il supporto per le firme RSA/SHA-1 è disabilitato, i parametri VerifyHostKeyDNS e X11Forwarding sono impostati su “no”, è stata rimossa la direttiva VersionAddendum, il supporto per le impostazioni HPN è stato rimosso.
  • Aggiunta l'opzione "-z" all'utilità data per convertire i fusi orari.
  • L'opzione "--color" è stata aggiunta all'utilità diff per visualizzare i cambiamenti di colore.
  • L'utilità di sospensione ora supporta unità diverse dai secondi (ad esempio, è possibile specificare "sonno 1 ora e 30 minuti").
  • È stato aggiunto il supporto per le opzioni “-q” e “-h” alle utilità head e tail ed è stata implementata la possibilità di specificare valori con suffissi nel sistema internazionale delle unità SI. In head è stato rimosso il limite al numero massimo di righe pari a 2^31.
  • Aggiunto il comando "iolat" all'utilità systat per visualizzare le informazioni sulle latenze I/O calcolate dallo scheduler CAM.
  • La libreria libncursesw è divisa in due librerie, libtinfow e libncursesw. Aggiunto il supporto per l'utilizzo del database terminfo in ncurses e non solo termcap.
  • Per l'architettura aarch64 (arm64), l'opzione di build COMPAT_LIB32 è stata implementata e abilitata per impostazione predefinita, fornendo l'assemblaggio di librerie a 32 bit per sistemi ARM64 che consentono di eseguire file eseguibili compilati per la piattaforma armv7.
  • Supporto migliorato per i sistemi cloud. Sono state aggiunte build sperimentali con file system root ZFS e cloud-init per AWS EC2. Per Azure, vengono fornite immagini per le architetture arm64 e amd64, con una scelta tra UFS o ZFS. Aggiunto driver per la scheda di rete virtuale gve (Google Virtual NIC).
  • Il sistema ACPI ha aggiunto il supporto per il valore di soglia _CR3, che consente di impostare la temperatura al raggiungimento della quale il sistema passerà alla modalità sleep (S3).
  • Versioni aggiornate di applicazioni e librerie di terze parti incluse nel sistema di base: OpenSSH 9.5p1, OpenSSL 3.0.12 (in precedenza veniva utilizzato 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 dell'utilità objdump è stata sostituita da llvm-objump. Il compilatore Clang è stato aggiornato al ramo 16.
  • I sistemi obsoleti sono stati ripuliti:
    • Il supporto per le password monouso OPIE è stato rimosso dal sistema di base (la porta di sicurezza/opie può essere impostata per riprendere l'uso).
    • I driver per le schede audio con interfaccia ISA sono stati rimossi.
    • Le utilità fmtree e minigzip sono state rimosse.
    • Componenti ATM rimossi in netgraph (NgATM).
    • Il processo in background di telnetd è stato rimosso (è possibile utilizzare la porta net/freebsd-telnetd).
    • Rimossa la classe VINUM in geom.
    • Rimossi i driver amr, iscsi_initiator, iir, mn, mly, nlmrsa e twa obsoleti.
    • Il parametro VESA è stato rimosso dai core GENERIC e MINIMAL.
    • Il supporto per le operazioni crittografiche asimmetriche è stato rimosso dal framework crittografico a livello di kernel OCF (Open Cryptographic Framework).
    • L'utilità mergemaster è stata deprecata e dovrebbe essere sostituita da etcupdate.
    • L'utilità portsnap è stata rimossa (dovresti usare "git clone https://git.FreeBSD.org/ports.git /usr/ports" per estrarre le porte).
    • La generazione di assembly per l'architettura armv6 è stata interrotta.
    • Rimosso il supporto per l'architettura MIPS.

Fonte: opennet.ru

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