Dopo quasi vent’anni PREEMPT_RT, ossia Real Time Linux, è finalmente parte del Kernel Linux

Al termine di quella che potremmo definire una diatriba ultra decennale a proposito della propria inclusione, le patch PREEMPT_RT, create e manutenute dal progetto Real Time Linux, saranno incluse all’interno della prossima release del Kernel Linux, la 6.12.

L’ingresso nella mainline del Kernel costituisce una notizia proprio per il tempo che ha richiesto. Come racconta ZDNet, il dibattito intorno a questa inclusione va sostanzialmente avanti dal 2005.

Ma partiamo dall’inizio: in cosa consiste Real Time Linux?

Real-Time Linux (RTL) è una versione del kernel Linux ottimizzata per garantire la capacità di un sistema di rispondere a un evento o completare un’operazione entro un intervallo di tempo predefinito e garantito, attraverso una patch denominata PREEMPT_RT.

Questa patch permette la così detta preemption completa dei processi, riducendo la latenza e assicurando che operazioni critiche siano eseguite entro intervalli di tempo prevedibili. È usato in applicazioni dove i tempi di risposta sono cruciali, come sistemi embedded, automazione industriale e dispositivi medici.

Il progetto Real Time Linux è stato creato proprio con lo scopo di aiutare a coordinare gli sforzi per inserire nella mainline del Kernel Preempt RT e garantire che i manutentori avessero la possibilità di continuare a sviluppare, ottenere supporto a lungo termine e continuare a fare ricerca nell’ambito del Real Time.

Ogni distribuzione ha sempre avuto l’opzione per installare dei Kernel che avessero inclusa la patch, che da sempre quindi è stata un’entità “esterna”. Quel che oggi è cambiato, o meglio che cambierà con Linux 6.12 è che tutto questo sarà “incluso nel prezzo” di un Kernel standard.

Sia chiaro: se siete utilizzatori desktop questa cosa non vi cambierà in alcun modo la vita, poiché il genere di applicazioni che richiede questa funzionalità è completamente out-of-scope rispetto ad un utilizzo quotidiano ed anzi, attivare la PREEMPT_RT su un laptop potrebbe portare a seri problemi di gestione risorse.

L’articolo di ZDNet cerca anche di sondare i motivi in merito al perché il supporto ci ha messo così tanto ad essere incluso e questi sono molteplici: il codice (con alcune problematiche tecniche di inclusione), la politica in generale (a preoccuparsi del real time erano davvero in pochi) e, senza grosse sorprese, i fondi in merito agli sviluppi (che son sempre stati pochi).

Da qui i vent’anni circa che sono stati necessari.

A partire dal Kernel 6.12 non ci saranno più scuse: quel laser per le saldature industriali che avevate comprato per pure diletto e vi siete dimenticati in cantina dovrà essere rispolverato!

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

7 risposte a “Dopo quasi vent’anni PREEMPT_RT, ossia Real Time Linux, è finalmente parte del Kernel Linux”

  1. Avatar Black_Codec

    Non sono espertissimo ma da quello che ricordo degli studi fatti in realtà l'essere RealTime non garantisce il completamento dell'esecuzione, o meglio dato un input ci si attende che venga completato in x secondi ma se ne impiega x+1 semplicemente risulta fallito come processo. Ricordo male?

  2. Avatar BlaBla
    BlaBla

    Non sarebbe più realtime. Un kernel realtime dovrebbe dare una priorità speciale ai task che richiedono esecuzione realtime e il grosso del lavoro sta nel fatto che il kernel riesca anche a fare lo switch di task durante l'esecuzione di una routine di interrupt hardware senza corrompere la consistenza del sistema.

  3. Avatar JaK
    JaK

    In quel caso è un soft real-time. Si tratta di situazioni in cui aver perso qualche istante non crea danni, come può essere il caso di un server audio.

    Il caso contrario, quello di un hard realtime, è spiegato nel commento di BlaBla. E lì no, non c’è margine di tolleranza perché siamo in contesti come centrali nucleari, sommergibili o aerei

  4. Avatar Black_Codec

    Scusami ma in questo modo come puoi rispettare le deadline? Se lo scheduler switcha tra i processi, immagino in base alla priorità, come fa ad essere deterministico? Ci sarebbe la possibilità che non lo fosse per un task se la coda prioritaria esaurisse la disponibilità computazionale no?

  5. Avatar BlaBla
    BlaBla

    ovviamente non è tutto li, cè anche un timer molto più veloce che forza il kernel a switchare task molte più volte a secondo, quindi con una granularità molto più fine e sicuramente molte altre cose e magari dovresti leggere la documentazione, io penso che se sono 20 anni che ci lavorano e se è stato accettato da torvalds come patch e se dicono che è realtime sarà realtime

  6. Avatar Black_Codec

    Ah ma io non discuto la loro implementazione ma puntualizzavo come è stato tradotto il concetto di real time nell'articolo, o meglio come l'avevo inteso io leggendo l'articolo.

  7. Avatar Giok
    Giok

    Laser per le saldature industriali… certo che la gente ha proprio di tutto in cantina 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *