Lansare FreeBSD 13.0

După aproximativ doi ani și jumătate de la formarea ramurii 12.x, a fost lansată versiunea FreeBSD 13.0, care este pregătită pentru arhitecturile amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 și riscv64. De asemenea, au fost create imagini pentru sistemele de virtualizare (QCOW2, VHD, VMDK, raw) și pentru mediile cloud Amazon EC2, Google Compute Engine și Vagrant.

Noutăți principale:

  • A fost realizată migrarea la implementarea unificată c Linux a sistemului de fișiere ZFS din proiectul OpenZFS. Printre funcționalitățile disponibile acum în FreeBSD după trecerea la OpenZFS se numără: sistem extins de cote, criptarea seturilor de date, selecția separată a claselor de alocare a blocurilor (allocation classes), utilizarea instrucțiunilor procesorului vectorial pentru accelerarea implementării RAIDZ și calcularea sumelor de control, suport pentru algoritmul de compresie ZSTD, modul multihost (MMP, Multi Modifier Protection), instrumente de linie de comandă îmbunătățite, și corectarea multor erori legate de condițiile de competiție și blocajele.
  • Portul pentru arhitectura ARM64 (AArch64) a fost trecut la primul nivel de suport (Tier 1), care se supune asistenței echipelor responsabile de eliminarea vulnerabilităților, pregătirea lansărilor și menținerea porturilor. Primul nivel de suport implică crearea de configurații de instalare, actualizări binare și pachete gata pregătite, precum și oferirea unor garanții privind soluționarea problemelor specifice și menținerea invariabilității ABI pentru mediul utilizatorului și nucleu (cu excepția anumitor subsisteme).
  • Arhitectura i386 a fost trecută la al doilea nivel de suport al platformelor (Tier 2), care va continua să creeze configurații de instalare, actualizări binare și pachete gata pregătite, dar nu garantează soluționarea problemelor specifice. Tipul de CPU (CPUTYPE) pentru arhitectura i386 a fost schimbat implicit de la 486 la 686 (dacă este dorit, pot fi create configurații pentru i486 și i586).
  • Componentele clang, lld, lldb, compiler-rt, llvm, libunwind și libc++ au fost actualizate la versiunea 11.
  • Dezvoltarea a fost mutată din sistemul centralizat de gestionare a codului sursă Subversion într-un sistem descentralizat Git.
  • S-a realizat curățarea sistemului de bază de aplicațiile distribuite sub licența GPL. În arborele surselor au fost eliminate binutils 2.17 și gcc 4.2.1, iar toate arhitecturile suportate au fost migrate la uneltele LLVM/clang. Au fost incluse opțiuni ale utilitarelor grep și dtc (Device Tree Compiler) distribuite sub licența BSD, care au înlocuit versiunile sub licența GPL. Procesul de montare automată amd a fost eliminat, iar funcționalitatea sa este acum realizată prin autofs. Utilitarul ctm a fost eliminat, fiind recomandat portul misc/ctm.
  • A fost rescris stiva de rutare, care acum suportă obiecte nexthop ce stochează informații despre starea utilizată pentru a transmite pachetele către destinația dorită. A fost adăugată posibilitatea de a conecta algoritmi proprii de căutare a rutelor. Au fost incluse algoritmi de căutare a rutelor din DPDK (Data Plane Development Kit) librte, care permit optimizarea lucrului cu tabele de rutare foarte mari. Pentru solicitările proxyarp a fost activat interfața fib. A fost adăugată posibilitatea de a modifica numărul fib în mod dinamic prin sysctl net.fibs. A fost implementat suportul pentru rutele temporare pentru IPv4 și IPv6 (cu timp de viață setat).
  • Suportul pentru rutarea Multipath a fost rescris și făcut mai scalabil, în care timpul de căutare nu depinde de dimensiunea listei (O(1)). Noua implementare a Multipath este acum legată de parametrul kernel ROUTE_MPATH, care a înlocuit RADIX_MPATH și este inclus în mod implicit. Pentru gestionarea Multipath a fost propus sysctl net.route.multipath.
  • Frameworkul criptografic implementat la nivelul kernel-ului a fost refăcut, având acum suport pentru algoritmi criptografici moderni și un interfață simplificată pentru utilizarea criptării în drivere și alte componente ale kernel-ului. Au fost eliminate algoritmii învechiți ARC4, Blowfish, CAST128, DES, MD5-HMAC și Skipjack. În IPsec și Kerberos s-a încetat suportul pentru algoritmi declarați învechiți în RFC 8221 și RFC 6649/8429, inclusiv 3DES. Algoritmii anterior declarați învechiți în subsistemul de criptare a discurilor geli și cryptodev au fost eliminați.
  • În kernel-ul GENERIC a fost inclus suport pentru driverele aesni și armv8crypto pentru accelerarea criptării discurilor bazate pe geli folosind instrucțiuni AES-NI pentru arhitecturile amd64/i386 și AES-XTS pentru ARM64.
  • A fost adăugat driverul qat pentru acceleratoarele criptografice Intel QuickAssist (QAT) și driverul ossl cu implementarea procedurilor de criptare software accelerate din OpenSSL, optimizate cu ajutorul codului în assembler. În driverul armv8crypto a fost adăugată suportul pentru AES-XTS și AES-GCM folosind instrucțiile corespunzătoare ale procesoarelor ARMv8.
  • A fost adăugată implementarea TLS (kTLS), care funcționează la nivelul kernelului FreeBSD, permițând o creștere semnificativă a performanței criptării pentru socket-urile TCP. Sunt acceptate versiunile TLS de la 1.0 la 1.3. Pentru criptare se folosesc driverele criptografice ale kernelului cu suport pentru AES-CBC sau AES-GCM. Pentru a utiliza kTLS în spațiul utilizatorului, este necesară recompilarea OpenSSL cu opțiunea WITH_OPENSSL_KTLS.
  • A fost adăugat un nou tip de buffer de rețea mbuf (buffer de date de rețea), care poate reprezenta într-un singur buffer mai multe pagini fizice de memorie neînregistrate, ceea ce permite creșterea performanței apelului sendfile(2) prin micșorarea dimensiunii listelor mbuf în buffer-ele socket-ului.
  • În stiva TCP a fost integrat suportul pentru algoritmul de reducere proporțională a intensității trimiterii pachetelor (Proportional Rate Reduction, RFC 6937), permițând o recuperare mai rapidă a parametrilor optimi ai fluxului după probleme temporare de transmisie. Pentru dezactivarea PRR este disponibil sysctl net.inet.tcp.do_prr.
  • Funcționalitățile hipervizorului Bhyve au fost extinse: a fost adăugat suportul pentru partajarea fișierelor prin VirtIO-9p (VirtFS). A fost implementată posibilitatea lucrului cu snapshot-uri. mașini virtualeA fost adăugat suportul pentru dispozitive PCI HDAudio și porturi seriale suplimentare COM3 și COM4. Modelele de dispozitive bvmconsole și bvmdebug, considerate învechite, au fost eliminate. Stabilitatea lucrului cu clienții VNC a fost îmbunătățită, inclusiv aplicația macOS 'Screen Sharing'.
  • În driverele VirtIO a fost adăugat suportul pentru specificația VirtIO V1, ceea ce a îmbunătățit compatibilitatea sistemelor gazdă FreeBSD cu diferite emulatori și hipervizoare.
  • Pentru procesele atașate la medii jail s-a asigurat conversia legăturilor CPU (cpuset-ul inițial legat de proces va fi înlocuit având în vedere cpuset-ul jail-ului și restricțiile stabilite).
  • A fost adăguită posibilitatea de a compila sistemul de bază FreeBSD în medii bazate pe alte sisteme de operare. Necesitatea compilării în alte sisteme de operare este determinată de dorința de a utiliza instrumentele de integrare continuă, legate de Linux sau macOS, pentru testarea FreeBSD.
  • A fost propus un nou stivă MMC/SD, bazat pe cadrul CAM, care permite conectarea dispozitivelor cu interfața SDIO (Secure Digital I/O). De exemplu, SDIO este utilizat în modulele WiFi și Bluetooth pentru multe plăci, cum ar fi Raspberry Pi 3. Noua stivă permite, de asemenea, utilizarea interfeței CAM pentru a trimite comenzi SD din aplicațiile din spațiul utilizatorului, ceea ce permite crearea de drivere de dispozitive care funcționează la nivelul utilizatorului.
  • A fost îmbunătățit funcționarea stratului de compatibilitate cu Linux. Fișierele DTS (Device Tree Sources) sunt sincronizate cu nucleul Linux 5.8.
  • A fost adăguită suport pentru NFSv4.2 (RFC-7862) și a fost implementată posibilitatea de a lucra cu NFS peste un canal de comunicare criptat pe baza TLS 1.3, în locul utilizării Kerberos (modul sec=krb5p), care era limitat la criptarea doar a mesajelor RPC și a fost implementat doar software.
  • A fost eliminată versiunea veche a debuggerului GDB, care era anterior instalată în directorul /usr/libexec și era utilizată în utilitarul crashinfo. În locul GDB-ului preinstalat, pentru a obține informații detaliate despre cauzele căderii sistemului, acum se sugerează instalarea unei versiuni recente de GDB din porturi sau pachete. A fost oprit suportul pentru debugging-ul proceselor prin procfs. A fost adăugat driverul netgdb, care permite accesarea debuggerului nucleului prin rețea.
  • Funcția nesigură gets a fost eliminată din libc (începând cu standardul C11, această funcție a fost exclusă din specificație) și a fost efectuată o ajustare a porturilor care mai folosesc această funcție. Funcțiile cap_random au fost eliminate (ar trebui utilizat getrandom).
  • A fost adăguit un nou apel de sistem copy_file_range, compatibil cu implementarea din nucleul Linux și care permite accelerarea copierii datelor dintr-un fișier în altul, datorită executării operației doar în partea de nucleu, fără citirea prealabilă a datelor în memoria procesului. Apelul de sistem este, de asemenea, utilizat în server NFSv4.2 pentru executarea locală a operațiunilor de copiere pe server (fără a transmite clientului).
  • În mecanismul de intrare/ieșire asincronă POSIX AIO este introdus suport pentru funcții vectorizate. În special, sunt adăugate apelurile de sistem aio_writev și aio_readv, care permit realizarea echivalentelor vectorizate ale funcțiilor aio_read și aio_write.
  • Suportul pentru componentele spațiului utilizator pentru suportul formatului de fișiere executabile a.out pe sistemele cu arhitectură i386 a fost eliminat. Utilitarul elf2aout a fost șters.
  • Utilitarele ping și ping6 au fost consolidate. În ping a fost adăugată posibilitatea de a seta parametrii calității serviciului (QoS) prin IP DSCP și Ethernet PCP.
  • În utilitarul freebsd-update a fost asigurat afișajul progresului descărcării fișierelor și au fost adăugate comenzi pentru actualizările gata și pentru vizualizarea configurației.
  • S-au depus eforturi considerabile pentru îmbunătățirea suportului sistemelor NUMA (Non-Uniform Memory Access).
  • Au fost actualizate driverele grafice și componentele stivei grafice. S-au rezolvat problemele de funcționare a mediilor bazate pe protocolul Wayland.
  • A fost adăugată subsystema backlight pentru realizarea driverelor de control al luminozității. A fost adăugat driverul pwm-backlight pentru controlul luminozității Pinebook și Pinebook Pro.
  • Suportul pentru protocolul SCTP a fost mutat într-un modul separat sctp.ko, care este dezactivat în mod implicit în nucleul GENERIC.
  • Pentru dispozitivele de intrare a fost propus un nou driver usbhid, care utilizează cadrul hid pentru a lucra cu dispozitivele USB HID, în locul driverelor ukbd, ums și uhid.
  • În driverul cpufreq a fost implementat suportul pentru tehnologia Intel Speed Shift.
  • A fost adăugat suport pentru noi plăci bazate pe CPU ARMv8 de 64 de biți, inclusiv SoC Broadcom BCM5871X și NXP LS1046A.
  • Pentru arhitectura AMD64 a fost implementat suportul pentru adrese virtuale de 57 de biți (LA57). A fost adăugat suport pentru CPU x86 din China Hygon Dhyana bazat pe tehnologiile AMD.
  • Portul pentru arhitectura powerpc64 a fost mutat la utilizarea LLVM și ABI ELFv2 (fișierele binare din versiunile anterioare FreeBSD nu vor putea fi utilizate în FreeBSD 13). Pentru powerpc64, au fost portate driverele virtio, ixl, mrsas, aacraid, cpld.
  • Au fost eliminate driverele pentru adaptoarele Ethernet învechite:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 și WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 și 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
  • Au fost eliminate driverele ubsec (acelerați criptografici Broadcom BCM58xx), ufm (tunele FM cu interfață USB), ctau (Cronix Tau), cx (Cronix Sigma) și vpo (SCSI pe port paralel).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster