{"id":115726,"date":"2024-05-13T13:52:06","date_gmt":"2024-05-13T11:52:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-6-9"},"modified":"2024-05-13T13:52:06","modified_gmt":"2024-05-13T11:52:06","slug":"reliz-yadra-linux-6-9","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-6-9","title":{"rendered":"Lansarea nucleului Linux 6.9","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dup\u0103 dou\u0103 luni de dezvoltare, Linus Torvalds a lansat versiunea nucleului Linux 6.9. Printre cele mai notabile modific\u0103ri se num\u0103r\u0103: modulul dm-vdo pentru deduplicarea \u0219i compresia dispozitivelor bloc, modul de acces direct la fi\u0219iere \u00een FUSE, suport pentru crearea pidfd pentru firele de execu\u021bie separate, mecanismul de tokenuri BPF, suport pentru Rust pe sistemele ARM64, trecerea FS Ext2 \u00een categoria celor \u00eenvechite, eliminarea vechiului driver NTFS, suport pentru mecanismul Intel FRED.        <\/p>\n<p>Noua versiune include 15680 de corec\u021bii de la 2106 dezvoltatori, dimensiunea patch-ului fiind de 54 MB (modific\u0103rile au afectat 11825 de fi\u0219iere, s-au ad\u0103ugat 687954 de linii de cod \u0219i s-au \u0219ters 225344 de linii). \u00cen versiunea precedent\u0103 au fost 15641 de corec\u021bii de la 2018 dezvoltatori, iar dimensiunea patch-ului a fost de 44 MB. Aproximativ 42% din toate modific\u0103rile prezentate \u00een 6.9 sunt legate de driverele de dispozitive, \u00een timp ce aproximativ 17% sunt referitoare la actualizarea codului specific arhitecturilor hardware, 13% sunt legate de stiva de re\u021bea, 7% de sistemele de fi\u0219iere \u0219i 4% de subsistemele interne ale nucleului.      <\/p>\n<p>Inova\u021biile principale \u00een nucleul 6.9:  <\/p>\n<ul>\n<li class=\"l\"> <b>Subsistemul de disc, I\/O \u0219i sistemele de fi\u0219iere<\/b>\n<ul>\n<li class=\"l\"> Un nou procesor dm-vdo (virtual data optimizer) a fost ad\u0103ugat \u00een Device Mapper (DM), permi\u021b\u00e2nd crearea unui dispozitiv bloc virtual pe baza dispozitivelor bloc existente, av\u00e2nd func\u021bionalit\u0103\u021bi precum deduplicarea datelor repetitive, compresia datelor, excluderea blocurilor goale \u0219i cre\u0219terea dimensiunii dispozitivului bloc pe m\u0103sur\u0103 ce apare necesitatea (thin provisioning). Aceste func\u021bionalit\u0103\u021bi sunt implementate la nivel de dispozitiv bloc \u0219i nu depind de sistemul de fi\u0219iere utilizat (de exemplu, prin dm-vdo se poate realiza combinarea automat\u0103 a datelor duplicate \u0219i stocarea informa\u021biilor \u00eentr-o form\u0103 comprimat\u0103 pentru orice FS). Suport\u0103 aplicarea dm-vdo pentru stoc\u0103ri fizice cu dimensiuni de p\u00e2n\u0103 la 256TB \u0219i crearea de volume logice cu dimensiuni de p\u00e2n\u0103 la 4PB. Pentru gestionarea parti\u021biilor vdo, se recomand\u0103 utilizarea lvm. Tehnologia VDO a fost dezvoltat\u0103 de compania Permabit \u0219i a fost deschis\u0103 dup\u0103 achizi\u021bia sa de c\u0103tre Red Hat \u00een 2017.\n<li class=\"l\"> \u00cen subsistemul FUSE, utilizat pentru implementarea sistemelor de fi\u0219iere \u00een spa\u021biul utilizatorului, a fost ad\u0103ugat\u0103 o implementare ini\u021bial\u0103 a modului \u201epassthrough\u201d, care permite accesul direct la nivelul nucleului la datele fi\u0219ierelor, ocolind procesul care ruleaz\u0103 \u00een spa\u021biul utilizatorului, ceea ce poate \u00eembun\u0103t\u0103\u021bi semnificativ performan\u021ba \u00een anumite situa\u021bii. De exemplu, implement\u0103rile FUSE ale FS care func\u021bioneaz\u0103 \u00een modul doar pentru citire \u0219i limiteaz\u0103 accesul la fi\u0219iere pot returna con\u021binutul fi\u0219ierelor din FS-ul surs\u0103 f\u0103r\u0103 a le transmite procesului FUSE.\n<li class=\"l\"> Driverul cu implementarea sistemului de fi\u0219iere Ext2 a fost clasificat ca fiind \u00eenvechit (deprecated). Ca motiv, se men\u021bioneaz\u0103 c\u0103 driverul suport\u0103 doar contoare de timp pe 32 de bi\u021bi \u00een inode, care se vor supra\u00eenc\u0103rca pe 19 ianuarie 2038. \u00cen locul driverului ext2, se recomand\u0103 utilizarea driverului ext4, care suport\u0103 lucrul cu sistemul de fi\u0219iere Ext2 \u0219i este complet compatibil cu acesta, dar poate folosi \u00een partaj\u0103rile ext2 timpi de date care nu sunt afecta\u021bi de problema anului 2038, dac\u0103 FS-ul a fost creat cu inode-uri de dimensiuni mai mari de 255 de bi\u021bi (\u00een driverul ext2, contoarele de timp pe 32 de bi\u021bi au fost utilizate independent de dimensiunea inode-ului).\n<li class=\"l\"> Driverul vechi pentru sistemul de fi\u0219iere NTFS a fost eliminat, fiind \u00eenlocuit \u00eencep\u00e2nd cu versiunea 5.15 cu un nou driver NTFS3. Livrarea a dou\u0103 drivere cu implementarea NTFS \u00een kernel a fost considerat\u0103 nejustificat\u0103, av\u00e2nd \u00een vedere c\u0103 vechiul driver nu a mai fost actualizat de mult timp, se afl\u0103 \u00eentr-o stare deplorabil\u0103 \u0219i poate func\u021biona doar \u00een modul de citire.\n<li class=\"l\"> \u00cen sistemele de fi\u0219iere zonefs \u0219i hugetlbfs a fost ad\u0103ugat\u0103 suport pentru maparea identificatorilor utilizatorilor \u00een sistemele de fi\u0219iere montate, utilizat\u0103 pentru a coresponda fi\u0219ierele unui anumit utilizator pe o parti\u021bie str\u0103in\u0103 cu alt utilizator din sistemul curent.\n<li class=\"l\"> \u00cen NFSv4 pentru administratori a fost oferit\u0103 posibilitatea de a cleare st\u0103rile de deschidere \u0219i blocare a fi\u0219ierelor.\n<li class=\"l\"> Pentru sistemul de fi\u0219iere Ext4 se observ\u0103 doar corectarea erorilor \u0219i actualizarea testelor kunit.\n<li class=\"l\"> \u00cen Btrfs, traducerea func\u021biilor pentru utilizarea foliantelor de pagin\u0103 de memorie (page folios) a continuat.\n<li class=\"l\">  \u00cen sistemul de fi\u0219iere XFS, s-a continuat lucrul asupra implement\u0103rii posibilit\u0103\u021bii de aplicare a utilitarului fsck pentru a verifica \u0219i a corecta problemele descoperite \u00een modul online, f\u0103r\u0103 a de-monta sistemul de fi\u0219iere.\n<li class=\"l\"> \u00cen apelul de sistem pwritev2() a fost ad\u0103ugat un flag RWF_NOAPPEND, care permite specificarea unei deplas\u0103ri pentru scriere, chiar dac\u0103 fi\u0219ierul a fost deschis \u00een modul de doar ad\u0103ugare a datelor la sf\u00e2r\u0219itul fi\u0219ierului.\n<li class=\"l\"> Au fost ad\u0103ugate noi comenzi ioctl: FS_IOC_GETUUID \u2014 returneaz\u0103 identificatorul UUID al sistemului de fi\u0219iere specificat, \u0219i FS_IOC_GETFSSYSFSPATH \u2014 determin\u0103 loca\u021bia \u00een \/sys\/fs a FS-ului montat specificat.\n<li class=\"l\"> Sistemele de fi\u0219iere efs, qnx4 \u0219i coda au fost migrate la utilizarea noului API de montare a parti\u021biilor.\n<li class=\"l\"> Implementarea opera\u021biunilor cu fi\u0219iere efectuate \u00een modul f\u0103r\u0103 considera\u021bie pentru case-sensitive a fost \u00eembun\u0103t\u0103\u021bit\u0103. Performan\u021ba a crescut prin efectuarea ini\u021bial\u0103 a compara\u021biei cu considera\u021bie pentru case-sensitive \u0219i revenirea la c\u0103utarea f\u0103r\u0103 considera\u021bie pentru case-sensitive. Problemele legate de montarea overlayfs peste directoare pentru care este setat modul f\u0103r\u0103 considera\u021bie pentru case-sensitive au fost rezolvate.                  <\/ul>\n<li class=\"l\"> <b>Memorie \u0219i servicii de sistem<\/b>\n<ul>\n<li class=\"l\"> A fost implementat suportul pentru mecanismul Intel FRED (Flexible Return and Event Delivery), creat pentru a \u00eembun\u0103t\u0103\u021bi eficien\u021ba \u0219i fiabilitatea livr\u0103rii informa\u021biilor despre evenimente de nivel inferior, \u00een compara\u021bie cu mecanismul utilizat \u00een prezent IDT (Interrupt Descriptor Table). Cre\u0219terea performan\u021bei \u0219i reducerea \u00eent\u00e2rzierilor se realizeaz\u0103 prin returnarea evenimentelor prin instruc\u021biunea procesorului IRET \u00een loc de transmiterea evenimentelor prin tabela IDT. Fiabilitatea este crescut\u0103 datorit\u0103 proces\u0103rii separate a evenimentului \u00een contextul kernel-ului \u0219i contextul utilizatorului, protec\u021bia \u00eempotriva execu\u021biei imediate NMI \u0219i salvarea \u00een cadrul extins al stivei a tuturor registrelor CPU asociate cu excep\u021bia.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 posibilitatea optimiz\u0103rii accesului la datele nucleelor CPU individuale prin utilizarea \u00een codul kernel-ului a spa\u021biilor de adres\u0103 numite (Named Address Spaces), implementate \u00een GCC sub forma unei extensii GNU C.\n<li class=\"l\"> \u00cen func\u021bia pidfd_open() a fost ad\u0103ugat flagul PIDFD_THREAD, care permite crearea unui pidfd pentru fire individuale, nu doar utilizarea pidfd \u00een contextul liderului grupului de fire. De asemenea, a fost propus\u0103 implementarea unui pseudo-sistem de fi\u0219iere pentru accesul la pidfd prin intermediul sistemului de fi\u0219iere virtual. Spre deosebire de identificarea proceselor cu ajutorul pid-ului, identificatorul pidfd este legat de un proces specific \u0219i nu se schimb\u0103, \u00een timp ce PID-ul dup\u0103 terminarea procesului curent poate fi legat de un alt proces.\n<li class=\"l\"> \u00cen subsistemul BPF a fost ad\u0103ugat un mecanism BPF-token, care permite delegarea selectiv\u0103 a drepturilor de acces la opera\u021biunile privilegiate BPF programelor, de exemplu, se poate oferi unei aplica\u021bii neprivilegiate acces la sub-sisteme BPF individuale f\u0103r\u0103 a-i oferi drepturi complete CAP_BPF.\n<li class=\"l\"> \u00cen subsistemul BPF a fost ad\u0103ugat un nou tip de memorie partajat\u0103 bpf_arena, definind o zon\u0103 disponibil\u0103 pentru partajare \u00eentre programele BPF \u0219i procesele din spa\u021biul utilizator. A fost ad\u0103ugat\u0103 instruc\u021biunea may_goto, care permite organizarea ciclurilor de lucru, care pot fi \u00eentrerupte de verificator. A fost ad\u0103ugat\u0103 posibilitatea de a genera din programele BPF cookie-uri TCP SYN arbitrare \u0219i de a crea gestionari BPF pentru a lupta \u00eempotriva SYN flood.\n<li class=\"l\"> Continu\u0103 transferul modific\u0103rilor din ramura Rust-for-Linux, legate de utilizarea limbajului Rust ca al doilea limbaj pentru dezvoltarea driverelor \u0219i modulelor nucleului (suportul pentru Rust nu este activat implicit \u0219i nu duce la includerea Rust \u00een lista dependen\u021belor de compilare obligatorii pentru nucleu). A fost ad\u0103ugat suport pentru utilizarea limbajului Rust pe procesoarele ARM pe 64 de bi\u021bi. A fost realizat tranzi\u021bia la versiunea Rust 1.76. A fost ad\u0103ugat macro-ul \u2018container_of!\u2019. Func\u021bionalitatea instabil\u0103 \u2018ptr_metadata\u2019 a fost \u00eenlocuit\u0103 cu metoda stabil\u0103 \u2018byte_sub\u2019. A fost ad\u0103ugat modul \u2018time\u2019 cu func\u021bia de conversie a timpului \u2018msecs_to_jiffies()\u2019.\n<li class=\"l\"> \u00cen subsistemul io_uring a fost ad\u0103ugat\u0103 posibilitatea de a t\u0103ia fi\u0219iere (ftruncate_file).\n<li class=\"l\"> A fost ad\u0103ugat un nou tip de cozi de lucru WQ_BH (workqueue Bottom Halves) pentru executarea asincron\u0103 a codului \u00een contextul \u00eentreruperilor software, destinat utiliz\u0103rii \u00een locul tasklet-urilor \u00eenvechite.\n<li class=\"l\"> Subsistemul de gestionare a temporizatoarelor a fost semnificativ revizuit, \u00eembun\u0103t\u0103\u021bindu-se logica select\u0103rii nucleului CPU activ pentru a executa temporizatorul declan\u0219at, pentru a nu scoate din modul de a\u0219teptare nucleele inactivate.\n<li class=\"l\"> A fost implementat\u0103 posibilitatea de a actualiza modelul de consum de energie al nucleului (EM, Energy Model) \u00een timpul func\u021bion\u0103rii, ceea ce poate fi utilizat, de exemplu, pentru a considera influen\u021ba temperaturii de func\u021bionare asupra eficien\u021bei energetice a CPU-ului. A fost semnificativ \u00eembun\u0103t\u0103\u021bit\u0103 performan\u021ba func\u021biei em_cpu_energy(), care \u00een teste pe un sistem sta\u021bionar acum ruleaz\u0103 de 1,43 ori mai repede, iar \u00een testul pe placa RockPi 4B \u2014 de 1,69 ori.\n<li class=\"l\"> A fost ad\u0103ugat suport pentru lansarea sistemelor bazate pe arhitectura ARM64 \u00een modul LPA2 cu un spa\u021biu de adrese virtuale de 52 de bi\u021bi.\n<li class=\"l\"> Pentru sistemele ARM64, a fost implementat suportul pentru \u00eenregistr\u0103rile continue PTE (Page Table Entry), care permit \u00eembun\u0103t\u0103\u021birea performan\u021bei prin cre\u0219terea eficien\u021bei utiliz\u0103rii TLB (Translation Lookaside Buffer).\n<li class=\"l\"> Au fost acceptate patch-uri pentru \u00eembun\u0103t\u0103\u021birea performan\u021bei subsystemului de gestionare a memoriei, reduc\u00e2nd apari\u021bia bloc\u0103rilor concurente \u00een vmalloc().\n<li class=\"l\"> Pentru arhitectura LoongArch, a fost implementat un mecanism de aplicare a patch-urilor \u00een mod live (live patching), care permite aplicarea corec\u021biilor la nucleu f\u0103r\u0103 a fi necesar\u0103 repornirea sistemului.\n<li class=\"l\"> Pentru sistemele RISC-V, a fost implementat suportul pentru apelul de sistem membarrier(), care asigur\u0103 stabilirea barierelor de memorie pentru firele de execu\u021bie care ruleaz\u0103 \u00een sistem.\n<li class=\"l\"> S-au ridicat cerin\u021bele pentru versiunea LLVM\/Clang care poate fi utilizat\u0103 pentru compilarea nucleului. Acum, pentru compilare este necesar un minimum de versiune LLVM 13.0.1 (anterior era acceptat\u0103 compilarea \u00een LLVM 11+).\n<li class=\"l\"> \u00cen mecanismul \u201eUser trace events\u201d, care permite generarea de evenimente de urm\u0103rire din procesele utilizatorilor pentru a urm\u0103ri activitatea \u00een spa\u021biul utilizatorului, a fost ad\u0103ugat\u0103 suport pentru exportul informa\u021biilor despre eveniment \u00een diverse formate (USER_EVENT_REG_MULTI_FORMAT).\n<li class=\"l\"> \u00cen mecanismul de urm\u0103rire a apelurilor de func\u021bii, a fost ad\u0103ugat\u0103 posibilitatea de a urm\u0103ri starea argumentelor de intrare ale func\u021biei atunci c\u00e2nd se urm\u0103re\u0219te ie\u0219irea din func\u021bie. Valorile operatorului return pot acum fi corelate cu argumentele utilizate la apelul func\u021biei.\n<li class=\"l\"> Utilitarul perf a primit suport pentru modul de agregare a ie\u0219irii \u201ecluster\u201d (\u201eperf stat -a \u2014per-cluster\u201d) pentru a combina statisticile resurselor partajate. A fost implementat\u0103 posibilitatea de a utiliza biblioteca libcapstone pentru disasamblarea instruc\u021biunilor procesorului (\u201eperf script -F disasm\u201d). S-au efectuat optimiz\u0103ri ale consumului de memorie \u00een timpul execu\u021biei comenzilor perf report \u0219i perf annotate.                    <\/ul>\n<li class=\"l\"> <b>Virtualizare \u0219i securitate<\/b>\n<ul>\n<li class=\"l\"> A fost ad\u0103ugat\u0103 protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bii RFDS (Register File Data Sampling) \u00een procesoarele Intel Atom, care permite extragerea de informa\u021bii reziduale din fi\u0219ierele de registre (RF, Register File) ale procesorului, utilizate pentru stocarea comun\u0103 a con\u021binutului registrelor \u00een toate sarcinile pe acela\u0219i nucleu CPU. Pentru a bloca vulnerabilitatea este necesar\u0103 actualizarea microcodului \u0219i utilizarea instruc\u021biunii VERW pentru a cur\u0103\u021ba con\u021binutul bufferelor microarhitecturale \u00een momentul revenirii din kernel \u00een spa\u021biul utilizatorului. Pentru a activa protec\u021bia la \u00eenc\u0103rcarea nucleului, se poate specifica flag-ul \u201ereg_file_data_sampling=on\u201d. Informa\u021biile despre expunerea la vulnerabilitate \u0219i existen\u021ba microcodului necesar pentru protec\u021bie pot fi evaluate \u00een fi\u0219ierul \u201e\/sys\/devices\/system\/cpu\/vulnerabilities\/reg_file_data_sampling\u201d.\n<li class=\"l\"> A fost ad\u0103ugat suport de baz\u0103 pentru protec\u021bia sistemelor gazd\u0103 prin intermediul extensiei AMD SEV-SNP (Secure Nested Paging), care asigur\u0103 func\u021bionarea sigur\u0103 cu tabele de pagini de memorie \u00eennodat\u0103 \u0219i protejeaz\u0103 \u00eempotriva atacurilor \u201eundeSErVed\u201d \u0219i \u201eSEVerity\u201d pe procesoarele AMD EPYC, care permit ocolirea mecanismului de protec\u021bie AMD SEV (Secure Encrypted Virtualization). <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4384\">KVM<\/a> Schimb\u0103rile necesare pentru utilizarea SNP sunt planificate s\u0103 fie ad\u0103ugate \u00een ramura 6.10.\n<li class=\"l\"> Modulele cu implementarea tehnologiilor IMA (Integrity Measurement Architecture) \u0219i EVM (Extended Verification Module) au fost transferate pe utilizarea framework-ului LSM (Linux Security Modules), ceea ce, f\u0103r\u0103 a pierde func\u021bionalitate, a simplificat semnificativ codul, a unit func\u021bionalit\u0103\u021bile duplicate \u0219i a utilizat capabilit\u0103\u021bile \u00een mod standard disponibile prin LSM. Modulul IMA este destinat verific\u0103rii integrit\u0103\u021bii componentelor sistemului de operare prin semn\u0103turi digitale \u0219i hash-uri. Modulul EVM permite protejarea atributelor extinse ale fi\u0219ierelor (xattrs) \u00eempotriva atacurilor menite s\u0103 le compromit\u0103 integritatea (EVM nu va permite efectarea unui atac offline \u00een care un intrus poate modifica metadatele, de exemplu, pornesc\u00e2nd de pe unitatea sa de stocare).\n<li class=\"l\"> Au fost revizuite pentru o mai bun\u0103 compatibilitate cu mediile pe 32 de bi\u021bi apelurile de sistem lsm_list_modules(), lsm_get_self_attr() \u0219i lsm_set_self_attr(), destinate afi\u0219\u0103rii listei modulelor LSM (Linux Security Modules) \u00eenc\u0103rcate \u0219i ob\u021binerii\/set\u0103rii atributelor modulului LSM. Schimbarea \u00eencalc\u0103 compatibilitatea cu versiunile anterioare, dar deoarece noile apeluri de sistem au fost ad\u0103ugate \u00een ultimul release al nucleului \u0219i nu sunt \u00eenc\u0103 utilizate \u00een aplica\u021bii, Linus Torvalds a considerat c\u0103 modificarea este acceptabil\u0103.\n<li class=\"l\"> A fost f\u0103cut\u0103 o \u00eencercare de a relua utilizarea mecanismului UBSAN (Undefined Behavior Sanitizer). Problema principal\u0103 este c\u0103 compilatoarele trateaz\u0103 diferit dep\u0103\u0219irile de capacitate ale tipurilor \u00eentregi semnate \u0219i nesemnate. Dep\u0103\u0219irile semnate \u0219i dep\u0103\u0219irile pointerilor se \u00eencadreaz\u0103 \u00een categoria comportamentului nedeterminat, \u00een timp ce dep\u0103\u0219irile nesemnate sunt reduse modulo 2n, p\u0103str\u00e2nd doar bi\u021bii cei mai pu\u021bini din rezultat (\u201ewrap-around\u201d) \u0219i nu cad sub comportamentul nedeterminat. Pentru a exclude situa\u021biile care genereaz\u0103 comportament nedeterminat, nucleul este compilat cu op\u021biunea \u201e-fno-strict-overflow\u201d, ceea ce duce la utilizarea \u201ewrap-around\u201d pentru toate dep\u0103\u0219irile de capacitate \u00eentregi. GCC \u0219i Clang nu pot diagnostica corect anumite probleme atunci c\u00e2nd se folose\u0219te flag-ul \u201e-fno-strict-overflow\u201d \u0219i activarea UBSAN are ca scop realizarea unei colabor\u0103ri cu dezvoltatorii de compilatoare pentru a elimina falsele alerte \u0219i a identifica dep\u0103\u0219irile de capacitate \u00een locurile \u00een care nu exist\u0103 verific\u0103ri explicite.\n<p>Pentru a verifica posibilele dep\u0103\u0219iri \u00een nucleu, se folosesc construc\u021bii de tipul \u201evar + offset <var> PAGE_SHIFT) &lt; pgoff){..}&quot;), care sunt legate de compilarea cu flag-ul &quot;-fno-strict-overflow&quot; \u0219i nu acoper\u0103 \u00eentregul cod \u00een care poate ap\u0103rea o dep\u0103\u0219ire. Problema este c\u0103, utiliz\u00e2nd UBSAN, astfel de verific\u0103ri duceau la generarea unui num\u0103r mare de alerte false \u0219i din aceast\u0103 cauz\u0103, \u00een 2021 a fost necesar s\u0103 se dezactiveze UBSAN. \u00cen implementarea actualizat\u0103, s-a propus utilizarea unor adnot\u0103ri speciale __signed_wrap \u0219i __unsigned_wrap, precum \u0219i a unor macro-uri preg\u0103tite cu verific\u0103ri add_would_overflow(a, b) \u0219i add_wrap(a, b), care permit separarea dep\u0103\u0219irilor de capacitate inten\u021bionate de cele accidentale, care pot duce la vulnerabilit\u0103\u021bi. Propunerea pentru o refacere mai ampl\u0103 a nucleului cu introducerea unor defini\u021bii suplimentare de tipuri a fost respins\u0103 de Linus Torvalds.                      <\/ul>\n<li class=\"l\"> <b>Subsystema de re\u021bea<\/b>\n<ul>\n<li class=\"l\">  \u00cen subsistemul de re\u021bea, s-a lucrat la reducerea apari\u021biei blocajelor concurente (\u201elock contention\u201d, \u00eencercarea de a ob\u021bine un blocaj de\u021binut de alt fir). S-a redus utilizarea blocajelor RTNL.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 op\u021biunea de a activa suportul pentru busy polling \u00een contextul apelurilor epoll. Dimensiunea pool-ului \u0219i parametrii bugetului pot fi seta\u021bi separat de parametrii sistemului prestabili\u021bi.\n<li class=\"l\"> Structura net_hotdata a fost implementat\u0103 pentru a \u00eembun\u0103t\u0103\u021bi eficien\u021ba caching-ului celor mai utilizate variabile de configurare a re\u021belei.\n<li class=\"l\"> MPTCP a ad\u0103ugat suport pentru set\u0103rile op\u021biunii TCP_NOTSENT_LOWAT pentru socket-uri, permi\u021b\u00e2nd restric\u021bionarea dimensiunii buffer-ului de trimitere. \u00cen API-ul pentru socket-urile MCTP a fost ad\u0103ugat suport pentru identificatori de re\u021bea (&#171;network ID&#187;), care ofer\u0103 posibilitatea de a utiliza mai multe re\u021bele MCTP neintersectante pe o singur\u0103 gazd\u0103.\n<li class=\"l\"> \u00cen IPSec a fost ad\u0103ugat suportul pentru redirec\u021bionarea mesajelor ICMP cu informa\u021bii de eroare (RFC 4301).\n<li class=\"l\"> Procesul de scanare a rutelor cu timp de via\u021b\u0103 expirat a fost accelerat.\n<li class=\"l\"> Func\u021bionarea XDP a fost accelerat\u0103, datorit\u0103 evit\u0103rii mai stricte a aloc\u0103rii unor blocuri mari de memorie.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 op\u021biunea de a ad\u0103uga metadate la mesajele netconsole.\n<li class=\"l\"> \u00cen Netfilter, s-a permis definirea din spa\u021biul utilizatorului a unor tabele care se leag\u0103 de un proces de fundal de control \u0219i care nu sunt \u0219terse automat dup\u0103 terminarea aplica\u021biei utilizatorului.\n<li class=\"l\"> \u00cen nftables, ad\u0103ugarea elementelor \u00een set-uri cu intervale unite a fost accelerat\u0103.                      <\/ul>\n<li class=\"l\"> <b>Echipament<\/b>\n<ul>\n<li class=\"l\"> \u00cen driverul i915, s-a continuat munca de implementare a suportului pentru chip-urile Intel LunarLake (Xe 2). Au fost ad\u0103ugate noi identificatori PCI pentru dispozitive bazate pe chip-uri Intel Arrow Lake \u0219i Alder Lake N. Pentru DisplayPort, a fost ad\u0103ugat suportul pentru tunelarea DP \u0219i alocarea l\u0103\u021bimii de band\u0103. Pentru toate platformele, s-a activat modul fastboot. A fost ad\u0103ugat suportul pentru ie\u0219irea de depanare legat\u0103 de dispozitive specifice.\n<li class=\"l\"> \u00cen driverul AMDGPU, s-a realizat preg\u0103tirea pentru implementarea suportului GPU AMD RDNA3.5 \u0219i RDNA4. A fost ad\u0103ugat suport pentru ATHUB 4.1, LSDMA 7.0, JPEG DPG, IH 7.0, HDP 7.0, VCN 5.0, SMU 13.0.6, NBIO 7.11, SDMA 6.1, MMHUB 3.3, DCN 3.5.1, NBIF 6.3.1, VPE 6.1.1 \u0219i framework-ul RAS ACA. \u00cen modulul kernel-ului a fost ad\u0103ugat parametrul freesync_video pentru activarea suportului experimental pentru optimizarea comut\u0103rii \u00eentre modurile video utiliz\u00e2nd tehnologia de sincronizare adaptiv\u0103 FreeSync.\n<li class=\"l\"> \u00cen driverul Nouveau, codul de control al ecranului a fost transformat pentru a folosi func\u021bia kmemdup().\n<li class=\"l\"> S-a continuat lucrul la driverul drm (Direct Rendering Manager) Xe pentru GPU bazat pe arhitectura Intel Xe, care este utilizat \u00een pl\u0103cile grafice Intel din familia Arc \u0219i \u00een grafica integrat\u0103, \u00eencep\u00e2nd cu procesoarele Tiger Lake.\n<li class=\"l\"> A fost ad\u0103ugat driverul DRM pentru cipurile Mediatek MT8188 VDOSYS1.\n<li class=\"l\"> Set\u0103rile corelative cu subsistemele video au fost mutate \u00een sec\u021biunea CONFIG_VIDEO.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 suportul pentru SoC-uri ARM64: Mediatek MT7981B (Filogic 820), MT7988A (Filogic 880), NXP i.MX8DXP, Renesas R8A779G2 (R-Car V4H ES2.0), R8A779H0 (R-Car V4M), TI J722S.\n<li class=\"l\"> A fost ad\u0103ugat suportul pentru pl\u0103ci \u0219i dispozitive ARM: telefoane Android bazate pe cipul Tegra30, modele Chromebook bazate pe Mediatek MT8186, NAS, tablete \u0219i console de jocuri bazate pe Rockchips RK35xx, pl\u0103ci White Hawk bazate pe SoC Renesas, pl\u0103ci bazate pe Qualcomm SM8550 (Snapdragon 8 Gen 2), Apalis Evaluation Board, Sielaff i.MX6 Solo Board, Samsung Galaxy Tab 4 10.1 LTE.\n<li class=\"l\"> A fost realizat un refactoring al codului subsistemului audio ALSA. A fost ad\u0103ugat\u0103 suportul pentru sistemele audio Microchip SAM9x7, NXP i.MX95 \u0219i Qualcomm WCD939x. \u00cen driverul SoundWire a fost ad\u0103ugat\u0103 suportul ASoC cu coprocesoarele audio AMD ACP 6.3, iar pentru sistemele Intel a fost implementat modul DSPless. A fost ad\u0103ugat\u0103 suportul pentru codec-uri audio suplimentare Cirrus HD. \u00cen driverul virtio a fost \u00eembun\u0103t\u0103\u021bit\u0103 gestionarea dispozitivelor audio.\n<li class=\"l\"> A fost ad\u0103ugat suportul pentru controlerele Ethernet Marvell Octeon PCI Endpoint NIC VF \u0219i Intel E825-C 100G.            <\/ul>\n<\/ul>\n<p>\u00cen acela\u0219i timp, Fondul pentru Software Liber din America Latin\u0103 a format o variant\u0103 complet liber\u0103 a nucleului 6.9 \u2014 Linux-libre 6.9-gnu, cur\u0103\u021bat de elemente de firmware \u0219i drivere care con\u021bin componente nesigure sau sec\u021biuni de cod a c\u0103ror aplicabilitate este restric\u021bionat\u0103 de c\u0103tre produc\u0103tor. \u00cen versiunea 6.9 a fost actualizat codul de cur\u0103\u021bare a bloburilor \u00een driverele amdgpu, ath12k, adreno, btusb \u0219i r8169. A fost efectuat\u0103 cur\u0103\u021barea noului driver ptp_fc3. S-au realizat cur\u0103\u021b\u0103ri ale numelui bloburilor \u00een fi\u0219ierele dts (devicetree) pentru arhitectura Aarch64. Au fost rezolvate problemele de cur\u0103\u021bare a driverului i915, care duceau la blocaje \u00een timpul ini\u021bializ\u0103rii. Au fost aduse modific\u0103ri legate de procesarea bloburilor furnizate sub form\u0103 de dump-uri hexadecimale.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61160\">opennet.ro<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9. \u0421\u0440\u0435\u0434\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u043c\u043e\u0434\u0443\u043b\u044c dm-vdo \u0434\u043b\u044f \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0432 FUSE, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f pidfd \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c BPF-\u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Rust \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 ARM64, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0424\u0421 Ext2 \u0432 \u0440\u0430\u0437\u0440\u044f\u0434 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 NTFS, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-115726","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-6-9\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-6-9\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-05-13T11:52:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-05-13T11:52:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lansarea nucleului Linux 6.9 | ProHoster","description":"Dup\u0103 dou\u0103 luni de dezvoltare, Linus Torvalds a prezentat versiunea nucleului Linux 6.9.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-6-9","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-6-9","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-05-13T11:52:06+00:00","article:modified_time":"2024-05-13T11:52:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"115726","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 00:14:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 00:14:20","updated":"2026-01-23 00:14:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/115726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=115726"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/115726\/revisions"}],"predecessor-version":[{"id":164261,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/115726\/revisions\/164261"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=115726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=115726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=115726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}