Linux Kernel 6.18 Lansat, Iată Noutățile
Kernel-ul Linux 6.18 aduce suport extins pentru arhitecturi, actualizări BPF, noi funcții pentru manipularea fișierelor în spații de nume și activarea pe scară largă a hardware-ului pentru CPU-uri, GPU-uri și senzori.
Linus Torvalds tocmai a anunțat lansarea oficială a noului kernel Linux 6.18.
„Așadar, trebuie să recunosc că aș fi fost mai fericit dacă ar fi existat puțin mai puțin zgomot legat de corectarea erorilor în această ultimă săptămână a lansării, dar, deși există câteva corecții în plus față de cât mi-aș fi dorit, nu a fost nimic care să mă facă să simt că acest lucru are nevoie de mai mult timp de cocere. Așa că versiunea 6.18 a fost etichetată și lansată.”
Caracteristici cheie în Linux 6.18
La un nivel înalt, kernelul Linux 6.18 introduce o nouă opțiune de criptare bazată pe PSP pentru conexiunile TCP, alocare și schimbare mai rapidă a slab-urilor, îmbunătățiri semnificative pe partea de recepție UDP, un țintă persistent-cache pentru device-mapper, namespace-uri care pot fi gestionate prin mânere de fișiere, suport pentru ECN precis în TCP și programe BPF semnate, pe lângă multe alte modificări mai mici ale nucleului și driverelor.
Una dintre schimbările principale este introducerea "sheaf-urilor" în alocatorul SLUB. Pe scurt, nucleul păstrează acum cache-uri pe CPU ale unor obiecte mici de memorie, astfel încât majoritatea alocărilor și liberelor pot fi gestionate local fără a schimba sincronizarea între procesoare. Aceasta reduce conflictul pe căile fierbinți și accelerează atât alocarea, cât și cea liberă, îmbunătățind performanța pentru sarcinile de lucru care depind mult de RCU.
Performanța la schimbarea memoriei virtuale (swapping) este un alt domeniu care se îmbunătățește. Linux 6.18 aduce prima fază a lucrului la „tabelul de swap”, care introduce o nouă abstractizare folosită ca fundament pentru cache-ul de swap. Scopul este de a face căutările și gestionarea swap-ului mai eficiente, mai ales în condiții de presiune asupra memoriei.
În lumina acestui fapt, punctele de referință raportate în notele de fuziune arată câștiguri de 5–20% în ceea ce privește debitul și cererile pe secundă pentru sarcini reprezentative, împreună cu un comportament mai bun sub stres pentru alocările de pagini mari.
Pe partea de stocare, un nou țintă device-mapper, dm-pcache, permite utilizarea memoriei persistente — de exemplu, dispozitive bazate pe CXL sau capabile DAX — ca un cache de mare viteză în fața dispozitivelor de bloc mai lente. Aceasta oferă designerilor de sisteme o modalitate la nivel de kernel de a trata memoria persistentă ca un nivel între DRAM și SSD-uri sau discuri, fără a fi nevoie de cod personalizat în spațiul utilizatorului.
În același timp, serverul NFS câștigă opțiunea de a dezactiva complet propriul cache I/O. Aceasta poate părea contraintuitiv, dar pentru servere mari, supraaglomerate sau pentru instanțe cloud foarte mici, evitarea cache-ului pe partea serverului poate îmbunătăți de fapt scalabilitatea și poate preveni suprasolicitarea memoriei locale.
Gestionarea proceselor și a spațiilor de nume beneficiază de o îmbunătățire notabilă a uzabilității. Kernelul a suportat pidfds, mânere de descriptor de fișier pentru procese, încă din Linux 5.1, și s-au dovedit foarte utile pentru gestionarea robustă a proceselor.
Nucleul Linux 6.18 extinde aceeași idee și la namespace-uri: spațiul utilizator poate acum să codifice și să decodifice identificatorii de namespace folosind API-urile existente name_to_handle_at() și open_by_handle_at(). Aceasta face posibilă referirea la namespace-uri într-un mod consecvent pe tot parcursul duratei de viață a sistemului, compararea lor fiabilă și transmiterea lor fără a aloca resurse suplimentare.
Rețelele cunosc mai multe schimbări semnificative, deoarece noua versiune adaugă suport inițial pentru Notificarea Explicită a Congestiei (Accurate ECN), care extinde ECN clasic permițând feedback mai detaliat despre câte marcări de congestie au fost observate pe RTT.
Pe partea UDP, calea de recepție a fost restructurată pentru a reduce contencția și pentru a folosi blocări aware de NUMA și o organizare mai bună a structurii de date; testele menționate în changelog raportează aproximativ 50% performanță RX UDP mai bună, cu câștiguri și mai mari în condiții similare atacurilor, unde un set mic de socket-uri primește rate foarte mari de pachete.
În plus, dimensiunea implicită a bufferului de recepție al socket-ului este de asemenea mărită la 4 MB, iar lucrările anterioare privind partajarea directă a bufferului intern (dibs) sunt integrate, îmbunătățind și mai mult scalabilitatea pentru rețele de volum mare.
Securitatea și criptarea transportului sunt consolidate prin suport pentru conexiuni TCP criptate PSP. PSP, un protocol dezvoltat la Google, ocupă o poziție intermediară între IPsec și TLS: are unele similitudini arhitecturale cu ambele, dar este proiectat pentru descărcare hardware puternică, inclusiv moduri de tunelare, ceea ce îl face atractiv pentru implementările în centre de date, unde motoarele de descărcare sunt comune.
Subsistemul BPF câștigă abilitatea de a încărca programe BPF semnate criptografic. Pentru moment, principala schimbare este infrastructura: nucleul poate verifica semnăturile programelor pe măsură ce acestea sunt încărcate. În plus, subsistemul de audit continuă să avanseze către un suport robust pentru multiple LSM-uri, pe măsură ce kernelul Linux 6.18 îmbunătățește gestionarea evenimentelor atunci când mai multe module de securitate Linux sunt activate simultan.
Pe frontul virtualizării, această versiune introduce un driver virtio SPI care permite hipervizoarelor să expună dispozitive SPI direct mașinilor virtuale prin mecanismul standard virtio. Pe gazdele x86, devine disponibil SEV-SNP CipherText Hiding, prevenind ca procesoarele neautorizate să acceseze memoria privată a unui oaspete să vadă chiar și textul criptat din acea memorie.
Pe partea KVM, acum poate oferi stive umbră și urmărirea ramurilor indirecte pe hardware Intel și stive umbră pe AMD, oferind oaspeților acces la protecții moderne pentru fluxul de control.
Sistemele de fișiere și stratul de blocuri trec printr-un amestec de lucrări de funcționalitate și curățare. Noul țintă dm-pcache se potrivește aici, oferind caching persistent în fața dispozitivelor de bloc. Ext4 continuă să se modernizeze, cu suport extins pentru ID-uri rezervate și o nouă interfață ioctl pentru a prelua și modifica parametrii superblock-ului, în timp ce ultimele resturi ale opțiunilor separate de configurare ext3 sunt eliminate.
OverlayFS câștigă suport pentru case-folding, iar sistemele de fișiere FUSE pot acum să gestioneze copii pe intervale mari direct. Separat, un set de opțiuni XFS depreciate este dezactivat implicit, opțiunile de montare învechite sunt eliminate, iar fsck online este acum activat implicit și nu mai este considerat experimental. Nucleul Linux 6.18 elimină de asemenea complet sistemul de fișiere Bcachefs, iar unele sisteme de fișiere adoptă implementări noi de bitmap fără blocări pentru a reduce conflictele pe metadatele partajate.
În cele din urmă, în ceea ce privește suportul hardware, această versiune aduce drivere noi sau îmbunătățite pentru o gamă largă de GPU-uri (inclusiv variantele mai recente Mali și blocuri grafice suplimentare SoC), punți și panouri de afișare, SoC-uri încorporate, plăci de rețea, controlere și regulatoare de energie, senzori I/O industriali, controlere de stocare, PHY-uri și repetitoare USB, dispozitive audio, precum și controlere de intrare și haptice.
Pentru cei dornici să compileze singuri kernelul Linux 6.18, acesta este acum disponibil pentru descărcare pe kernel.org. Ca de obicei, utilizatorii distribuțiilor cu versiune continuă vor fi primii care vor primi noul kernel, iar actualizarea este așteptată să fie disponibilă în repozitoriile lor în săptămânile următoare.
