El koncept sistema u realnom vremenu To nije nešto o čemu se razmišljalo posljednjih godina u Linuxu, od ideje o tome počela prije skoro 20 godina, tačnije 2005. godine kao dio projekta “Realtime-Preempt” (“-rt”) sa razvojem PREEMPT_RT moda za Linux kernel.
Za one koji ne znaju PREEMPT_RT, to bi trebali znati to je zakrpa za Linux kerneli pretvara operativni sistem u sistem u realnom vremenu (u realnom vremenu). Glavni cilj PREEMPT_RT je smanjiti kašnjenje i osigurati predvidljivost u izvršavanju zadataka, što je ključno u aplikacijama koje zahtijevaju brze odgovore.
Jednostavnijim riječima, možemo reći da PREEMPT_RT omogućava prekid gotovo svih dijelova kernela, što smanjuje kašnjenje. Za razliku od standardnog kernela, ne mogu se sve sekcije prekinuti, što može uzrokovati kašnjenje u vremenu odgovora.
Od 2015. godine projekat je pod nadzorom Linux fondacije a do sada je implementacija PREEMPT_RT moda bila ponuđena u obliku eksternih zakrpa. Na osnovu ovih zakrpa, distribucije kao što su RHEL, SUSE i Ubuntu kreirali su izdanja svojih proizvoda u realnom vremenu, veoma tražen u sektorima kao što su finansijski sistemi, uređaji za audio i video obradu, vazduhoplovni sistemi, medicina, robotika, telekomunikacije i industrijske aplikacije, gde je neophodno garantovati predvidljivo vreme odziva na događaje.
En 2019. započeo je proces promocije od zakrpa razvijenih u projektu PREEMPT_RT na glavni Linux kernel. U verziji kernela 5.3, opcija PREEMPT_RT bila je uključena u konfiguracijski fajl kako bi se omogućio način rada u realnom vremenu.
Printk bitovi potrebni za PREEMPT_RT nalaze se u linux-next. Ovo je bila posljednja poznata prepreka za PREEMPT_RT. RT red ima također i "atomska konzola" za UART 8250 koja još nije ugrađena linux-next. To znači ponašanje "naslijeđene konzole" kao da se ne ispisuje iz atomski kontekst u hitnim slučajevima. 8250 UART kontroler je jedini koji danas pruža podršku za "atomsku konzolu".
todo ovaj rad će uroditi plodom, budući da je kompletna integracija potrebnih izmjena trajala pet godina i privodi se kraju, budući da se očekuje da se u verziji 6.12 kernel može kompajlirati u PREEMPT_RT modu bez potrebe za primjenom dodatnih zakrpa.
Spominje se da je posljednja prepreka koji je spriječio PREEMPT_RT da bude omogućen je nedostatak podrška za neblokirajući atomski izlaz pomoću funkcije printk. Ova funkcionalnost je već bila usvojeno u linux-next grani. Dodatno, atomska konzola koja ne blokira blokadu čeka implementaciju za 8250 UART kontroler, čiji nedostatak trenutno sprečava izlaz hitnih poruka na konzolu iz koda koji se izvršava u atomskom kontekstu.
Sa spojenim printk bitovima, PREEMPT_RT bi mogao biti omogućen na X86, ARM64 i Risc-V. Ove tri spojene arhitekture zahtijevale su promjene tokom godina.
godine, ostavljajući me u poziciji u kojoj nemam suštinskih promena u
red koji bi na njih uticao. ARM i POWERPC imaju preostale neke bitne zakrpe…
Programeri Linux kernela su najavili integraciju najnovijih neophodnih izmena u linux-nex granut, koji će se koristiti za kompajliranje verzije 6.12. Ove promjene će omogućiti da se kernel kompajlira sa PREEMPT_RT opcijom, koja uvodi mogućnosti u realnom vremenu.
Kada se ove promjene prihvate na glavnoj grani, PREEMPT_RT mod Biće dostupan za X86, ARM64 i RISC-V arhitekture. Podrška za ARM i POWERPC arhitekture će biti dodata kasnije, pošto potrebne zakrpe još nisu u potpunosti integrisane.
Vrijedi napomenuti da predložene izmjene još nisu konačne i moguće je da će, ukoliko PREEMPT_RT ne stigne u granu 6.12, biti integriran do sljedeće godine u verziji 6.13.
Na kraju, ako ste zainteresirani da saznate više o tome, detalje možete provjeriti u sljedeći link.