Efter två decennier av ihärdigt arbete har realtids-Linux, känt som PREEMPT_RT, officiellt integrerats i Linux huvudkärna. Linus Torvalds, skaparen av Linux, godkände nyligen denna milstolpe under Open Source Summit Europe, vilket markerar en betydande utveckling för operativsystemet med öppen källkod. Men varför tog det så lång tid att nå hit?
Vad är ett RTOS?
Ett realtidsoperativsystem (RTOS) är utformat för att hantera tidskritiska uppgifter med hög precision och pålitlighet. Till skillnad från generella operativsystem som Windows eller macOS, är ett RTOS konstruerat för att reagera på händelser och bearbeta data inom strikta tidsbegränsningar, ofta i millisekunder eller mikrosekunder. Enligt Steven Rostedt, en ledande utvecklare av realtids-Linux och ingenjör på Google, innebär realtid ”det snabbaste värsta fallet”.
Den avgörande egenskapen hos ett RTOS är dess deterministiska beteende. Det garanterar att kritiska uppgifter slutförs inom specificerade tidsramar. Många tror felaktigt att RTOS handlar om hastighet, men det handlar egentligen om förutsägbarhet och pålitlighet. Detta är särskilt viktigt i applikationer där timing är kritisk, såsom industriella styrsystem, medicinsk utrustning och flygelektronik.
Exempel på RTOS som används idag inkluderar VxWorks, som styr NASAs Mars-rovers och avioniksystemen i Boeing 787 Dreamliner, samt QNX Neutrino, som används i bilars infotainmentsystem och avancerade förarassistansfunktioner som ABS-bromsar.
Utvecklingen av realtids-Linux
Med lanseringen av den kommande Linux 6.12-kärnan kommer realtids-Linux-koden att vara integrerad i alla Linux-distributioner. Detta banar väg för att Linux ska användas i fler kritiska system och industriell hårdvara. Men resan hit har varit lång och komplex.
I slutet av 1990-talet ökade behovet av att Linux skulle stödja realtidsapplikationer. Initiala försök fokuserade på att skapa separata realtidskärnor parallellt med Linux-kärnan, såsom projekten KURT från University of Kansas, RTAI från University of Milano och RTLinux från New Mexico Institute of Mining and Technology.
År 2004 tog Ingo Molnar, en erfaren Linux-kärnutvecklare, initiativet att samla och förbättra dessa tekniker för att skapa grunden till patch-setet PREEMPT_RT. Till skillnad från tidigare metoder modifierade denna strategi den befintliga Linux-kärnan istället för att skapa en separat realtidskärna.
Fram till 2009 hade ett team bestående av Thomas Gleixner, Peter Zijlstra och Steven Rostedt konsoliderat tidigare utvecklingar till ett enhetligt patch-set. Detta möjliggjorde för många företag att bygga industriella system med hårda realtidskrav och millisekundprecision.
Under åren har många komponenter från realtids-Linux integrerats i huvudkärnan. Funktioner som NO_HZ, som minskar strömförbrukningen i inaktiva system, har blivit avgörande för Linux prestanda i moderna datacenter. Enligt Rostedt skulle Linux inte vara där det är idag utan bidragen från realtidsprojektet.
Oväntade användningsområden och bidrag
Realtids-Linux har också funnit oväntade användningsområden. Musiker var tidiga adoptörer eftersom realtidsfunktionerna möjliggjorde högkvalitativa ljudinspelningar på standardhårdvara, tack vare låg latens och förbättrad ljudhantering. Andra viktiga bidrag från projektet inkluderar införandet av mutexar, felsökningsverktyget ftrace, och stöd för prioritetsarv i användarapplikationer.
Utmaningar och förseningar
En av huvudorsakerna till den långa integrationstiden var utvecklarnas höga kvalitetskrav. Koden skrevs ofta om flera gånger för att uppfylla standarderna för huvudkärnan. Dessutom var det initialt svårt att få stöd inom Linux-communityn för realtidsfunktioner, och finansieringen för projektet var länge osäker.
Det sista stora hindret var omarbetningen av funktionen printk
, ett kritiskt felsökningsverktyg som introducerade oacceptabla fördröjningar i realtidssystem. Efter omfattande diskussioner och kompromisser kunde utvecklarna anpassa printk
på ett sätt som tillfredsställde både behovet av snabb felsökning och krav på låg latens.
En ny era för Linux
Med fullständig integration av realtidsfunktioner är Linux-kärnan nu fullt preemptiv, vilket möjliggör reaktionstider på mikrosekundnivå. Detta är avgörande för applikationer som kräver extrem precision, inklusive industriella styrsystem, robotik och professionell ljudproduktion.
Denna utveckling positionerar Linux som en seriös aktör inom RTOS-världen. Det är inte bara en seger för utvecklare och företag som kräver realtidsfunktioner, utan också för hela Linux-communityn. Integrationen öppnar dörrar för nya användningsområden och stärker Linux position som ett mångsidigt och pålitligt operativsystem för en mängd olika applikationer.
Artikel ovan bygger på data ifrån
https://www.zdnet.com/article/20-years-later-real-time-linux-makes-it-to-the-kernel-really