Pian keksimisensä jälkeen Linux-käyttöjärjestelmästä tuli hyvin käytetty sulautettujen järjestelmien suunnitteluissa. Avoimeen koodiin perustuva, laajan yhteisön tukema, ilmainen ja helposti lähestyttävä käyttöjärjestelmä viehätti monia. Nyt Linux käy hyvin myös reaaliaikaisiin sovelluksiin.
Kirjoittaja Sanjay Challa on National Instrumentsin sulautettujen ohjelmistojen tuotejohtaja. Hän on keskittynyt reaaliaikaisiin käyttöjärjestelmiin ja FPGA-pohjaisiin sulautettuihin järjestelmiin. Challa tuli NI:n sovelluskehitykseen vuonna 2010. Nykyisessä tehtävässään hän on toiminut vuodesta 2011 lähtien. |
Linuxin hyödyntäminen sulautetuissa järjestelmissä on helppo ymmärtää, sillä se on hyvin räätälöitävä, tukee laajaa valikoimaa prosessoriarkkitehtuureja (ARM, X86, jne.) ja tarjoaa yhteisönsä kautta laajan valikoiman sovelluksia ja koodia. Uusimmat markkinatutkimukset osoittavat, että Linuxin osuus sulautettujen markkinoista on yli 50 prosenttia. Kuitenkaan yhdelläkään jakeluversiolla ei ole yli 20 prosentin markkinaosuutta.
Huolimatta siitä, että Linux tuo monia etuja sulautettujen järjestelmien suunnittelijoille, se ei aiemmin ole sopinut suurta suorituskykyä vaativiin reaaliaikaisiin sovelluksiin. Alusta asti kehittäjät yrittivät parantaa Linuxin reaaliaikasuorituskykyä erilaisin tekniikoin. Vaikka monia ratkaisuja esitettiin, yhtä yhtenäistä, laajasti hyväksyttyä tapaa parantaa Linuxin reaaliaikaisuutta ei löytynyt. Vuosien varrella suosituksi on noussut erityisesti hybridiratkaisu, jossa Linuxia yhdistetään hypervisor-virtualisoinnilla perinteiseen reaaliaikakäyttökäyttöjärjestelmään (RTOS) niissä sovelluksissa, joissa tarvitaan reaaliaikaominaisuuksia.
Sulautetuilla markkinoilla on nähty useita tällaisia virtualisointiratkaisuja, joissa käyttäjillä on mahdollista ajaa Linuxia dedikoidun RTOS:n rinnalla. Esimerkkeihin kuuluvat Green Hillsin INTEGRITY Multivisor ja B Labsin CODEZERO Embedded Hypervisor. Ikävä kyllä näissä ratkaisuissa ei oivalleta sitä, miksi sulautettujen suunnittelijat haluavat käyttää Linuxia. Itse asiassa virtualisointiratkaisut lisäävät järjestelmän kompleksisuutta, heikentävät käytettävyyttä ja vaativat suunnittelutiimeiltä enemmän erikoistumista.
PREEMPT_RT
Vasta viime aikoina sulautettujen suunnittelijoille on tullut tarjolle houkuttelevampi vaihtoehto. Kun Linuxin käyttö sulautetuissa kypsyy, kehittävät ovat työstäneet uusia ominaisuuksia, jotka lisäävät itse Linux-ytimen deterministisyyttä. Vastikään kehitetyn PREEMPT_RT -lisäyksen (patch) myötä Linux-yhteisö yhdistyi tavoitteessaan saavuttaa reaaliaikaisuus Linuxissa. Erityisen keskeistä tässä ratkaisussa on se, että yhden reaaliaikapohjaisen Linux-käyttöjärjestelmän avulla on mahdollista saavuttaa sekä reaaliaikaisuuden hyödyt että yleiskäyttöisen käyttöjärjestelmän lähestyttävyys, käytettävyys ja kehittäjäyhteisö.
PREEMPT_RT-patcilla rakennettu Linux-RTOS suorittaa sovellusten tehtäviä (tasks) yhtä luotettavasti ja nopeasti kuin perinteiset RTOSit kuten Wind Riverin VxWorks tai IntervalZeros’s Phar Lap ETS. Tämä sovellustason suorituskyky perustuu enimmäkseen Linux-pohjaisen RTOS:n skedulointiin (suoritinajan jako prosesseille). Toisin kuin perinteisissä RTOSeissa, Linux-pohjainen RTOS tarjoaa kriittisiin tehtäviin real-timINtervalZeroe -skedulerin ja muihin kuin reaaliaikaisiin tehtäviin toisen, näihin tehtäviin paremmin sopivan skedulerin.
Yleisesti ajatellaan, että PREEMPT_RT tuo Linux-pohjaiseen RTOSiin saman suorituskyvyn kuin perinteisissä RTOS-käyttöjärjestelmissä. Tämä on erinomainen uutinen niin lisäsuorituskykyä hakeville Linux-käyttäjille, reaaliaikaisille sovelluksille kuin dedikoituihin RTOSiin nojaaville kehittäjille, jotka haluavat hyötyä Linuxin vakaudesta, käytettävyydestä ja yhteisön tuesta. Laaja IP- ja työkalutarjonta sekä kokeneiden käyttäjien tuki tuo kehittäjille enemmän mahdollisuuksia lisätä sovellukseensa toiminnallisuuksia alhaisemmin kehityskustannuksin. Uusia käyttöjärjestelmän laajuisia parannuksia voidaan hyödyntää nopeammin. Linux tukee esimerkiksi dual-DHCP-verkkokortteja ja Ipv6- ja SNMP-protokollia.
PREEMPT_RT -lisäys tarjoaa sulautettujen suunnittelijoille useita mahdollisuuksia tuotteiden erilaistamiseen. Linuxin joustavuus mahdollistaa monipuolisen laitteistoarkkitehtuurien käytön. Yhden käyttöjärjestelmän myötä resurssien jaosta tulee paljon yksinkertaisempaa. Tämän tuloksena käyttö helpottuu, ohjelmoinnista tulee intiutiivisempaa ja järjestelmän hallinta ja konfiguroitavuus paranevat. Lisäksi suunnittelutiimit voivat helpommin lisätä ja valmentaa ohjelmistokehittäjiä, koska Linux-kehittäjiä on tarjolla paljon. Tiimit voivat nopeammin ryhtyä sulautettuun suunnitteluun vakiintuneilla ohjelmointityökaluilla.
Valmiita ratkaisuja suoraan hyllyltä
Kun PREEMPT_RT yleistyy keinona saavutta reaaliaikaisyys Linuxissa, markkinoille alkaa ilmestyä yhä enemmän valmiita ratkaisuja, jotka perustuvat Linux-pohjaiseen RTOSiin. Yksi esimerkki tällaisista on National Instrumentsin uusi cRIO-9068 -ohjain, jossa on avoin, Linux-pohjainen RTOS kestävässä koteloformaatissa. cRIO-9068 -ohjaimelle voidaan kehittää sovelluksia NI:n LabVIEW-kehitystyökaluilla ja C/C++-työkaluilla, joiden ansiosta kehittäjät voivar tehokkaasti uudelleen käyttää C/C++koodiaan ja samalla hyödyntää Linux-yhteisön kehittäjätukea.
Valmiiden Linuxiin pohjautuvien RTOS-ratkaisujen ansiosta sulautettu suunnittelu on mahdollista myös tiimeille, joilla ei ole laajaa kokemusta laitteistojen suunnittelusta. Kokeneemmille tiimeille uudet ratkaisut tarjoavat tehokkaan tien markkinoille, kun ryhmän resursseja voidaan käyttää sovelluskohtaisten tehtävien ratkaisuun sen sijaan että keskityttäisiin rutiineihin, kuten oheislaiteliitäntöjen suunnitteluun prosessorille tai middleware-ohjelmiston kirjoittamiseen oheislaitekomponenttien integroimiseksi järjestelmään. Mikäli tiimi haluaa hyödyntää avoimen koodin ohjelmistokomponentteja, valmis Linux-pohjainen RTOS, jota toimittaja vielä säännöllisesti ylläpitää ja päivittää, on varma vaihtoehto myös tältä osin. Ensimmäiset käyttäjät ovat jo huomanneet nämä edut.
- NI cRIO-9068:n Linux-pohjainen reaaliaikakäyttöjärjestelmä todella muuttaa pelin hengen. Ohjaimen avulla voimme lisätä datankeräysalustallemme tärkeitä toimintoja ja teknologioita, mihin emme aiemmin pystyneet. Vaadittujen toimintojen toteutukseen kuluva kehitysaika lyheni ainakin 80 prosenttia VXWorks-pohjaiseen ratkaisuun verrattuna, sanoi S.E.A. Datentechnik GmbH:n johtaja Wolfram Koerver.
Kun valmiit Linux-pohjaiset RTOSit yleistyvät , kehittäjien pitäisi katsoa, mikä laitearkkitehtuuri tuo suurimman joustavuuden. Esimerkiksi NI cRIO-9068 -ohjain perustuu LabVIEW´llä konfiguroitavaan I/O-arkkitehtuuriin, jonka avulla kehittäjä voi vastata erilaisiin vaatimuksiin. RIO-arkkitehtuurin monipuolisuus perustuu prosessorin rinnalla työskentelevään FPGA-piiriin, josta on pääsy I/O-väyliin.
Nopeaa kehitystä
Kehittäjät voivat nopeasti tuoda markkinoille pitkälle differentioituneita ratkaisuja, joissa Linux-pohjainen RTOS pyörii joustavalla laitteistolla. Tämä uusi tekniikka mahdollistaa olemassaolevan koodin uudelleenkäytön ja lisääntyneen suorituskyvyn, kuten LocalGrid Technologiesin esimerkki osoittaa.
- 24 tunnin kuluessa siitä, kun saimme cRIO-9068 -ohjaimen, vanha LabVIEW-sovelluskoodimme pyöri siinä ilman ongelmia. Olimme vaikuttuneita siitä, miten helppoa ohjelmistojen siirto CompactRIO-järjestelmien välillä oli ja miten paljon suorituskykyä uusi ohjelmistopohjainen ohjain toi, sanoi LocalGrid Technologiesin pääjohtaja Bob Leigh.
Kun Linux-kerneliin tuodaan uusia ominaisuuksia kuten prosessoriytimien eristäminen ja muistin hallinta, PREEMPT-RT tarjoaa yhä houkuttelevamman vaihtoehdon sulautettujen suunnittelijoille. Linux-pohjainen RTOS vetoaa niin perinteisen Linuxin kuin RTOS-kehittäjiin – erityisesti kun se tarjotaan kestävällä ja joustavalla, valmiilla alustalla. Kun kehittäjät voivat luottaa käyttöjärjestelmän toimittajan päivityksiin, he voivat keskittyä esimerkiksi järjestelmän integraatioon tai tietoturvaan. Tämä tehostaa suunnittelua. Valmiiden Linux-RTOS-ratkaisujen avulla kehittäjät pysyvät markkinoiden edellä ja voivat tuoda innovatiivisia suunnitteluja markkinoille nopeammin kuin koskaan aiemmin. Tämä merkitsee uuden aikakauden alkua sulautetussa suunnittelussa.