BYTER LINUXPARTNER SOM ANDRA BYTER SKJORTA En av fördelarna med öppen källkod är att du inte binder dig till en leverantör. Det här är ett faktum som Enea flitigt utnyttjat. Yocto – som Enea Linux baseras på – är företagets femte Linuxversion på sex år. År 2004 presenterade Enea ett Linuxsamarbete med Metrowerks. År 2006 bytte man till Montavista och år 2009 till en egen Linuxdistribution. För ett år sedan inledde man ett samarbete med amerikanska Linuxleverantören Timesys. Och nu är det dags att byta Linux igen. Återigen – liksom vid samarbetet med Timesys – väljer man att basera sina Linuximplementationer på ett avancerat byggverktyg(4), denna gång från projektet Yocto, som grundades av Intel år 2010 och är ett av Linuxstiftelsen auktoriserat projekt för Linux i inbyggda system. Enea Linux är dock långtifrån enbart en paketering av andras arbete. Företaget har en hel avdelning som utvecklar och bidrar tillbaka till Linuxkärnan och flera av komponenterna som kan användas med Linux är exklusiva Eneaprodukter. |
Det är inte första gången Enea lanserar ett telekom-Linux. Däremot är det första gången Enea ger Linux en så framträdande roll i realtidsdelarna av systemet.
Tidigare har Enea förespråkat lösningar där realtidsfunktionerna i plattformen läggs i ett separat realtidsoperativsystem (RTOS) – som Eneas eget OSE. Men de verktyg som Enea själv lyfter fram i denna lansering handlar om att placera realtidsfunktionalitet direkt i Linux.
Enea Linux består av drygt 120 utvalda programkomponenter för telekomtillämpningar, särskilt för nästa generations nätinfrastruktur implementerad på multikärnor.
En av komponenterna är en alternativ implementation av programtrådar(1) kallad Lightweight Runtime Threads (LWRT).
Via LWRT kan du enligt Enea implementera realtidskritiska funktioner i Linux. Men om du till slut skulle inse att du trots vill lägga funktionaliteten i ett RTOS – som exempelvis Eneas eget OSE – så är det bara att lyfta över koden dit – LWRT stöds även där.
Om du vill dela upp funktionaliteten i flera olika operativsystem, men stanna på en enda processor, erbjuder Enea både KVM och sin egen hypervisor(2) för virtualisering.
LWRT-trådar körs i User Space(3). Till skillnad från andra försök att ge realtidsegenskaper till Linux krävs alltså inte att utvecklaren petar i själva operativsystemet.
LWT-trådar kan schemaläggas, skicka meddelanden till varandra och hantera resurser. Som ordet lättviktig antyder är trådarna resurssnåla. De stöder förstås multikärnor.
En grundläggande komponent i Eneas telekom-Linux är ett ramverk kallat Packet Acceleration foundation (Pax). Det används för att hårdvaruaccelerera IP-paketprocessning på nivå 2, 3 och 4, alltså exempelvis upp till UDP- och GTP-U-terminering.
Pax är enligt Enea ett bra verktyg för att ta fram nästa generations radioaccessnoder.
Det kan hantera stackar som eNodeB/RNC, IP/SCTP och RoHC/IP/IPSec/GTP-U i kontrollplan och användarplan. Och så kan det hantera DPI och policykontroll.
Också Pax är avsedd för att köras i Linux.
Konfigureringen är enkel. Användaren specificerar i ett diagram med pilar vilka filter som ska appliceras på paketen och i vilken ordning. Filtren kan utnyttja hårdvaruaccelererade implementationer av buffertar, köer, parsare, klassificerare och distribuerare.
Filterdiagrammet genererar automatiskt kod för att spåra enskilda paket och för profilering.
Andra Enea-exklusiva komponenter i Enea Linux är den relationella databasen Polyhedra och interprocesskommunikationstekniken Linx.
Eneas utvecklingsverktyg är Eclipsebaserat och heter Optima och stöder remote agents och 3PP JTAG-avlusare.
I Enea Linux ingår långtidssupport och en stabil släppcykel på 18 månader.
Enea Linux stöder just nu Freescale P4080, LSI ACP3448 och AMCC PPC440.
FOTNOTER
(1) Tråd är vad man kallar programkod när den laddats och körs. Ett program körs i en eller flera trådar som delar på vissa resurser, som minne. Processorn växlar mellan att köra trådar enligt någon schemaläggningsmodell. Standardtekniken för att skapa trådar i Linux heter pthreads.
(2) En hypervisor är ett ”operativsystem under operativsystemet” som bland annat kan skapa virtuella processorkort som kör standardoperativsystem som Linux eller OSE.
(3) Programkod som körs i user space har begränsade befogenheter att använda hårdvaran, till skillnad från programkod som körs i kernel space, vilket är var exempelvis operativsystemets processer håller till.
(4) Ett avancerat byggverktyg (build tool) är en databas som genererar kod och drivrutiner och utvecklingsverktyg för just den kombination av hårdvara som finns på ditt kort.