100Mloc i en bil ?

IEEE Spectrum har kigget på biler og fundet ud af at der er omkring 100 millioner linier kode i en god bil.

Til sammenligning er der "kun" 6.5 Mloc i en boeing 787 og 5.7 Mloc i en F-35 JSF.

100 Mloc er sindsygt og dagens nyhed om at Wind River vil gøre det nemmere at nå derop ved at gøre det muligt at køre flere operativsystemer i parallel i indlejrede systemer er totalt PHB.

Forklaringen på de 100Mloc er naturligvis at GPS'en kører en indlejret Linux, Radioen Windows/ME og instrumentbrædtet VXworks.

Men I modsætning til rumfærgen, hvor backup computeren kører et helt selvstændigt udviklet softwarekomplex, er der ikke noget sikkerhedsmæssigt argument for at radioen og gps'en kører hvert sit operativsystem.

Det eneste man opnår er at sænke MTBF for bilen som sådan.

God kode har omkring 1 fejl per tusinde linier kode når det er debugget, så en moderne taxa kører rundt med 100.000 software fejl.

Og det bliver kun værre, siger fagfolk til IEEE Spectrum, uden dog direkte at nævne den kommende storspiller i markedet ved navn: Sirius Cybernetics.

Vi mangler en dogmebevægelse indenfor software.

phk

Kommentarer (26)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Torben Mogensen Blogger

Jeg ser ikke noget stort problem i, at radio, gps, fuel injection, bremser og airbags kører med hver deres operativsystem og softwarestak. Det er nemmere at skifte enkeltdelene ud, hvis de er uafhængige, og selv om mange faciliteter i de off-the-shelf operativsystemer osv. er overflødige, så er det i reglen billigere (og mindre fejlbehæftet) at bruge et eksisterende produkt end at lave et specialiseret system fra grunden.

Når der i fly er relativt få kodelinjer, skyldes det, at kode i fly skal leve op til langt større krav om specifikation og verifikation end i kode i forbrugerprodukter. I bilen er kun bremsesystemet og airbags sikkerhedskritiske (og der er koden nok også mere stram og bedre verificeret end i f.eks. GPS'en), mens et nedbrud i radioen eller GPS'en ikke kan siges at udgøre nogen nævneværdig fare.

En anden faktor er, at computere i fly typisk er konservativ og gennemprøvet teknologi på det tidspunkt flyet designes, og derefter skiftes teknologien ikke ud, da det vil kræve en ny certificering af hele systemet -- og det koster. Så et typisk rute- eller kampfly vil normalt have hardware, der er mindst 10 år gammelt, og til det er 5-7 MLoC ikke specielt skrabet.

En bilmodel har meget kortere levetid end en flymodel (typisk kommer der en ny model hvert år), så hardwaren i en ny bil er mere up-to-date. Og da de fleste delsystemer er isolerede (airbags behøver ikke at spille sammen med fuel injection osv.), er der ikke samme behov for verifikation af det totale system, som der er i fly.

  • 0
  • 0
Poul-Henning Kamp Blogger

Jeg ser ikke noget stort problem i, at radio, gps, fuel injection, bremser og airbags kører med hver deres operativsystem og softwarestak.

Det er ikke det at de kører forskellig software der er problemet, det er den samlede mængde af fejl i 100 Mloc der er problemet.

Poul-Henning

  • 0
  • 0
Henrik Mikael Kristensen

Er der ikke noget om det, at simpel software er svært at lave?

Det er sværere at koge et problem helt ind til benet og skrælle alle unødvendige problemstillinger væk for at få et overskueligt stykke software med færre fejl, end bare at nuppe 3. parts dele og at få det til at køre nogenlunde på sin hardware.

Bedstemors nye Vista PC med MS Office, som bruges til at skrive breve og spille 7-kabale på er nok også omkring 1 million gange mere kompleks både hardware og softwaremæssigt, end den behøver at være for at kunne udføre den opgave, bedstemor kræver.

  • 0
  • 0
Torben Mogensen Blogger

Det er ikke det at de kører forskellig software der er problemet, det er den samlede mængde af fejl i 100 Mloc der er problemet.

At der er proportionalt flere fejl i et stort program end i et lille, behøver ikke at betyde, at chancen for, at en kørsel af programmet laver fejl, er større.

Når 1 ud af hver 1000 af alle kodelinjer har fejl, vil (hvis alle linjer udføres lige ofte) udførsel af 1000 linjers kode give en køretidsfejl. Nu er fordelingen sjældent lige, men selv ved ulige fordeling, kan jeg ikke se, at et større program (med samme antal fejl pr. MLoC) skulle udføre fejlbehæftede linjer oftere.

Det er lidt det samme, som at stå foran ti døre og få at vide, at der bag den ene er en tiger versus at stå foran 100 døre og få at vide, at der bag ti af dem er en tiger. Risikoen for at blive spist er den samme.

  • 0
  • 0
Jesper Louis Andersen

Rumfærgens kode er skrevet i HAL/S der ligner Ada en del. Derudover gælder det at de fleste kampfly og lignende skal skærmes godt og grundigt mod elektromagnetiske (og andre) angreb, så man vil hellere benytte hardware som er vist til at modstå. HAL/S udmærker sig ved at have indbygget linear algebra, så man kan formentlig spare en del kodelinier ved at gemme dem af vejen i compileren. Det er jo ikke ualmindeligt at man kan skære et program ned i antal kodelinier ved at skifte programmeringssprog til et som er egnet til formålet.

En del moderne kode fungerer ved at man bare skriver derudaf og så hælder lidt unittests ind for at få common-paths til at fungere. Hvad der sker på sidepaths i koden går som regel galt. Men så kan bilradioen bare resettes. Samme princip ses til dels i moderne mobiltelefoner som ofte også kræver et reset nutildags. Det er så kedeligt, men sandt.

  • 0
  • 0
Poul-Henning Kamp Blogger

Nej, den er rigtig forudsat den samme procentdel af de totale kodelinier udføres.

Men dette matematiske flueknepperi er ikke nødvendigt,
det fundamentale spørgsmål er:

Er chancen for at ramme en fejl størst hvis der er:

A) 100Mloc med 100.000 fejl

