El begreppet realtidssystem Det är inget man har tänkt på de senaste åren i Linux, sedan idén om detta startade för nästan 20 år sedan, för att vara exakt 2005 som en del av "Realtime-Preempt" ("-rt")-projektet med utvecklingen av PREEMPT_RT-läge för Linux-kärnan.
För de som inte vet PREEMPT_RT, de borde veta det det är en lapp för Linux-kärnanoch konverterar operativsystemet till ett i realtid (realtid). Huvudmålet med PREEMPT_RT är att minska fördröjningen och säkerställa förutsägbarhet i uppgiftsexekveringen, vilket är avgörande i applikationer som kräver snabba svar.
Med enklare ord kan vi säga att PREEMPT_RT tillåter nästan alla delar av kärnan att avbrytas, vilket minskar latensen. Till skillnad från en standardkärna kan inte alla sektioner avbrytas, vilket kan orsaka förseningar i svarstider.
Sedan 2015 har projektet varit under överinseende av Linux Foundation och fram till nu har implementeringen av PREEMPT_RT-läget erbjudits i form av externa patchar. Baserat på dessa patchar kan distributioner som t.ex RHEL, SUSE och Ubuntu har skapat realtidsutgåvor av sina produkter, mycket efterfrågad inom sektorer som finansiella system, ljud- och videobehandlingsenheter, flygsystem, medicin, robotteknik, telekommunikation och industriella tillämpningar, där det är viktigt att garantera förutsägbara svarstider för evenemang.
En 2019 började befordransprocessen av patchar som utvecklats i PREEMPT_RT-projektet till Linux-huvudkärnan. I kärnversion 5.3 inkluderades alternativet PREEMPT_RT i konfigurationsfilen för att aktivera realtidsläge.
Printk-bitarna som krävs för PREEMPT_RT finns i linux-next. Detta var det sista kända hindret för PREEMPT_RT. RT-kön har även "atomkonsolen" för UART 8250 som ännu inte är inne linux-nästa. Detta betyder "legacy console"-beteende som att inte skriva ut från det atomära sammanhanget i nödfall. 8250 UART-kontrollern är den enda som ger stöd för "atomic console" idag.
Alla detta arbete är på väg att bära frukt, eftersom den fullständiga integreringen av de nödvändiga ändringarna har tagit fem år och närmar sig slutförandet, eftersom det förväntas att i version 6.12 kan kärnan kompileras i PREEMPT_RT-läge utan att behöva applicera ytterligare patchar.
Det nämns att det sista hindret som hindrade PREEMPT_RT från att aktiveras var avsaknaden av stöd för icke-blockerande atomutdata med printk-funktionen. Denna funktion har redan funnits antogs i linux-next-grenen. Dessutom väntar en icke-blockerande atomkonsol på implementering för 8250 UART-kontrollern, vars frånvaro för närvarande förhindrar utmatning av nödmeddelanden till konsolen från kod som exekveras i atomsammanhang.
Med sammanslagna printk-bitar kunde PREEMPT_RT aktiveras på X86, ARM64 och Risc-V. Dessa tre sammanslagna arkitekturer krävde förändringar under åren.
år, vilket lämnar mig i en position där jag inte har några väsentliga förändringar i
kö som skulle påverka dem. ARM och POWERPC har några viktiga patchar kvar...
Linux-kärnutvecklare har meddelat integrationen av de senaste nödvändiga ändringarna i linux-nex-grenent, som kommer att användas för att kompilera version 6.12. Dessa ändringar gör att kärnan kan kompileras med alternativet PREEMPT_RT, som introducerar realtidsfunktioner.
När dessa ändringar har godkänts på huvudgrenen, PREEMPT_RT-läge Den kommer att vara tillgänglig för X86, ARM64 och RISC-V arkitekturer. Stöd för ARM- och POWERPC-arkitekturer kommer att läggas till senare, eftersom nödvändiga patchar ännu inte har integrerats helt.
Det är värt att nämna att de föreslagna ändringarna ännu inte är slutgiltiga och det är möjligt att om PREEMPT_RT inte kommer till 6.12-grenen kommer den att integreras till nästa år i version 6.13.
Slutligen, om du är intresserad av att veta mer om detkan du kontrollera detaljerna i följande länk.