{"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\/it\/blog\/news\/reliz-yadra-linux-5-18","title":{"rendered":"Rilascio del kernel Linux 5.18","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dopo due mesi di sviluppo, Linus Torvalds ha presentato il rilascio del kernel Linux 5.18. Tra le modifiche pi\u00f9 significative: \u00e8 stata effettuata una grande pulizia delle funzionalit\u00e0 obsolete, la FS Reiserfs \u00e8 stata dichiarata obsoleta, sono stati implementati eventi di tracciamento dei processi utente, \u00e8 stata aggiunta la supporto per il meccanismo di blocco degli exploit Intel IBT, \u00e8 stata attivata la modalit\u00e0 di rilevamento del buffer overflow durante l'uso della funzione memcpy(), \u00e8 stato aggiunto un meccanismo di tracciamento delle chiamate di funzione fprobe, \u00e8 stata migliorata la performance dello scheduler dei task sui CPU AMD Zen, \u00e8 stato incluso un driver per gestire la funzionalit\u00e0 dei CPU Intel (SDS), \u00e8 stata integrata parte delle patch per la ristrutturazione dei file di intestazione, e l'applicazione dello standard C11 \u00e8 stata approvata.      <\/p>\n<p>Nella nuova versione sono stati introdotti 16206 fix da 2127 sviluppatori (nel rilascio precedente c'erano 14203 fix da 1995 sviluppatori), la dimensione della patch \u00e8 di 108 MB (le modifiche hanno interessato 14235 file, aggiunto 1340982 righe di codice, rimosso 593836 righe). Circa il 44% di tutte le modifiche presentate in 5.18 riguardano i driver dei dispositivi, circa il 16% delle modifiche si riferiscono all'aggiornamento del codice specifico per architetture hardware, l'11% \u00e8 relativo allo stack di rete, il 3% ai file system e il 3% ai sottosistemi interni del kernel.           <\/p>\n<p>Le principali novit\u00e0 nel kernel 5.18:    <\/p>\n<ul>\n<li class=\"l\"> <b>Sottosistema di disco, input\/output e file system<\/b>\n<ul>\n<li class=\"l\"> Nel file system Btrfs \u00e8 stata aggiunta la supporto per il passaggio dei dati compressi durante l'esecuzione delle operazioni send e receive. In precedenza, durante l'uso di send\/receive, il lato mittente decomponeva i dati memorizzati in forma compressa, mentre il lato ricevente ricomponeva nuovamente i dati prima della scrittura. Nel kernel 5.18, alle applicazioni nello spazio utente che utilizzano le chiamate send\/receive \u00e8 stata offerta la possibilit\u00e0 di trasferire dati compressi senza ripacchettizzazione. Questa funzionalit\u00e0 \u00e8 stata implementata grazie alle nuove operazioni ioctl BTRFS_IOC_ENCODED_READ e BTRFS_IOC_ENCODED_WRITE, che consentono di leggere e scrivere direttamente informazioni negli extent.\n<p>Inoltre, in Btrfs \u00e8 stata migliorata la performance di fsync. \u00c8 stata aggiunta la possibilit\u00e0 di deduplicazione e l'esecuzione di reflink (clonazione dei metadati del file creando un collegamento ai dati gi\u00e0 esistenti senza la loro effettiva copia) per l'intero storage, senza limitarsi ai punti di montaggio.         <\/p>\n<li class=\"l\"> In modalit\u00e0 di input\/output diretto (Direct I\/O), \u00e8 possibile accedere a file crittografati utilizzando fscrypt in crittografia inline, dove le operazioni di crittografia e decrittografia vengono eseguite dal controller di archiviazione e non dal kernel. Con la crittografia tradizionale gestita dal kernel, l'accesso a file crittografati tramite Direct I\/O non \u00e8 possibile, poich\u00e9 l'accesso ai file avviene bypassando il meccanismo di buffering nel kernel.\n<li class=\"l\"> Nel server NFS \u00e8 abilitato di default il supporto per il protocollo NFSv3, che ora non richiede attivazione separata ed \u00e8 disponibile con l'attivazione generale di NFS. NFSv3 \u00e8 considerato la versione principale e sempre supportata di NFS, e il supporto per NFSv2 potrebbe essere interrotto in futuro. \u00c8 stata notevolmente migliorata l'efficienza nella lettura del contenuto delle directory.\n<li class=\"l\"> Il file system ReiserFS \u00e8 stato classificato come obsoleto e verr\u00e0 rimosso nel 2025. La classificazione di ReiserFS come obsoleto consentir\u00e0 di ridurre il lavoro di manutenzione delle modifiche comuni ai file system relative al supporto di una nuova API per il montaggio, iomap e volumi.\n<li class=\"l\"> Per il file system F2FS \u00e8 stata implementata la possibilit\u00e0 di mappare gli identificatori degli utenti delle file system montate, utilizzata per associare i file di un determinato utente su una partizione montata a un altro utente nel sistema corrente.\n<li class=\"l\"> \u00c8 stato rivisto il codice per il conteggio delle statistiche nei gestori del Device-mapper, consentendo di aumentare notevolmente la precisione del monitoraggio in gestori come dm-crypt.\n<li class=\"l\"> Per i dispositivi NVMe \u00e8 stato implementato il supporto per checksum a 64 bit per il controllo dell'integrit\u00e0.\n<li class=\"l\"> Per il file system exfat \u00e8 stata proposta una nuova opzione di montaggio \"keep_last_dots\" che impedisce la rimozione dei punti alla fine del nome del file (in Windows i punti alla fine del nome vengono rimossi per default).\n<li class=\"l\"> In EXT4 sono state migliorate le prestazioni della modalit\u00e0 fast_commit e aumentata la scalabilit\u00e0. L'opzione di montaggio \"mb_optimize_scan\", che consente di migliorare le prestazioni in condizioni di elevata frammentazione del FS, \u00e8 stata adattata per lavorare con file con estensioni.\n<li class=\"l\"> Il supporto per lo streaming di scrittura (write stream) nella sottosistema che gestisce i dispositivi a blocchi \u00e8 stato interrotto. Questa funzione era stata proposta per gli SSD, ma non ha trovato diffusione e al momento non ci sono dispositivi che supportano questa modalit\u00e0, ed \u00e8 poco probabile che ne arrivino in futuro.                      <\/ul>\n<li class=\"l\"> <b>Memoria e servizi di sistema<\/b>\n<ul>\n<li class=\"l\"> \u00c8 iniziata l'integrazione di un insieme di patch che consentono di ridurre significativamente il tempo di ricompilazione del kernel grazie alla ristrutturazione della gerarchia dei file di intestazione e alla riduzione del numero di dipendenze incrociate. Nella versione del kernel 5.18 sono incluse patch che ottimizzano la struttura dei file di intestazione del pianificatore dei processi (kernel\/sched). Rispetto al rilascio precedente, il consumo di tempo della CPU durante la compilazione del codice kernel\/sched \u00e8 diminuito del 61%, mentre il tempo effettivo \u00e8 diminuito del 3,9% (da 2,95 a 2,84 secondi).\n<li class=\"l\"> Nel codice del kernel \u00e8 stato autorizzato l'uso dello standard C11, pubblicato nel 2011. Il codice precedentemente aggiunto al kernel doveva essere conforme alla specifica ANSI C (C89), formulata nel 1989. Negli script di build del kernel 5.18, l'opzione \u2018--std=gnu89\u2019 \u00e8 stata sostituita con \u2018--std=gnu11 -Wno-shift-negative-value\u2019. \u00c8 stata considerata la possibilit\u00e0 di usare lo standard C17, ma in tal caso sarebbe stato necessario aumentare la versione minima supportata di GCC, mentre l'inclusione del supporto C11 rientra nei requisiti attuali per la versione di GCC (5.1).\n<li class=\"l\"> \u00c8 stata migliorata la performance della pianificazione dei processi sui processori AMD con architettura Zen, nei quali per ogni nodo con canali di memoria locali vengono forniti pi\u00f9 cache di ultimo livello (LLC, Last Level Cache). Nella nuova versione \u00e8 stato corretto il disbilanciamento di LLC tra i nodi NUMA, il che ha portato a un notevole incremento delle prestazioni in alcune condizioni di carico.\n<li class=\"l\"> Sono stati ampliati gli strumenti per il tracciamento delle applicazioni nello spazio utente. Nella nuova versione del kernel \u00e8 stata aggiunta la possibilit\u00e0 per i processi utente di generare eventi di tracciamento (User events) e di registrare dati nel buffer di tracciamento, che possono essere visualizzati tramite utilit\u00e0 di tracciamento del kernel come ftrace e perf. Gli eventi di tracciamento nello spazio utente sono isolati dagli eventi di tracciamento del kernel. Lo stato degli eventi pu\u00f2 essere visualizzato tramite il file \/sys\/kernel\/debug\/tracing\/user_events_status, mentre la registrazione di un evento e la scrittura di dati avvengono tramite il file \/sys\/kernel\/debug\/tracing\/user_events_data.\n<li class=\"l\"> \u00c8 stato introdotto un meccanismo di tracciamento (probe) delle chiamate di funzione - fprobe. L'API fprobe si basa su ftrace, ma \u00e8 limitata solo alla possibilit\u00e0 di allegare gestori di callback ai punti di ingresso e di uscita delle funzioni. A differenza di kprobes e kretprobes, il nuovo meccanismo consente di utilizzare un singolo gestore per pi\u00f9 funzioni contemporaneamente.\n<li class=\"l\"> \u00c8 stata interrotta la supporto per i vecchi processori ARM (ARMv4 e ARMv5), privi di unit\u00e0 di gestione della memoria (MMU). Il supporto per i sistemi ARMv7-M senza MMU \u00e8 stato mantenuto.\n<li class=\"l\"> \u00c8 stato interrotto il supporto per l'architettura simile a RISC NDS32, utilizzata nei processori della societ\u00e0 Andes Technologies. Il codice \u00e8 stato rimosso a causa dell'assenza di manutenzione e della richiesta di supporto NDS32 nel kernel Linux principale (gli utenti rimanenti utilizzano build specializzate del kernel dai produttori di hardware).\n<li class=\"l\"> Per impostazione predefinita, \u00e8 stata disabilitata la compilazione del kernel con supporto per il formato di file eseguibili a.out per le architetture alpha e m68k, in cui tale formato continua a essere utilizzato. Probabilmente, il supporto per il formato obsoleto a.out verr\u00e0 completamente rimosso dal kernel in tempi brevi. I piani per rimuovere il formato a.out sono in discussione dal 2019.\n<li class=\"l\"> Per l'architettura PA-RISC \u00e8 stato implementato un supporto minimo per il meccanismo vDSO (virtual dynamic shared objects), che fornisce un insieme limitato di chiamate di sistema disponibili nello spazio utente senza cambio di contesto. Il supporto di vDSO ha permesso di implementare la possibilit\u00e0 di esecuzione con uno stack non eseguibile.\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per il meccanismo Intel HFI (Hardware Feedback Interface), che consente all'hardware di fornire al kernel informazioni sulle attuali prestazioni e sull'efficienza energetica di ogni CPU.\n<li class=\"l\"> \u00c8 stato aggiunto un driver per il meccanismo Intel SDSi (Software-Defined Silicon), che consente di gestire l'attivazione di ulteriori funzionalit\u00e0 nel processore (ad esempio, istruzioni specializzate e memoria cache aggiuntiva). L'idea \u00e8 che a un prezzo inferiore possano essere forniti chip con funzionalit\u00e0 avanzate bloccate, che possono poi essere 'acquistate' e abilitate senza sostituzione hardware del chip.\n<li class=\"l\"> Aggiunto il driver amd_hsmp per il supporto dell'interfaccia AMD HSMP (Host System Management Port), che fornisce accesso alle funzioni di gestione del processore tramite un insieme di registri speciali, presenti nei processori server AMD EPYC a partire dalla generazione Fam19h. Ad esempio, tramite HSMP \u00e8 possibile ottenere dati sul consumo energetico e sulla temperatura, impostare limiti sulla frequenza, attivare diversi modalit\u00e0 di aumento delle prestazioni, gestire i parametri di funzionamento della memoria.\n<li class=\"l\"> Nell'interfaccia di input\/output asincrono io_uring \u00e8 stata implementata l'opzione IORING_SETUP_SUBMIT_ALL per la registrazione in un buffer circolare di un insieme di descrittori di file, cos\u00ec come l'operazione IORING_OP_MSG_RING, che consente di inviare un segnale da un buffer circolare a un altro buffer circolare.\n<li class=\"l\"> Nel meccanismo DAMOS (Data Access Monitoring-based Operation Schemes), che consente di liberare memoria tenendo conto della frequenza di accesso alla memoria, sono state ampliate le funzionalit\u00e0 di controllo delle operazioni sulla memoria dallo spazio utente.\n<li class=\"l\"> Integrata la terza serie di patch con l'implementazione del concetto di folio di pagine di memoria, che somigliano a pagine di memoria composte, ma si distinguono per una semantica migliorata e un'organizzazione del lavoro pi\u00f9 chiara. L'uso dei folio consente di accelerare la gestione della memoria in alcune sottosistemi del kernel. Nelle patch proposte \u00e8 stato effettuato il passaggio ai folio delle funzioni interne di gestione della memoria, incluse le varianti della funzione get_user_pages(). \u00c8 fornito supporto per la creazione di grandi folio nel codice di prelettura dei dati.\n<li class=\"l\"> Nel sistema di build \u00e8 stato aggiunto il supporto per le variabili d'ambiente USERCFLAGS e USERLDFLAGS, con cui \u00e8 possibile passare flag aggiuntivi al compilatore e al linker.\n<li class=\"l\"> Nel sottosistema eBPF, nel meccanismo BTF (BPF Type Format), che fornisce informazioni per il controllo dei tipi nel pseudocodice BPF, \u00e8 stata realizzata la possibilit\u00e0 di aggiungere annotazioni a variabili che fanno riferimento a aree di memoria nello spazio utente. Le annotazioni aiutano il sistema di verifica del codice BPF a identificare e controllare in modo pi\u00f9 efficace gli accessi alla memoria.\n<li class=\"l\"> Proposto un nuovo gestore per l'allocazione della memoria per la memorizzazione dei programmi BPF caricati, che consente di utilizzare la memoria in modo pi\u00f9 efficiente in situazioni di caricamento di un gran numero di programmi BPF.\n<li class=\"l\"> Nella chiamata di sistema madvise(), \u00e8 stato aggiunto il flag MADV_DONTNEED_LOCKED, che complementa il gi\u00e0 esistente flag MADV_DONTNEED, attraverso il quale il kernel pu\u00f2 essere avvisato in anticipo della liberazione di un blocco di memoria, cio\u00e8 che quel blocco non \u00e8 pi\u00f9 necessario e pu\u00f2 essere utilizzato dal kernel. A differenza di MADV_DONTNEED, l'uso del flag MADV_DONTNEED_LOCKED \u00e8 consentito per le pagine di memoria bloccate in RAM, che all'invocazione di madvise vengono espulse senza cambiare il proprio stato di blocco e, in caso di successivo accesso al blocco e generazione di un              <\/ul>\n<li class=\"l\"> <b>Virtualizzazione e sicurezza<\/b>\n<ul>\n<li class=\"l\"> Per l'architettura x86 \u00e8 stato aggiunto il supporto per il meccanismo di protezione del flusso di esecuzione delle istruzioni Intel IBT (Indirect Branch Tracking), che impedisce l'uso di tecniche di exploit basate su programmazione orientata al ritorno (ROP, Return-Oriented Programming), in cui un exploit viene creato come una catena di chiamate a frammenti di istruzioni gi\u00e0 presenti in memoria, che si concludono con un'istruzione di ritorno del controllo (di solito la fine delle funzioni). Il metodo di protezione implementato blocca i salti indiretti nel corpo di una funzione tramite l'aggiunta di un'istruzione speciale ENDBR all'inizio della funzione e consente l'esecuzione per salto indiretto solo nel caso in cui si salti a questa istruzione (una chiamata indiretta tramite JMP e CALL deve sempre puntare all'istruzione ENDBR, che \u00e8 collocata all'inizio della funzione).\n<li class=\"l\"> \u00c8 stata introdotta una verifica pi\u00f9 rigorosa dei limiti dei buffer nelle funzioni memcpy(), memmove() e memset(), eseguita in fase di compilazione quando \u00e8 attivata l'opzione CONFIG_FORTIFY_SOURCE. La modifica aggiunta consiste nella verifica dell'uscita dai limiti degli elementi delle strutture, di cui \u00e8 noto il dimensionamento. Si osserva che la funzionalit\u00e0 implementata consentirebbe di bloccare tutte le sovrascritture di buffer relative a memcpy() nel kernel, identificate almeno negli ultimi tre anni.\n<li class=\"l\"> \u00c8 stata aggiunta la seconda parte del codice della nuova implementazione del generatore di numeri pseudorandom RDRAND, responsabile del funzionamento dei dispositivi \/dev\/random e \/dev\/urandom. La nuova implementazione \u00e8 notevole per l'unificazione del funzionamento di \/dev\/random e \/dev\/urandom, e per l'aggiunta di una protezione contro la duplicazione nel flusso di numeri casuali all'avvio. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/vps\/\"   title=\"macchine virtuali\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2100\">macchine virtuali<\/a> e per il passaggio all'utilizzo della funzione hash BLAKE2s invece di SHA1 per le operazioni di mescolamento dell'entropia. Questa modifica ha migliorato la sicurezza del generatore di numeri pseudorandom eliminando l'algoritmo problematica SHA1 e prevenendo la riscrittura del vettore di inizializzazione RNG. Poich\u00e9 l'algoritmo BLAKE2s supera SHA1 in termini di prestazioni, il suo utilizzo ha avuto anche un impatto positivo sulle performance.\n<li class=\"l\"> Per l'architettura ARM64 \u00e8 stato aggiunto il supporto per un nuovo algoritmo di autenticazione dei puntatori - 'QARMA3', che \u00e8 pi\u00f9 veloce dell'algoritmo QARMA, mantenendo un adeguato livello di protezione. La tecnologia permette di utilizzare istruzioni ARM64 specializzate per verificare gli indirizzi di ritorno tramite firme digitali, che sono memorizzate nei bit superiori inutilizzati dello stesso puntatore.\n<li class=\"l\"> Per l'architettura ARM64 \u00e8 stato implementato il supporto per la compilazione con \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432 GCC 12 della modalit\u00e0 di protezione contro la sovrascrittura dell'indirizzo di ritorno dalla funzione in caso di overflow del buffer nello stack. L'essenza della protezione consiste nel memorizzare, dopo aver passato il controllo alla funzione, l'indirizzo di ritorno in uno 'stack shadow' separato e nell'estrazione di questo indirizzo prima dell'uscita dalla funzione.\n<li class=\"l\"> \u00c8 stato aggiunto un nuovo archivio di chiavi (keyring) - 'machine', contenente le chiavi del proprietario del sistema (MOK, Machine Owner Keys), supportate dal bootloader shim. Le chiavi indicate possono essere utilizzate per firmare digitalmente i componenti del kernel caricati in fase successiva all'avvio iniziale (ad esempio, i moduli del kernel).\n<li class=\"l\"> \u00c8 stato rimosso il supporto per le chiavi private asimmetriche per il TPM, proposte nella versione obsoleta del TPM, che presentano noti problemi di sicurezza e non hanno trovato una diffusione pratica.\n<li class=\"l\"> \u00c8 stata aggiunta una protezione dei dati con tipo size_t contro il overflow intero. Nel codice sono stati implementati i gestori size_mul(), size_add() e size_sub(), che consentono di eseguire in modo sicuro moltiplicazioni, addizioni e sottrazioni di dimensioni con tipo size_t.\n<li class=\"l\"> Nella compilazione del kernel sono stati inclusi i flag '-Warray-bounds' e '-Wzero-length-bounds', che generano avvisi quando l'indice esce dai limiti dell'array e quando vengono utilizzati array di lunghezza zero.\n<li class=\"l\"> Nel dispositivo virtio-crypto \u00e8 stata aggiunta la supporto per la crittografia utilizzando l'algoritmo RSA.                                 <\/ul>\n<li class=\"l\"> <b>Sottosistema di rete<\/b>\n<ul>\n<li class=\"l\"> Nell'implementazione dei bridge di rete \u00e8 stata aggiunta la supporto per la modalit\u00e0 di blocco delle porte (locked mode), in cui l'utente pu\u00f2 inviare traffico attraverso una porta solo da un indirizzo MAC autorizzato. \u00c8 stata anche aggiunta la possibilit\u00e0 di utilizzare pi\u00f9 strutture per valutare lo stato del protocollo STP (Spanning Tree Protocol). In precedenza, per VLAN era possibile solo un legame diretto a STP (1:1), in cui ogni VLAN era gestita indipendentemente. Nella nuova versione \u00e8 stato aggiunto il parametro mst_enable, che consente di controllare lo stato delle VLAN attraverso il modulo MST (Multiple Spanning Trees) e la legatura delle VLAN pu\u00f2 corrispondere al modello M:N.\n<li class=\"l\"> Sono continuate le attivit\u00e0 per l'integrazione nel stack di rete di strumenti per il monitoraggio delle cause di scarto dei pacchetti (codici reason). Il codice di causa viene trasmesso durante il rilascio della memoria associata al pacchetto e consente di considerare situazioni come lo scarto di pacchetti a causa di errori di compilazione dei campi nell'intestazione, il rilevamento di spoofing da parte del filtro rp_filter, checksum errato, mancanza di memoria, attivazione delle regole IPSec XFRM, numero di sequenza TCP errato, ecc.\n<li class=\"l\"> \u00c8 stata fornita la possibilit\u00e0 di inviare pacchetti di rete da programmi BPF, eseguiti dallo spazio utente nella modalit\u00e0 BPF_PROG_RUN, in cui i programmi BPF vengono eseguiti nel kernel ma restituiscono i risultati allo spazio utente. I pacchetti vengono trasferiti utilizzando il sottosistema XDP (eXpress Data Path). \u00c8 supportata la modalit\u00e0 live di elaborazione dei pacchetti, in cui l'elaboratore XDP pu\u00f2 reindirizzare i pacchetti di rete al volo nel stack di rete o su altri dispositivi. \u00c8 anche possibile creare generatori software di traffico esterno o inserire frame di rete nel stack di rete.\n<li class=\"l\"> Per i programmi BPF, collegati a cgroups di rete, sono state proposte funzioni ausiliarie per impostare esplicitamente il valore restituito dalle chiamate di sistema, consentendo di trasmettere informazioni pi\u00f9 dettagliate sulle cause del blocco della chiamata di sistema.\n<li class=\"l\"> Nel sottosistema XDP (eXpress Data Path) \u00e8 stata aggiunta la supporto per pacchetti frammentati, collocati in pi\u00f9 buffer, il che consente di gestire in XDP i Jumbo-frame e di applicare TSO\/GRO (TCP Segmentation Offload\/Generic Receive Offload) per XDP_REDIRECT.\n<li class=\"l\"> \u00c8 stato notevolmente accelerato il processo di eliminazione degli spazi dei nomi di rete, che era molto richiesto in alcuni sistemi di grandi dimensioni con un alto volume di traffico.                      <\/ul>\n<li class=\"l\"> <b>Apparecchiatura<\/b>\n<ul>\n<li class=\"l\"> Nel driver amdgpu \u00e8 attivata di default la tecnologia di sincronizzazione adattiva FreeSync, che permette di correggere la frequenza di aggiornamento delle informazioni sullo schermo, garantendo fluidit\u00e0 e assenza di sfarfallii durante i giochi e la visione di video. \u00c8 stata dichiarata la stabilit\u00e0 del supporto per la GPU Aldebaran.\n<li class=\"l\"> Nel driver i915 \u00e8 stato aggiunto il supporto per i chip Intel Alderlake N e le schede grafiche discrete Intel DG2-G12 (Arc Alchemist).\n<li class=\"l\"> Nel driver nouveau \u00e8 stato garantito il supporto per bitrate pi\u00f9 elevati per le interfacce DP\/eDP e il supporto per gli extender di cavo lttprs (Link-Training Tunable PHY Repeaters).\n<li class=\"l\"> Nel sottosistema drm (Direct Rendering Manager), nei driver armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen e vc4 \u00e8 stato aggiunto il supporto per il parametro nomodeset, che consente di disattivare il cambio delle modalit\u00e0 video a livello kernel e l'uso di meccanismi per l'accelerazione hardware del rendering, lasciando solo la funzionalit\u00e0 relativa al framebuffer di sistema.\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per ARM SoC Qualcomm Snapdragon 625\/632 (utilizzato negli smartphone LG Nexus 5X e Fairphone FP3), Samsung Exynos 850, Samsung Exynos 7885 (utilizzato nel Samsung Galaxy A8), Airoha (Mediatek\/EcoNet) EN7523, Mediatek mt6582 (tablet Prestigio PMT5008 3G), Microchip Lan966, Renesas RZ\/G2LC, RZ\/V2L, Tesla FSD, TI K3\/AM62 e i.MXRTxxxx.\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per dispositivi ARM e schede 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 Prestigio PMT5008 3G), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 e OSMC Vero 4K+), Aspeed (Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU\/Armada (Ctera C200 V1 e V2 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903).\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per sistemi audio e codec AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Renesas RZ\/V2L, Texas Instruments TAS585M. \u00c8 stata aggiunta una realizzazione iniziale del driver audio per il DSP-chip Intel AVS. \u00c8 stato aggiornato il supporto per i driver Intel ADL e Tegra234, ed \u00e8 stato apportato miglioramenti al supporto audio sui dispositivi Dell, HP, Lenovo, ASUS, Samsung e Clevo.    <\/ul>\n<p>Nel frattempo, il Fondazione per il Software Libero dell'America Latina ha creato una versione completamente libera del kernel 5.18 \u2014 Linux-libre 5.18-gnu, depurata da elementi di firmware e driver contenenti componenti o sezioni di codice non liberi, il cui utilizzo \u00e8 limitato dal produttore. Nella nuova versione sono stati puliti i driver per i pannelli MIPI DBI, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) e Realtek 8852a\/8852c, chip audio Intel AVS e Texas Instruments TAS5805M. \u00c8 stata anche effettuata una pulizia dei file DTS per diversi SoC Qualcomm con processori basati sull'architettura AArch64. \u00c8 stato aggiornato il codice di pulizia dei blob nei driver e nelle sottosistemi AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectrum Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP, MediaTek HCI UART.                         <\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57235\">opennet.ru<\/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.1.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.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\/it\/blog\/news\/reliz-yadra-linux-5-18\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47Rilascio del kernel Linux 5.18 | ProHoster","description":"Dopo due mesi di sviluppo, Linus Torvalds ha presentato il rilascio del kernel Linux 5.18.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-yadra-linux-5-18","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/104123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=104123"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/104123\/revisions"}],"predecessor-version":[{"id":159344,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/104123\/revisions\/159344"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=104123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=104123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=104123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}