Rilascio di FreeBSD 13.0

Dopo due anni e mezzo dalla creazione della serie 12.x, è stato rilasciato FreeBSD 13.0, preparato per le architetture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 e riscv64. Inoltre, sono stati creati file immagine per sistemi di virtualizzazione (QCOW2, VHD, VMDK, raw) e ambienti cloud come Amazon EC2, Google Compute Engine e Vagrant.

Novità principali:

  • È stata attuata la transizione alla realizzazione unificata di Linux del filesystem ZFS dal progetto OpenZFS. Tra le funzionalità disponibili in FreeBSD dopo il passaggio a OpenZFS ci sono: un sistema di quote avanzato, crittografia dei set di dati, scelta separata delle classi di allocazione, utilizzo delle istruzioni per processori vettoriali per accelerare l'implementazione di RAIDZ e il calcolo dei checksum, supporto per l'algoritmo di compressione ZSTD, modalità multihost (MMP, Multi Modifier Protection), strumenti da riga di comando migliorati e correzione di numerosi errori legati alla condizione di competizione e ai lock.
  • Il porting per l'architettura ARM64 (AArch64) è stato portato al primo livello di supporto (Tier 1), che è seguito dai team responsabili della risoluzione delle vulnerabilità, della preparazione dei rilasci e del mantenimento dei port. Il primo livello di supporto implica la creazione di pacchetti di installazione, aggiornamenti binari e pacchetti pronti all'uso, nonché garanzie di risoluzione di problemi specifici e mantenimento dell'integrità dell'ABI per l'ambiente utente e il kernel (eccetto alcune sottosistemi).
  • L'architettura i386 è stata portata al secondo livello di supporto (Tier 2), che continuerà a garantire la creazione di pacchetti di installazione, aggiornamenti binari e pacchetti pronti all'uso, ma non garantisce la risoluzione di problemi specifici. Il tipo di CPU (CPUTYPE) per l'architettura i386 è stato cambiato di default da 486 a 686 (le build per i486 e i586 possono essere create autonomamente se desiderato).
  • I componenti clang, lld, lldb, compiler-rt, llvm, libunwind e libc++ sono stati aggiornati alla versione 11.
  • Lo sviluppo è stato trasferito da un sistema di gestione centralizzato dei codici sorgente Subversion a un sistema decentralizzato Git.
  • È stata effettuata una pulizia del sistema di base dalle applicazioni distribuite sotto licenza GPL. Dal albero del codice sorgente sono stati rimossi binutils 2.17 e gcc 4.2.1, tutte le architetture supportate sono state migrate agli strumenti LLVM/clang. Sono state incluse versioni di utilità come grep e dtc (Device Tree Compiler), distribuite sotto licenza BSD, che hanno sostituito le versioni sotto licenza GPL. È stato rimosso il processo di montaggio automatico amd, la cui funzionalità è ora realizzata tramite autofs. È stata rimossa l'utilità ctm, per la quale si consiglia di utilizzare il port misc/ctm.
  • È stato riscritto lo stack di routing, introducendo il supporto per gli oggetti nexthop, che conservano informazioni sullo stato utilizzato per inoltrare i pacchetti al destino voluto. È stata aggiunta la possibilità di collegare algoritmi di ricerca personalizzati. Sono stati implementati algoritmi di ricerca delle rotte da DPDK (Data Plane Development Kit) librte, che ottimizzano il lavoro con tabelle di routing molto grandi. Per le richieste proxyarp è stato utilizzato l'interfaccia fib. È stata aggiunta la possibilità di modificare il numero fib al volo attraverso sysctl net.fibs. È stato implementato il supporto per rotte temporanee per IPv4 e IPv6 (con scadenza impostata).
  • Il supporto per il routing multipath è stato riscritto e reso più scalabile, con un tempo di ricerca indipendente dalla dimensione della lista (O(1)). La nuova implementazione del Multipath è ora associata al parametro del kernel ROUTE_MPATH, che ha sostituito RADIX_MPATH ed è abilitato per default. Per gestire il Multipath è stato proposto sysctl net.route.multipath.
  • È stato riprogettato il framework crittografico a livello di kernel, introducendo il supporto per algoritmi crittografici moderni e semplificando l'interfaccia per utilizzare la crittografia nei driver e in altri componenti del kernel. Sono stati rimossi algoritmi obsoleti come ARC4, Blowfish, CAST128, DES, MD5-HMAC e Skipjack. In IPsec e Kerberos è stata interrotta la supporto per gli algoritmi dichiarati obsoleti in RFC 8221 e RFC 6649/8429, inclusi 3DES. Sono stati rimossi algoritmi precedentemente dichiarati obsoleti nella sottosistema di crittografia a disco geli e cryptodev.
  • Nel kernel GENERIC è stato incluso il supporto per i driver aesni e armv8crypto per accelerare la crittografia a disco basata su geli utilizzando istruzioni AES-NI per architetture amd64/i386 e AES-XTS per ARM64.
  • È stato aggiunto il driver qat per i crittografatori Intel QuickAssist (QAT) e il driver ossl con l'implementazione di procedure crittografiche accelerate da OpenSSL, ottimizzate attraverso codice assembly. Nel driver armv8crypto è stato aggiunto il supporto per AES-XTS e AES-GCM utilizzando le istruzioni corrispondenti dei processori ARMv8.
  • È stata aggiunta l'implementazione di TLS (kTLS), che opera a livello di kernel di FreeBSD, consentendo un significativo aumento delle prestazioni di crittografia per i socket TCP. Sono supportate le versioni TLS da 1.0 a 1.3. Per la crittografia vengono utilizzati i driver crittografici del kernel con supporto per AES-CBC o AES-GCM. Per utilizzare kTLS nello spazio utente è necessaria una ricompilazione di OpenSSL con l'opzione WITH_OPENSSL_KTLS.
  • È stato aggiunto un nuovo tipo di buffer di rete mbuf (network data buffer), che può rappresentare in un unico buffer più pagine fisiche non riflesse in memoria, consentendo di aumentare le prestazioni della chiamata sendfile(2) riducendo le dimensioni delle liste mbuf nei buffer del socket.
  • Nel stack TCP è stata integrata la supporto per l'algoritmo di riduzione proporzionale del tasso di invio dei pacchetti (Proportional Rate Reduction, RFC 6937), che consente di ripristinare più rapidamente i parametri ottimali del flusso dopo problemi temporanei nella trasmissione dei dati. Per disabilitare PRR è previsto il sysctl net.inet.tcp.do_prr.
  • Le funzionalità dell'iper.vizore Bhyve sono state ampliate: è stato aggiunto il supporto per la condivisione dei file tramite VirtIO-9p (VirtFS). È stata implementata la possibilità di lavorare con snapshot. di macchine virtualiÈ stata aggiunta la supporto per dispositivi PCI HDAudio e porte seriali aggiuntive COM3 e COM4. Sono stati rimossi i modelli obsoleti di dispositivi bvmconsole e bvmdebug. È stata migliorata la stabilità del lavoro con i client VNC, inclusa l'applicazione macOS "Screen Sharing".
  • Nei driver VirtIO è stato aggiunto il supporto per la specifica VirtIO V1, migliorando la compatibilità dei sistemi guest con FreeBSD su diversi emulatori e hypervisor.
  • Per i processi ancorati agli ambienti jail è stata garantita la conversione dei legami alla CPU (il cpuset originariamente legato al processo sarà sostituito tenendo conto del cpuset jail e dei limiti impostati).
  • È stata aggiunta la possibilità di compilare il sistema di base FreeBSD in ambienti basati su altri sistemi operativi. La necessità di compilazione in altri sistemi operativi è legata al desiderio di utilizzare strumenti di integrazione continua per testare FreeBSD, legati a Linux o macOS.
  • È stato proposto un nuovo stack MMC/SD, basato sul framework CAM e che consente di collegare dispositivi con interfaccia SDIO (Secure Digital I/O). Ad esempio, SDIO è utilizzato nei moduli WiFi e Bluetooth per molte schede, come Raspberry Pi 3. Il nuovo stack consente anche di utilizzare l'interfaccia CAM per inviare comandi SD dalle applicazioni nello spazio utente, permettendo la creazione di driver di dispositivi che operano a livello utente.
  • È stato migliorato il funzionamento dello strato di compatibilità con Linux. I file DTS (Device Tree Sources) sono stati sincronizzati con il kernel Linux 5.8.
  • È stata aggiunta la supporto per NFSv4.2 (RFC-7862) ed è stata implementata la possibilità di utilizzare NFS su un canale crittografico basato su TLS 1.3, invece di utilizzare Kerberos (modalità sec=krb5p), che limitava la crittografia solo ai messaggi RPC ed era implementata solo a livello software.
  • È stata rimossa la versione obsoleta del debugger GDB, che era precedentemente installata nel catalogo /usr/libexec e utilizzata nell'utility crashinfo. Invece del GDB preinstallato, per ottenere informazioni dettagliate sulle cause dei crash, ora si offre di installare una versione aggiornata di GDB dai porti o dai pacchetti. È stata cessata la supporto per il debug dei processi tramite procfs. È stato aggiunto il driver netgdb, che consente di accedere al debugger del kernel tramite rete.
  • Dalla libc è stata rimossa la funzione non sicura gets (a partire dal C11 questa funzione è esclusa dalla specifica) ed è stata effettuata una revisione dei porting che utilizzano ancora questa funzione. Sono state rimosse le funzioni cap_random (si consiglia di utilizzare getrandom).
  • È stata aggiunta una nuova chiamata di sistema copy_file_range, compatibile con l'implementazione del kernel Linux e che consente di accelerare la copia dei dati da un file a un altro, grazie all'esecuzione dell'operazione solo a livello di kernel, senza precedentemente leggere i dati nella memoria del processo. La chiamata di sistema è inoltre utilizzata in server NFSv4.2 per l'esecuzione locale delle operazioni di copia sul server (senza trasferirle al cliente).
  • Nel meccanismo di input/output asincrono POSIX AIO è stata introdotta la supporto per le funzioni vettorializzate. In particolare, sono state aggiunte le chiamate di sistema aio_writev e aio_readv, che consentono di implementare le versioni vettorializzate delle funzioni aio_read e aio_write.
  • È cessata la supporto per i componenti dello spazio utente per il supporto del formato dei file eseguibili a.out su sistemi con architettura i386. È stata rimossa l'utility elf2aout.
  • Le utility ping e ping6 sono state unite. In ping è stata aggiunta la possibilità di impostare i parametri di qualità del servizio (QoS) tramite IP DSCP ed Ethernet PCP.
  • Nell'utility freebsd-update è stata garantita la visualizzazione del progresso del caricamento dei file e sono stati aggiunti i comandi updatesready e showconfig per verificare la disponibilità di aggiornamenti e mostrare la configurazione.
  • È stato svolto un ampio lavoro per migliorare il supporto dei sistemi NUMA (Non-Uniform Memory Access).
  • I driver grafici e i componenti del stack grafico sono stati aggiornati. Risolti i problemi di funzionamento negli ambienti basati sul protocollo Wayland.
  • È stata aggiunta una sottosistema backlight per la creazione di driver per il controllo dell'illuminazione. È stato aggiunto il driver pwm-backlight per gestire l'illuminazione di Pinebook e Pinebook Pro.
  • Il supporto per il protocollo SCTP è stato spostato in un modulo separato sctp.ko, che è disabilitato per impostazione predefinita nel kernel GENERIC.
  • Per i dispositivi di input è stato proposto un nuovo driver usbhid, che utilizza il framework hid per interagire con i dispositivi USB HID, al posto dei driver ukbd, ums e uhid.
  • Nel driver cpufreq è stato implementato il supporto per la tecnologia Intel Speed Shift.
  • Aggiunto il supporto per nuove schede basate su CPU ARMv8 a 64 bit, inclusi i SoC Broadcom BCM5871X e NXP LS1046A.
  • Per l'architettura AMD64 è stato implementato il supporto per indirizzi virtuali a 57 bit (LA57). È stato aggiunto il supporto per le CPU x86 cinesi Hygon Dhyana basate su tecnologie AMD.
  • Il port per l'architettura powerpc64 è stato convertito per utilizzare LLVM e ABI ELFv2 (i file binari delle versioni precedenti di FreeBSD non potranno essere utilizzati in FreeBSD 13). Per powerpc64 sono stati portati i driver virtio, ixl, mrsas, aacraid, cpld.
  • Rimossi i driver per adattatori Ethernet obsoleti:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 e WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 e Pro/10+
    • fe(4) Fujitsu MB86960A/MB86965A
    • hme(4) Sun Microelectronics STP2002-STQ
    • pcn(4) AMD PCnet
    • sf(4) Starfire
    • sn(4) SMC 91Cxx
    • tl(4) Texas Instruments ThunderLAN
    • tx(4) SMC 83c17x
    • txp(4) 3Com 3XP Typhoon/Sidewinder (3CR990)
    • vx(4) 3Com EtherLink III / Fast EtherLink III (3c59x) PCI
    • wb(4) Winbond W89C840F
    • xe(4) Xircom PCMCIA
  • Rimossi i driver ubsec (crittografic acceleratori Broadcom BCM58xx), ufm (FM tuner con interfaccia USB), ctau (Cronix Tau), cx (Cronix Sigma) e vpo (SCSI a porta parallela).

Fonte: opennet.ru

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