Av hundra mikroprocessorer sitter bara två i vanliga persondatorer. Resten finns i prylar som bilnycklar, mobiltelefoner och lås.

– Visionen att vi ska leva med datorer runt oss är ingen vision längre, det är verklighet. Och i allt högre utsträckning vill vi i dag att de här prylarna ska kommunicera med oss och med varandra. Det kan handla om alltifrån övervakningskameror till brödrostar med nätverksanslutning, säger Adam Dunkels, nydisputerad forskare på SICS, Swedish Institute of Computer Science, i Kista.

– Nätverkskylskåp är i högsta grad verklighet. Både butiker och kylhallar har behov av att kunna övervaka temperaturer, dygnet runt och på distans, via ip-nätverk. Där har jag gjort min insats, säger han.

Tidigare trodde man inte att det gick att köra tcp/ip på så små datorer – med 8- och 16-bitars processorer som bara har några tusen bytes minne i stället för gigabyte som dagens persondatorer med 32- och till och med 64-bitars processorer.
Adam Dunkels, som började programmera som femåring, har skrivit en riktigt liten ip-stack, uip, som gör det möjligt. Han har också utvecklat något han kallar prototrådar, som förenklar programmering med så lite arbetsminne som omkring

1 kB och med skrivskyddat minne på 50 till 60 kB.
– Det är ett programmerings-
bibliotek. Det är så löjligt enkelt, och ingen har gjort det tidigare. Bara sex rader kod, säger han.

Adam Dunkels förklarar att de små processorerna ofta sitter i produkter som görs i stora serier. Då blir marginalerna extra viktiga.

– Att kunna kapa en tia per inbyggt system blir fort mycket pengar. Det är en orsak till att man vill bli bättre på att programmera de här processorerna, säger han.

Han har också lyckats ta fram en teknik som gör att man kan programmera om de små processorerna trådlöst med det lilla operativsystemet Contiki. Tidigare har man bränt in programmen i processorn vid tillverkningen. Skulle de ändras var man tvungen att fysiskt bränna in ny kod.

Han publicerar sina upptäckter som öppen källkod. På så vis är de tillgängliga för vem som helst – utan kostnad. Hittills har 70 företag hört av sig och berättat att de använder hans kod.
– Häftigast var nog när jag fick höra att den sitter i BMWs värstingmodell, BMW-M. Och den finns i amerikanska satelliter i program-met som sköter kommunikationen med jorden. Och utrustning för att skicka upp mätdata från oljeborrhål till riggen, berättar han.

Andra företag som uppgett att de använder hans kod är ABB, Altera, Cisco, GE, HP, Volvo Technology, Xilinx och Ericsson.

– Man kanske måste vara i branschen för att förstå hur häftigt detta är, med en person som Adam som vågar gå mot strömmen. Det är nästan som Linus med Linux. Adam löser ett svårt problem så det ser enkelt ut, säger Björn Runåker.

Han arbetar på Nanoradio, men på den del av Ericsson som blev Infineon när han först använde Adam Dunkels kod. Då var det lwip, en föregångare till uip.

– Vi använde Adams kod när vi utvecklade en accesspunkt för wlan. Det var oerhört kontroversiellt att använda open source då. Men väldigt attraktivt för oss utvecklare. Man kastade ut en fråga om en bugg till nätverket. Efter tre dagar hade man en checkad kod, utan höga kostnader, säger Björn
Runåker.

– Med kommersiella lösningar kan det ta en vecka att bara få en köbiljett, och ingen berättar om att andra haft samma problem och inte hur de löst det. Dessutom slapp man det där med kunder som blev sura när de fick upptäcka buggarna själva.

Fakta

  • Tcp/ip (Transmission Control Protocol/Internet Protocol) är det grundläggande kommunikationsspråket för internet. Det består av en uppsättning protokoll som blivit världsstandard för kommunikation mellan datorer och har länge funnits tillgängligt för de flesta persondatorer, arbetsstationer och stordatorer.
  • Prototrådar är extremt lätt-viktiga, stacklösa trådar, gjorda för minnesbegränsade system som inbyggda system eller sensornätverk.
  • UIP (micro-IP) är världens minsta kompletta tcp/ip-stack. uip kräver bara 4–5 kilobyte kodutrymme och några hundra byte ram.
  • Contiki är ett pyttelitet, portabelt operativsystem för liten utrustning. Ger komplett tcp/ip-nätverkande genom uip och
  • världens minsta webläsare.
  • lwip (lightweight ip) är en liten tcp/ip-implementation för inbyggda system. lwip är större än uip, och ger bättre genomströmning. Det skrevs av Adam Dunkels men utvecklas av användare i hela världen.