„Linux 6.12“ gali turėti „PREMPT_RT“ palaikymą realiuoju laiku

Preempt-RT yra modifikacija, leidžianti didesnio prioriteto užduotims nutraukti žemesnio prioriteto užduotis.

El realaus laiko sistemos samprata Tai nėra kažkas, apie ką pastaraisiais metais buvo galvojama „Linux“, nuo tada, kai kilo ši idėja prasidėjo beveik prieš 20 metų, tiksliau – 2005 m kaip „Realtime-Preempt“ („-rt“) projekto dalis, kuriant PREEMPT_RT režimą Linux branduoliui.

Tiems, kurie nežino PREEMPT_RT, jie turėtų tai žinoti tai pleistras Linux branduoliuiir konvertuoja operacinę sistemą į realaus laiko operacinę sistemą (realiu laiku). Pagrindinis PREEMPT_RT tikslas yra sumažinti delsą ir užtikrinti užduočių vykdymo nuspėjamumą, o tai labai svarbu programose, kurioms reikia greitų atsakymų.

Paprasčiau tariant, galime pasakyti, kad PREEMPT_RT leidžia pertraukti beveik visas branduolio dalis, kuris sumažina delsą. Skirtingai nuo standartinio branduolio, ne visos sekcijos gali būti pertrauktos, todėl atsako laikas gali vėluoti.

Nuo 2015 m. projektą prižiūri Linux Foundation ir iki šiol PREEMPT_RT režimo įgyvendinimas buvo siūlomas išorinių pataisų pavidalu. Remiantis šiais pataisymais, tokie platinimai kaip RHEL, SUSE ir Ubuntu sukūrė savo produktų leidimus realiuoju laiku, labai paklausūs tokiuose sektoriuose kaip finansinės sistemos, garso ir vaizdo apdorojimo įrenginiai, aviacijos sistemos, medicina, robotika, telekomunikacijos ir pramonė, kur būtina užtikrinti nuspėjamą reagavimo į įvykius laiką.

En 2019 metais prasidėjo skatinimo procesas pataisų, sukurtų PREEMPT_RT projekte į pagrindinį Linux branduolį. Branduolio 5.3 versijoje PREEMPT_RT parinktis buvo įtraukta į konfigūracijos failą, kad būtų įjungtas realaus laiko režimas.

Printk bitai, reikalingi PREEMPT_RT, yra Linux-next. Tai buvo paskutinė žinoma kliūtis PREEMPT_RT. RT eilė turi taip pat „atominė konsolė“, skirta UART 8250, kurios dar nėra linux-next. Tai reiškia „senos konsolės“ elgseną kaip nespausdinimą iš atominis kontekstas kritiniais atvejais. 8250 UART valdiklis yra vienintelis kuri šiandien teikia „atominės konsolės“ palaikymą.

Visi šis darbas netrukus duos vaisių, kadangi pilnas būtinų pakeitimų integravimas užtruko penkerius metus ir artėja prie pabaigos, nes tikimasi, kad 6.12 versijoje branduolį bus galima kompiliuoti PREEMPT_RT režimu, nereikia taikyti papildomų pataisų.

Minima, kad paskutinė kliūtis neleido įjungti PREEMPT_RT neblokuojančios atominės išvesties palaikymas naudojant printk funkciją. Ši funkcija jau buvo priimtas Linux-next filiale. Be to, laukiama neblokuojančios atominės konsolės įdiegimo 8250 UART valdikliui, kurio nebuvimas šiuo metu neleidžia į konsolę išvesti avarinius pranešimus iš kodo, vykdomo atominiame kontekste.

Sujungus printk bitus, PREEMPT_RT galima įjungti X86, ARM64 ir Risc-V. Šios trys sujungtos architektūros reikalavo pokyčių bėgant metams.
metų, palikdamas mane tokioje padėtyje, kurioje neturiu esminių pokyčių
eilės, kuri juos paveiktų. ARM ir POWERPC liko keletas esminių pataisų...

„Linux“ branduolio kūrėjai paskelbė apie naujausių būtinų pakeitimų integravimą linux-nex šakojet, kuri bus naudojama 6.12 versijai kompiliuoti. Šie pakeitimai leis branduolį kompiliuoti naudojant PREEMPT_RT parinktį, kuri suteikia realiojo laiko galimybes.

Kai šie pakeitimai bus priimti pagrindinėje šakoje PREEMPT_RT režimas Jis bus prieinamas X86, ARM64 ir RISC-V architektūroms. ARM ir POWERPC architektūrų palaikymas bus pridėtas vėliau, nes būtini pataisymai dar nėra visiškai integruoti.

Verta paminėti, kad siūlomi pakeitimai dar nėra galutiniai ir gali būti, kad jei PREEMPT_RT nepateks į 6.12 šaką, jis iki kitų metų bus integruotas į 6.13 versiją.

Galiausiai, jei norite sužinoti daugiau apie tai, išsamią informaciją galite patikrinti sekanti nuoroda.