Ladda ner artikeln på 488 kbyte här (länk, pdf). Fler tekniska rapporter finns på etn.se/expert |
Marknadsundersökningar som gjorts på senare tid visar tydligt att Linux används i över 50 procent av inbyggda system som är i bruk, även om ingen enskild Linuxdistribution står för mer än 20 procent av marknaden.Trots sina fördelar i inbyggda system har Linux historiskt inte varit lämpat för snabba realtidsapplikationer. Redan från början försökte mjukvaruutvecklarna på olika sätt höja Linux prestanda för användning i realtidssystem. De som konstruerade inbyggda system föreslog många olika lösningar, men det kom inte fram något sammanhållet och allmänt accepterat sätt att lösa problemet med att få realtidsprestanda i Linux. Genom åren är det bara en teknik som fått särskild uppmärksamhet, och det är en hybrid med hypervisor, där Linux kombineras med ett realtidsoperativsystem för användning i inbyggnadsapplikationer med realtidskrav.
På marknaden för inbyggda system har det funnits några sådana hypervisorbaserade lösningar, där användarna kan köra Linux parallellt med ett realtidsoperativsystem. Som exempel kan nämnas Green Hills INTEGRITY Multivisor och CODEZERO Embedded Hypervisor från B Labs. Tyvärr ser det ut som om de här lösningarna missar målet genom att upphovsmännen inte förstått varför konstruktörerna vill använda Linux. Hypervisorlösningarna gör ju systemen mer komplicerade och mindre användbara och kräver ytterligare specialisering hos konstruktörsgrupperna.
Först på senare tid har det kommit fram ett övertygande alternativ för konstruktion av inbyggda system. Efter hand som Linuxanvändningen inom inbyggnadsbranschen mognar, har utvecklarna lyckats lägga till funktioner som förbättrar determinismen i själva Linuxkärnan. Med patchpaketet PREEMPT_RT har Linuxfolket enat sina ansträngningar att uppnå realtidsprestanda med Linux. Vad som är betydelsefullt hos den här lösningen är att med Linuxutvecklarna samlade bakom ett enda realtidskapabelt Linux kan man äntligen få ett operativsystem med samma tillgänglighet, användarvänlighet och stora användarbas som ett generellt operativsystem.
Ett Linuxrealtidsoperativsystem byggt med patchpaketet PREEMPT_RT har ett jitter av samma storleksordning som hos specialbyggda realtidsoperativsystem som VxWorks från Wind River och Phar Lap ETS från IntervalZero. När det gäller CPU-användning som funktion av hastigheten i reglerslingan erbjuder ett PREEMPT_RT-baserat Linuxoperativsystem likvärdiga eller bättre prestanda jämfört med andra och specialbyggda realtidsoperativsystem. I stor utsträckning är dessa höjda prestanda på applikationsnivå, mätta genom en mindre ökning av CPU-användningen vid högre reglerhastigheter, ett resultat av de olika processchemaläggningar som finns i ett Linuxbaserat realtidsoperativsystem. Till skillnad från de flesta specialbyggda realtidsoperativsystem kan ett Linuxbaserat realtidsoperativsystem erbjuda både en realtidsschemaläggare för krävande uppgifter och en mycket effektivare, helt rättvis schemaläggare för alla uppgifter som inte behöver realtidsprestanda.
Den växande samsynen är att PREEMPT_RT gör att ett Linuxbaserat realtidsoperativsystem kan erbjuda prestanda som är jämförbara med befintliga realtidsoperativsystem. Den här prestandanivån är utmärkt, både för Linuxanvändare som vill ge sig i kast med mer prestandakrävande realtidsapplikationer och för dem som för närvarande använder speciella realtidsoperativsystem och vill dra nytta av stabiliteten, mångsidigheten och den stora användarbas som Linux har. Den stora mängden programvara och verktyg tillsammans med den stora basen av erfarna användare ger konstruktörerna större frihet att utöka funktionen hos lösningarna till en lägre utvecklingskostnad. Många förbättringar på operativsystemnivå kan införas snabbt. Till exempel har Linux mogna och stabila nätverksstack stöd för nätverkskort som har dubbel DHCP, och det finns stöd för kommunikationsprotokoll som IPv6 och SNMP.
Patchpaketet PREEMPT_RT erbjuder vissa nyckelfunktioner som är viktiga för konstruktörer av inbyggda system. Det gör att flexibiliteten hos Linux kan användas i olika hårdvaruarkitekturer, och utformningen med ett enda operativsystem gör resursallokeringen mycket enklare. Följaktligen kan användarna dra nytta av att systemen är enklare att använda, kan programmeras mer intuitivt och kan konfigureras och underhållas bättre. Utöver att vara flexibelt när det gäller hårdvara gör ett Linuxbaserat realtidsoperativsystem att det blir lättare att få fram och utbilda mjukvaruutvecklare, eftersom Linux är så spritt och det finns relativt många Linuxanvändare och Linuxresurser. Med tillgång till ett välbekant och mer tillgängligt Linuxbaserat realtidsoperativsystem kan konstruktörerna effektivt gripa sig an utvecklingsarbetet med hjälp av beprövade mjukvaruverktyg.
Efter hand som PREEMPT_RT fortsätter växa som standardsättet att få realtidsfunktion i Linux börjar det på marknaden komma fram fler och fler färdiga lösningar med Linuxbaserade realtidsoperativsystem. Ett exempel är National Instruments nya mjukvarubaserade styrenhet cRIO-9068 som erbjuder ett öppet, välunderhållet, Linuxbaserat realtidsoperativsystem i en robust och kompakt hårdvara. Styrenheten cRIO-9068 stöder applikationsutveckling med National Instruments systemkonstruktionsmjukvara LabVIEW och med C/C++-verktyg, vilket gör att man kan återanvända C/C++-kod och utnyttja Linuxgemenskapens resurser och det intuitiva användargränssnittet i LabVIEW.
Att konstruera inbyggda system har blivit enklare för konstruktörer med begränsade hårdvarukunskaper tack vare kommersiellt tillgängliga hyllvarulösningar med Linuxbaserade realtidsoperativsystem. För mer avancerade konstruktörer erbjuder de här lösningarna en mycket effektivare väg till marknaden, eftersom resurserna kan läggas på huvuduppgiften i stället för rutinsaker som att utforma och placera ut anslutningskontakter till en processor eller att skriva program för kommunikation med yttre enheter. Dessutom får konstruktörer som ogärna förlitar sig på programkomponenter med öppen källkod trygghet genom ett Linuxrealtidsoperativsystem som ingår i en färdig lösning från en leverantör som är villig att underhålla och uppdatera operativsystemet, så att de vågar investera. Fördelarna är redan omvittnade av användare som provat på.
“Det Linuxbaserade realtidsoperativsystemet i NI cRIO-9068 har verkligen ändrat förutsättningarna“, säger Wolfram Koerver, som är vd på S.E.A. Datentechnik GmbH. “Med NI cRIO-9068 kan vi lägga till viktiga funktioner och tekniker i vår dataloggningsplattform som vi inte kunde förut. Utvecklingsarbetet för att bygga in de nya funktionerna minskade med över 80 procent jämfört med lösningarna som baserades på VxWorks.“
Efter hand som Linuxbaserade realtidsoperativsystem blir vanligare i kommersiellt tillgängliga lösningar bör användarna tänka efter vilka underliggande hårdvaruarkitekturer som erbjuder den största flexibiliteten. Till exempel används i styrenheten cRIO-9068 LabVIEWs omkonfigurerbara I/O-arkitektur (RIO), viket gör att man kan klara de mest olikartade krav. Mångsidigheten hos LabVIEWs RIO-arkitektur åstadkoms av en processor som samarbetar med en FPGA som har tillgång till I/O.
Med flexibel standardhårdvara som erbjuder ett Linuxbaserat realtidsoperativsystem kan man snabbt komma ut på marknaden med väldigt olika lösningar. Den nya kommersiellt tillgängliga tekniken gör att man kan använda befintlig kod och dra nytta av höjda prestanda, vilket visas av LocalGrid ™ Technologies.
”Inom 24 timmer efter att vi fick en cRIO-9068-styrenhet körde vi programvaran från vår befintliga LabVIEW-applikation utan några som helst problem”, säger Bob Leigh, som är styrelseordförande och vd på LocalGrid Technologies. ”Vi blev imponerade av hur enkelt det var att flytta mjukvara mellan CompactRIO-system och av den stora prestandaförbättringen med den nya mjukvarubaserade styrenheten.”
När utvecklingen av den vanliga Linuxkärnan fortsätter med funktioner som isolering av processorkärnor och minneshantering, fungerar PEEMPT_RT som en allt mer övertygande lösning för inbyggda system. Genom att vara tilltalande för både traditionella Linuxutvecklare och realtidssystemutvecklare erbjuder ett Linuxbaserat realtidsoperativsystem stora möjligheter – i synnerhet när det finns att tillgå på en robust och flexibel kommersiellt tillgänglig plattform.
Det gör att konstruktörerna kan ägna sig åt systemintegration och systemsäkerhet och lita på leverantören när det gäller underhåll och uppdatering av operativsystemet.