{"id":104123,"date":"2022-05-23T15:36:40","date_gmt":"2022-05-23T13:36:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-5-18"},"modified":"2022-05-23T15:36:40","modified_gmt":"2022-05-23T13:36:40","slug":"reliz-yadra-linux-5-18","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-5-18","title":{"rendered":"Lansarea nucleului Linux 5.18","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dup\u0103 dou\u0103 luni de dezvoltare, Linus Torvalds a prezentat versiunea kernel-ului Linux 5.18. Printre cele mai notabile schimb\u0103ri se num\u0103r\u0103: o cur\u0103\u021bare extins\u0103 a func\u021bionalit\u0103\u021bilor dep\u0103\u0219ite, declararea sistemului de fi\u0219iere Reiserfs ca fiind \u00eenvechit, implementarea evenimentelor de urm\u0103rire a proceselor utilizator, ad\u0103ugarea suportului pentru mecanismul de blocare a exploiturilor Intel IBT, activarea modului de detectare a overflow-ului buffer-ului \u00een utilizarea func\u021biei memcpy(), ad\u0103ugarea unui mecanism de urm\u0103rire a apelurilor func\u021biilor fprobe, \u00eembun\u0103t\u0103\u021birea performan\u021bei planificatorului de sarcini pe CPU AMD Zen, includerea unui driver pentru gestionarea func\u021bionalit\u0103\u021bii CPU Intel (SDS), integrarea unor patch-uri pentru restructurarea fi\u0219ierelor header \u0219i aprobat\u0103 aplicarea standardului C11.      <\/p>\n<p>Noua versiune include 16206 corec\u021bii de la 2127 de dezvoltatori (\u00een versiunea anterioar\u0103 erau 14203 corec\u021bii de la 1995 de dezvoltatori), dimensiunea patch-ului este de 108 MB (modific\u0103rile au afectat 14235 de fi\u0219iere, au fost ad\u0103ugate 1340982 de linii de cod, \u0219terse 593836 de linii). Aproape 44% din toate modific\u0103rile prezentate \u00een 5.18 sunt legate de driverele de dispozitive, aproximativ 16% sunt legate de actualizarea codului specific arhitecturilor hardware, 11% sunt legate de stiva de re\u021bea, 3% - de sistemele de fi\u0219iere \u0219i 3% de subsistemele interne ale nucleului.           <\/p>\n<p>Principalele nou\u0103\u021bi din kernel 5.18:    <\/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\"> \u00cen sistemul de fi\u0219iere Btrfs a fost ad\u0103ugat suportul pentru transmiterea datelor compresate \u00een timpul opera\u021biunilor send \u0219i receive. Anterior, utilizarea send\/receive implica ca partea emitent\u0103 s\u0103 dezarhiveze datele stocate \u00een format comprimat, \u00een timp ce partea receptor recontraia \u00eenainte de a scrie. \u00cen kernel 5.18, aplica\u021biile din spa\u021biul utilizator care utilizeaz\u0103 apelurile send\/receive au acum posibilitatea de a transmite date comprimate f\u0103r\u0103 reambalare. Func\u021bionalitatea a fost implementat\u0103 prin noi opera\u021biuni ioctl BTRFS_IOC_ENCODED_READ \u0219i BTRFS_IOC_ENCODED_WRITE, care permit citirea \u0219i scrierea direct\u0103 a informa\u021biilor \u00een extent.\n<p>\u00cen plus, \u00een Btrfs a fost \u00eembun\u0103t\u0103\u021bit\u0103 performan\u021ba fsync. A fost ad\u0103ugat\u0103 posibilitatea de deduplicare \u0219i executare a reflink (clonarea metadatelor fi\u0219ierului cu crearea unei leg\u0103turi c\u0103tre datele deja existente, f\u0103r\u0103 a le copia efectiv) pentru \u00eentreaga stocare, f\u0103r\u0103 a se limita la punctele de montare.         <\/p>\n<li class=\"l\"> \u00cen modul de acces direct (Direct I\/O), este posibil\u0103 accesarea fi\u0219ierelor criptate utiliz\u00e2nd fscrypt pentru criptare inline, \u00een care opera\u021biile de criptare \u0219i decriptare sunt realizate de controlerul de stocare, nu de nucleu. \u00cen cazul cript\u0103rii de c\u0103tre nucleu, accesul la fi\u0219ierele criptate prin Direct I\/O r\u0103m\u00e2ne imposibil, deoarece accesul la fi\u0219iere se face ocolind mecanismul de bufferare din nucleu.\n<li class=\"l\"> Pe serverul NFS, suportul pentru protocolul NFSv3 este activat implicit, f\u0103r\u0103 a necesita o activare separat\u0103, fiind disponibil cu activarea general\u0103 a NFS. NFSv3 este considerat versiunea principal\u0103 \u0219i \u00eentotdeauna suportat\u0103 a NFS, iar suportul pentru NFSv2 ar putea fi \u00eentrerupt \u00een viitor. Eficien\u021ba citirii con\u021binutului directorilor a fost semnificativ crescut\u0103.\n<li class=\"l\"> Sistemul de fi\u0219iere ReiserFS a fost clasificat ca fiind \u00eenvechit \u0219i va fi eliminat \u00een 2025. Clasificarea ReiserFS ca \u00eenvechit va reduce eforturile de \u00eentre\u021binere a modific\u0103rilor comune pentru sistemele de fi\u0219iere legate de suportul pentru noul API de montare, iomap \u0219i foliante.\n<li class=\"l\"> Pentru FS F2FS, a fost implementat\u0103 posibilitatea de mapare a identificatorilor utilizatorilor pentru sistemele de fi\u0219iere montate, folosit\u0103 pentru a asocia fi\u0219ierele unui anumit utilizator pe o parti\u021bie str\u0103in\u0103 cu un alt utilizator din sistemul curent.\n<li class=\"l\"> Codul pentru calcularea statisticilor \u00een gestionarii Device-mapper a fost ref\u0103cut, ceea ce a permis cre\u0219terea semnificativ\u0103 a acurate\u021bei contoriz\u0103rii \u00een astfel de gestionari, cum ar fi dm-crypt.\n<li class=\"l\"> Pentru dispozitivele NVMe, a fost implementat suportul pentru sume de control pe 64 de bi\u021bi pentru verificarea integrit\u0103\u021bii.\n<li class=\"l\"> Pentru sistemul de fi\u0219iere exfat a fost propus\u0103 o nou\u0103 op\u021biune de montare \u201ekeep_last_dots\u201d, care interzice \u0219tergerea punctelor de la sf\u00e2r\u0219itul numelui fi\u0219ierului (\u00een Windows, punctele de la sf\u00e2r\u0219itul numelui sunt \u0219terse \u00een mod implicit).\n<li class=\"l\"> \u00cen EXT4 a fost \u00eembun\u0103t\u0103\u021bit\u0103 performan\u021ba modului fast_commit \u0219i a fost crescut\u0103 scalabilitatea. Op\u021biunea de montare \u201emb_optimize_scan\u201d, care permite cre\u0219terea performan\u021bei \u00een condi\u021bii de fragmentare mare a FS, a fost adaptat\u0103 s\u0103 func\u021bioneze cu fi\u0219iere cu extent.\n<li class=\"l\"> Suportul pentru fluxurile de scriere (write stream) a fost oprit \u00een subsistemul care asigur\u0103 func\u021bionarea dispozitivelor bloc. Aceast\u0103 capacitate a fost propus\u0103 pentru SSD-uri, dar nu a fost adoptat\u0103 \u0219i \u00een prezent nu exist\u0103 dispozitive care s\u0103 suporte acest mod, iar apari\u021bia lor \u00een viitor este pu\u021bin probabil\u0103.                      <\/ul>\n<li class=\"l\"> <b>Memorie \u0219i servicii de sistem<\/b>\n<ul>\n<li class=\"l\"> A \u00eenceput integrarea unui set de patch-uri care permite o reducere semnificativ\u0103 a timpului de recompilare a nucleului prin restructurarea ierarhiei fi\u0219ierelor header \u0219i reducerea num\u0103rului de dependen\u021be \u00eencruci\u0219ate. \u00cen nucleul 5.18 au fost incluse patch-uri care optimizeaz\u0103 structura fi\u0219ierelor header ale planificatorului de sarcini (kernel\/sched). Comparativ cu versiunea anterioar\u0103, consumul de timp de procesor la compilarea codului kernel\/sched a sc\u0103zut cu 61%, iar timpul efectiv a fost redus cu 3,9% (de la 2,95 la 2,84 secunde).\n<li class=\"l\"> \u00cen codul nucleului a fost permis\u0103 utilizarea standardului C11, publicat \u00een 2011. Codul care era anterior ad\u0103ugat \u00een nucleu trebuia s\u0103 respecte specifica\u021bia ANSI C (C89), formulat\u0103 \u00eenc\u0103 din 1989. \u00cen scripturile de compilare ale nucleului 5.18, op\u021biunea \u2018--std=gnu89\u2019 a fost \u00eenlocuit\u0103 cu \u2018--std=gnu11 -Wno-shift-negative-value\u2019. A fost luat\u0103 \u00een considerare posibilitatea de a utiliza standardul C17, dar \u00een acest caz ar fi trebuit s\u0103 se creasc\u0103 versiunea minim acceptat\u0103 a GCC, includerea suportului pentru C11 se \u00eencadreaz\u0103 \u00eens\u0103 \u00een cerin\u021bele actuale pentru versiunea GCC (5.1).\n<li class=\"l\"> Performan\u021ba planific\u0103rii sarcinilor pe procesoarele AMD cu microarhitectur\u0103 Zen a fost \u00eembun\u0103t\u0103\u021bit\u0103, av\u00e2nd \u00een vedere c\u0103 pentru fiecare nod cu canale locale de memorie sunt furnizate mai multe cache-uri de ultim nivel (LLC, Last Level Cache). \u00cen noua versiune, a fost corectat\u0103 dezechilibrul LLC \u00eentre nodurile NUMA, ceea ce, \u00een unele tipuri de sarcini, a dus la o cre\u0219tere semnificativ\u0103 a performan\u021bei.\n<li class=\"l\"> Unelte pentru trasarea aplica\u021biilor \u00een spa\u021biul utilizatorului au fost extinse. \u00cen noua versiune a nucleului, a fost ad\u0103ugat\u0103 capacitatea proceselor utilizatorului de a crea evenimente de trasare (User events) \u0219i de a \u00eenregistra date \u00een bufferul de trasare, care pot fi vizualizate prin utilitare de trasare de tip kernel, cum ar fi ftrace \u0219i perf. Evenimentele de trasare din spa\u021biul utilizatorului sunt izolate de evenimentele de trasare ale nucleului. Starea evenimentelor poate fi vizualizat\u0103 prin fi\u0219ierul \/sys\/kernel\/debug\/tracing\/user_events_status, iar \u00eenregistrarea unui eveniment \u0219i \u00eenregistrarea datelor se face prin fi\u0219ierul \/sys\/kernel\/debug\/tracing\/user_events_data.\n<li class=\"l\"> A fost ad\u0103ugat un mecanism de urm\u0103rire (probe) pentru apelurile func\u021biilor - fprobe. API-ul fprobe este bazat pe ftrace, dar limitat doar la posibilitatea de a ata\u0219a callback-uri la punctele de intrare \u0219i ie\u0219ire ale func\u021biei. Spre deosebire de kprobes \u0219i kretprobes, noul mecanism permite utilizarea unui singur handler pentru mai multe func\u021bii.\n<li class=\"l\"> Suportul pentru vechile procesoare ARM (ARMv4 \u0219i ARMv5), care nu sunt echipate cu unit\u0103\u021bi de gestionare a memoriei (MMU), a fost \u00eentrerupt. Suportul pentru sistemele ARMv7-M f\u0103r\u0103 MMU este men\u021binut.\n<li class=\"l\"> Suportul pentru arhitectura de tip RISC NDS32, utilizat\u0103 \u00een procesoarele companiei Andes Technologies, a fost \u00eentrerupt. Codul a fost eliminat din cauza lipsei de \u00eentre\u021binere \u0219i nevoii reduse de suport NDS32 \u00een nucleul principal al Linux (utilizatorii r\u0103ma\u0219i folosesc versiuni specializate ale nucleului oferite de produc\u0103torii de hardware).\n<li class=\"l\"> Construc\u021bia nucleului cu suport pentru formatul de fi\u0219iere executabile a.out pentru arhitecturile alpha \u0219i m68k, \u00een care acest format este \u00eenc\u0103 folosit, este dezactivat\u0103 \u00een mod implicit. Este posibil ca suportul pentru formatul \u00eenvechit a.out s\u0103 fie eliminat complet din nucleu \u00een cur\u00e2nd. Planurile de eliminare a formatului a.out sunt discutate din 2019.\n<li class=\"l\"> Pentru arhitectura PA-RISC, a fost implementat un suport minim pentru mecanismul vDSO (virtual dynamic shared objects), care ofer\u0103 un set limitat de apeluri de sistem accesibile \u00een spa\u021biul utilizatorului f\u0103r\u0103 comutarea contextului. Suportul vDSO a permis posibilitatea execu\u021biei cu un stiv\u0103 neexecutabil\u0103.\n<li class=\"l\"> A fost ad\u0103ugat suportul pentru mecanismul Intel HFI (Hardware Feedback Interface), care permite hardware-ului s\u0103 transmit\u0103 nucleului informa\u021bii despre performan\u021ba curent\u0103 \u0219i eficien\u021ba energetic\u0103 a fiec\u0103rui CPU.\n<li class=\"l\"> A fost ad\u0103ugat un driver pentru mecanismul Intel SDSi (Software-Defined Silicon), care permite gestionarea activ\u0103rii func\u021biilor suplimentare \u00een procesor (de exemplu, instruc\u021biuni specializate \u0219i memorie cache suplimentar\u0103). Ideea este c\u0103, la un pre\u021b mai mic, pot fi furnizate cipuri cu func\u021bii extinse blocate, care pot fi apoi \u201eachizi\u021bionate\u201d \u0219i activate f\u0103r\u0103 a \u00eenlocui hardware-ul cipului.\n<li class=\"l\"> A fost ad\u0103ugat driverul amd_hsmp pentru suportul interfe\u021bei AMD HSMP (Host System Management Port), care ofer\u0103 acces la func\u021biile de gestionare a procesorului printr-un set special de registre, ap\u0103rute \u00een procesoarele server AMD EPYC \u00eencep\u00e2nd cu genera\u021bia Fam19h. De exemplu, prin HSMP se pot ob\u021bine date despre consumul de energie \u0219i temperatur\u0103, se pot stabili limite de frecven\u021b\u0103, activa diferite moduri de cre\u0219tere a performan\u021bei \u0219i gestiona parametrii de func\u021bionare a memoriei.\n<li class=\"l\"> \u00cen interfa\u021ba de intrare\/ie\u0219ire asincron\u0103 io_uring a fost implementat\u0103 op\u021biunea IORING_SETUP_SUBMIT_ALL pentru \u00eenregistrarea \u00eentr-un buffer circular a unui set de descriptorii de fi\u0219iere, precum \u0219i opera\u021bia IORING_OP_MSG_RING, care permite trimiterea unui semnal dintr-un buffer circular \u00een alt buffer circular.\n<li class=\"l\"> \u00cen mecanismul DAMOS (Data Access Monitoring-based Operation Schemes), care permite eliberarea memoriei \u00een func\u021bie de frecven\u021ba acces\u0103rii acesteia, au fost extinse capacit\u0103\u021bile de control asupra opera\u021biunilor de memorie din zona utilizatorului.\n<li class=\"l\"> A fost integrat\u0103 a treia serie de patch-uri cu implementarea conceptului de folio-uri de memorie (page folios), care sunt asem\u0103n\u0103toare cu paginile de memorie combinate (compound pages), dar se deosebesc prin semantic\u0103 \u00eembun\u0103t\u0103\u021bit\u0103 \u0219i o organizare mai clar\u0103 a func\u021bion\u0103rii. Utilizarea folio-urilor permite accelerarea gestion\u0103rii memoriei \u00een anumite subsisteme ale nucleului. \u00cen patch-urile propuse a fost efectuat\u0103 tranzi\u021bia la folio-uri a func\u021biilor interne de gestionare a memoriei, inclusiv variantele func\u021biei get_user_pages(). A fost oferit suport pentru crearea de folio-uri mari \u00een codul de citire anticipat\u0103 a datelor.\n<li class=\"l\"> \u00cen sistemul de construire a fost ad\u0103ugat\u0103 suportul pentru variabilele de mediu USERCFLAGS \u0219i USERLDFLAGS, prin care se pot transmite flage suplimentare compilatorului \u0219i linker-ului.\n<li class=\"l\"> \u00cen subsistemul eBPF, \u00een mecanismul BTF (BPF Type Format), care ofer\u0103 informa\u021bii pentru verificarea tipurilor \u00een pseudocodul BPF, a fost implementat\u0103 posibilitatea de a ad\u0103uga note la variabile care fac referire la zonele de memorie din spa\u021biul utilizatorului. Not\u0103rile ajut\u0103 sistemul de verificare BPF s\u0103 identifice \u0219i s\u0103 verifice mai calitativ accesurile la memorie.\n<li class=\"l\"> A fost propus un nou handler pentru alocarea memoriei pentru stocarea programelor BPF \u00eenc\u0103rcate, care permite o utilizare mai eficient\u0103 a memoriei \u00een situa\u021bii de \u00eenc\u0103rcare a unui num\u0103r mare de programe BPF.\n<li class=\"l\"> \u00cen apelul de sistem madvise(), care ofer\u0103 mijloace pentru optimizarea gestion\u0103rii memoriei procesului, a fost ad\u0103ugat semnalul MADV_DONTNEED_LOCKED, care completeaz\u0103 semnalul MADV_DONTNEED existent, prin care nucleul poate fi informat din timp despre eliberarea unui bloc de memorie, adic\u0103 despre faptul c\u0103 acest bloc nu mai este necesar \u0219i poate fi utilizat de nucleu. Spre deosebire de MADV_DONTNEED, utilizarea semnalului MADV_DONTNEED_LOCKED este permis\u0103 pentru paginile de memorie fixate \u00een RAM, care sunt \u00eenl\u0103turate la apelarea madvise f\u0103r\u0103 a-\u0219i schimba statusul fixat \u0219i, \u00een cazul unei noi acces\u0103ri a blocului \u0219i gener\u0103rii unui \u201epage fault\u201d, sunt returnate men\u021bin\u00e2ndu-\u0219i leg\u0103tura. De asemenea, a fost ad\u0103ugat\u0103 o modificare care permite utilizarea semnalului MADV_DONTNEED cu pagini mari de memorie \u00een HugeTLB.              <\/ul>\n<li class=\"l\"> <b>Virtualizare \u0219i securitate<\/b>\n<ul>\n<li class=\"l\"> Pentru arhitectura x86, a fost ad\u0103ugat\u0103 suport pentru mecanismul de protec\u021bie a fluxului de execu\u021bie Intel IBT (Indirect Branch Tracking), care \u00eempiedic\u0103 utilizarea tehnicilor de exploitare bazate pe programarea orientat\u0103 pe returnare (ROP, Return-Oriented Programming), \u00een care exploitul este format sub form\u0103 de lan\u021buri de apeluri ale por\u021biunilor de instruc\u021biuni deja existente \u00een memorie, care se termin\u0103 cu o instruc\u021biune de returnare a controlului (de obicei, acestea sunt sf\u00e2r\u0219iturile func\u021biilor). Esen\u021ba metodei de protec\u021bie implementate const\u0103 \u00een blocarea salturilor indirecte c\u0103tre corpul func\u021biei prin ad\u0103ugarea, la \u00eenceputul func\u021biei, a unei instruc\u021biuni speciale ENDBR \u0219i permiterea execut\u0103rii prin salt indirect doar \u00een cazul \u00een care se s\u0103rind\u0103 la aceast\u0103 instruc\u021biune (apelurile indirecte prin JMP \u0219i CALL trebuie s\u0103 ajung\u0103 \u00eentotdeauna la instruc\u021biunea ENDBR, care este plasat\u0103 chiar la \u00eenceputul func\u021biei).\n<li class=\"l\"> A fost activat\u0103 o verificare mai strict\u0103 a limitelor bufferelor \u00een func\u021biile memcpy(), memmove() \u0219i memset(), efectuat\u0103 \u00een timpul compil\u0103rii atunci c\u00e2nd este activat modul CONFIG_FORTIFY_SOURCE. Modificarea ad\u0103ugat\u0103 se reduce la verificarea ie\u0219irii din limitele elementelor structurilor, ale c\u0103ror dimensiuni sunt cunoscute. Se subliniaz\u0103 c\u0103 aceast\u0103 implementare ar permite blocarea tuturor supraaglomer\u0103rilor de buffer asociate cu memcpy() \u00een nucleu, identificate cel pu\u021bin \u00een ultimii trei ani.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 a doua parte a codului pentru implementarea actualizat\u0103 a generatorului de numere pseudo-aleatoare RDRAND, care este responsabil pentru func\u021bionarea dispozitivelor \/dev\/random \u0219i \/dev\/urandom. Noua implementare este remarcabil\u0103 prin unificarea func\u021bion\u0103rii \/dev\/random \u0219i \/dev\/urandom, ad\u0103ug\u00e2nd protec\u021bie \u00eempotriva apari\u021biei duplicatelor \u00een fluxul de numere aleatorii la pornire. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/vps\/\"   title=\"ma\u0219ini virtuale\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2100\">ma\u0219ini virtuale<\/a> \u0219i trecerea la utilizarea func\u021biei hash BLAKE2s \u00een loc de SHA1 pentru opera\u021biile de amestecare a entropiei. Aceast\u0103 modificare a sporit securitatea generatorului de numere pseudo-aleatoare, elimin\u00e2nd algoritmul problematic SHA1 \u0219i excluz\u00e2nd rescrierea vectorului de ini\u021bializare RNG. Deoarece algoritmul BLAKE2s dep\u0103\u0219e\u0219te SHA1 \u00een performan\u021b\u0103, utilizarea sa a avut, de asemenea, un impact pozitiv asupra performan\u021bei.\n<li class=\"l\"> Pentru arhitectura ARM64, a fost ad\u0103ugat\u0103 suport pentru un nou algoritm de autentificare a pointer-elor \u2014 \u201eQARMA3\u201d, care este mai rapid dec\u00e2t algoritmul QARMA, men\u021bin\u00e2nd acela\u0219i nivel de securitate. Tehnologia permite utilizarea instruc\u021biunilor specializate ARM64 pentru verificarea adreselor de returnare prin semn\u0103turi digitale stocate \u00een bi\u021bii superioare neutiliza\u021bi ai pointer-ului.\n<li class=\"l\"> Pentru arhitectura ARM64, a fost implementat suportul pentru construirea cu includerea \u00een GCC 12 a modului de protec\u021bie \u00eempotriva rescrierii adresei de returnare din func\u021bie \u00een caz de dep\u0103\u0219ire a buffer-ului \u00een stiv\u0103. Esen\u021ba protec\u021biei const\u0103 \u00een salvarea adresei de returnare dup\u0103 transferul controlului c\u0103tre func\u021bie \u00eentr-o \u201estiv\u0103 umbr\u0103\u201d separat\u0103 \u0219i extragerea acestei adrese \u00eenainte de ie\u0219irea din func\u021bie.\n<li class=\"l\"> A fost ad\u0103ugat un nou depozit de chei (keyring) \u2014 \u201emachine\u201d, care con\u021bine cheile proprietarului sistemului (MOK, Machine Owner Keys), sus\u021binute \u00een bootloader-ul shim. Cheile specificate pot fi utilizate pentru a semna digital componentele nucleului care sunt \u00eenc\u0103rcate \u00een stadiul dup\u0103 \u00eenc\u0103rcarea ini\u021bial\u0103 (de exemplu, modulele nucleului).\n<li class=\"l\"> A fost eliminat suportul pentru cheile private asimetrice pentru TPM, care au fost propuse \u00een versiunea veche a TPM, au probleme de securitate cunoscute \u0219i nu au avut o adoptare semnificativ\u0103 \u00een practic\u0103.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 protec\u021bia datelor de tip size_t \u00eempotriva overflow-urilor \u00eentregi. \u00cen cod sunt utilizate handler-e size_mul(), size_add() \u0219i size_sub(), care permit efectuarea \u00een siguran\u021b\u0103 a \u00eenmul\u021birii, adun\u0103rii \u0219i sc\u0103derii dimensiunilor de tip size_t.\n<li class=\"l\"> \u00cen timpul construirii nucleului, au fost incluse semnalele \u201e-Warray-bounds\u201d \u0219i \u201e-Wzero-length-bounds\u201d, care genereaz\u0103 avertiz\u0103ri atunci c\u00e2nd indexul dep\u0103\u0219e\u0219te limitele unui array \u0219i c\u00e2nd se utilizeaz\u0103 array-uri cu lungime zero.\n<li class=\"l\"> Dispozitivul virtio-crypto a primit suport pentru criptarea folosind algoritmul RSA.                                 <\/ul>\n<li class=\"l\"> <b>Subsystema de re\u021bea<\/b>\n<ul>\n<li class=\"l\"> \u00cen implementarea podurilor de re\u021bea a fost ad\u0103ugat suport pentru modul de blocare a porturilor (locked mode), \u00een care utilizatorul poate trimite trafic printr-un port doar cu adresa MAC permis\u0103. De asemenea, a fost posibil\u0103 utilizarea mai multor structuri pentru evaluarea st\u0103rii protocolului STP (Spanning Tree Protocol). Anterior, pentru VLAN se putea face doar o legare direct\u0103 la STP (1:1), \u00een care fiecare VLAN era gestionat independent. \u00cen noua versiune a fost ad\u0103ugat parametrul mst_enable, care, atunci c\u00e2nd este activat, permite monitorizarea st\u0103rii VLAN-urilor prin modulul MST (Multiple Spanning Trees), iar leg\u0103turile VLAN-urilor pot corespunde modelului M:N.\n<li class=\"l\"> A fost continuat\u0103 munca de integrare \u00een stiva de re\u021bea a unor instrumente pentru monitorizarea cauzelor respingerii pachetelor (codes reason). Codul motivului este transmis \u00een timpul eliber\u0103rii memoriei asociate cu pachetul \u0219i permite luarea \u00een considerare a unor situa\u021bii, cum ar fi respingerea unui pachet din cauza erorilor de completare a c\u00e2mpurilor din antet, detectarea spoofing-ului de c\u0103tre filtrul rp_filter, checksum invalid, lipsa de memorie, activarea regulilor IPSec XFRM, num\u0103r de secven\u021b\u0103 TCP gre\u0219it etc.\n<li class=\"l\"> A fost oferit\u0103 posibilitatea de a transmite pachete de re\u021bea din programe BPF, executate din spa\u021biul utilizatorului \u00een modul BPF_PROG_RUN, \u00een care programele BPF sunt rulate \u00een nucleu, dar returneaz\u0103 rezultatul \u00een spa\u021biul utilizatorului. Pachetele sunt transmise utiliz\u00e2nd subsistemul XDP (eXpress Data Path). Este suportat modul live de procesare a pachetelor, \u00een care handler-ul XDP poate redirec\u021biona \u00een timp real pachetele de re\u021bea \u00een stiva de re\u021bea sau c\u0103tre alte dispozitive. De asemenea, este posibil\u0103 crearea de generatoare de trafic extern sau amortizarea cadrelor de re\u021bea \u00een stiva de re\u021bea.\n<li class=\"l\"> Pentru programele BPF, ata\u0219ate la cgroups re\u021bea, au fost propuse func\u021bii auxiliare pentru setarea explicit\u0103 a valorii returnate de apelurile de sistem, ceea ce permite transmiterea unor informa\u021bii mai complete despre cauzele bloc\u0103rii apelului de sistem.\n<li class=\"l\"> \u00cen subsistemul XDP (eXpress Data Path) a fost ad\u0103ugat\u0103 suport pentru pachete fragmentate, plasate \u00een mai multe bufere, permi\u021b\u00e2nd procesarea cadrelor Jumbo \u00een XDP \u0219i aplicarea TSO\/GRO (TCP Segmentation Offload\/Generic Receive Offload) pentru XDP_REDIRECT.\n<li class=\"l\"> Procesul de eliminare a spa\u021biilor de nume de re\u021bea a fost semnificativ accelerat, ceea ce a fost solicitat \u00een unele sisteme mari cu un volum mare de trafic.                      <\/ul>\n<li class=\"l\"> <b>Echipament<\/b>\n<ul>\n<li class=\"l\"> \u00cen driverul amdgpu, tehnologia de sincronizare adaptiv\u0103 FreeSync este activat\u0103 prin default, permi\u021b\u00e2nd corectarea frecven\u021bei de actualizare a informa\u021biilor pe ecran, asigur\u00e2nd fluiditate \u0219i absen\u021ba t\u0103ieturilor de imagine \u00een timpul jocurilor \u0219i vizion\u0103rii video. A fost anun\u021bat suport stabil pentru GPU Aldebaran.\n<li class=\"l\"> \u00cen driverul i915 a fost ad\u0103ugat suport pentru cipurile Intel Alderlake N \u0219i pl\u0103cile grafice discrete Intel DG2-G12 (Arc Alchemist).\n<li class=\"l\"> \u00cen driverul nouveau a fost asigurat suport pentru rate de bit mai mari pentru interfe\u021bele DP\/eDP \u0219i suport pentru extensiile de cablu lttprs (Link-Training Tunable PHY Repeaters).\n<li class=\"l\"> \u00cen subsistemul drm (Direct Rendering Manager) \u00een driverele armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen \u0219i vc4 a fost ad\u0103ugat suport pentru parametrul nomodeset, permi\u021b\u00e2nd dezactivarea comut\u0103rii modurilor video la nivel de kernel \u0219i utilizarea resurselor pentru accelerarea hardware a red\u0103rii, l\u0103s\u00e2nd doar func\u021bionalitatea legat\u0103 de framebufferul sistemului.\n<li class=\"l\"> A fost ad\u0103ugat suport pentru SoC ARM Qualcomm Snapdragon 625\/632 (utilizat \u00een smartphone-urile LG Nexus 5X \u0219i Fairphone FP3), Samsung Exynos 850, Samsung Exynos 7885 (utilizat \u00een Samsung Galaxy A8), Airoha (Mediatek\/EcoNet) EN7523, Mediatek mt6582 (tablet\u0103 Prestigio PMT5008 3G), Microchip Lan966, Renesas RZ\/G2LC, RZ\/V2L, Tesla FSD, TI K3\/AM62 \u0219i i.MXRTxxxx.\n<li class=\"l\"> A fost ad\u0103ugat suport pentru dispozitivele ARM \u0219i pl\u0103cile Broadcom (Raspberry Pi Zero 2 W), Qualcomm (Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip (Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S, tablet\u0103 Prestigio PMT5008 3G), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 \u0219i OSMC Vero 4K+), Aspeed (Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU\/Armada (Ctera C200 V1 \u0219i V2 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903).\n<li class=\"l\"> A fost ad\u0103ugat suport pentru sisteme audio \u0219i codecuri AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Renesas RZ\/V2L, Texas Instruments TAS585M. A fost implementat\u0103 o versiune ini\u021bial\u0103 a driverului audio pentru chipul DSP Intel AVS. Suportul pentru drivere pentru Intel ADL \u0219i Tegra234 a fost actualizat, de asemenea, au fost efectuate modific\u0103ri pentru \u00eembun\u0103t\u0103\u021birea suportului audio pe dispozitivele Dell, HP, Lenovo, ASUS, Samsung \u0219i Clevo.    <\/ul>\n<p>\u00cen acela\u0219i timp, Funda\u021bia Latinoamerican\u0103 pentru Software Liber a format o variant\u0103 complet liber\u0103 a nucleului 5.18 \u2014 Linux-libre 5.18-gnu, cur\u0103\u021bat de elementele de firmware \u0219i drivere care con\u021bin componente sau por\u021biuni de cod nesigure, ale c\u0103ror aplica\u021bii sunt limitate de c\u0103tre produc\u0103tor. \u00cen noua versiune, au fost cur\u0103\u021bate driverele pentru panourile MIPI DBI, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) \u0219i Realtek 8852a\/8852c, cipurile audio Intel AVS \u0219i Texas Instruments TAS5805M. De asemenea, au fost cur\u0103\u021bate fi\u0219ierele DTS pentru diverse SoC Qualcomm cu procesoare bazate pe arhitectura AArch64. A fost actualizat codul de cur\u0103\u021bare a bloburilor \u00een driverele \u0219i subsistemele AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectrum Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP, MediaTek HCI UART.                         <\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57235\">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 5.18. \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: \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0438\u0441\u0442\u043a\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 \u0424\u0421 Reiserfs, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u043a\u0441\u043f\u043b\u043e\u0438\u0442\u043e\u0432 Intel IBT, \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0440\u0435\u0436\u0438\u043c \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u043e\u0432 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 memcpy(), \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 fprobe, \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\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-104123","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - 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 5.18.\" \/>\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-5-18\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\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 5.18 | 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 5.18.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-5-18\" \/>\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=\"2022-05-23T13:36:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-05-23T13:36:40+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 5.18 | ProHoster","description":"Dup\u0103 dou\u0103 luni de dezvoltare, Linus Torvalds a prezentat lansarea nucleului Linux 5.18.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-5-18","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 5.18 | 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 5.18.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-5-18","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":"2022-05-23T13:36:40+00:00","article:modified_time":"2022-05-23T13:36:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"104123","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-02-09 18:15:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2022-05-23 13:37:44","updated":"2026-02-09 18:15:19","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\/104123","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=104123"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/104123\/revisions"}],"predecessor-version":[{"id":159344,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/104123\/revisions\/159344"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=104123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=104123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=104123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}