{"id":102933,"date":"2022-01-10T15:36:38","date_gmt":"2022-01-10T13:36:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/%d1%80%d0%b5%d0%bb%d0%b8%d0%b7-%d1%8f%d0%b4%d1%80%d0%b0-linux-5-16"},"modified":"2022-01-10T15:36:38","modified_gmt":"2022-01-10T13:36:38","slug":"reliz-yadra-linux-5-16","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-5-16","title":{"rendered":"Lansarea nucleului Linux 5.16","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dup\u0103 dou\u0103 luni de dezvoltare, Linus Torvalds a prezentat lansarea nucleului Linux 5.16. Printre cele mai notabile modific\u0103ri se num\u0103r\u0103: apelul de sistem futex_waitv pentru \u00eembun\u0103t\u0103\u021birea performan\u021bei jocurilor Windows \u00een Wine, urm\u0103rirea erorilor \u00een sistemul de fi\u0219iere prin fanotify, conceptul de foliante \u00een gestionarea memoriei, suport pentru instruc\u021biuni CPU AMX, posibilitatea rezerv\u0103rii memoriei pentru socket-urile de re\u021bea, suport \u00een netfilter pentru clasificarea pachetelor \u00een faza \u201eegress\u201d, utilizarea subsistemului DAMON pentru excluderea preventiv\u0103 a zonelor de memorie neutilizate, \u00eembun\u0103t\u0103\u021birea gestion\u0103rii suprasolicit\u0103rilor \u00een cazul unor volume mari de opera\u021bii de scriere, suport pentru hard disk-uri cu mai multe unit\u0103\u021bi.    <\/p>\n<p>Noua versiune include 15.415 corecturi de la 2.105 dezvoltatori, dimensiunea patchului este de 45 MB (modific\u0103rile au afectat 12.023 de fi\u0219iere, au fost ad\u0103ugate 685.198 de linii de cod, iar 263.867 de linii au fost eliminate). Aproximativ 44% din toate modific\u0103rile prezentate \u00een 5.16 sunt legate de driverele dispozitivelor, aproximativ 16% din modific\u0103ri se refer\u0103 la actualizarea codului specific arhitecturilor hardware, 16% sunt legate de stiva de re\u021bea, 4% de sistemele de fi\u0219iere \u0219i 4% de subsistemele interne ale nucleului.    <\/p>\n<p>  Principalele nout\u0103\u021bi din nucleul 5.16:  <\/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\"> Mecanismul fanotify a fost extins cu instrumente pentru monitorizarea st\u0103rii sistemului de fi\u0219iere \u0219i urm\u0103rirea apari\u021biei erorilor. Informa\u021biile despre erori sunt transmise printr-un nou tip de evenimente - FAN_FS_ERROR, care pot fi interceptate \u00een sistemele de monitorizare din spa\u021biul utilizatorului pentru a informa rapid administratorul sau a ini\u021bia procese de recuperare. \u00cen caz de apari\u021bie \u00een cascada a unei serii de erori, fanotify asigur\u0103 livrarea mesajului despre prima eroare \u00eempreun\u0103 cu un contor total de probleme, pentru a facilita analiza ulterioar\u0103 a cauzelor defect\u0103rii. Suportul pentru urm\u0103rirea erorilor este deocamdat\u0103 implementat doar pentru sistemul de fi\u0219iere Ext4.\n<li class=\"l\"> \u00cembun\u0103t\u0103\u021bit\u0103 gestionarea congestion\u0103rilor \u00een timpul opera\u021biunilor de scriere, care apar atunci c\u00e2nd volumul opera\u021biunilor de scriere dep\u0103\u0219e\u0219te capacitatea de transfer a stoc\u0103rii \u0219i sistemul este nevoit s\u0103 blocheze cererile procesului de scriere p\u00e2n\u0103 la finalizarea cererilor deja transmise. \u00cen noua versiune, mecanismul nucleului utilizat pentru ob\u021binerea informa\u021biilor despre apari\u021bia congestion\u0103rilor \u0219i blocarea sarcinilor a fost complet reproiectat, deoarece \u00een vechea implementare au fost observate probleme cu corelarea gestion\u0103rii congestion\u0103rilor de scriere cu \u00eenlocuirea paginilor din memorie \u00een zona de schimb, \u00een caz de lips\u0103 de memorie \u00een sistem.\n<li class=\"l\"> Btrfs include suportul pentru tehnologia zon\u0103rii dispozitivelor (Zoned Namespace), folosit\u0103 \u00een hard disk-uri sau SSD-uri NVMe pentru a separa spa\u021biul de stocare \u00een zone, constituind grupuri de blocuri sau sectoare, \u00een care se permite doar ad\u0103ugarea secven\u021bial\u0103 a datelor, actualiz\u00e2nd \u00eentreaga grupare de blocuri. \u00cen plus, au fost efectuate mici optimiz\u0103ri la logarea inode, ceea ce a dus la o cre\u0219tere a capacit\u0103\u021bii \u00een testul dbench cu 3% \u0219i o sc\u0103dere a \u00eent\u00e2rzierilor cu 11%. Mecanismul de logare a directorilor a fost reproiectat, reduc\u00e2nd num\u0103rul de opera\u021biuni de c\u0103utare \u0219i blocare \u00een arbore pentru a \u00eembun\u0103t\u0103\u021bi eficien\u021ba. Inserarea elementelor \u00een structura btree \u00een modul de lot a fost accelerat\u0103 (timpul de inserare \u00een mas\u0103 a fost redus cu 4%, iar timpul de \u0219tergere cu 12%). A fost ad\u0103ugat\u0103 o suport limitat pentru utilizarea compresiei la scrierea paginilor incomplete, precum \u0219i posibilitatea de defragmentare a subpaginilor (subpage). S-a efectuat preg\u0103tirea pentru includerea suportului pentru a doua versiune a protocolului pentru comanda &#171;send&#187;.\n<li class=\"l\"> \u00cen sistemul de fi\u0219iere XFS a fost redus consumul de memorie prin utilizarea cache-urilor slab separate pentru elementele utilizate frecvent \u0219i prin reducerea unor structuri de date.\n<li class=\"l\"> \u00cen sistemul de fi\u0219iere Ext4 s-au realizat doar corec\u021bii de erori \u0219i o calculare mai precis\u0103 a parametrilor de ini\u021bializare am\u00e2nat\u0103 a tabelei Inode.\n<li class=\"l\"> La nivelul dispozitivelor de bloc s-au realizat optimiz\u0103ri care permit cre\u0219terea semnificativ\u0103 a eficien\u021bei \u00een legarea opera\u021biunilor la nucleele CPU.\n<li class=\"l\"> A fost ad\u0103ugat suport ini\u021bial pentru hard disk-uri cu mai multe ac\u021bion\u0103ri independente (multi-actuator), care permit accesul simultan la mai multe sectoare \u00een diferite zone ale pl\u0103cii magnetice.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 o nou\u0103 comand\u0103 ioctl CDROM_TIMED_MEDIA_CHANGE pentru a determina evenimentele de schimbare a suportului \u00een unitatea de discuri optice.\n<li class=\"l\"> Sistemul de fi\u0219iere EROFS (Enhanced Read-Only File System) a fost \u00eembun\u0103t\u0103\u021bit cu capacitatea de a func\u021biona pe mai multe dispozitive de stocare. Dispozitivele diferite pot fi reflectate \u00eentr-un singur spa\u021biu de adresare a blocurilor de 32 de bi\u021bi. De asemenea, a fost ad\u0103ugat suport pentru compresie folosind algoritmul LZMA.\n<li class=\"l\"> \u00cen sistemul de fi\u0219iere F2FS au fost ad\u0103ugate op\u021biuni de montare pentru a gestiona fragmentarea fi\u0219ierelor la stocarea acestora (de exemplu, pentru a depana optimiz\u0103rile func\u021bion\u0103rii cu stoc\u0103ri fragmentate).\n<li class=\"l\"> \u00cen CEPH, sunt incluse \u00een mod implicit opera\u021biunile de creare \u0219i \u0219tergere a directoarelor \u00een mod asincron (pentru a reveni la comportamentul anterior, trebuie utilizat la montare flag-ul &#8216;-o wsync&#8217;). A fost ad\u0103ugat un sistem de monitorizare a metricilor care urm\u0103re\u0219te opera\u021biunile de copiere a obiectelor externe.\n<li class=\"l\"> \u00cen CIFS, a fost ad\u0103ugat parametrul de montare tcpnodelay, care stabile\u0219te modul tcp_sock_set_nodelay pentru socket-ul de re\u021bea, dezactiv\u00e2nd a\u0219teptarea complet\u0103rii cozii \u00een stiva TCP. A fost ad\u0103ugat suport pentru link-uri DFS \u00een timpul remont\u0103rii.\n<li class=\"l\"> A fost ad\u0103ugat suport pentru finalizarea cererilor c\u0103tre dispozitivele bloc \u00een modul lot. Testarea modific\u0103rii a ar\u0103tat o cre\u0219tere a intensit\u0103\u021bii de execu\u021bie a opera\u021biunilor de citire aleatoare de la unit\u0103\u021bile Optane de la 6,1 la 6,6 milioane IOPS pe un nucleu de CPU.                            <\/ul>\n<li class=\"l\"> <b>Memorie \u0219i servicii de sistem<\/b>\n<ul>\n<li class=\"l\"> A fost ad\u0103ugat\u0103 o nou\u0103 apel de sistem futex_waitv, care permite monitorizarea st\u0103rii mai multor futex-uri cu un singur apel de sistem. Aceast\u0103 func\u021bionalitate aminte\u0219te de posibilitatea disponibil\u0103 \u00een Windows WaitForMultipleObjects, emularea c\u0103reia prin futex_waitv poate fi util\u0103 pentru \u00eembun\u0103t\u0103\u021birea performan\u021bei jocurilor Windows rulate sub Wine sau Proton. \u00cen plus, a\u0219teptarea simultan\u0103 a futex-urilor poate fi folosit\u0103 \u0219i pentru optimizarea performan\u021bei jocurilor native pentru Linux.\n<li class=\"l\"> A fost implementat\u0103 concep\u021bia foliantelor de pagini de memorie, al c\u0103rei utilizare \u00een anumite subsisteme ale nucleului va permite accelerarea gestion\u0103rii memoriei \u00een condi\u021bii de sarcin\u0103 tipic\u0103. \u00cen prezent, subsistemul principal de gestionare a memoriei din nucleu \u0219i implementarea cache-ului pe pagini au fost deja traduse \u00een foliante, iar \u00een viitor se preconizeaz\u0103 traducerea sistemelor de fi\u0219iere. De asemenea, \u00een nucleu se pl\u0103nuie\u0219te ad\u0103ugarea suportului pentru foliante multi-pagin\u0103.\n<p> Foliantele sunt asem\u0103n\u0103toare paginilor de memorie combinate, dar se deosebesc prin semantica \u00eembun\u0103t\u0103\u021bit\u0103 \u0219i organiza\u021bia de lucru mai clar\u0103. Pentru gestionarea memoriei sistemului, RAM disponibil este \u00eemp\u0103r\u021bit \u00een pagini de memorie, dimensiunea c\u0103rora depinde de arhitectur\u0103, dar pe sistemele x86 este calculat\u0103 \u00een kilobi\u021bi (de obicei 4096 de bi\u021bi). Sistemele moderne vin echipate cu zeci de gigabai\u021bi de RAM, ceea ce complic\u0103 gestionarea memoriei din cauza necesit\u0103\u021bii de a procesa un num\u0103r uria\u0219 de pagini de memorie. Pentru a reduce num\u0103rul de pagini, anterior \u00een nucleu a fost implementat\u0103 concep\u021bia de pagini combinate, cu structuri care acoper\u0103 mai mult de o pagin\u0103 fizic\u0103 de memorie. \u00cens\u0103 API-ul pentru manipularea paginilor combinate l\u0103sa de dorit \u0219i ducea la costuri suplimentare.    <\/p>\n<li class=\"l\"> \u00cen planificatorul de sarcini a fost ad\u0103ugat un handler care ia \u00een considerare clusterizarea cache-ului \u00een CPU. \u00cen unele procesoare, precum Kunpeng 920 (ARM) \u0219i Intel Jacobsville (x86), un anumit num\u0103r de nuclee CPU, de obicei 4, pot partaja cache-ul L3 sau L2. Considerarea unor astfel de topologii poate \u00eembun\u0103t\u0103\u021bi semnificativ eficien\u021ba distribuirii sarcinilor \u00eentre nucleele CPU \u00een planificatorul de sarcini, deoarece mutarea sarcinilor \u00een cadrul unui singur cluster CPU permite cre\u0219terea capacit\u0103\u021bii de acces la memorie \u0219i reducerea competi\u021biei \u00een cache.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 suportul pentru instruc\u021biunile AMX (Advanced Matrix Extensions), implementate \u00een viitoarele procesoare server Intel Xeon Scalable, dezvoltate sub numele de cod Sapphire Rapids. AMX ofer\u0103 registre TMM &#171;TILE&#187; configurabile \u0219i instruc\u021biuni pentru manipularea datelor \u00een aceste registre, cum ar fi TMUL (Tile matrix MULtiply) pentru \u00eenmul\u021birea matricelor.\n<li class=\"l\"> Au fost implementate mai multe func\u021bionalit\u0103\u021bi noi, bazate pe subsystemul DAMON (Data Access MONitor) ad\u0103ugat \u00een ultima versiune, care permite monitorizarea accesului la date \u00een memorie, corelat cu procesul selectat, care ruleaz\u0103 \u00een spa\u021biul utilizatorului. De exemplu, subsystemul ofer\u0103 posibilitatea de a analiza la ce zone specifice de memorie a avut acces procesul pe \u00eentreaga perioad\u0103 de func\u021bionare \u0219i care zone de memorie au r\u0103mas neutilizate.\n<ul>\n<li class=\"l\"> DAMON_RECLAIM pentru identificarea \u0219i eliberarea zonelor de memorie care nu au fost accesate. Mecanismul poate fi folosit pentru a realiza o eliberare anticipat\u0103 \u0219i delicat\u0103 a paginilor de memorie \u00een condi\u021biile unei aproape epuiz\u0103ri a memoriei disponibile.\n<li class=\"l\"> DAMOS (Data Access Monitoring-based Operation Schemes) pentru aplicarea unor opera\u021bii madvise() stabilite, cum ar fi eliberarea memoriei suplimentare disponibile, asupra zonelor de memorie ale procesului pentru care se \u00eenregistreaz\u0103 o frecven\u021b\u0103 specific\u0103 de acces la memorie. Setarea parametrilor DAMOS se face prin debugfs.\n<li class=\"l\"> Posibilitatea de a monitoriza spa\u021biul adreselor fizice de memorie (anterior era posibil\u0103 monitorizarea doar a adreselor virtuale).  <\/ul>\n<li class=\"l\"> Implementarea algoritmului de compresie zstd a fost actualizat\u0103 la versiunea 1.4.10, ceea ce a permis o cre\u0219tere semnificativ\u0103 a performan\u021bei diverselor subsisteme ale nucleului \u00een care se aplic\u0103 compresia (de exemplu, decomprimarea imaginii nucleului a fost accelerat\u0103 cu 35%, iar performan\u021ba decomprim\u0103rii datelor comprimate \u00een Btrfs \u0219i SquashFS a crescut cu 15%, iar \u00een ZRAM - cu 30%). Ini\u021bial, \u00een nucleu a fost utilizat\u0103 o implementare separat\u0103 a zstd, bazat\u0103 pe versiunea 1.3.1, lansat\u0103 cu mai bine de trei ani \u00een urm\u0103 \u0219i care nu include multe optimiz\u0103ri importante. Pe l\u00e2ng\u0103 trecerea la versiunea actual\u0103, patch-ul ad\u0103ugat simplific\u0103, de asemenea, sincronizarea cu ramura upstream a zstd, permi\u021b\u00e2nd generarea codului pentru a fi inclus \u00een nucleu direct din depozitul principal al zstd. \u00cen viitor, codul zstd din nucleu va fi actualizat pe m\u0103sur\u0103 ce vor fi lansate noi versiuni ale bibliotecii zstd.\n<li class=\"l\"> A fost introdus un set amplu de \u00eembun\u0103t\u0103\u021biri \u00een subsistemul eBPF. A fost ad\u0103ugat\u0103 posibilitatea de a apela func\u021bii din modulele nucleului din programele BPF. Func\u021bia bpf_trace_vprintk() a fost implementat\u0103, diferit de bpf_trace_printk(), permi\u021b\u00e2nd printarea simultan\u0103 a mai mult de trei argumente. A fost ad\u0103ugat\u0103 o nou\u0103 structur\u0103 de stocare a datelor (BPF map) bloom filter, care permite utilizarea structurii de date probabilist\u0103 de acela\u0219i nume pentru a determina prezen\u021ba unui element \u00eentr-un set. A fost ad\u0103ugat un nou atribut BTF_KIND_TAG, care poate fi utilizat \u00een programele BPF pentru a lega etichetele de parametrii func\u021biilor, de exemplu, pentru a facilita identificarea erorilor \u00een programele utilizatorului. \u00cen libbpf a fost permis\u0103 crearea de sec\u021biuni proprii .rodata.* \/ .data.*, a fost implementat suportul pentru evenimente de urm\u0103rire uprobe \u0219i kprobe, \u0219i a fost ad\u0103ugat un API pentru copierea tuturor tipurilor de BTF dintr-un obiect \u00een altul. Suportul pentru AF_XDP a fost mutat din libbpf \u00eentr-o bibliotec\u0103 separat\u0103 libxdp. Pentru arhitectura MIPS a fost realizat un compilator JIT pentru ma\u0219ina virtual\u0103 BPF.\n<li class=\"l\"> Pentru arhitectura ARM64 a fost implementat suportul pentru extensiile ARMv8.6 pentru temporizator, inclusiv cele care permit auto-sincronizarea reprezent\u0103rii registrelor sistemului f\u0103r\u0103 utilizarea instruc\u021biunilor ISB.\n<li class=\"l\"> Pentru arhitectura PA-RISC a fost realizat\u0103 posibilitatea utiliz\u0103rii mecanismului KFENCE pentru identificarea erorilor \u00een gestionarea memoriei, plus suportul pentru detectorul de st\u0103ri de concuren\u021b\u0103 KCSAN.\n<li class=\"l\"> A fost oferit\u0103 posibilitatea de a configura drepturile de acces la tracefs la nivel de utilizatori \u0219i grupuri individuale, de exemplu, acum se poate permite accesul la instrumentele de urm\u0103rire doar participan\u021bilor dintr-un grup specific.                        <\/ul>\n<li class=\"l\"> <b>Virtualizare \u0219i securitate<\/b>\n<ul>\n<li class=\"l\"> \u00cen subsistemele io_uring \u0219i device-mapper a fost implementat suportul pentru generarea de evenimente de audit. \u00cen io_uring a fost oferit\u0103 posibilitatea de gestionare a accesului prin module LSM. A fost ad\u0103ugat\u0103 posibilitatea de auditare a apelului de sistem openat2().\n<li class=\"l\"> Codul nucleului a fost complet eliminat de expresiile constante case \u00een switch (f\u0103r\u0103 return sau break dup\u0103 fiecare bloc case). La compilarea nucleului, acum se va putea aplica modul \u00ab-Wimplicit-fallthrough\u00bb.\n<li class=\"l\"> Au fost incluse modific\u0103ri pentru \u00eent\u0103rirea verific\u0103rilor de limite \u00een cadrul func\u021biei memcpy().\n<li class=\"l\"> \u00cen interfa\u021ba de intrare\/ie\u0219ire asincron\u0103 io_uring a fost implementat\u0103 posibilitatea aplic\u0103rii politicilor de securitate la opera\u021biile de intrare\/ie\u0219ire, definite de modulele SELinux \u0219i Smack.\n<li class=\"l\"> \u00cen subsistemul IMA (Integrity Measurement Architecture), care permite unui serviciu extern s\u0103 verifice starea subsistemelor nucleului pentru a se asigura de autenticitatea acestora, a fost implementat\u0103 posibilitatea aplic\u0103rii regulilor pe baza identificatorului de grup (GID) la care apar\u021bine fi\u0219ierul sau \u00een care se integreaz\u0103 utilizatorul care acceseaz\u0103 fi\u0219ierul.\n<li class=\"l\"> Au fost dezactivate \u00een mod implicit unele mecanisme avansate de protec\u021bie a fluxurilor seccomp() \u00eempotriva atacurilor de tip Spectre, care au fost considerate excesive \u0219i care nu \u00eembun\u0103t\u0103\u021besc semnificativ securitatea, dar afecteaz\u0103 negativ performan\u021ba. A fost revizuit\u0103 aplicarea protec\u021biei Retpoline.\n<li class=\"l\"> Implementarea mecanismului cryptoloop a fost eliminat\u0103, iar \u00eenlocuitorul s\u0103u, dm-crypt, a fost adoptat \u00een 2004 \u0219i suport\u0103, la nevoie, acelea\u0219i algoritmi.\n<li class=\"l\"> Accesul neprivilegiat la subsistemul eBPF este interzis \u00een mod implicit. Modificarea a fost realizat\u0103 pentru a preveni utilizarea programelor BPF pentru a ocoli protec\u021bia \u00eempotriva atacurilor prin canale secundare. Dac\u0103 este necesar, administratorul poate restabili capacitatea utiliz\u0103rii eBPF de c\u0103tre utilizatorii neprivilegia\u021bi.\n<li class=\"l\"> \u00cen hipervizorul ACRN, destinat s\u0103 \u00eendeplineasc\u0103 sarcini \u00een timp real \u0219i s\u0103 fie utilizat \u00een sisteme critice, a fost ad\u0103ugat\u0103 suport pentru crearea\/\u0219tergerea dispozitivelor virtuale \u0219i pentru redirec\u021bionarea dispozitivelor MMIO.\n<li class=\"l\"> \u00cen motorul criptografic a fost ad\u0103ugat\u0103 suport pentru defini\u021biile KPP (Key-agreement Protocol Primitives), care simplific\u0103 logica dezvolt\u0103rii driverelor pentru sistemele criptografice.\n<li class=\"l\"> Pentru hipervizorul Hyper-V a fost implementat suportul pentru modul de izolare, <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/vps\/\"   title=\"ma\u0219ini virtuale\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2084\">ma\u0219ini virtuale<\/a>, care implic\u0103 criptarea con\u021binutului memoriei.\n<li class=\"l\"> \u00cen hipervizor <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4404\">KVM<\/a> a fost ad\u0103ugat\u0103 suport pentru arhitectura RISC-V. A fost realizat\u0103 posibilitatea migra\u021biei \u00een cadrul mediului gazd\u0103 a ma\u0219inilor virtuale care ruleaz\u0103 utiliz\u00e2nd extensiile AMD SEV \u0219i SEV-ES. A fost ad\u0103ugat un API pentru migrarea live a sistemelor gazd\u0103, criptate cu ajutorul AMD SEV (Secure Encrypted Virtualization).\n<li class=\"l\"> Pentru arhitectura PowerPC, modul STRICT_KERNEL_RWX este activat \u00een mod implicit, bloc\u00e2nd utilizarea paginilor de memorie care sunt accesibile simultan pentru scriere \u0219i execu\u021bie.\n<li class=\"l\"> Suportul pentru conectarea la cald a memoriei (Memory hotplug) a fost oprit pe sistemele x86 de 32 de bi\u021bi, care a fost nefunc\u021bional\u0103 de peste un an.\n<li class=\"l\"> Biblioteca liblockdep a fost exclus\u0103 din nucleu, urm\u00e2nd s\u0103 fie \u00eentre\u021binut\u0103 separat de nucleu.                  <\/ul>\n<li class=\"l\"> <b>Subsystema de re\u021bea<\/b>\n<ul>\n<li class=\"l\"> Pentru socketuri a fost implementat\u0103 o nou\u0103 op\u021biune SO_RESERVE_MEM, care permite rezervarea unei cantit\u0103\u021bi specifice de memorie pentru socket, care va r\u0103m\u00e2ne \u00eentotdeauna disponibil\u0103 \u0219i nu va fi alocat\u0103 altor procese. Utilizarea acestei op\u021biuni permite cre\u0219terea performan\u021bei prin reducerea opera\u021biunilor de alocare \u0219i eliberare a memoriei \u00een stiva de re\u021bea, \u00een special \u00een cazul \u00een care exist\u0103 condi\u021bii de lips\u0103 de memorie \u00een sistem.\n<li class=\"l\"> A fost ad\u0103ugat suportul pentru protocolul de tunelare automat\u0103 a traficului multicast (Automatic Multicast Tunneling, RFC 7450), care permite livrarea traficului multicast din re\u021bele care suport\u0103 Multicast c\u0103tre destinatari \u00een re\u021bele f\u0103r\u0103 Multicast. Protocolul func\u021bioneaz\u0103 prin \u00eencapsularea \u00een pachete UDP.\n<li class=\"l\"> \u00cembun\u0103t\u0103\u021bit\u0103 a fost \u00eencapsularea datelor IOAM (In-situ Operations, Administration, and Maintenance) \u00een pachetele de tranzit.\n<li class=\"l\"> \u00cen ethtool netlink API a fost ad\u0103ugat\u0103 posibilitatea de a gestiona modurile de consum al energiei transceivatoarelor.\n<li class=\"l\"> \u00cen subsistemul netfilter a fost implementat\u0103 posibilitatea de clasificare a pachetelor la nivelul egress, adic\u0103 \u00een momentul \u00een care driverul prime\u0219te pachetul de la stiva de re\u021bea a nucleului. \u00cen nftables, suportul pentru filtrele corespunz\u0103toare a ap\u0103rut \u00een versiunea 1.0.1. \u00cen netfilter, a fost ad\u0103ugat\u0103 posibilitatea de a \u00eemperechea \u0219i modifica anteturile interne \u0219i datele pentru UDP \u0219i TCP (antet intern \/ payload), care vin dup\u0103 antetul de transport.\n<li class=\"l\"> Au fost ad\u0103ugate noi parametri sysctl arp_evict_nocarrier \u0219i ndisc_evict_nocarrier, care, atunci c\u00e2nd sunt activate, vor cur\u0103\u021ba cache-ul ARP \u0219i tabela ndisc (descoperirea vecinilor) \u00een caz de pierdere a conexiunii (NOCARRIER).\n<li class=\"l\"> \u00cen mecanismul de gestionare a coadelor de re\u021bea fq_codel (Controlat Delay) au fost ad\u0103ugate modurile Low Latency, Low Loss \u0219i Scalable Throughput (L4S).                          <\/ul>\n<li class=\"l\"> <b>Echipament<\/b>\n<ul>\n<li class=\"l\"> Driverul amdgpu a implementat suportul ini\u021bial pentru specifica\u021bia DP 2.0 (DisplayPort 2.0) \u0219i pentru tunelarea DisplayPort prin USB4. Pentru APU Cyan Skillfish (echipate cu GPU Navi 1x) a fost ad\u0103ugat suportul pentru controlerele de afi\u0219are. Suportul pentru APU Yellow Carp (procensoare mobile Ryzen 6000 \u00abRembrandt\u00bb) a fost extins.\n<li class=\"l\"> \u00cen driverul i915 a fost stabilizat suportul pentru cipurile Intel Alderlake S \u0219i a fost implementat suportul pentru tehnologia Intel PXP (Protected Xe Path), care permite organizarea unui sesion grafic protejat hardware pe sistemele cu cipuri Intel Xe.\n<li class=\"l\"> \u00cen driverul nouveau au fost realizate corec\u021bii de erori \u0219i \u00eembun\u0103t\u0103\u021biri ale stilului codului.\n<li class=\"l\"> A fost ad\u0103ugat suport pentru procesoare compatibile x86 Vortex (Vortex86MX). Linux a func\u021bionat pe astfel de procesoare anterior, dar identificarea explicit\u0103 a acestor CPU a fost necesar\u0103 pentru dezactivarea protec\u021biei \u00eempotriva atacurilor Spectre\/Meltdown, care nu se aplic\u0103 acestor cipuri.\n<li class=\"l\"> A fost ad\u0103ugat suport ini\u021bial pentru platformele x86 Surface Pro 8 \u0219i Surface Laptop Studio.\n<li class=\"l\"> A fost ad\u0103ugat un driver pentru suportul cipurilor de sunet utilizate \u00een APU AMD Yellow Carp, Van Gogh, de asemenea, a fost ad\u0103ugat suport pentru sistemele de sunet \u0219i codec-urile Cirrus CS35L41, Maxim MAX98520\/MAX98360A, Mediatek MT8195, Nuvoton NAU8821, NVIDIA Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS, RT5682S, RT9120, Rockchip RV1126 \u0219i RK3568.\n<li class=\"l\"> A fost ad\u0103ugat driver-ul ishtp_eclite pentru accesul la controlerele integrate Intel PSE (Programmable Service Engine) prin intermediul protocolului ISHTP (Integrated Sensor Hub Transport Protocol), de exemplu, pentru ob\u021binerea datelor despre baterie, temperatur\u0103 \u0219i informa\u021bii legate de UCSI (USB Type-C Connector System Software Interface).\n<li class=\"l\"> A fost ad\u0103ugat un driver pentru controller-ele de jocuri Nintendo Switch, care suport\u0103 dispozitivele Switch Pro \u0219i Joy-Cons. A fost ad\u0103ugat suport pentru tabletele Wacom Intuos BT (CTL-4100WL\/CTL-6100WL) \u0219i tastatura Apple 2021 Magic Keyboard. A fost \u00eembun\u0103t\u0103\u021bit suportul pentru controlerele Sony PlayStation DualSense. A fost ad\u0103ugat suport pentru butoanele laterale ale mouse-ului Xiaomi Mi.\n<li class=\"l\"> A fost ad\u0103ugat driver-ul RT89 cu suport pentru cipurile wireless Realtek 802.11ax, precum \u0219i drivere pentru adaptoare Ethernet Asix AX88796C-SPI \u0219i switch-uri Realtek RTL8365MB-VC.\n<li class=\"l\"> Pentru cipurile Apple M1 au fost ad\u0103ugate drivere pentru PCI \u0219i PASemi i2c.\n<li class=\"l\"> A fost ad\u0103ugat suport pentru SoC ARM, dispozitive \u0219i pl\u0103ci Raspberry Pi Compute Module 4, Fairphone 4, Snapdragon 690, LG G Watch R, Sony Xperia 10 III, Samsung Galaxy S4 Mini Value Edition, Xiaomi MSM8996 (Mi 5, Mi Note 2, Mi 5s, Mi Mix, Mi 5s Plus \u0219i Xiaomi Mi 5), Sony Yoshino (Sony Xperia XZ1 \u0219i Sony Xperia XZ Premium), F(x)tec Pro1 QX1000, Microchip LAN966, CalAmp LMU5000, Exegin Q5xR5, sama7g5, Samsung ExynosAutov9, Rockchip RK3566, RK3399 ROCK Pi 4A+, RK3399 ROCK Pi 4B+, Firefly ROC-RK3328-PC, Firefly ROC-RK3399-PC-PLUS, ASUS Chromebook Tablet CT100, Pine64 Quartz64-A, Netgear GS110EMX, Globalscale MOCHAbin 7040, NXP S32G2, Renesas R8A779M*, Xilinx Kria, Radxa Zero, JetHub D1\/H1, Netronix E70K02.          <\/ul>\n<\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=56478\">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.16. \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: \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 futex_waitv \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 Windows-\u0438\u0433\u0440 \u0432 Wine, \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0424\u0421 \u0447\u0435\u0440\u0435\u0437 fanotify, \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0444\u043e\u043b\u0438\u0430\u043d\u0442\u043e\u0432 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 AMX, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0441\u043e\u043a\u0435\u0442\u0430\u043c\u0438, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 netfilter \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u0441\u0442\u0430\u0434\u0438\u0438 &#171;egress&#187;, \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 [&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-102933","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 5.16.\" \/>\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-16\" \/>\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 5.16 | 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.16.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-5-16\" \/>\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-01-10T13:36:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-01-10T13:36:38+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 kernel-ului Linux 5.16 | ProHoster","description":"Dup\u0103 dou\u0103 luni de dezvoltare, Linus Torvalds a lansat versiunea kernel-ului Linux 5.16.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-5-16","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.16 | 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.16.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-5-16","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-01-10T13:36:38+00:00","article:modified_time":"2022-01-10T13:36:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"102933","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2022-01-10 13:37:39","updated":"2026-02-09 17:11:18","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\/102933","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=102933"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/102933\/revisions"}],"predecessor-version":[{"id":164281,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/102933\/revisions\/164281"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=102933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=102933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=102933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}