{"id":115726,"date":"2024-05-13T13:52:06","date_gmt":"2024-05-13T11:52:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-6-9"},"modified":"2024-05-13T13:52:06","modified_gmt":"2024-05-13T11:52:06","slug":"reliz-yadra-linux-6-9","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-yadra-linux-6-9","title":{"rendered":"Uscita del kernel Linux 6.9","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dopo due mesi di sviluppo, Linus Torvalds ha presentato il rilascio del kernel Linux 6.9. Tra le modifiche pi\u00f9 significative: il modulo dm-vdo per la deduplicazione e la compressione dei dispositivi a blocchi, la modalit\u00e0 di accesso diretto ai file in FUSE, il supporto per la creazione di pidfd per thread singoli, il meccanismo dei token BPF, il supporto per Rust sui sistemi ARM64, la classificazione del filesystem Ext2 come obsoleto, la rimozione del vecchio driver NTFS e il supporto per il meccanismo Intel FRED.        <\/p>\n<p>La nuova versione include 15680 correzioni da parte di 2106 sviluppatori, dimensione della patch \u2014 54 MB (sono state interessate 11825 file, sono state aggiunte 687954 righe di codice e rimosse 225344 righe). Nell'ultima versione erano 15641 le correzioni effettuate da 2018 sviluppatori, con una dimensione della patch di 44 MB. Circa il 42% di tutte le modifiche presentate nella versione 6.9 riguarda i driver dei dispositivi, circa il 17% delle modifiche \u00e8 relativo all'aggiornamento di codice specifico per architetture hardware, il 13% riguarda lo stack di rete, il 7% ai file system e il 4% ai sottosistemi interni del kernel.      <\/p>\n<p>Novit\u00e0 principali nel kernel 6.9:  <\/p>\n<ul>\n<li class=\"l\"> <b>Sottosistema di disco, input\/output e file system<\/b>\n<ul>\n<li class=\"l\"> Nel Device Mapper (DM) \u00e8 stato aggiunto un nuovo gestore dm-vdo (virtual data optimizer), che consente di realizzare un dispositivo a blocchi virtuale basato su dispositivi a blocchi esistenti, dotato di funzionalit\u00e0 quali la deduplicazione dei dati ripetuti, la compressione dei dati, l'esclusione dei blocchi vuoti e l'aumento della capacit\u00e0 del dispositivo a blocchi man mano che si presenta la necessit\u00e0 (thin provisioning). Queste funzionalit\u00e0 sono implementate a livello di dispositivo a blocchi e non dipendono dal filesystem utilizzato (ad esempio, con dm-vdo \u00e8 possibile attuare un unione automatica dei dati duplicati e la conservazione delle informazioni in forma compressa per qualsiasi filesystem). \u00c8 supportato l'uso di dm-vdo per archiviazione fisica fino a 256TB e la creazione di volumi logici fino a 4PB. Per gestire le partizioni vdo si raccomanda di utilizzare lvm. La tecnologia VDO \u00e8 stata sviluppata da Permabit ed \u00e8 stata resa open source dopo la sua acquisizione da parte di Red Hat nel 2017.\n<li class=\"l\"> Nel sottosistema FUSE, utilizzato per implementare file system nello spazio utente, \u00e8 stata aggiunta l'implementazione iniziale della modalit\u00e0 \u00abpassthrough\u00bb, che consente di ottenere direttamente a livello di kernel i dati dei file, bypassando il processo che lavora nello spazio utente, con un aumento significativo delle prestazioni in alcune situazioni. Ad esempio, le implementazioni FUSE di file system che funzionano solo in modalit\u00e0 di sola lettura e limitano l'accesso ai file possono restituire il contenuto dei file dalla FS originale senza trasferirli al processo FUSE.\n<li class=\"l\"> Il driver con implementazione del file system Ext2 \u00e8 stato contrassegnato come obsoleto (deprecated). Il motivo indicato \u00e8 che il driver supporta solo contatori di tempo a 32 bit negli inode, i quali si satureranno il 19 gennaio 2038. Si consiglia di utilizzare il driver ext4, che supporta il file system Ext2 ed \u00e8 completamente compatibile con esso, ma pu\u00f2 utilizzare timestamp nei partizioni ext2 che non sono soggetti al problema del 2038, se il file system \u00e8 stato creato con inode di dimensioni superiori a 255 byte (nel driver ext2, i contatori di tempo a 32 bit erano utilizzati indipendentemente dalla dimensione dell'inode).\n<li class=\"l\"> Il vecchio driver del file system NTFS \u00e8 stato rimosso, sostituito dal nuovo driver NTFS3 a partire dalla versione 5.15. La fornitura di due driver con implementazione NTFS nel kernel \u00e8 stata ritenuta non opportuna, considerando che il vecchio driver non \u00e8 stato aggiornato per molti anni, si trova in condizioni pessime e pu\u00f2 operare solo in modalit\u00e0 di lettura.\n<li class=\"l\"> Nei file system zonefs e hugetlbfs \u00e8 stata aggiunta la supporto per il mapping degli identificatori utenti di file system montati, utilizzato per associare file di un certo utente su una partizione montata di un'altra utente nel sistema corrente.\n<li class=\"l\"> Per i file system NFSv4 \u00e8 stata data agli amministratori la possibilit\u00e0 di ripulire gli stati di apertura e di blocco dei file.\n<li class=\"l\"> Per il file system Ext4 sono state apportate solo correzioni di bug e aggiornamenti ai test kunit.\n<li class=\"l\"> In Btrfs \u00e8 continuata la migrazione delle funzioni all'uso dei folios di pagina della memoria.\n<li class=\"l\">  Nel file system XFS \u00e8 proseguito il lavoro sull'implementazione della possibilit\u00e0 di utilizzare l'utilit\u00e0 fsck per verificare e correggere i problemi rilevati in modalit\u00e0 online, senza smontare il file system.\n<li class=\"l\"> Nella chiamata di sistema pwritev2() \u00e8 stato aggiunto il flag RWF_NOAPPEND, che consente di specificare un offset per la scrittura, anche se il file \u00e8 stato aperto in modalit\u00e0 solo append.\n<li class=\"l\"> Sono stati aggiunti nuovi comandi ioctl: FS_IOC_GETUUID \u2014 restituisce l'identificatore UUID del file system specificato, e FS_IOC_GETFSSYSFSPATH \u2014 determina la posizione in \/sys\/fs della FS montata specificata.\n<li class=\"l\"> I file system efs, qnx4 e coda sono stati convertiti per utilizzare la nuova API di montaggio delle partizioni.\n<li class=\"l\"> \u00c8 stata migliorata l'implementazione delle operazioni sui file eseguite in modalit\u00e0 senza distinzione tra maiuscole e minuscole. Le performance sono state ottimizzate eseguendo prima il confronto con distinzione tra maiuscole e minuscole e poi tornando alla ricerca senza distinzione. Sono stati risolti problemi durante il montaggio di overlayfs su directory configurate per l'assenza di distinzione tra maiuscole e minuscole.                  <\/ul>\n<li class=\"l\"> <b>Memoria e servizi di sistema<\/b>\n<ul>\n<li class=\"l\"> \u00c8 stato implementato il supporto per il meccanismo Intel FRED (Flexible Return and Event Delivery), progettato per migliorare l'efficienza e l'affidabilit\u00e0 nella consegna delle informazioni sugli eventi a basso livello, rispetto al meccanismo attualmente utilizzato IDT (Interrupt Descriptor Table). L'aumento delle performance e la riduzione dei ritardi sono garantiti dal ritorno degli eventi tramite l'istruzione del processore IRET invece di passare gli eventi tramite la tabella IDT. L'affidabilit\u00e0 \u00e8 migliorata grazie al trattamento separato dell'arrivo di eventi nel contesto del kernel e nel contesto utente, con protezione contro l'esecuzione annidata di NMI e il salvataggio nel frame esteso dello stack di tutti i registri CPU associati all'eccezione.\n<li class=\"l\"> \u00c8 stata aggiunta la possibilit\u00e0 di ottimizzare l'accesso ai dati dei singoli core CPU tramite l'utilizzo nel codice del kernel di spazi di indirizzi nominati (Named Address Spaces), implementati in GCC sotto forma di estensione GNU C.\n<li class=\"l\"> Alla funzione pidfd_open() \u00e8 stato aggiunto il flag PIDFD_THREAD, che consente di creare pidfd per singoli thread, e non solo di utilizzare pidfd nel contesto del leader del gruppo di thread. \u00c8 stata anche proposta un'implementazione di pseudo-FS per l'accesso a pidfd tramite un file system virtuale. A differenza dell'identificazione dei processi tramite pid, l'identificatore pidfd \u00e8 associato a un processo specifico e non cambia, mentre il PID dopo il completamento del processo attuale pu\u00f2 essere associato a un altro processo.\n<li class=\"l\"> Nel sottosistema BPF \u00e8 stato aggiunto un meccanismo di token BPF che consente di delegare in modo selettivo ai programmi i diritti di accesso a operazioni privilegiate di BPF; ad esempio, \u00e8 possibile fornire a un'applicazione non privilegiata l'accesso a singoli sottosistemi BPF senza concedere diritti completi CAP_BPF.\n<li class=\"l\"> \u00c8 stato aggiunto un nuovo tipo di memoria condivisa bpf_arena nel sottosistema BPF, che definisce un'area accessibile per la condivisione tra programmi BPF e processi nello spazio utente. \u00c8 stata aggiunta l'istruzione may_goto, che consente di organizzare il funzionamento dei cicli, che possono essere interrotti dal verificatore. \u00c8 stata introdotta la possibilit\u00e0 di generare cookie TCP SYN arbitrari da programmi BPF e di creare gestori BPF per combattere gli attacchi SYN flood.\n<li class=\"l\"> Continua il trasferimento delle modifiche dal ramo Rust-for-Linux, relative all'uso del linguaggio Rust come secondo linguaggio per lo sviluppo di driver e moduli del kernel (il supporto per Rust non \u00e8 attivato per impostazione predefinita e non comporta l'inclusione di Rust tra le dipendenze di build obbligatorie per il kernel). \u00c8 stata aggiunta la supporto per l'uso del linguaggio Rust su processori ARM a 64 bit. \u00c8 stato effettuato il passaggio all'uscita di Rust 1.76. \u00c8 stato aggiunto il macro 'container_of!'. Invece della funzionalit\u00e0 instabile 'ptr_metadata' \u00e8 stato utilizzato il metodo stabile 'byte_sub'. \u00c8 stato aggiunto il modulo 'time' con la funzione di conversione del tempo 'msecs_to_jiffies()'.\n<li class=\"l\"> Nel sottosistema io_uring \u00e8 stata aggiunta la possibilit\u00e0 di troncamento dei file (ftruncate_file).\n<li class=\"l\"> \u00c8 stata aggiunta una nuova tipologia di code di lavoro WQ_BH (workqueue Bottom Halves) per l'esecuzione asincrona del codice nel contesto delle interruzioni software, destinata ad essere utilizzata al posto dei tasklet obsoleti.\n<li class=\"l\"> Il sottosistema di gestione dei timer \u00e8 stato notevolmente rielaborato, migliorando la logica di selezione del core CPU attivo per l'esecuzione del timer scattato, in modo da non risvegliare core inattivi.\n<li class=\"l\"> \u00c8 stata implementata la possibilit\u00e0 di aggiornare il modello di consumo energetico del core (EM, Energy Model) durante il funzionamento, che pu\u00f2 essere utilizzata, ad esempio, per tenere conto dell'influenza della temperatura di esercizio sull'efficienza energetica della CPU. \u00c8 stata significativamente migliorata la performance della funzione em_cpu_energy(), che nei test su un sistema stazionario ora viene eseguita 1,43 volte pi\u00f9 velocemente, mentre nel test su scheda RockPi 4B  \u2014 1,69 volte pi\u00f9 veloce.\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per eseguire sistemi basati su architettura ARM64 in modalit\u00e0 LPA2 con uno spazio di indirizzi virtuali a 52 bit.\n<li class=\"l\"> Per i sistemi ARM64 \u00e8 stata implementata la registrazione continua delle PTE (Page Table Entry), che consente di migliorare le prestazioni aumentando l'efficienza nell'utilizzo della TLB (Translation Lookaside Buffer).\n<li class=\"l\"> Sono stati approvati patch per migliorare le prestazioni del sottosistema di gestione della memoria riducendo l'insorgenza di concorrenza nei blocchi in vmalloc().\n<li class=\"l\"> Per l'architettura LoongArch \u00e8 stato realizzato un meccanismo di hot patching del kernel, che consente di applicare correzioni al kernel senza riavviarlo.\n<li class=\"l\"> Per i sistemi RISC-V \u00e8 stato implementato il supporto per la syscall membarrier(), che stabilisce barriere di memoria per i thread in esecuzione nel sistema.\n<li class=\"l\"> Sono stati elevati i requisiti per la versione di LLVM\/Clang da utilizzare per la compilazione del kernel. Ora \u00e8 necessaria almeno la versione 13.0.1 di LLVM (precedentemente era supportata la compilazione con LLVM 11+).\n<li class=\"l\"> Nel meccanismo \u00abUser trace events\u00bb, che consente di creare eventi di tracciamento dai processi utente per monitorare l'attivit\u00e0 nello spazio utente, \u00e8 stata aggiunta la supporto per l'esportazione delle informazioni sugli eventi in vari formati (USER_EVENT_REG_MULTI_FORMAT).\n<li class=\"l\"> Nel meccanismo di tracciamento delle chiamate di funzione \u00e8 stata aggiunta la possibilit\u00e0 di monitorare lo stato degli argomenti in ingresso alla funzione durante il tracciamento dell'uscita. I valori dell'operatore di ritorno ora possono essere associati agli argomenti utilizzati nella chiamata della funzione.\n<li class=\"l\"> Nell'utility perf \u00e8 stata aggiunta la supporto per la modalit\u00e0 di aggregazione dell'output \u00abcluster\u00bb (\u00abperf stat -a \u2014per-cluster\u00bb) per combinare le statistiche delle risorse condivise. \u00c8 stata implementata la possibilit\u00e0 di utilizzare la libreria libcapstone per il disassemblaggio delle istruzioni del processore (\u00abperf script -F disasm\u00bb). Sono state effettuate ottimizzazioni del consumo di memoria durante l'esecuzione dei comandi perf report e perf annotate.                    <\/ul>\n<li class=\"l\"> <b>Virtualizzazione e sicurezza<\/b>\n<ul>\n<li class=\"l\"> \u00c8 stata aggiunta la protezione contro la vulnerabilit\u00e0 RFDS (Register File Data Sampling) nei processori Intel Atom, che consente di estrarre informazioni residue dai file di registri (RF, Register File) della CPU, utilizzati per memorizzare insieme il contenuto dei registri in tutti i processi su quello stesso core della CPU. Per bloccare la vulnerabilit\u00e0 \u00e8 necessario un aggiornamento del microcodice e l'uso dell'istruzione VERW per ripulire il contenuto dei buffer microarchitettonici al momento del ritorno dallo spazio kernel allo spazio utente. Per attivare la protezione all'avvio del kernel, \u00e8 possibile specificare il flag \u00abreg_file_data_sampling=on\u00bb. Le informazioni sulla vulnerabilit\u00e0 e sull'eventuale presenza del microcodice necessario per la protezione possono essere valutate nel file \u00ab\/sys\/devices\/system\/cpu\/vulnerabilities\/reg_file_data_sampling\u00bb.\n<li class=\"l\"> \u00c8 stata aggiunta una supporto di base per la protezione delle macchine virtuali tramite l'estensione AMD SEV-SNP (Secure Nested Paging), che garantisce un funzionamento sicuro con tabelle di pagina di memoria annidate e protegge dagli attacchi \u00abundeSErVed\u00bb e \u00abSEVerity\u00bb sui processori AMD EPYC, che possono aggirare il meccanismo di protezione AMD SEV (Secure Encrypted Virtualization). <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4384\">KVM<\/a> Le modifiche necessarie per l'utilizzo di SNP sono pianificate per essere aggiunte nella versione 6.10.\n<li class=\"l\"> I moduli con implementazione delle tecnologie IMA (Integrity Measurement Architecture) ed EVM (Extended Verification Module) sono stati convertiti per utilizzare il framework LSM (Linux Security Modules), il che ha notevolmente semplificato il codice senza perdita di funzionalit\u00e0, unendo la funzionalit\u00e0 duplicata e sfruttando le capacit\u00e0 tipiche disponibili tramite LSM. Il modulo IMA \u00e8 progettato per controllare l'integrit\u00e0 dei componenti del sistema operativo attraverso firme digitali e hash. Il modulo EVM consente di proteggere gli attributi estesi dei file (xattrs) dagli attacchi mirati a compromettere la loro integrit\u00e0 (EVM non permetter\u00e0 di effettuare un attacco offline, in cui un malintenzionato pu\u00f2 modificare i metadati, ad esempio avviando da un proprio disco).\n<li class=\"l\"> Le chiamate di sistema lsm_list_modules(), lsm_get_self_attr() e lsm_set_self_attr() sono state riprogettate per una maggiore compatibilit\u00e0 con ambienti a 32 bit, destinate a elencare i moduli LSM (Linux Security Modules) caricati e ottenere\/impostare gli attributi del modulo LSM. La modifica rompe la compatibilit\u00e0 retroattiva, ma dato che le nuove chiamate di sistema sono state aggiunte nella versione precedente del kernel e al momento non sono utilizzate nelle applicazioni, Linus Torvalds ha ritenuto che la modifica sia accettabile.\n<li class=\"l\"> \u00c8 stato tentato di ripristinare l'uso del meccanismo UBSAN (Undefined Behavior Sanitizer). La questione \u00e8 che i compilatori gestiscono in modo diverso i sovraccarichi interi di tipi firmati e non firmati. I sovraccarichi firmati e gli overflow di puntatori rientrano nella categoria del comportamento indefinito, mentre i sovraccarichi non firmati vengono troncati per modulo 2n mantenendo solo i bit meno significativi del risultato (\"wrap-around\") e non rientrano nel comportamento indefinito. Per escludere situazioni di comportamento indefinito, il kernel viene compilato con l'opzione \"-fno-strict-overflow\", che porta all'uso del \"wrap-around\" per tutti gli overflow interi. GCC e Clang non possono diagnosticare correttamente alcuni problemi quando si utilizza il flag \"-fno-strict-overflow\", e l'attivazione di UBSAN mira a collaborare con gli sviluppatori dei compilatori per risolvere i falsi allarmi e identificare gli overflow interi in aree dove non ci sono controlli espliciti.\n<p>Per controllare i possibili overflow nel kernel vengono utilizzate strutture del tipo \"var + offset\". <var> PAGE_SHIFT)\", &lt; pgoff){..}&quot;), che sono collegate a una compilazione con il flag &quot;-fno-strict-overflow&quot; e non coprono tutto il codice in cui potrebbero verificarsi overflow. Il problema \u00e8 che, usando UBSAN, tali controlli portavano a un numero elevato di falsi avvisi, e per questo motivo nel 2021 \u00e8 stato necessario disattivare UBSAN. Nella nuova implementazione si propone di utilizzare annotazioni speciali __signed_wrap e __unsigned_wrap, oltre a macro gi\u00e0 pronte con controlli add_would_overflow(a, b) e add_wrap(a, b), che consentono di separare gli overflow interi previsti dagli sviluppatori dalle sovratensioni casuali che potrebbero portare a vulnerabilit\u00e0. La proposta di una revisione pi\u00f9 ampia del kernel con l&#039;introduzione di ulteriori definizioni di tipo \u00e8 stata respinta da Linus Torvalds.                      <\/ul>\n<li class=\"l\"> <b>Sottosistema di rete<\/b>\n<ul>\n<li class=\"l\">  Nel sottosistema di rete \u00e8 stato svolto un lavoro per ridurre la manifestazione di contese di blocco (\"lock contention\", tentativo di ottenere un blocco detenuto da un altro thread). \u00c8 stata ridotta l'uso dei blocchi RTNL.\n<li class=\"l\"> \u00c8 stata aggiunta la possibilit\u00e0 di attivare il supporto per il busy polling nei contesti delle singole chiamate epoll. La dimensione del pool e i parametri di budget possono essere impostati separatamente dai parametri di sistema predefiniti.\n<li class=\"l\"> \u00c8 stata realizzata la struttura net_hotdata per migliorare l'efficienza della memorizzazione nella cache delle variabili di configurazione di rete pi\u00f9 utilizzate.\n<li class=\"l\"> MPTCP ha aggiunto il supporto per l'impostazione dell'opzione TCP_NOTSENT_LOWAT per i socket, consentendo di limitare la dimensione del buffer di invio. Nell'API per i socket MCTP \u00e8 stato aggiunto il supporto per gli identificatori di rete (\"network ID\"), che consentono di utilizzare pi\u00f9 reti MCTP non sovrapposte su un unico host.\n<li class=\"l\"> In IPSec \u00e8 stato aggiunto il supporto per il reindirizzamento dei messaggi ICMP con informazioni sugli errori (RFC 4301).\n<li class=\"l\"> Il processo di scansione dei percorsi con tempo di vita scaduto \u00e8 stato accelerato.\n<li class=\"l\"> Le prestazioni di XDP sono state accelerate, grazie a una maggiore attenzione nell'evitare l'allocazione di grandi blocchi di memoria.\n<li class=\"l\"> \u00c8 stata aggiunta la possibilit\u00e0 di allegare metadati ai messaggi netconsole.\n<li class=\"l\"> In Netfilter \u00e8 consentita la definizione delle tabelle dallo spazio utente, che si collegano a un processo in background di gestione e non vengono eliminate automaticamente al termine dell'applicazione utente.\n<li class=\"l\"> In nftables \u00e8 stata accelerata l'aggiunta di elementi nei set con intervalli uniti.                      <\/ul>\n<li class=\"l\"> <b>Apparecchiatura<\/b>\n<ul>\n<li class=\"l\"> Nel driver i915 \u00e8 proseguito il lavoro per l'implementazione del supporto per i chip Intel LunarLake (Xe 2). Sono stati aggiunti nuovi identificatori PCI per dispositivi basati su chip Intel Arrow Lake e Alder Lake N. Per DisplayPort \u00e8 stato aggiunto il supporto per il tunneling DP e l'allocazione di larghezza di banda. Per tutte le piattaforme \u00e8 stata attivata la modalit\u00e0 fastboot. \u00c8 stato aggiunto il supporto per l'output di debug associato a dispositivi specifici.\n<li class=\"l\"> Nel driver AMDGPU \u00e8 stata effettuata la preparazione per l'implementazione del supporto per la GPU AMD RDNA3.5 e RDNA4. \u00c8 stato aggiunto il supporto per ATHUB 4.1, LSDMA 7.0, JPEG DPG, IH 7.0, HDP 7.0, VCN 5.0, SMU 13.0.6, NBIO 7.11, SDMA 6.1, MMHUB 3.3, DCN 3.5.1, NBIF 6.3.1, VPE 6.1.1 e il framework RAS ACA. Nel modulo del kernel \u00e8 stato aggiunto il parametro freesync_video per attivare il supporto sperimentale all'ottimizzazione del cambio delle modalit\u00e0 video utilizzando la tecnologia di sincronizzazione adattiva FreeSync.\n<li class=\"l\"> Nel driver Nouveau, il codice di gestione dello schermo \u00e8 stato aggiornato per utilizzare la funzione kmemdup().\n<li class=\"l\"> Continua il lavoro sul driver drm (Direct Rendering Manager) Xe per GPU basate sull'architettura Intel Xe, utilizzata nelle schede grafiche Intel della famiglia Arc e nella grafica integrata, a partire dai processori Tiger Lake.\n<li class=\"l\"> Aggiunto il driver DRM per i chip Mediatek MT8188 VDOSYS1.\n<li class=\"l\"> Le impostazioni del kernel relative ai sottosistemi video sono state spostate nella sezione CONFIG_VIDEO.\n<li class=\"l\"> Aggiunto il supporto per ARM64 SoC: Mediatek MT7981B (Filogic 820), MT7988A (Filogic 880), NXP i.MX8DXP, Renesas R8A779G2 (R-Car V4H ES2.0), R8A779H0 (R-Car V4M), TI J722S.\n<li class=\"l\"> Aggiunto il supporto per schede e dispositivi ARM: telefoni Android basati sul chip Tegra30, modelli Chromebook basati su Mediatek MT8186, NAS, tablet e console da gioco basati su Rockchips RK35xx, schede White Hawk basate su SoC Renesas, schede basate su Qualcomm SM8550 (Snapdragon 8 Gen 2), Apalis Evaluation Board, Sielaff i.MX6 Solo Board, Samsung Galaxy Tab 4 10.1 LTE.\n<li class=\"l\"> Eseguito il refactoring del codice del sottosistema audio ALSA. Aggiunto il supporto per i sistemi audio Microchip SAM9x7, NXP i.MX95 e Qualcomm WCD939x. Nel driver SoundWire \u00e8 stato aggiunto il supporto ASoC per i co-processori audio AMD ACP 6.3, mentre per i sistemi Intel \u00e8 stata implementata la modalit\u00e0 DSPless. Aggiunto il supporto per codec audio aggiuntivi Cirrus HD. Nel driver virtio \u00e8 stato migliorato il controllo dei dispositivi audio.\n<li class=\"l\"> Aggiunto il supporto per i controllori Ethernet Marvell Octeon PCI Endpoint NIC VF e Intel E825-C 100G.            <\/ul>\n<\/ul>\n<p>Nel frattempo, la Fondazione per il Software Libero dell'America Latina ha creato una versione completamente libera del kernel 6.9 \u2014 Linux-libre 6.9-gnu, ripulito da elementi di firmware e driver contenenti componenti o frammenti di codice non liberi, il cui utilizzo \u00e8 limitato dal produttore. Nella versione 6.9 \u00e8 stato aggiornato il codice di pulizia dei blob nei driver amdgpu, ath12k, adreno, btusb e r8169. \u00c8 stata eseguita la pulizia del nuovo driver ptp_fc3. \u00c8 stata effettuata la pulizia dei nomi dei blob nei file dts (devicetree) per l'architettura Aarch64. Sono stati risolti problemi con la pulizia del driver i915, che causava il blocco durante l'inizializzazione. Sono state apportate modifiche relative alla gestione dei blob forniti come dump esadecimali.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61160\">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 6.9. \u0421\u0440\u0435\u0434\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u043c\u043e\u0434\u0443\u043b\u044c dm-vdo \u0434\u043b\u044f \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0432 FUSE, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f pidfd \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c BPF-\u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Rust \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 ARM64, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0424\u0421 Ext2 \u0432 \u0440\u0430\u0437\u0440\u044f\u0434 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 NTFS, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-115726","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.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 6.9.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/reliz-yadra-linux-6-9\" \/>\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 6.9 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/reliz-yadra-linux-6-9\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-05-13T11:52:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-05-13T11:52:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rilascio del kernel Linux 6.9 | ProHoster","description":"Dopo due mesi di sviluppo, Linus Torvalds ha presentato il rilascio del kernel Linux 6.9.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-yadra-linux-6-9","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 6.9 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.9.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-yadra-linux-6-9","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-05-13T11:52:06+00:00","article:modified_time":"2024-05-13T11:52:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"115726","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 00:14:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 00:14:20","updated":"2026-01-23 00:14:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/115726","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=115726"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/115726\/revisions"}],"predecessor-version":[{"id":164261,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/115726\/revisions\/164261"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=115726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=115726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=115726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}