eller

B) 10Mloc med 10.000 fejl

... i en bil der er produceret af den branche der ikke forudså kollisioner i dørlåsenes koder modsatte sig sikkerhedsseler fordi de gav indtrykket af at biler var farlige ?

Poul-Henning

  • 0
  • 0
Henrik Jensen

Er chancen for at ramme en fejl størst hvis der er:

A) 100Mloc med 100.000 fejl

eller

B) 10Mloc med 10.000 fejl

Den er vel lige stor?

Hvis du skal igennem 100 Mloc kodelinier for at udføre din handling, så er det underordnet om du kører gennem A 1 gang eller igennem B 10 gange, du passerer stadig 100.000 fejl på vejen.

Så derfor lad os nu for et eksempels skyld sige at windows og linux har hver 10 Mloc og linux benyttes til GPS og windows til radio. Der er altså 10.000 fejl i GPS og 10.000 fejl i radio, samlet set 20.000 fejl.

Hvis du så udskifter enten GPS eller radio så du nu benytter samme operativsystem i både GPS og radio hvor mange fejl har du så samlet set? Jeg vil mene du stadig har samlet 20.000 fejl. Der er godt nok kun 10.000 unikke fejl, men det er jo kun relevant hvis man faktisk havde tænkt sig at rette dem.

Det er jo ikke sådan at GPS og radio nu kun hver især vil fejle halvt så ofte som da de havde hvert deres operativsystem.

Men det er stadig mange Mloc og mange fejl uanset hvad, det giver jeg dig helt ret i.

Det minder mig at jeg for ca. ½ år siden var ude at køre med en taxa chauffør der have en splinterny Mercedes der simpelthen var spækket med alt i elektroniske dimser m.v. og han fortalte meget gerne om det hele, men han kom også til at fortælle mig at han havde haft den på værktsted fordi at den ikke skiftede automatisk til sommertid og han ikke selv kunne finde ud af at få indstillet klokken, og at de havde koblet en computer på og rodet med det i 1½ time for at få skidtet til at makke ret. Så var det jo at jeg fortalte ham at på min lidt bedagede Peugeot der et par knapper ved siden af uret så jeg selv kan indstille tiden med en kuglepen eller spidsen af en nøgle... han lod sig dog ikke imponerere :-)

  • 0
  • 0
Torben Mogensen Blogger

Hvis du spiller lotto på lørdag, eller de næste 10 uger hvornår er chancen så størst for at du bliver millionær?

Det er en dårlig analogi. En bedre er: Hvis du spiller lotto de næste ti uger med de samme rækker hver uge, eller hvis du laver nye rækker hver uge, hvad giver dig så den største chance for at vinde?

  • 0
  • 0
Henrik Jensen

Hvis du spiller lotto på lørdag, eller de næste 10 uger hvornår er chancen så størst for at du bliver millionær?

Men det svarer jo til "hvis du bruger din radio/gps i bilen i 1 eller 10 uger hvornår er chancen så størst for at du oplever en fejl."

Det er selvfølgelig når du bruger din radio/gps i 10 uger, det kan vi sagtens blive enige om, men PHKs oplæg var jo ikke vi skal holde radio og/eller gps slukket for at opleve færre fejl. Hans oplæg var at hvis vi placerede samme operativsystem på radio og gps så ville vi samlet set opleve færre fejl.

  • 0
  • 0
Martin Kiefer

Hvis han havde en så ny Mercedes med alt i elektronisk udstyr, så havde den nok også Comand. Så kunne han jo have gjort, som jeg plejer at gøre, trykke Service og derefter trykke på indstil tid...

En bil eller for den sags skyld en PC er jo ikke bedre end den person der betjener bil/PC...

/Martin

  • 0
  • 0
