Rilascio di FreeBSD 13.0

Dopo due anni e mezzo dalla creazione della versione 12.x, è stato presentato il rilascio di FreeBSD 13.0, preparato per le architetture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 e riscv64. Sono stati inoltre creati immagini per i sistemi di virtualizzazione (QCOW2, VHD, VMDK, raw) e ambienti cloud come Amazon EC2, Google Compute Engine e Vagrant.

Novità principali:

  • È stato effettuato il passaggio a una realizzazione unificata della filesystem ZFS basata su Linux dal progetto OpenZFS. Tra le funzionalità rese disponibili in FreeBSD dopo il passaggio a OpenZFS ci sono: sistema di quote avanzate, crittografia dei set di dati, selezione separata delle classi di allocazione, utilizzo di istruzioni di elaborazione vettoriale per accelerare l'implementazione del RAIDZ e il calcolo dei checksum, supporto per l'algoritmo di compressione ZSTD, modalità multihost (MMP, Multi Modifier Protection), strumenti della riga di comando migliorati, risoluzione di molti bug legati alla condizione di race e ai lock.
  • Il port per l'architettura ARM64 (AArch64) è stato portato al primo livello di supporto (Tier 1), che è gestito dai team responsabili della risoluzione delle vulnerabilità, della preparazione dei rilasci e del supporto dei port. Il primo livello di supporto prevede la creazione di pacchetti di installazione, aggiornamenti binari e pacchetti pronti, oltre a garantire la risoluzione di problemi specifici e la conservazione dell'integrità dell'ABI per l'ambiente utente e il kernel (eccetto alcune sottosistemi).
  • L'architettura i386 è stata portata al secondo livello di supporto delle piattaforme (Tier 2), nel quale continuerà la creazione di pacchetti di installazione, aggiornamenti binari e pacchetti pronti, 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 (se desiderato, le versioni per i486 e i586 possono essere create manualmente).
  • I componenti clang, lld, lldb, compiler-rt, llvm, libunwind e libc++ sono stati aggiornati alla versione 11.
  • Lo sviluppo è stato spostato da un sistema di gestione centralizzato dei codici sorgenti Subversion a un sistema decentralizzato Git.
  • È stata effettuata la pulizia del sistema di base dalle applicazioni distribuite con licenza GPL. Sono stati rimossi dal repository dei codici sorgente binutils 2.17 e gcc 4.2.1, tutte le architetture supportate sono state migrate agli strumenti LLVM/clang. Sono state incluse le varianti delle utilità grep e dtc (Device Tree Compiler) distribuite con licenza BSD, che hanno sostituito le versioni con licenza GPL. È stato rimosso il processo di montaggio automatico amd, la cui funzionalità è ora realizzata tramite autofs. L'utilità ctm è stata rimossa, si consiglia di utilizzare il port misc/ctm al suo posto.
  • È stato riscritto lo stack di routing, nel quale è stata introdotta la supporto per oggetti nexthop che memorizzano informazioni sullo stato utilizzate per instradare il pacchetto nella destinazione desiderata. È stata aggiunta la possibilità di connettere algoritmi di ricerca dei percorsi personalizzati. Sono stati aggiunti algoritmi di ricerca dei percorsi da DPDK (Data Plane Development Kit) librte, che consentono di ottimizzare 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 di fib al volo tramite sysctl net.fibs. È stata implementata la supporto per rotte temporanee per IPv4 e IPv6 (con tempo di vita definito).
  • È stato riscritto e reso più scalabile il supporto per la routing Multipath, in cui il tempo di ricerca non dipende dalle dimensioni dell'elenco (O(1)). La nuova implementazione di Multipath è ora associata al parametro del kernel ROUTE_MPATH, che ha sostituito RADIX_MPATH ed è incluso per impostazione predefinita. Per la gestione di Multipath è stato proposto sysctl net.route.multipath.
  • È stato rifatto il framework crittografico implementato a livello di kernel, nel quale è stato introdotto il supporto per moderni algoritmi crittografici e l'interfaccia per l'utilizzo della crittografia nei driver e in altri componenti del kernel è stata semplificata. Sono stati rimossi algoritmi obsoleti come ARC4, Blowfish, CAST128, DES, MD5-HMAC e Skipjack. Nella IPsec e Kerberos è stata interrotta la supporto per gli algoritmi dichiarati obsoleti in RFC 8221 e RFC 6649/8429, incluso 3DES. Sono stati rimossi algoritmi obsoleti precedentemente dichiarati nel sottosistema di crittografia del disco geli e cryptodev.
  • Nel kernel GENERIC è stata inclusa la supporto per i driver aesni e armv8crypto per accelerare la crittografia del disco basata su geli utilizzando le istruzioni AES-NI per le architetture amd64/i386 e AES-XTS per ARM64.
  • Aggiunto il driver qat per i crittografia acceleratori Intel QuickAssist (QAT) e il driver ossl con l'implementazione di procedure di crittografia software accelerate da OpenSSL, ottimizzate mediante codice assembly. Nel driver armv8crypto è stato aggiunto il supporto per AES-XTS e AES-GCM utilizzando le istruzioni appropriate dei processori ARMv8.
  • Implementato il TLS (kTLS) a livello del kernel di FreeBSD, che consente 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 la ricompilazione di OpenSSL con l'opzione WITH_OPENSSL_KTLS.
  • Introdotto 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 la dimensione delle liste mbuf nei buffer dei socket.
  • Nel stack TCP è stata integrata la supporto per l'algoritmo di riduzione proporzionale della velocità di invio dei pacchetti (Proportional Rate Reduction, RFC 6937), consentendo un ripristino più rapido dei parametri ottimali del flusso dopo problemi temporanei nella trasmissione dei dati. Per disattivare il PRR è prevista la sysctl net.inet.tcp.do_prr.
  • Ampliate le funzionalità dell'ipervisore Bhyve: aggiunto il supporto per la condivisione di file tramite VirtIO-9p (VirtFS). Implementata la possibilità di lavorare con snapshot. macchine virtualiAggiunto il supporto per le periferiche PCI HDAudio e porte seriali addizionali COM3 e COM4. Rimosse le vecchie versioni delle periferiche bvmconsole e bvmdebug. Aumentata la stabilità del lavoro con i client VNC, incluso 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 attraverso vari emulatori e hypervisor.
  • Per i processi attaccati agli ambienti di jail è garantita la trasformazione degli attaccamenti alla CPU (l'attaccamento inizialmente assegnato al processo cpuset sarà sostituito tenendo conto del cpuset del jail e delle limitazioni impostate).
  • È stata aggiunta la possibilità di compilare il sistema di base FreeBSD in ambienti basati su altri sistemi operativi. La necessità di compilare in altri sistemi operativi è dovuta al desiderio di utilizzare gli strumenti di integrazione continua legati a Linux o macOS per testare FreeBSD.
  • È 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 il Raspberry Pi 3. Il nuovo stack consente inoltre di utilizzare l'interfaccia CAM per inviare comandi SD da applicazioni nello spazio utente, permettendo di creare driver di dispositivi che operano a livello utente.
  • Migliorato il funzionamento del layer 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) e implementata la possibilità di utilizzare NFS su un canale di comunicazione cifrato basato su TLS 1.3, invece del Kerberos (modalità sec=krb5p), che si limitava alla crittografia dei messaggi RPC ed era realizzato solo tramite software.
  • È stata rimossa la versione obsoleta del debugger GDB, precedentemente installato nella directory /usr/libexec e utilizzato nell'utility crashinfo. Invece del GDB preinstallato, ora si consiglia di installare una versione recente di GDB dai porti o dai pacchetti per ottenere informazioni dettagliate sulle cause dei crash. È stata interrotta 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 dallo standard C11 questa funzione è stata esclusa dalle specifiche) e sono state apportate modifiche ai port per l'uso di questa funzione. Funzioni cap_random sono state rimosse (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 lato kernel senza precedenti letture dei dati nella memoria del processo. La chiamata di sistema è utilizzata anche in server NFSv4.2 per l'esecuzione locale di operazioni di copia sul server (senza trasferire al client).
  • Nel meccanismo di input/output asincrono POSIX AIO è presente il supporto per funzioni vettorializzate. In particolare, sono state aggiunte le chiamate di sistema aio_writev e aio_readv, che consentono di realizzare equivalenti vettorializzati delle funzioni aio_read e aio_write.
  • È stata interrotta la supporto per i componenti dello spazio utente per il supporto del formato dei file eseguibili a.out sui sistemi con architettura i386. È stato rimosso lo strumento elf2aout.
  • Le utilità ping e ping6 sono state unificate. In ping è stata aggiunta la possibilità di impostare parametri di qualità del servizio (QoS) tramite IP DSCP e Ethernet PCP.
  • Nell'utilità freebsd-update è garantita la visualizzazione del progresso del caricamento dei file ed sono stati aggiunti i comandi updatesready e showconfig per controllare la presenza di aggiornamenti e mostrare la configurazione.
  • È stato fatto un grande lavoro per migliorare il supporto dei sistemi NUMA (Non-Uniform Memory Access).
  • I driver grafici e i componenti dello stack grafico sono stati aggiornati. Sono stati risolti problemi di funzionamento degli ambienti basati sul protocollo Wayland.
  • È stata aggiunta la sottosistema backlight per la creazione di driver per il controllo della retroilluminazione. È stato aggiunto il driver pwm-backlight per controllare la retroilluminazione del Pinebook e Pinebook Pro.
  • Il supporto per il protocollo SCTP è stato spostato in un modulo separato sctp.ko, che è disattivato di default nel kernel GENERIC.
  • Per i dispositivi di input è stato proposto un nuovo driver usbhid che utilizza il framework hid per lavorare con dispositivi USB HID, invece dei driver ukbd, ums e uhid.
  • Nel driver cpufreq è stato implementato il supporto per la tecnologia Intel Speed Shift.
  • È stato aggiunto il supporto per nuove schede basate su CPU ARMv8 a 64 bit, inclusi SoC Broadcom BCM5871X e NXP LS1046A.
  • Per l'architettura AMD64 è stata implementata la supporto per indirizzi virtuali a 57 bit (LA57). È stato aggiunto il supporto per le CPU x86 cinesi Hygon Dhyana basate su tecnologie AMD.
  • Il porting per l'architettura powerpc64 è stato trasferito all'uso di 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.
  • I driver per adattatori Ethernet obsoleti sono stati rimossi:
    • 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
  • I driver ubsec (crittografiacceleratori Broadcom BCM58xx), ufm (sintonizzatori FM con interfaccia USB), ctau (Cronix Tau), cx (Cronix Sigma) e vpo (SCSI a porta parallela) sono stati rimossi.

Fonte: opennet.ru

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