ot DeepUltramarine(28-04-2026)

Zapochvaiki ot Linux 7.1 (v momenta e v rc1 kum april 2026g.), veche shte mozhe da se kompilira realno-vremevo iadro za klasicheskiia 32 bitov ARM direktno ot osnovniia iztochnik na Linux, bez da sa nuzhni nikakvi vunshni krupki (patches).

PREEMPT_RT e goliam nabor ot promeni v Linux iadroto, koito go prevrushta v operatsionna sistema s rabota v realno vreme (Real-Time Operating System – RTOS).

V obiknovenoto Linux iadro ima mnogo protsesi (kato obrabotka na prekusvaniia, zaklyuchvaniia i dulgi operatsii v iadroto), koito zabraniavat prekusvaneto na zadachite. Tova vodi do nepredvidimi zakusneniia pri izpulnenieto na po-vazhnite zadachi.
S PREEMPT_RT pochti tsialoto iadro stava prekusvaemo (preemptible).
Zaklyuchvaniiata (spinlocks) se prevrushtat v normalni mutex-i, koito pozvoliavat na visokoprioritetni realno-vremevi zadachi da prekusvat iadroto mnogo po-nadezhdno.

V obiknovenoto Linux iadro se izpolzva mehanizum, narechen spinlock.
Toi e mnogo burz, no si ima nedostatuk - dokato edin protses durzhi spinlock, drugite zadachi chakat i se vurtiat v prazen tsikul, a chesto ne mogat da obrabotvat i prekusvaniia, ako sa izpolzvani spin_lock_irq() ili spin_lock_irqsave().
Tova pravi spinlock-a mnogo burz za kratki kritichni sektsii, no losh variant za obrabotna na zadachi v "realno" vreme, zashtoto suzdava nepredvidimi i chesto, dulgi zakusneniia.

S PREEMPT_RT iadro neshtata se promeniat znachitelno.
Obiknovenite spinlock_t se prevrushtat v rt_mutex (t.e. rabotiat kato mutex). Prekusvaniiata ne se zabraniavat dokato se durzhi takuv lock.
Mutex-a e mehanizum (instrument) v programiraneto i operatsionnite sistemi, koito sluzhi da predpazi spodelen resurs (naprimer promenliva, masiv, fail ili chast ot pametta), taka che samo edna zadacha (nishka ili protses) da mozhe da go izpolzva v daden moment.
Tova predpazva dannite ot promeni po vreme na izpulnenieto na edin protses, ot drug, kato po tozi nachin se predotvratiavat nezhelani i nepredvidimi rezultati.
Ako druga zadacha iska da raboti s dannite, tia podava zaiavka za tova do iadroto i se narezhda na opashkata, kato zadachite mogat da budat prekusnati ot po-visokoprioritetni realno-vremevi takiva, sled kato zavurshat kritichnata si chast i osvobodiat sami "klyuchalkata".

Takava e i tselta na PREEMPT_RT - da napravi iadroto po- "prekusvaemo" i predvidimo. Sinhronizatsiia na protsesite spored prioriteta im. Mehanizmut e malko po-slozhen, ne tuk niama da navlizame v takiva detaili - preemption, priority inheritance, Threaded interrupts, Preemptible RCU, premahvane ili namaliavane na dulgi uchastutsi, v koito se zabraniavat prekusvaniiata (irq disable), kakto i po-dobro upravlenie na prioritetite v scheduler-a za realno-vremevi zadachi (SCHED_FIFO, SCHED_RR, SCHED_DEADLINE).

S tova ne pretendiram, che samiiat az razbiram kak se sluchva vsichko tova. :)
Linkovete sa za zainteresovanite.

Vgradenata poddruzhka na "realnovremevi" protsesi v 7.1 shte e mnogo vazhna za sistemi, koito iziskvat garantirano i predvidimo vreme za reaktsiia.
Pri industrialniia kontrol (PLC, avtomatizatsiia), v robotikata, pri profesionalna obrabotka na zvuk (iska se niska latentnost), pri avtomobilite, v CNC mashini, v meditsinata, kakto i v ogromnoto mnozhestvo ot embedded ustroistva s iziskvaniia za rabota v realno vreme.

Poslednata goliama prechka pri 32-bitoviia ARM beshe svurzana s obrabotkata na greshki v ARM arhitekturata. Tia beshe popravena tochno predi izlizaneto na Linux 7.1-rc1. Sled tova RT ekiput obiavi, che vsichki spetsifichni krupki za ARM veche sa nenuzhni i vsichko neobhodimo veche e v osnovnoto iadro.
Taka 32-bitoviiat ARM se narezhda do ostanalite arhitekturi, koito veche imaha tazi poddruzhka - x86 / x86_64, ARM64, RISC-V.

Veche niama da e nuzhno da se poddurzhat i prenasiat vunshni krupki pri vsiaka nova versiia na iadroto. Prosto vklyuchvate edna optsiia v konfiguratsiiata.
Tova osiguriava i po-dobra dulgosrochna poddruzhka i sigurnost. Mozhete da izpolzvate nai-novoto osnovno iadro s vsichki popravki i podobreniia, vmesto da stoite na stari versii s krupki.

SHTe bude po-lesno i za distributsiite.
Razprostraniteli kato Yocto, Debian, Ubuntu i drugi mogat po-lesno da predlagat ofitsialni realno-vremevi iadra za stari i novi ARM platki (BeagleBone, Raspberry Pi v 32-bitov rezhim, industrialni kontroleri i t.n.).

I dokato se govori za realno vreme, sledva da se utochni, zashto postaviah tozi izraz v kavichki.
Dori s RT iadro, realnoto vreme za obrabotka zavisi mnogo ot harduera. Kolko burzo se obrabotvat prekusvaniiata, kesh pametta, skorostta na transfer na dannite, draiverite i t.n.. To ne prevrushta obiknoven protsesor v tvurdo realno-vremev mikrokontroler. Niakoi draiveri vse oshte triabva da se nastroivat vnimatelno za kritichni prilozheniia.

S dve dumi, tova e porednata vazhna krachka (sled pochti 20 godini rabota) kum prevrushtaneto na osnovnoto Linux iadro v dobra platforma za rabota v realno vreme na pochti vsichki populiarni arhitekturi. Za horata, koito rabotiat s realno-vremevi sistemi na po-stari ARM platki, novinata e naistina dobra.

Izlizaneto na Linux kernel 7.1 se ochakva da e niakude prez yuni.

Iztochnik: https://www.phoronix.com/news/Linux-7.1-ARM-RT
Izpolzvani sa i drugi iztochnitsi, za dopulnitelna tehnicheska informatsiia.


<< Iznenadvashto razvitie na pazara za laptopi | Canonical shte integrira II v Ubuntu >>