RTLinux

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 15 mai 2018; verificările necesită 3 modificări .
RTLinux
Tip de Sistem de operare în timp real
Dezvoltator Victor Yodaiken, Mikhail Barabanov ( en: New Mexico Institute of Mining and Technology ), FSMLabs, Wind River Systems
Scris in C
Sistem de operare linux
Prima editie 1996
Licență GPLv2
Site-ul web rt.wiki.kernel.org/index…

RTLinux  este un sistem de operare hard-time microkernel care rulează Linux ca un proces complet preemptibil . Lucrările la RTLinux au fost finalizate în 2007 și, pe baza dezvoltării acestui sistem de operare, a fost lansat proiectul proprietar Wind River .

Caracteristici de implementare

Dezvoltatorii RTLinux au luat calea care prevede rularea nucleului Linux din nanokernel -ul în timp real ca sarcină cu cea mai mică prioritate . În RTLinux, toate întreruperile sunt gestionate de nucleul în timp real, care include propriul său planificator de sarcini , gestionarea întreruperilor și codul de bibliotecă. Dacă nu există un handler în timp real pentru un fel de întrerupere, acesta este transmis la Linux. De fapt, Linux este o sarcină RTOS inactivă (inactivă) care este pornită numai dacă nicio sarcină nu se execută în timp real. În același timp, sarcinii Linux sunt impuse și unele restricții, care, totuși, sunt transparente pentru programator.

Linux nu poate efectua următoarele operații:

Cheia implementării acestui sistem este driverul care emulează sistemul de control al întreruperilor , care este apelat de Linux atunci când încearcă să blocheze întreruperile. În acest caz, driverul interceptează cererea, o salvează și returnează controlul către Linux.

Toate întreruperile hardware sunt interceptate de nucleul RTOS. Când apare o întrerupere , nucleul RTLinux decide ce să facă. Dacă această întrerupere trebuie gestionată de un handler în timp real, atunci nucleul apelează handlerul corespunzător. În caz contrar, sau dacă handlerul în timp real spune că dorește să partajeze această întrerupere cu Linux, handlerul este setat la o stare în așteptare. Dacă Linux a cerut să activeze întreruperi, întreruperile care sunt în așteptare sunt emulate.

Nucleul RTLinux este proiectat în așa fel încât nucleul în timp real nu trebuie să aștepte niciodată ca o resursă ocupată de un proces Linux să devină liberă.

Următoarele instrumente sunt furnizate pentru schimbul de date între RTOS și Linux:

Principiul cheie din spatele construirii RTLinux este utilizarea cât mai mult Linux posibil și cât mai puțin RTLinux posibil. Într-adevăr, Linux se ocupă de inițializarea sistemului și a dispozitivului , precum și de alocarea dinamică a resurselor. RTLinux este responsabil doar pentru programarea sarcinilor în timp real și gestionarea întreruperilor. Procesele în timp real sunt implementate ca module Linux încărcabile pentru ușurința rulării în contextul nucleului, păstrând sistemul modular și extensibil .

O aplicație în timp real cu RTLinux constă de obicei din două părți independente: un proces executat de nucleul RTLinux și o aplicație Linux normală.

Această abordare modulară pentru scrierea aplicațiilor este inerentă multor extensii în timp real pentru sisteme multifuncționale, unde sarcina în timp real rulează independent de sistemul de operare. Dezvoltatorii au adoptat deja o schemă conform căreia sarcinile critice în timp sunt programate folosind API-uri furnizate de extensia în timp real, iar toate funcțiile serviciului și ale interfeței cu utilizatorul sunt atribuite puterii sistemului de operare. Cu această abordare, programatorul trebuie doar să învețe API-ul de gestionare a evenimentelor în timp real.

Deficiențe ale implementării RTLinux

Alte extensii în timp real pentru Linux

Link -uri