{"id":120593,"date":"2024-11-18T13:09:07","date_gmt":"2024-11-18T11:09:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima"},"modified":"2024-11-18T13:09:07","modified_gmt":"2024-11-18T11:09:07","slug":"reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","title":{"rendered":"Lansarea nucleului Linux 6.12 cu suport pentru modul Realtime","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dup\u0103 dou\u0103 luni de dezvoltare, Linus Torvalds a prezentat lansarea nucleului Linux 6.12. Printre cele mai notabile modific\u0103ri se num\u0103r\u0103: posibilitatea activ\u0103rii modulului Realtime, sched_ext pentru crearea planificatorilor CPU prin eBPF, generarea unui cod QR \u00een condi\u021bii de avarie, mecanismul Device Memory TCP, mecanismul de rezervare a resurselor SCHED_DEADLINE server, \u00eembun\u0103t\u0103\u021birea planificatorului de sarcini EEVDF, modulul IPE pentru definirea politicilor de protec\u021bie a integrit\u0103\u021bii.        <\/p>\n<p>Noua versiune con\u021bine 14607 corec\u021bii de la 2167 de dezvoltatori, dimensiunea patch-ului fiind de 37 MB (modific\u0103rile au afectat 13087 de fi\u0219iere, au fost ad\u0103ugate 507913 de linii de cod, iar 234083 de linii au fost eliminate). \u00cen ultima versiune au fost 15130 de corec\u021bii de la 2078 de dezvoltatori, dimensiunea patch-ului fiind de 85 MB (\u00een kernelul 6.10 patch-ul a avut dimensiunea de 41 MB). Aproximativ 45% din toate modific\u0103rile prezentate \u00een 6.12 se refer\u0103 la driverele de dispozitive, aproximativ 12% sunt legate de actualiz\u0103rile codului specific arhitecturilor hardware, 13% se refer\u0103 la stiva de re\u021bea, 6% la sistemele de fi\u0219iere \u0219i 3% la subsistemele interne ale nucleului.      <\/p>\n<p>Principalele nout\u0103\u021bi \u00een nucleul 6.12:  <\/p>\n<ul>\n<li class=\"l\"> <b>Memorie \u0219i servicii de sistem<\/b>\n<ul>\n<li class=\"l\"> A fost oferit\u0103 posibilitatea compil\u0103rii nucleului cu op\u021biunea PREEMPT_RT f\u0103r\u0103 patch-uri suplimentare pentru a func\u021biona \u00een modul \u00een timp real. Ultima capacitate care lipsea din nucleu \u0219i care nu permitea activarea modulului PREEMPT_RT era suportul pentru ie\u0219irea atomic\u0103 non-blocant\u0103 prin func\u021bia printk, care a fost de asemenea inclus\u0103 \u00een nucleu. Suportul PREEMPT_RT este disponibil pentru arhitecturile x86, x86_64, ARM64 \u0219i RISC-V. P\u00e2n\u0103 acum, implementarea modulului PREEMPT_RT era furnizat\u0103 sub form\u0103 de patch-uri externe, pe baza c\u0103rora unele distribu\u021bii, cum ar fi RHEL, SUSE \u0219i Ubuntu, creau edi\u021bii separate Realtime ale produselor lor, cerute \u00een domenii precum sistemele financiare, echipamentele de procesare a sunetului \u0219i video, avia\u021bia, medicina, robotic\u0103, telecomunica\u021bii \u0219i sisteme industriale, \u00een care este necesar\u0103 asigurarea unui timp de procesare a evenimentelor predictibil.\n<li class=\"l\"> A fost ad\u0103ugat mecanismul \u00absched_ext\u00bb (SCX), care permite utilizarea eBPF pentru crearea de planificatoare CPU, acoperind practic toate aspectele planific\u0103rii execut\u0103rii sarcinilor \u0219i distribu\u021biei resurselor CPU. Astfel de planificatoare pot fi \u00eenc\u0103rcate dinamic \u0219i executate \u00een interiorul nucleului Linux. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/vps\/abuzoustojchivye-vps\/\"   title=\"ma\u0219ina virtual\u0103\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4348\">ma\u0219ina virtual\u0103<\/a> eBPF. Mecanismul sched_ext simplific\u0103 crearea planificatorilor specifici pentru anumite sarcini, oferind posibilitatea de a experimenta cu diverse tehnici \u0219i strategii de planificare, precum \u0219i de a crea rapid prototipuri func\u021bionale \u0219i de a \u00eenlocui planificatorii \u00een timp real \u00een infrastructurile de lucru. De exemplu, folosind sched_ext, se poate crea un planificator care ia \u00een considerare specificul unei aplica\u021bii particulare \u0219i schimb\u0103 dinamic strategia de planificare a execu\u021biei sale \u00een func\u021bie de starea sistemului \u0219i de al\u021bi factori suplimentari.\n<li class=\"l\"> Include restul patch-urilor necesare pentru func\u021bionarea mecanismului SCHED_DEADLINE server, care rezolv\u0103 problema aloc\u0103rii necorespunz\u0103toare a resurselor CPU de c\u0103tre sarcinile obi\u0219nuite \u00een condi\u021biile monopoliz\u0103rii CPU de c\u0103tre sarcinile de \u00eenalt\u0103 prioritate (realtime). Pentru a preveni monopolizarea CPU, anterior \u00een nucleu s-a folosit mecanismul Realtime throttling, care \u00eencerca s\u0103 rezerve 5% din resurse pentru sarcinile de prioritate joas\u0103, l\u0103s\u00e2nd 95% pentru sarcinile realtime. Acest mecanism a l\u0103sat de dorit, deoarece sarcinile obi\u0219nuite \u00een multe situa\u021bii nu primeau suficient timp de procesor. SCHED_DEADLINE server implementeaz\u0103 un mecanism mai eficient de rezervare a resurselor.\n<li class=\"l\"> A fost finalizat\u0103 integrarea planificatorului de sarcini EEVDF (Earliest Eligible Virtual Deadline First), care a \u00eenlocuit planificatorul CFS (Completely Fair Scheduler), livrat cu nucleul \u00eencep\u00e2nd cu versiunea 2.6.23. Noua planificare ia \u00een considerare procesele care nu au primit suficiente resurse CPU sau care au primit nejustificat prea mult timp de procesor atunci c\u00e2nd alege urm\u0103torul proces de executat. \u00cen primul caz, controlul este for\u021bat s\u0103 treac\u0103 la proces, iar \u00een al doilea caz, este am\u00e2nat. Vechiul planificator CFS folosea heuristici \u0219i ajust\u0103ri fine pentru a determina procesele care necesitau o aten\u021bie special\u0103, \u00een timp ce noul planificator le urm\u0103re\u0219te mai explicit \u0219i nu necesit\u0103 ajust\u0103ri fine. Se anticipa c\u0103 EEVDF va reduce \u00eent\u00e2rzierile \u00een execu\u021bia sarcinilor, cu care CFS a avut probleme de planificare.\n<li class=\"l\"> \u00cen handlerul de erori al nucleului \u2014 DRM Panic, care utilizeaz\u0103 subsistemul DRM (Direct Rendering Manager) pentru a afi\u0219a un raport vizual \u00een stilul \u00abecranului albastru al mor\u021bii\u00bb, a fost ad\u0103ugat\u0103 op\u021biunea de a ar\u0103ta pe ecran un logo \u0219i un cod QR cu raportul kmsg \u00een cazul unei st\u0103ri de urgen\u021b\u0103. Deoarece \u00een codul QR se pot stoca doar 2953 de bi\u021bi, a fost prev\u0103zut\u0103 op\u021biunea DRM_PANIC_SCREEN_QR_CODE_URL, care permite comprimarea raportului kmsg cu ajutorul zlib \u0219i ata\u0219area acestuia ca parametru la URL, ceea ce permite transmiterea prin cod QR V40 a aproximativ 7500 de bi\u021bi. La compilarea pachetelor cu nucleul, distribu\u021biile pot seta un link de baz\u0103 pentru URL, ceea ce va permite organizarea unui link c\u0103tre pagina de raportare a problemelor. Pentru a alege formatul codului QR, a fost prev\u0103zut\u0103 setarea DRM_PANIC_SCREEN_QR_VERSION.\n<li class=\"l\"> A fost ad\u0103ugat suport pentru extensia ARM POE (Permission Overlay Extension), care permite stabilirea drepturilor de acces la regiunile de memorie. Prin intermediul acestei extensii, pe sistemele cu procesoare ARM64 poate fi implementat mecanismul Memory Protection Keys, folosit pentru a limita accesul la paginile de memorie f\u0103r\u0103 a modifica tabela de pagini de memorie.\n<li class=\"l\"> Pentru arhitecturile Loongarch, ARM64, PowerPC \u0219i s390 a fost mutat\u0103 implementarea apelului de sistem getrandom(), optimizat\u0103 cu ajutorul mecanismului vDSO (virtual dynamic shared object), care permite transferul handlerului apelului de sistem din kernel \u00een spa\u021biul utilizatorului, evit\u00e2nd astfel schimb\u0103rile de context. Optimizarea permite accelerarea ob\u021binerii numerelor aleatoare de p\u00e2n\u0103 la 15 ori.\n<li class=\"l\"> \u00cen subsistemul de input\/output asincron io_uring a fost ad\u0103ugat\u0103 op\u021biunea de utilizare a timeout-urilor absolute, care se activeaz\u0103 la atingerea unui anumit timp pe ceasurile sistemului (anterior se puteau seta doar timeout-uri relative, \u00een care se specifica durata de la \u00eenceputul opera\u021biei).\n<li class=\"l\"> Au fost ad\u0103ugate fi\u0219iere pentru generarea binding-urilor pentru biblioteca libcpupower folosind instrumentul SWIG, care permite formarea binding-urilor din cod C\/C++ pentru diferite limbaje de programare. Binding-urile permit crearea de scripturi \u00een Python \u0219i alte limbaje \u0219i utilizarea acestora pentru extinderea func\u021bionalit\u0103\u021bii bibliotecii libcpupower, care ofer\u0103 API pentru gestionarea cpufreq \u0219i driverelor din spa\u021biul utilizatorului.\n<li class=\"l\"> \u00cen utilitarul cpuidle a fost implementat\u0103 afisarea valorii st\u0103rii de inactivitate \u00abresidency\u00bb, utilizat\u0103 pentru sistemele \u00een timp real \u0219i care \u021bine cont de timpul minim pe care procesorul trebuie s\u0103-l petreac\u0103 \u00een stare de inactivitate pentru a justifica costurile energetice de tranzi\u021bie \u00een aceast\u0103 stare \u0219i ie\u0219ire din ea.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 posibilitatea de a utiliza compilatorul Clang pentru construirea bibliotecii standard C nolibc, care face parte din sursele nucleului Linux \u0219i ofer\u0103 o interfa\u021b\u0103 pentru apelurile de sistem de baz\u0103. Atunci c\u00e2nd se construie\u0219te nolibc \u00een Clang, este permis\u0103 utilizarea optimiz\u0103rii \u00een etapa de legare (LTO).\n<li class=\"l\"> Au fost declarate \u00eenvechite anumite interfe\u021be cgroup1, cum ar fi contabilizarea TCP, prima versiune a limitelor moi (soft limit) \u0219i gestionarea epuiz\u0103rii memoriei libere. Suportul pentru aceste func\u021bii este men\u021binut \u00een totalitate pentru moment, iar avertizarea a fost emis\u0103 pentru a studia num\u0103rul de utilizatori care continu\u0103 s\u0103 foloseasc\u0103 aceste capacit\u0103\u021bi.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 op\u021biunea de configurare a buffer-ului de urm\u0103rire \u00een mod circular pentru a salva datele acumulate dup\u0103 repornire, ceea ce va permite p\u0103strarea informa\u021biilor de depanare \u00een caz de o oprire nea\u0219teptat\u0103 a nucleului. Datele sunt salvate \u00een memorie. Activarea se realizeaz\u0103 prin intermediul parametrului din linia de comand\u0103 a nucleului trace_instance, de exemplu, setarea \u201etrace_instance=boot_map@0x285400000:12M\u201d va rezerva 12 MB de memorie la adresa 0x285400000 pentru buffer-ul \u201eboot_map\u201d, care va fi accesibil prin fi\u0219ierul \/sys\/kernel\/tracing\/instances\/boot_map.\n<li class=\"l\"> Continu\u0103m s\u0103 transfer\u0103m modific\u0103rile din ramura Rust-for-Linux, legate de utilizarea limbajului Rust ca al doilea limbaj pentru dezvoltarea de drivere \u0219i module ale nucleului (suportul Rust nu este activat \u00een mod implicit \u0219i nu duce la includerea Rust \u00een lista dependen\u021belor obligatorii pentru nucleu). Au fost ad\u0103ugate modulele \u2018list\u2019 \u0219i \u2018rbtree\u2019 pentru lucrul cu listele dublu conectate \u0219i arborii de c\u0103utare ro\u0219u-negru. Func\u021bionalit\u0103\u021bile modulelor \u2018init\u2019, \u2018sync\u2019, \u2018types\u2019 \u0219i \u2018error\u2019 au fost extinse. A fost oferit\u0103 posibilitatea utiliz\u0103rii codului Rust la compilarea nucleului cu protec\u021bie \u00eempotriva atacurilor Spectre (op\u021biunile MITIGATION_{RETHUNK, RETPOLINE, SLS}), utilizarea sistemului de depanare KASAN, mecanismele de protec\u021bie kCFI (kernel Control Flow Integrity) \u0219i Shadow Call, precum \u0219i utilizarea pluginurilor GCC suplimentare. A fost ad\u0103ugat un driver pentru controlerul Ethernet Applied Micro QT2025 PHY, scris \u00een Rust. A fost preg\u0103tit un site distinct cu documenta\u021bia \u2014 rust.docs.kernel.org.\n<li class=\"l\"> \u00cen sursele kernelului a fost ad\u0103ugat\u0103 utilitarul xdrgen pentru transformarea specifica\u021biilor XDR (eXternal Data Representation) \u00een func\u021bii de codificare \u0219i decodare XDR, scrise folosind stilul C utilizat \u00een kernelul Linux.\n<li class=\"l\"> \u00cen nucleu a fost acceptat\u0103 o modificare care implementeaz\u0103 un mecanism de mascarea pointerilor pentru a reduce num\u0103rul apelurilor lente barrier_nospec() \u00een func\u021bia de 64 de bi\u021bi copy_from_user(), utilizat\u0103 pentru copierea datelor \u00een nucleu din spa\u021biul utilizatorului. Aplicarea masc\u0103rii acceleraz\u0103 cu 2,6% trecerea testului \u201eper_thread_ops\u201d, care evalueaz\u0103 num\u0103rul de opera\u021bii care pot fi efectuate \u00eentr-un singur fir.\n<li class=\"l\"> A fost ad\u0103ugat un nou driver USB care permite utilizarea protocolului 9pfs ca transport pentru transmiterea \u0219i primirea datelor de la dispozitivul USB, atunci c\u00e2nd se monteaz\u0103 FS 9p deasupra USB (de exemplu, \u201emount -t 9p -o trans=usbg,aname=\/path\/to\/fs  \/mnt\/9\u201d). Ca exemplu de aplicare a noului driver este utilizarea acestuia \u00een locul NFS pentru organizarea \u00eenc\u0103rc\u0103rii parti\u021biei r\u0103d\u0103cin\u0103 \u00een timpul dezvolt\u0103rii dispozitivelor \u00eencorporate.                    <\/ul>\n<li class=\"l\"> <b>Subsistemul de disc, I\/O \u0219i sistemele de fi\u0219iere<\/b>\n<ul>\n<li class=\"l\"> \u00cen subsistemul VFS a fost ad\u0103ugat\u0103 capacitatea de a lucra cu dispozitivele de stocare, a c\u0103ror dimensiune a blocurilor este mai mare dec\u00e2t dimensiunea paginii de memorie din sistem. \u00cen sistemele de fi\u0219iere, aceast\u0103 capacitate este momentan acceptat\u0103 doar \u00een XFS.\n<li class=\"l\"> Subsystema FUSE, care permite crearea implement\u0103rilor de sisteme de fi\u0219iere care func\u021bioneaz\u0103 \u00een spa\u021biul utilizatorului, a fost ad\u0103ugat\u0103 suportul pentru maparea identificatorilor utilizatorilor sistemelor de fi\u0219iere montate, utilizat pentru a corela fi\u0219ierele unui anumit utilizator pe o parti\u021bie montat\u0103 cu un alt utilizator din sistemul curent.\n<li class=\"l\"> A fost implementat\u0103 o nou\u0103 opera\u021biune fcntl F_CREATED_QUERY, oferind aplica\u021biei posibilitatea de a determina dac\u0103 un fi\u0219ier deschis cu flagul O_CREAT a fost creat sau dac\u0103 exista deja anterior.\n<li class=\"l\"> Apelul de sistem name_to_handle_at() a fost extins pentru a permite utilizarea identificatorilor unici de 64 de bi\u021bi ai punctelor de montare pentru a evita condi\u021biile de curs\u0103 \u00een procesarea \/proc\/mountinfo.\n<li class=\"l\"> Dimensiunea structurii &#171;file&#187; \u00een nucleu a fost redus\u0103 de la 232 la 184 de bytes, ceea ce permite o reducere a consumului de memorie pe sistemele care lucreaz\u0103 activ cu fi\u0219iere.\n<li class=\"l\"> Montarea sistemelor de fi\u0219iere \u00een puncte de montare din interiorul ierarhiei \/proc, de exemplu, \u00een \/proc\/PID\/fd, este interzis\u0103, ceea ce crea probleme poten\u021biale de securitate.\n<li class=\"l\"> \u00cen pseudo-FS NSFS (NameSpace FS), utilizat pentru a lucra cu spa\u021biile de nume, a fost implementat\u0103 oferirea de informa\u021bii suplimentare despre spa\u021biile de nume ale punctelor de montare.\n<li class=\"l\"> \u00cen sistemul de fi\u0219iere EROFS (Extendable Read-Only File System), destinat utiliz\u0103rii pe parti\u021bii disponibile \u00een modul doar pentru citire, a ap\u0103rut suportul pentru montarea sistemelor de fi\u0219iere direct din imagini de disc salvate sub form\u0103 de fi\u0219iere.\n<li class=\"l\"> \u00cen XFS au fost ad\u0103ugate noi comenzi ioctl XFS_IOC_START_COMMIT \u0219i XFS_IOC_COMMIT_RANGE pentru a schimba con\u021binutul \u00eentre dou\u0103 fi\u0219iere.\n<li class=\"l\"> \u00cen NFS a fost ad\u0103ugat\u0103 suportul pentru protocolul &#171;LOCALIO&#187;, care permite determinarea dac\u0103 clientul \u0219i <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/server\/\"   title=\"serverul\" data-wpil-keyword-link=\"linked\">serverul<\/a> NFS se afl\u0103 pe aceea\u0219i gazd\u0103, pentru a utiliza optimiz\u0103rile corespunz\u0103toare.\n<li class=\"l\"> \u00cen sistemul de fi\u0219iere Btrfs au fost propuse optimiz\u0103ri ale performan\u021bei, codul a fost refactorizat, zona de blocare a extentelor a fost redus\u0103 \u00een timpul opera\u021biunilor de citire, continu\u00e2ndu-se lucr\u0103rile de migrare la utilizarea folian\u021bilor de pagin\u0103 (page folios), iar eliberarea automat\u0103 a memoriei pentru structura btrfs_path a fost implementat\u0103.\n<li class=\"l\"> \u00cen sistemul de fi\u0219iere Ext4 au fost corectate erorile legate de alocarea blocurilor, gestionarea extensiilor, mecanismul &#171;fast commit&#187; \u0219i jurnalizarea.                  <\/ul>\n<li class=\"l\"> <b>Virtualizare \u0219i securitate<\/b>\n<ul>\n<li class=\"l\"> A fost ad\u0103ugat modulul LSM IPE (Integrity Policy Enforcement), dezvoltat de Microsoft pentru a extinde sistemul existent de control al accesului mandat. Modulul permite definirea unei politici generale de asigurare a integrit\u0103\u021bii pentru \u00eentreaga sistem, indic\u00e2nd ce opera\u021biuni sunt permise \u0219i ce metod\u0103 trebuie utilizat\u0103 pentru a verifica autenticitatea componentelor. De exemplu, prin intermediul IPE se poate specifica ce fi\u0219iere executabile pot fi rulate cu respectarea verific\u0103rii conformit\u0103\u021bii acestora cu versiunea de referin\u021b\u0103, utiliz\u00e2nd hash-uri criptografice furnizate de sistemul dm-verity.\n<li class=\"l\"> La etapa de compilare a nucleului, a fost oferit\u0103 posibilitatea de a activa separat metodele de protec\u021bie \u00eempotriva diverselor vulnerabilit\u0103\u021bi de tip Spectre \u00een CPU. \u00cen Kconfig au fost propuse noi parametru: MITIGATE_MDS (protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bii Microarchitectural Data Sampling), MITIGATE_TAA (protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bii TSX Asynchronous Abort), MITIGATE_MMIO_STALE_DATA (protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bii MMIO Stale Data), MITIGATE_L1TF (protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bii L1 Terminal Fault), MITIGATE_RETBLEED (protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bii Retbleed), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bilor Spectre), MITIGATE_SRBDS (protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bii Special Register Buffer Data Sampling), MITIGATE_SSB (protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bii Speculative Store Bypass).\n<li class=\"l\"> A fost ad\u0103ugat\u0103 parametrul de linie de comand\u0103 proc_mem.force_override \u0219i un set de op\u021biuni de configurare \u00een Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE \u0219i PROC_MEM_FORCE_NEVER), care permit interzicerea modific\u0103rii memoriei prin \/proc\/pid\/mem.\n<li class=\"l\"> Subsystema LSM (modul de securitate Linux) a fost transformat\u0103 pentru a utiliza apeluri statice, ceea ce a permis \u00eembun\u0103t\u0103\u021birea securit\u0103\u021bii \u0219i cre\u0219terea performan\u021bei.\n<li class=\"l\"> A fost asigurat\u0103 utilizarea nucleelor standard pentru arhitectura ARM64 \u00een medii virtualizate care ruleaz\u0103 pe sisteme Android cu un hypervizor KVM modificat (KVM protejat).\n<li class=\"l\"> \u00cen modulul LSM Landlock, care permite restric\u021bionarea interac\u021biunii unui grup de procese cu mediul extern, a fost implementat\u0103 conceptul &#171;IPC scoping&#187; pentru restric\u021bionarea selectiv\u0103 a interac\u021biunii cu medii sandbox, folosind socket-uri Unix \u0219i semnale. De exemplu, este posibil s\u0103 interzicem stabilirea de conexiuni folosind socket-uri Unix dintr-un mediu sandbox c\u0103tre procesele care nu aplic\u0103 izolare, dar s\u0103 permitem conexiunile cu procesele din aceea\u0219i zon\u0103 de scope.\n<li class=\"l\"> \u00cen hypervizorul KVM, \u00een CPUID pentru sistemele guest, a fost ad\u0103ugat un flag care semnalizeaz\u0103 suportul pentru extensiile AVX10.1.            <\/ul>\n<li class=\"l\"> <b>Subsystema de re\u021bea<\/b>\n<ul>\n<li class=\"l\"> A fost ad\u0103ugat mecanismul Device Memory TCP, care permite utilizarea socket-urilor de re\u021bea pentru a trimite direct con\u021binutul memoriei dispozitivelor periferice prin re\u021bea (modul zero-copy) \u0219i plasarea direct\u0103 a con\u021binutului pachetelor de re\u021bea \u00een zona de memorie a dispozitivului de c\u0103tre receptor. Datele transmise \u00een pachete sunt transferate de la placa de re\u021bea la memoria dispozitivului periferic sau din memoria dispozitivului \u00een placa de re\u021bea direct, ocolind CPU-ul, iar anteturile pachetelor ajung \u00een buferele de kernel obi\u015fnuite.\n<li class=\"l\"> Func\u021bionalit\u0103\u021bile multor drivere Ethernet \u0219i wireless au fost extinse. De exemplu, \u00een driverul Intel iwlwifi a fost ad\u0103ugat\u0103 suport pentru externalizarea opera\u021biunilor RLC\/SMPS la nivelul firmware-ului; \u00een driverul RealTek rtw89 a fost \u00eembun\u0103t\u0103\u021bit\u0103 performan\u021ba \u0219i a fost ad\u0103ugat suport pentru cipurile RTL8852BT\/8852BE-VT (WiFi 6); \u00een driverul Ethernet microchip a fost ad\u0103ugat suport pentru specifica\u021biile IEEE 802.3bw (100BASE-T1) \u0219i IEEE 802.3bp; au fost \u00eembun\u0103t\u0103\u021bite implement\u0103rile Ethernet virtual Microsoft vNIC \u0219i IBM veth. Au fost ad\u0103ugate noi drivere pentru cipurile Ethernet Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 \u0219i Microchip LAN8650\/1 10BASE-T1S MAC-PHY.\n<li class=\"l\"> \u00cen MPTCP (MultiPath TCP), extensia protocolului TCP pentru livrarea pachetelor TCP simultan prin mai multe rute prin diferite interfe\u021be de re\u021bea, dimensiunea coeficientului de ponderare utilizat \u00een rutare a fost crescut\u0103 de la 8 la 16 bi\u021bi. A fost implementat\u0103 detectarea traficului pierdut (blackhole) \u0219i suspendarea pentru o anumit\u0103 perioad\u0103 a \u00eencerc\u0103rilor de stabilire a conexiunilor cu sistemele care duc la pierderi de trafic.\n<li class=\"l\"> Pentru IPv6 a fost implementat suportul pentru flag-ul &#171;p&#187; \u00een PIO (Prefix Information Option), utilizat \u00een anun\u021burile RA (IPv6 Router Advertisements) pentru a selecta modelul de desf\u0103\u0219urare a clien\u021bilor prin DHCPv6-PD (Delegarea Prefixului DHCPv6, RFC9663) \u00een loc de alocarea unor adrese individuale bazate pe prefikse, folosind SLAAC (Configurare Automatizare a Adreselor Stateless). \u00cen IPv6 IOAM6 a fost ad\u0103ugat suport pentru noul mod de encapsulare tunsrc, care permite ob\u021binerea unor performan\u021be mai ridicate.\n<li class=\"l\"> A fost \u00eembun\u0103t\u0103\u021bit\u0103 performan\u021ba proces\u0103rii pachetelor de control IPsec.\n<li class=\"l\"> A fost \u00eembun\u0103t\u0103\u021bit\u0103 performan\u021ba \u0219tergerii (flush) seturilor mari de reguli nftables. \u00cen nfnetlink_queue, suportul protocolului SCTP a fost \u00eembun\u0103t\u0103\u021bit.\n<li class=\"l\"> \u00cen API-ul ethtool a fost ad\u0103ugat suportul pentru legarea mai multor pl\u0103ci de re\u021bea la o singur\u0103 interfa\u021b\u0103 de re\u021bea.                      <\/ul>\n<li class=\"l\"> <b>Echipament<\/b>\n<ul>\n<li class=\"l\"> \u00cen driverul AMDGPU a continuat munca pentru implementarea suportului pentru GPU-urile AMD RDNA4 (&#171;GFX12&#187;). A fost ad\u0103ugat\u0103 posibilitatea de resetare a unor cozi de sarcini individuale f\u0103r\u0103 a reseta starea \u00eentregului GPU.\n<li class=\"l\"> S-a continuat lucrul la driverul drm (Direct Rendering Manager) Xe pentru GPU-uri bazate pe arhitectura Intel Xe, care este utilizat\u0103 \u00een cardurile grafice Intel din familia Arc \u0219i \u00een grafica integrat\u0103, \u00eencep\u00e2nd cu procesoarele Tiger Lake. Noua versiune include suport pentru GPU-uri bazate pe microarhitecturile Battlemage \u0219i Lunar Lake. A fost introdus suport pentru modificatorii CCS (Color Control Surface) Xe2 pentru gestionarea parametrilor GPU-urilor integrate \u0219i discrete.\n<li class=\"l\"> \u00cen driverul i915 a fost implementat\u0103 posibilitatea de a afi\u0219a informa\u021bii despre viteza de rota\u021bie a ventilatorului prin intermediul interfe\u021bei HWMON sau sysfs (atributul &#171;fan1_input&#187;). A fost declarat \u00eenvechit parametrul &#171;i915.modeset&#187;, \u00een loc de &#171;i915.modeset=0&#187; ar trebui utilizat parametrul &#171;i915.nomodeset&#187;.\n<li class=\"l\"> \u00cen driverul DRM msm (GPU Qualcomm Adreno) a fost ad\u0103ugat suport pentru GPU-urile A615, A306 \u0219i A621.\n<li class=\"l\"> \u00cen driverul Nouveau a fost efectuat\u0103 o revizuire \u0219i cur\u0103\u021bare a structurilor interne.\n<li class=\"l\"> \u00cen driverul intel_pstate, care gestioneaz\u0103 parametrii de consum energetic (P-state) pe sistemele cu procesoare Intel, a fost ad\u0103ugat suport pentru sisteme hibride cu CPU-uri asimetrice (diferen\u021biate prin caracteristici), precum \u0219i suport pentru gestionarea energiei procesoarelor bazate pe microarhitecturile Granite Rapids \u0219i Sierra Forest. \u00cen driverul intel_idle a fost ad\u0103ugat suport pentru CPU Xeon Granite Rapids. \u00cen driverul intel_rapl a fost asigurat recunoa\u0219terea procesoarelor AMD din familia 1Ah \u0219i a procesoarelor Intel ArrowLake-U.\n<li class=\"l\"> S-a continuat integrarea modific\u0103rilor pentru suportul ARM SoC Snapdragon X Elite, care utilizeaz\u0103 propriul CPU Qualcomm Oryon cu 12 nuclee \u0219i GPU Qualcomm Adreno. Chipul este destinat utiliz\u0103rii \u00een laptopuri \u0219i PC-uri \u0219i dep\u0103\u0219e\u0219te \u00een multe teste de performan\u021b\u0103 chipurile Apple M3 \u0219i Intel Core Ultra 155H.\n<li class=\"l\"> A fost ad\u0103ugat suport pentru pl\u0103ci ARM, SoC \u0219i dispozitive: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ\/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000\/A6010, Surface Laptop 7, Anbernic RG35XXSP, Firefly Core-PX30-JD4, Lunzn Fastrhino R68S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS433, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R2S Plus, ExynosAuto v920, SOPHGO SG2002, Qualcomm IPQ5332, LG G4 (h815), Cool Pi CM5 GenBook, Anbernic RG35XXSP, GameForce Ace, IBM P11, Kontron i.MX93 OSM-S, NanoPC-T6.\n<li class=\"l\"> A fost ad\u0103ugat suport pentru panourile de ecran Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A, AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE TV101WUM-LL2, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, BOE NE140WUM-N6G, CMN N116BCA-EA2, CMN N116BCP-EA2, CSW MNB601LS1-4, Starry er88577.\n<li class=\"l\"> \u00cen sistemul de sunet a fost ad\u0103ugat\u0103 suport pentru cipuri \u0219i codecuri RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. Driverele de sunet vechi pentru ASoC Intel au fost declarate \u00eenvechite, fiind recomandat\u0103 utilizarea driverelor AVS. Au fost aduse multe \u00eembun\u0103t\u0103\u021biri driverului SoundWire.      <\/ul>\n<\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=62243\">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.12. \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: \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f Realtime-\u0440\u0435\u0436\u0438\u043c\u0430, sched_ext \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 CPU \u0447\u0435\u0440\u0435\u0437 eBPF, \u0432\u044b\u0432\u043e\u0434 QR-\u043a\u043e\u0434\u0430 \u043f\u0440\u0438 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Device Memory TCP, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 SCHED_DEADLINE server, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u0447 EEVDF, \u043c\u043e\u0434\u0443\u043b\u044c IPE \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438. \u0412 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u0438\u043d\u044f\u0442\u043e 14607 [&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-120593","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.12.\" \/>\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-12-s-podderzhkoj-realtime-rezhima\" \/>\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.12 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Realtime-\u0440\u0435\u0436\u0438\u043c\u0430 | 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.12.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima\" \/>\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-11-18T11:09:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-11-18T11:09:07+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.12 cu suport pentru modul Realtime | ProHoster","description":"Dup\u0103 dou\u0103 luni de dezvoltare, Linus Torvalds a prezentat lansarea nucleului Linux 6.12.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","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.12 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Realtime-\u0440\u0435\u0436\u0438\u043c\u0430 | 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.12.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","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-11-18T11:09:07+00:00","article:modified_time":"2024-11-18T11:09:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"120593","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 08:06:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 08:06:19","updated":"2026-01-23 08:06: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\/120593","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=120593"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/120593\/revisions"}],"predecessor-version":[{"id":173076,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/120593\/revisions\/173076"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=120593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=120593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=120593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}