Linux 6.12 ar putea avea suport „PREEMPT_RT” în timp real

Preempt-RT este o modificare care permite sarcinilor cu prioritate mai mare să întrerupă sarcinile cu prioritate mai mică.

El conceptul de sistem în timp real Nu este ceva la care sa gândit în ultimii ani în Linux, de la ideea acestui lucru a început acum aproape 20 de ani, mai exact în 2005 ca parte a proiectului „Realtime-Preempt” (“-rt”) cu dezvoltarea modului PREEMPT_RT pentru nucleul Linux.

Pentru cei care nu stiu PREEMPT_RT, ar trebui să știe asta este un plasture pentru nucleul Linuxși transformă sistemul de operare într-unul în timp real (în timp real). Scopul principal al PREEMPT_RT este de a reduce latența și de a asigura predictibilitatea în execuția sarcinilor, ceea ce este crucial în aplicațiile care necesită răspunsuri rapide.

Cu cuvinte mai simple, putem spune că PREEMPT_RT permite ca aproape toate părțile nucleului să fie întrerupte, ceea ce reduce latența. Spre deosebire de un nucleu standard, nu toate secțiunile pot fi întrerupte, ceea ce poate cauza întârzieri în timpii de răspuns.

Din 2015, proiectul se află sub supravegherea Fundației Linux iar până acum, implementarea modului PREEMPT_RT a fost oferită sub formă de patch-uri externe. Pe baza acestor patch-uri, distribuții precum RHEL, SUSE și Ubuntu au creat ediții în timp real ale produselor lor, foarte solicitat în sectoare precum sistemele financiare, dispozitivele de procesare audio și video, sistemele de aviație, medicină, robotică, telecomunicații și aplicații industriale, unde este esențial să se garanteze timpi de răspuns previzibili la evenimente.

En 2019 a început procesul de promovare a patch-urilor dezvoltate în proiectul PREEMPT_RT la nucleul principal Linux. În versiunea de kernel 5.3, opțiunea PREEMPT_RT a fost inclusă în fișierul de configurare pentru a activa modul în timp real.

Biții printk necesari pentru PREEMPT_RT sunt localizați în linux-next. Acest a fost ultimul obstacol cunoscut pentru PREEMPT_RT. Coada RT are de asemenea, „consola atomică” pentru UART 8250 care nu este încă în linux-next. Aceasta înseamnă comportamentul „consolă moștenită” ca și când nu se imprimă din contextul atomic în cazuri de urgenţă. Controlerul 8250 UART este singurul care oferă suport pentru „consola atomică” astăzi.

Toate Această muncă este pe cale să dea roade., deoarece integrarea completă a modificărilor necesare a durat cinci ani și se apropie de finalizare, întrucât este de așteptat ca în versiunea 6.12, nucleul să poată fi compilat în modul PREEMPT_RT fără a fi nevoie să se aplice patch-uri suplimentare.

Se mentioneaza ca ultimul obstacol care a împiedicat activarea PREEMPT_RT a fost lipsa suport pentru ieșirea atomică fără blocare folosind funcția printk. Această funcționalitate a fost deja adoptat în ramura linux-next. În plus, o consolă atomică neblocante este în așteptarea implementării pentru controlerul 8250 UART, a cărei absență împiedică în prezent trimiterea mesajelor de urgență către consolă din codul executat în contexte atomice.

Cu biții printk îmbinați, PREEMPT_RT ar putea fi activat pe X86, ARM64 și Risc-V. Aceste trei arhitecturi îmbinate au necesitat modificări de-a lungul anilor.
ani, lăsându-mă într-o poziție în care nu am schimbări esențiale în
coadă care i-ar afecta. ARM și POWERPC mai au câteva patch-uri esențiale...

Dezvoltatori de kernel Linux au anunțat integrarea celor mai recente modificări necesare în ramura linux-next, care va fi folosit pentru a compila versiunea 6.12. Aceste modificări vor permite nucleului să fie compilat cu opțiunea PREEMPT_RT, care introduce capabilități în timp real.

Odată ce aceste modificări sunt acceptate pe ramura principală, modul PREEMPT_RT Va fi disponibil pentru arhitecturile X86, ARM64 și RISC-V. Suportul pentru arhitecturile ARM și POWERPC va fi adăugat ulterior, deoarece patch-urile necesare nu au fost încă complet integrate.

De menționat că modificările propuse nu sunt încă definitive și este posibil ca dacă PREEMPT_RT nu ajunge în ramura 6.12, acesta să fie integrat până anul viitor în versiunea 6.13.

În cele din urmă, dacă sunteți interesat să aflați mai multe despre asta, puteți verifica detaliile în următorul link.