Henrik Jensen

Det glæder mig at se hvordan det kaster lys over en relevant datalogisk problemstilling som mange firmaer kunne komme til at stå i, når først der kommer et par dataloger ind over opgaven.

Jeg er ikke imponeret.

Så må definitionen på en datalog være: "En person som ikke tror på at man kan mindske antal fejl i en GPS blot ved at sætte en radio op ved siden af GPS'en som benytter samme operativsystem, men som tror på at antal fejl i GPS'en vil være konstant uanset hvilket operativsystem der kører på andre uafhængige enheder i den umiddelbare nærhed af GPS'en"

  • 0
  • 0
Henrik Jensen

Hvis han havde en så ny Mercedes med alt i elektronisk udstyr, så havde den nok også Comand. Så kunne han jo have gjort, som jeg plejer at gøre, trykke Service og derefter trykke på indstil tid...

Muligvis, han sagde i hvert fald at han ikke kunne finde ud af det og at værkstedet brugte 1½ time på at få det til at virke, men om han så overdrev det skal jeg selvfølgelig ikke kunne sige.

Men pointen er blot at når noget som simpelt som uret kan begynde at drille, så frygter man jo lidt for de fejl der findes i den kode som beskæftiger sig med ting der har langt større indvirkning på bilens kørsel end uret har. Det kan jeg kun give PHK helt ret i.

  • 0
  • 0
Tommy Vestermark

Til sammenligning er der "kun" 6.5 Mloc i en boeing 787 og 5.7 Mloc i en F-35 JSF.

Pærer, bananer, statistik, marketing og løgne... jeg finder det umådeligt svært at tro på, at der skulle være flere elektroniske systemer og softwarestyrede funktionaliteter i en Mercedes end i et moderne fly.

Forklaringen på de 100Mloc er naturligvis at GPS'en kører en indlejret Linux, Radioen Windows/ME og instrumentbrædtet VXworks. ... Det eneste man opnår er at sænke MTBF for bilen som sådan.

Nej, en lavere MTBF er ikke det eneste man opnår. Man opnår også:
- Adskillelse mellem systemerne, således at effekten af en fejl begrænses. Ved at køre flere forskellige operativsystemer i parallel (med en hård partitionering) opnår man at kunne køre kode med forskellig kritikalitetsniveau på samme processor.
- Redundans. Når man i kritiske systemer indfører redundans, sænker man også MTBF'en for det samlede system, mod at kunne reducere konsekvensen af at en fejl optræder.
- Genbrug. De fleste operativsystemer er et overkill til et typisk indlejret system, men at skræddersy kode er ikke nødvendigvis billigere og mere fejlfrit.
- Udbredt brug af underleverandører. Mercedes laver ikke selv instrumentbrædtet, radioen, GPS'en eller alle de andre elektroniske enheder. At forlange, at alle underleverandører skulle bruge samme operativsystem, softwareframeworks mm. vil ikke gøre bilen billigere.
- Flere funktioner og højere kompleksitet. Ingen Mercedesejer ville undvære et utal af funktioner, hvis eneste formål er at imponere. Hvor mange unødvendige gadgets har du i dit hus? :-)

  • 0
  • 0
Poul-Henning Kamp Blogger

Pærer, bananer, statistik, marketing og løgne... jeg finder det umådeligt svært at tro på, at der skulle være flere elektroniske systemer og softwarestyrede funktionaliteter i en Mercedes end i et moderne fly.

Det handler ikke om hvor mange systemer og funktioner der er, men om hvor meget kode der skal til at styre dem.

Og jeg ser ingen grund til at tvivle på IEEE Spectrums research på det punkt.

Poul-Henning

  • 0
  • 0
Tommy Vestermark

Jeg vil nu tillade mig at være skeptisk overfor IEEEs "research" af disse Wild Ass Guess tal med flere betydende cifre. Nu nævner de jo ingen kilder til deres tal, men Lockheed eller Airbus selv er næppe klar over det samlede antal af kodelinier, der indgår i flyets forskellige subsystemer, der jo leveres fra mange forskellige underleverandører. I bedste fald dækker tallet over de kodelinier, der er udviklet på kontrakt specifikt til det givne projekt.

Til sammenligning kan det kun være en meget lille brøkdel af de 100MLOCS i en ny bil, der reelt er nyudviklet til den specifikke model. Samtidig vil der i en bil sikkert være et langt større antal af kodelinier, der aldrig eksekveres, men bare følger med det benyttede standard OS som "fedt".

Pærer og bananer!

  • 0
  • 0
Poul-Henning Kamp Blogger

men Lockheed eller Airbus selv er næppe klar over det samlede antal af kodelinier, der indgår i flyets forskellige subsystemer

Det kan jeg garantere dig for at de gør, for de har en kontraktslig forpligtelse til at holde DoD's kopi, inklusive hele udviklingssystemet up to date til enhver tid.

Poul-Henning

  • 0
  • 0
Log ind eller Opret konto for at kommentere