El koncept sustava stvarnog vremena To nije nešto o čemu se razmišljalo posljednjih godina u Linuxu, od ideje o ovome započeo prije gotovo 20 godina, točnije 2005. godine kao dio projekta “Realtime-Preempt” (“-rt”) s 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 sustav u sustav koji radi u stvarnom vremenu (u stvarnom vremenu). Glavni cilj PREEMPT_RT je smanjiti latenciju i osigurati predvidljivost u izvršavanju zadataka, što je ključno u aplikacijama koje zahtijevaju brze odgovore.
Jednostavnije rečeno, možemo reći da PREEMPT_RT omogućuje prekid gotovo svih dijelova kernela, što smanjuje latenciju. Za razliku od standardne jezgre, ne mogu se prekinuti svi dijelovi, što može uzrokovati kašnjenja u vremenu odgovora.
Od 2015. projekt je pod nadzorom Linux Foundationa a do sada je implementacija PREEMPT_RT moda bila ponuđena u obliku vanjskih zakrpa. Na temelju ovih zakrpa, distribucije kao što su RHEL, SUSE i Ubuntu stvorili su izdanja svojih proizvoda u stvarnom vremenu, visoko traženi u sektorima kao što su financijski sustavi, uređaji za obradu zvuka i videa, zrakoplovni sustavi, medicina, robotika, telekomunikacije i industrijske primjene, gdje je bitno jamčiti predvidljivo vrijeme odziva za događaje.
En 2019. započeo je proces promocije zakrpa razvijenih u projektu PREEMPT_RT na glavnu jezgru Linuxa. U verziji kernela 5.3 opcija PREEMPT_RT uključena je u konfiguracijsku datoteku kako bi se omogućio način rada u stvarnom vremenu.
Printk bitovi potrebni za PREEMPT_RT nalaze se u linux-next. Ovaj bila posljednja poznata prepreka za PREEMPT_RT. RT red čekanja ima također i "atomska konzola" za UART 8250 koja još nije dostupna linux-sljedeći. To znači ponašanje "naslijeđene konzole" kao kod neispisivanja s atomski kontekst u hitnim slučajevima. 8250 UART kontroler je jedini koji danas pruža podršku za “atomic console”.
sve ovaj rad će uskoro uroditi plodom, budući da je potpuna integracija potrebnih promjena trajala pet godina i pri kraju je, budući da se očekuje da će se u verziji 6.12 kernel moći 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 već postoji usvojen u grani linux-next. Dodatno, neblokirajuća atomska konzola čeka implementaciju za 8250 UART kontroler, čiji nedostatak trenutno sprječava izlaz hitnih poruka na konzolu iz koda koji se izvodi u atomskim kontekstima.
Sa spojenim printk bitovima, PREEMPT_RT se može omogućiti na X86, ARM64 i Risc-V. Ove tri spojene arhitekture zahtijevale su promjene tijekom godina.
godine, ostavljajući me u poziciji u kojoj nemam bitnih promjena u
red koji bi utjecao na njih. ARM i POWERPC imaju neke preostale bitne zakrpe...
Programeri Linux jezgre najavili su integraciju najnovijih potrebnih promjena u grani linux-next, koji će se koristiti za prevođenje verzije 6.12. Ove promjene će omogućiti da se kernel kompajlira s PREEMPT_RT opcijom, koja uvodi mogućnosti u stvarnom vremenu.
Nakon što se te promjene prihvate na glavnoj grani, način PREEMPT_RT Bit će dostupan za X86, ARM64 i RISC-V arhitekture. Podrška za ARM i POWERPC arhitekture bit će dodana kasnije, budući da potrebne zakrpe još nisu u potpunosti integrirane.
Vrijedi spomenuti da predložene izmjene još nisu konačne te je moguće da će PREEMPT_RT, ako ne stigne u granu 6.12, biti integriran do sljedeće godine u verziji 6.13.
Konačno, ako vas zanima više o tome, detalje možete provjeriti u sljedeći link.