El concepte d'un sistema en temps real no és una cosa que s'hagi pensat en els darrers anys a Linux, ja que la idea d'aquest inici fa gairebé 20 anys, sent exactes el 2005 com a part del projecte Realtime-Preempt (-rt) amb el desenvolupament del mode PREEMPT_RT per al nucli de Linux.
Per a qui desconeixen de PREEMPT_RT, Han de saber que és un pegat per al nucli de Linux qui converteix el sistema operatiu en un temps real (real-time). L'objectiu principal de PREEMPT_RT és reduir la latència i garantir la predictibilitat en l'execució de tasques, cosa que és crucial en aplicacions que requereixen respostes rà pides.
En paraules més simples, podem dir que PREEMPT_RT permet que gairebé totes les parts del nucli puguin ser interrompudes, cosa que redueix la latència. A diferència d'un nucli està ndard, no totes les seccions poden ser interrompudes, cosa que pot causar retards en els temps de resposta.
Des del 2015 el projecte ha estat sota la supervisió de la Fundació Linux i fins ara, la implementació del mode PREEMPT_RT s'ha ofert en forma de pegats externs. Basant-se en aquests pegats, distribucions com RHEL, SUSE i Ubuntu han creat edicions en temps real dels seus productes, altament demandades en sectors com els sistemes financers, dispositius de processament d'à udio i vÃdeo, sistemes d'aviació, medicina, robòtica, telecomunicacions i aplicacions industrials, on és essencial garantir temps de resposta predictibles per als esdeveniments.
En 2019 va començar el procés de promoció dels pegats desenvolupats al projecte PREEMPT_RT cap al nucli principal de Linux. A la versió 5.3 del nucli, es va incloure l'opció PREEMPT_RT al fitxer de configuració per habilitar el mode en temps real.
Els bits printk necessaris per PREEMPT_RT es troben a linux-next. Aquest va ser el darrer obstacle conegut per PREEMPT_RT. La cua RT té a més la «consola atòmica» per a l'UART 8250 que encara no és a linux-next. Això significa un comportament de «consola heretada» com en el cas que no s'imprimeixi des de context atòmic en casos d'emergència. El controlador UART 8250 és lúnic que proporciona suport de «consola atòmica» avui dia.
Tot aquesta feina està per donar els seus fruits, ja que la integració completa dels canvis necessaris ha pres cinc anys i està a punt de concloure, ja que s'espera que a la versió 6.12, el nucli es pugui compilar en mode PREEMPT_RT sense necessitat d'aplicar pegats addicionals.
S'esmenta que el darrer obstacle que impedia l'habilitació de PREEMPT_RT era la manca de suport per a la sortida atòmica sense bloqueig mitjançant la funció printk. Aquesta funcionalitat ja ha estat adoptada a la branca linux-next. A més, s'està esperant la implementació d'una consola atòmica sense bloqueig per al controlador UART 8250, l'absència del qual actualment impedeix la sortida de missatges d'emergència a la consola des de codi executat en contextos atòmics.
Amb els bits printk fusionats, PREEMPT_RT podria habilitar-se a X86, ARM64 i Risc-V. Aquestes tres arquitectures fusionades van requerir canvis al llarg dels
anys, deixant-me en una posició en què no tinc canvis essencials en la
cua que els afectarien. ARM i POWERPC tenen alguns pegats essencials restants…
Els desenvolupadors de el nucli de Linux han anunciat la integració dels últims canvis necessaris a la branca linux-next, que es farà servir per compilar la versió 6.12. Aquests canvis permetran compilar el nucli amb l'opció PREEMPT_RT, que introdueix capacitats en temps real.
Quan aquests canvis s'acceptin a la branca principal, el mode PREEMPT_RT estarà disponible per a les arquitectures X86, ARM64 i RISC-V. El suport per a les arquitectures ARM i POWERPC s'afegirà posteriorment, ja que els pegats necessaris encara no han estat completament integrats.
Cal esmentar que els canvis proposats encara no són definitius i és possible que si PREEMPT_RT no arriba a la branca 6.12, sigui integrada fins al proper any a la versió 6.13.
Finalment, si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls al següent enllaç.