Linux 6.12 kan ha "PREEMPT_RT"-støtte i sanntid

Preempt-RT er en modifikasjon som lar oppgaver med høyere prioritet avbryte oppgaver med lavere prioritet.

El konseptet med et sanntidssystem Det er ikke noe man har tenkt på de siste årene i Linux, siden ideen om dette startet for nesten 20 år siden, for å være nøyaktig i 2005 som en del av "Realtime-Preempt" ("-rt")-prosjektet med utvikling av PREEMPT_RT-modus for Linux-kjernen.

For de som ikke vet PREEMPT_RT, de burde vite det det er en lapp for Linux-kjernenog konverterer operativsystemet til et sanntids operativsystem (sanntid). Hovedmålet med PREEMPT_RT er å redusere latens og sikre forutsigbarhet i oppgaveutførelse, noe som er avgjørende i applikasjoner som krever raske svar.

Med enklere ord kan vi si at PREEMPT_RT lar nesten alle deler av kjernen bli avbrutt, som reduserer ventetiden. I motsetning til en standardkjerne kan ikke alle seksjoner avbrytes, noe som kan føre til forsinkelser i responstider.

Siden 2015 har prosjektet vært under oppsyn av Linux Foundation og inntil nå har implementeringen av PREEMPT_RT-modus blitt tilbudt i form av eksterne patcher. Basert på disse oppdateringene kan distribusjoner som f.eks RHEL, SUSE og Ubuntu har laget sanntidsutgaver av produktene sine, svært etterspurt i sektorer som finanssystemer, lyd- og videobehandlingsenheter, luftfartssystemer, medisin, robotikk, telekommunikasjon og industrielle applikasjoner, hvor det er viktig å garantere forutsigbare responstider for hendelser.

En 2019 startet forfremmelsesprosessen av oppdateringene utviklet i PREEMPT_RT-prosjektet til hoved Linux-kjernen. I kjerneversjon 5.3 ble PREEMPT_RT-alternativet inkludert i konfigurasjonsfilen for å aktivere sanntidsmodus.

Printk-bitene som kreves for PREEMPT_RT er plassert i linux-next. Dette var den siste kjente hindringen for PREEMPT_RT. RT-køen har også "atomkonsollen" for UART 8250 som ennå ikke er inne linux-neste. Dette betyr "eldre konsoll"-adferd som å ikke skrive ut fra atomkonteksten i nødstilfeller. 8250 UART-kontrolleren er den eneste som gir «atomic console»-støtte i dag.

Alle Dette arbeidet er i ferd med å bære frukter., siden den fullstendige integreringen av de nødvendige endringene har tatt fem år og nærmer seg ferdigstillelse, siden det forventes at i versjon 6.12 kan kjernen kompileres i PREEMPT_RT-modus uten behov for å bruke flere patcher.

Det nevnes at det siste hinderet som forhindret PREEMPT_RT fra å bli aktivert var mangelen på støtte for ikke-blokkerende atomutgang ved å bruke printk-funksjonen. Denne funksjonaliteten har allerede vært adoptert i linux-neste gren. I tillegg venter en ikke-blokkerende atomkonsoll implementering for 8250 UART-kontrolleren, hvis fravær for øyeblikket forhindrer utgang av nødmeldinger til konsollen fra kode utført i atomkontekster.

Med printk-biter slått sammen, kan PREEMPT_RT aktiveres på X86, ARM64 og Risc-V. Disse tre sammenslåtte arkitekturene krevde endringer gjennom årene.
år, og etterlater meg i en posisjon hvor jeg ikke har noen vesentlige endringer i
køen som vil påvirke dem. ARM og POWERPC har noen viktige oppdateringer igjen...

Linux-kjerneutviklere har annonsert integrasjonen av de siste nødvendige endringene i linux-nex-grenent, som vil bli brukt til å kompilere versjon 6.12. Disse endringene vil tillate at kjernen kompileres med PREEMPT_RT-alternativet, som introduserer sanntidsfunksjoner.

Når disse endringene er akseptert på hovedgrenen, PREEMPT_RT-modus Den vil være tilgjengelig for X86, ARM64 og RISC-V arkitekturer. Støtte for ARM- og POWERPC-arkitekturer vil bli lagt til senere, da de nødvendige oppdateringene ennå ikke er fullstendig integrert.

Det er verdt å nevne at de foreslåtte endringene ennå ikke er endelige, og det er mulig at hvis PREEMPT_RT ikke kommer i 6.12-grenen, vil den bli integrert til neste år i versjon 6.13.

Endelig, hvis du er interessert i å vite mer om det, kan du sjekke detaljene i følgende lenke.