Hjustone, imamo grešku: 9 softverskih problema u svemiru

Softverske greške mogu da se dogode bilo gde, ali mogu da budu posebno nezgodne (i skupe) u svemiru. Ne postoji dobar trenutak da se naleti na softversku grešku, ali neke situacije su teže od drugih – kao na primer tokom leta u svemir. Svemirski brodovi svih oblika i veličina u velikoj meri se oslanjaju na softver da bi postigli svoje ciljeve. Ali te misije mogu brzo da budu prekinute zbog najjednostavnijih ljudskih grešaka u pisanju koda. Izostavljanje gornje crtice ili kôd za proveru sa greškom prekoračenja može da pomeri granicu od uspeha ka neuspehu, da se ne pominje gubitak na stotine miliona dolara, godina rada, a na misijama sa posadom, i ljudskih života. Koristite gornje strelice da pročitate 9 primera koji dokazuju da se, uprkos pažnji sa kojom se ovi sistemi grade, greške javljaju u softveru svemirskih brodova od kada smo počeli da izbacujemo rakete u svemir – i da će, bez sumnje, nastaviti da se pojavljuju.

1. Izostavljena gornja crtica osuđuje Mariner 1 na propast

Godina: 1962

Šta se desilo: 22. jula, 1962 svemirska letilica Mariner 1 lansirana je sa Kejp Kanaverala u Floridi sa zadatkom da leti pored Venere. Međutim, inženjeri nisu znali da je softver za navođenje na Marineru 1 imao jednu fatalnu manu: prilikom prebacivanja na bušene kartice izostavljena je gornja crtica/overline (ne crtica) u jednoj jednačini. Zbog toga je ubrzo nakon lansiranja računar za navođenje nepravilno izračunavao kompenzaciju za neke inače normalne pokrete u svemirskoj letilici, pa je morao da se uništi samo 293 sekunde od početka leta. Dobro je što je greška ispravljena na vreme za uspešan let Marinera 2 na Veneru nakon šest meseci.

2. Ažuriranje softvera blokira lender Viking I

Godina: 1982

Šta se desilo: Mnogo pre nego što su roveri Spirit, Opportunity i Curiosity počeli da istražuju površinu Marsa, postojali su lenderi (aparati za ateriranje) Viking. Godine 1975, na crvenu planetu je lansiran svemirski brod sa parom orbiter-lender. Prvi lender, Viking I, bezbedno se spustio na površinu 20 jula 1976, a ubrzo mu je sledio lender Viking II. Mada se očekivalo da će oni raditi 90 dana, sa zadatkom da fotografišu i analiziraju površinu Marsa i da traže znakove života, oba lendera (i njihovi orbiteri) nastavili su da rade godinama. Misija Vikinga II se prekinula aprila 1980 kad su mu otkazale baterije. Međutim, Viking I je još uvek radio 19. novembra 1982 kada su, u pokušaju da isprave problem sa njegovim baterijama, kontroleri misije poslali lenderu niz komandi sa novim redosledom punjenja baterija. Nažalost, nove komande su upisane u deo memorije lendera koji je bio namenjen čuvanju parametara pokazivača za njegovu antenu, što je sprečilo komunikaciju sa kontrolerima na Zemlji. Nakon što su inženjeri u NASA proveli nekoliko meseci pokušavajući da ponovo uspostave kontakt, morali su da odustanu, pa su marta 1983 proglasili završetak misije Viking I (i programa Viking).

3. Jedan nedostajući znak isisava život Fobosa 1

Godina: 1988

Šta se desilo: Fobos 1 je bio jedna od dve sonde namenjene ispitivanju Marsa i njegovih meseca Fobosa i Dejmosa koje je Sovjetski savez lansirao jula 1988. Međutim, Fobos 1 uopšte nije stigao na Mars, zbog nenamernog izvršenja jedne rutine za testiranje softvera. 29. avgusta te godine, u poslanom softveru je izostavljen samo jedan znak, ali to je iniciralo nenamerno izvršavanje jedne rutine za testiranje upravljanja, što je isključilo potiskivače za položaj u prostoru na svemirskom brodu. Zbog toga, sonda nije bila u stanju da orijentiše svoje solarne panele prema suncu, pa su joj se baterije na kraju ispraznile. Komunikacija sa Fobosom 1 je prekinuta 2. septembra. Druga sonda koja je krenula na Mars, Fobos 2, takođe nije uspela, ovog puta zbog hardverskog kvara.

4. Greška prekoračenja dovodi do samouništenja Clustera

Godina: 1996

