Linux 7.2 accelera i trasferimenti dati tra sistemi grazie a USB4STREAM

USB4STREAM entra nel kernel Linux 7.2 e permette trasferimenti diretti tra sistemi USB4 o Thunderbolt ad altissima velocità, senza utilizzare lo stack di rete tradizionale.

Un semplice cavo USB4 potrebbe presto sostituire molte procedure che oggi richiedono configurazioni di rete, servizi aggiuntivi e software dedicato. Con l’integrazione di USB4STREAM nel ciclo di sviluppo del kernel Linux 7.2, gli sviluppatori introducono un nuovo meccanismo per trasferire dati direttamente tra due sistemi attraverso collegamenti USB4 o Thunderbolt, eliminando gran parte della complessità associata alle tradizionali comunicazioni host-to-host.

USB4 continua a guadagnare spazio su piattaforme desktop, workstation e notebook professionali: formalizzato nel 2019, lo standard deriva dall’esperienza maturata con Thunderbolt 3, offre velocità teoriche che possono raggiungere 40 Gbps e, nelle implementazioni più recenti, anche valori superiori. Linux supporta USB4 da diversi anni, ma finora il trasferimento diretto tra computer passava quasi sempre attraverso protocolli di rete convenzionali. USB4STREAM percorre una strada diversa: crea un canale dati grezzo ad alta velocità accessibile come un normale file su Linux.

Che cos’è USB4STREAM e perché rappresenta una novità interessante

USB4STREAM nasce da un lavoro sviluppato principalmente dagli ingegneri Intel, impegnati nella manutenzione del sottosistema Thunderbolt all’interno del kernel Linux.

L’obiettivo era piuttosto pragmatico: realizzare un sistema estremamente semplice per trasportare dati tra host differenti senza dover configurare indirizzi IP, servizi SSH, condivisioni SMB o altre componenti tipiche delle comunicazioni di rete.

La soluzione fa perno sul driver thunderbolt_stream, che espone i dispositivi accessibili attraverso USB4STREAM mediante il percorso /dev/tbstreamX: qualsiasi programma in grado di utilizzare le tradizionali chiamate di sistema read() e write() può comunicare attraverso questi dispositivi senza modifiche sostanziali al codice.

Il kernel presenta il collegamento USB4 come un flusso bidirezionale di byte: l’applicazione non deve conoscere dettagli relativi a protocolli, indirizzamento o gestione della rete: legge e scrive dati come farebbe con un normale file.

La configurazione iniziale di USB4STREAM sfrutta ConfigFS, il filesystem virtuale utilizzato dal kernel per creare e gestire dinamicamente oggetti e funzionalità: gli amministratori possono definire uno o più stream assegnando identificatori specifici e configurando i relativi canali di comunicazione.

Un aspetto particolarmente interessante è la capacità di gestire più flussi di comunicazione contemporaneamente. Il numero massimo di flussi utilizzabili dipende soprattutto dalla quantità di DMA ring disponibili, ovvero le code hardware impiegate per trasferire i dati in modo efficiente senza gravare sul processore, e dal numero di HopID che possono essere assegnati all’interno della connessione Thunderbolt. In questo modo è possibile dedicare un canale alle operazioni di controllo e utilizzare uno o più canali separati per il trasferimento dei dati ad alta velocità.

Dai backup ai flussi video: gli scenari più interessanti

Come abbiamo già rilevato in passato, la documentazione pubblicata dagli sviluppatori mostra alcuni casi d’uso che aiutano a comprendere il potenziale della tecnologia.

Uno dei campi applicativi più immediati per USB4STREAM riguarda il backup diretto delle unità di memorizzazione. Un sistema può leggere il contenuto di un’unità NVMe attraverso strumenti come dd e inviarlo direttamente al dispositivo remoto senza configurare alcun servizio di rete.

Per chi gestisce infrastrutture Linux, questa possibilità assume particolare valore durante le operazioni di recupero d’emergenza. Un ambiente initramfs minimale può eseguire copie complete dei supporti di memorizzazione anche in assenza di stack di rete, server SSH o driver aggiuntivi.

Le applicazioni non si fermano però allo storage. Gli sviluppatori citano anche la condivisione di webcam tra computer differenti utilizzando framework multimediali come GStreamer. Una workstation desktop potrebbe acquisire il flusso video prodotto dalla videocamera integrata di un notebook collegato tramite USB4, sfruttando il collegamento come un canale dati ad alta velocità.

Lo stesso principio può essere esteso a sensori industriali, sistemi di acquisizione immagini, apparecchiature scientifiche o dispositivi che generano grandi quantità di dati e richiedono una latenza contenuta.

I requisiti tecnici e il supporto nel kernel Linux 7.2

USB4STREAM arriva nel kernel Linux 7.2 tramite il già citato modulo thunderbolt_streame richiede l’attivazione del supporto USB4_CONFIGFS. I flussi di dati vengono creati e amministrati attraverso ConfigFS, il sottosistema del kernel che consente di configurare dinamicamente le funzionalità del sistema, permettendo sia impostazioni manuali sia procedure automatizzate.

La presenza nel ramo principale di sviluppo del kernel significa che distribuzioni e produttori potranno integrare rapidamente la funzionalità una volta completato il ciclo di rilascio di Linux 7.2. L’adozione concreta dipenderà poi dagli strumenti sviluppati dalla comunità e dai produttori di software.

Il vantaggio di USB4STREAM deriva proprio dal fatto che introduce un’infrastruttura estremamente leggera che gli sviluppatori possono utilizzare per costruire soluzioni specializzate. Proprio questa semplicità potrebbe rappresentare il suo punto di forza principale.

Ovviamente, la velocità finale dei trasferimenti dipende dalla qualità del cavo, dal controller USB4 installato, dall’implementazione Thunderbolt della piattaforma e dal carico del sistema. Inoltre, non tutti i cavi USB-C supportano realmente le funzionalità USB4: servono collegamenti certificati USB4 o Thunderbolt per sfruttare appieno la tecnologia.

Le altre novità del sottosistema USB e Thunderbolt

L’integrazione di USB4STREAM non rappresenta l’unica modifica inclusa nell’aggiornamento del sottosistema USB e Thunderbolt per Linux 7.2. Gli sviluppatori hanno infatti introdotto anche miglioramenti nella gestione dei tunnel DisplayPort utilizzati nelle configurazioni multi-monitor tramite Thunderbolt, ottimizzando l’allocazione delle risorse disponibili.

Fa inoltre parte dello stesso aggiornamento un nuovo driver dedicato al monitoraggio termico del controller xHCI presente nei chipset AMD Promontory 21. Si tratta di un’aggiunta meno appariscente rispetto a USB4STREAM, ma importante per il controllo delle temperature e l’affidabilità delle piattaforme basate sul “pinguino”.

Ti consigliamo anche

Link copiato negli appunti