Šta se desilo: 34 godine nakon Marinera 1, još jedna softverska greška softvera za navođenje dovela je do uništenja četiri satelita (sa grupnim nazivom Cluster) i rakete Ariane 5 koja ih je prenosila. Ubrzo nakon lansiranja, softver za navođenje je pokušao da konvertuje horizontalnu brzinu (koja je bila veća od očekivane) iz 64-bitnog broja u pokretnom zarezu u 16-bitni ceo broj sa predznakom, što je dovelo do greške prekoračenja. Softverske provere koje su mogle da spreče ovu grešku bile su namerno izostavljene. Sistem za navođenje (i njegova rezerva, koja je imala istu grešku) zato se isključio, pa je raketa skrenula sa kursa i, na kraju se sama uništila 30 sekundi nakon lansiranja 4 juna 1996. Sateliti za zamenu su na kraju uspešno raspoređeni preko ruskih raketa četiri godine kasnije.

5. Satelit Milstar zbog greške ne može da stigne na namenjenu orbitu

Godina: 1999

Šta se desilo: Milstar sačinjava pet geostacionarnih satelita, lansiranih od 1994 do 2003, kojima upravlja Ratno vazduhoplovstvo SAD u svrhu bezbednih komunikacija za Ministarstvo odbrane. 30. aprila 1999 lansiran je i šesti satelit, ali nije uspeo da dostigne pravu orbitu, zbog jedne softverske greške u kontrolnom sistemu rakete Titan IV koja ga je nosila u svemir. Satelit nije mogao da se podigne na pravilnu orbitu i isključen je nakon 10 dana.

6. Britanske umesto metričkih mernih jedinica dovode do raspadanja Mars Climate Orbitera

Godina: 1999

Šta se desilo: Mars Climate Orbiter je predstavljao jednu polovinu programa Mars Surveyor ‘98, a drugu Mars Polar Lander. Zadatak orbitera je bio da stigne na orbitu oko Marsa radi ispitivanja vremena i klime i, konačno, da služi kao komunikacioni relej za lender. Ali orbiter, lansiran 11. decembra 1998, uopšte nije stigao na orbitu, zbog jedne softverske greške u jednom sistemu koji se nalazio na Zemlji. U pokušaju da uđe u Marsovu orbitu 23. septembra 1999, orbiter je prišao na visinu manju od očekivane, i zato se raspao. Uzrok je na kraju utvrđen. Softver sa Zemlje je generisao i slao potisne instrukcije u britanskim mernim jedinicama (funte sile), dok je softver na brodu očekivao metričke mere (Njutne). Auh!

7. Prevremeno radovanje sletanjem ubija Mars Polar Lander

Godina: 1999

Šta se desilo: Druga polovina programa Mars Surveyor ‘98, lender Mars Polar Lander, nažalost je takođe propala zbog softverske omaške. Lansiran 3. januara 1999, srušio se u pokušaju sletanja na površinu 3. decembra iste godine. Utvrđeno je da je krajnji uzrok bio softver čija je namena bila da ugasi motore za sletanje kada opazi kontakt sa površinom pomoću senzora na tri noge lendera. Izgleda da su tokom spuštanja vibracije u najmanje jednoj nozi nepravilno protumačene kao sletanje, pa su se motori isključili 40 metara iznad površine, što je dovelo do fatalnog rušenja.

8. Greška fleš memorije skoro sprečava šetanje Mars Spirita

Godina: 2004

Šta se desilo: Nakon lendera Viking ali pre rovera Curiosity, roveri blizanci Spirit i Opportunity počeli su da šetaju crvenom planetom. Dok Opportunity i dalje ide posle devet godina, misija Spirita je skoro prekinuta posle dve nedelje zbog jedne anomalije u upravljanju fleš memorijom. Omaška dizajna u sistemu fajlova pod DOS-om dovela je do toga da se fleš memorija prepuni, a rover se zaglavi u beskonačnom ciklusu ponovnih podizanja sistema počevši od 21 januara 2004, što je pretilo da isprazni baterije, dovede do pregrevanja Spirita i do uništenja rovera. Srećom, inženjeri su rešili problem, preformatirali fleš memoriju i vratili rover u život 6. februara 2004. Spirit je šetao više od 6 godina, mnogo preko prvobitno očekivanog životnog veka od 90 solarnih dana.

9. Greška alokacije memorije prekida produženu misiju Mars Global Surveyora

Godina: 2006

Šta se desilo: Mars Global Surveyor je lansiran 7. novembra 1996 na jednogodišnju misiju ispitivanja površine Marsa sa jedne niske orbite. Surveyor je ostao u funkciji skoro celu deceniju, dok jedna softverska greška nije prekinula njegovu produženu misiju, kada je NASA izgubila kontakt sa njim 2. novembra 2006. Pokazalo se da je uzrok bilo jedno ažuriranje softvera iz juna 2006 koje je dozvolilo da se podaci upisuju na neispravne memorijske adrese. Ta greška u memoriji je aktivirana početkom novembra, što je zatim dovelo do toga da se solarni paneli Suveyora zaglave, pa se orbiter tako okrenuo prema suncu da je baterija bila izložena, na kraju se pregrejala i otkazala.

3801-hjustone-imamo-gresku-9-softverskih-problema-u-svemiru