Pagājušajā mēnesī autoražotājs Toyota atsauca 160 tūkstošus Prius hibrīdauto, atsaucoties uz ziņojumiem, ka bez iemesla mirgo brīdinājuma diodes aparātpanelī, un auto benzīndzinējs mēdz pārtraukt savu darbību bez iemesla. Taču, salīdzinājumā ar citām lielām auto atsaukšanām no tirdzniecības, kad pie vainas bija auto mehānikas daļa, šoreiz vaina bija Prius bortdatora kodā jeb programmā. Īsāk sakot programmētāju vārdiem Priusam bija [i]bug[/i], jeb latviešu mēlē – “blusa” ([url=http://termini.lv/index.php?terms=bug〈=en]termini.lv[/url]).
Ar šo pasākumu Prius pievienojās blusaino datoru klubam, kas aizsākās 1947. gadā, kad inženieri atrada kļūmi [url=http://inventors.about.com/library/weekly/aa052198.htm]Hārvardas Mark I[/url] septiņdesmitajā relejā, F sektorā. Dators veica testus, kad inženieri ievēroja, ka kaut kas nav kārtībā. Kļūda tika atrasta, novērsta un atzīmēta datora kontrolžurnālā “pirmais gadījums, kad tika atrasta blusa.”
Sešdesmit gadus vēlāk šīs blusas vēl joprojām ir ar mums un nav nekādu pazīmju, ka tās taisītos izzust. Patiesībā šīs kļūdas mūsu dzīvē ieņem aizvien nozīmīgāku vietu tās ir sastopamas ne tikai mūsu datoros, bet arī mobilajos telefonos, medicīnas iekārtās it visur, kur ir kāda saistība ar programmētu kodu.
[b]Taču kuras kļūdas ir bijušas visļaunākās?[/b]
Pārāk vienkārši būtu uzrādīt sarakstu ar kļūdām, kuras ir nodarījušas ievērojamus postījumus. Grūtāk ir apzināt to izraisītās sekas. Kas ir sliktāk ievainojamība, ar kuras palīdzību tārps padarīja internetu nepieejamu lietošanai uz pāris dienām, jeb drukas kļūda, kas izraisīja valsts telekomunikāciju sistēmas nobrukšanu? Tas atkarīgs no tā, ko jūs grasāties darīt zvanīt vai pārbaudīt e-pastu.
Daudzi domā, ka vissmagākās kļūdas ir tās, kurām ir nāvējošas sekas. Gadījums ar Therac-25, kur tika uzstādīta programmatūra, kas tika arī izmantota iepriekšējās iekārtas versijās, ir kā brīdinājums. Četri nāves gadījumi un vairāki smagi, radiācijas izraisīti savainojumi. Eksperti brīdina, ka, lai arī pašlaik ir bijuši tikai daži programmatūras blusu izraisīti nāves gadījumi, nākotnē tie var pāraugt simtos un tūkstošos.
Viens gan ir skaidrs blusas ir uz palikšanu.
[b]Tātad, “[url=http://wired.com/news/technology/bugs/0,2924,69355,00.html?tw=wn_story_page_prev2]Wired News[/url]” izveidotais Top 10 hronoloģiskā secībā:[/b]
[u]1962. gada 28. jūlijs[/u] – Mariner I kosmosa zonde. Kļūda lidojuma programmatūrā izraisa novirzi no paredzētās palaišanas trajektorijas. Kontroles centrs iznīcina raķeti virs Atlantijas okeāna. Vēlākā izmeklēšana atklāj, ka ar zīmuli uz papīra uzrakstītā formula tikusi nekorekti ierakstīta programmas kodā, kas izraisīja kļūdu raķetes trajektorijas aprēķinos.
[u]1982. gads[/u] Trans-Sibīrijas gāzes pārvads. CIP darbinieki radīja kļūdu Kanādā ražotās datorsistēmas, kuru gatavojās iegādāties bijusī Padomju Savienība, programmā. Padomju Savienība datorsistēmu saņēma kā daļu no gāzesvada projekta, lai slēpti iegūtu svarīgu ASV tehnoloģiju. CIP nolēma to nepieļaut un radīja kļūdu tādā veidā, lai iekārta izturētu Padomju Savienības kvalitātes pārbaudi un tad tās darbībā rastos neatgriezenisks process. Rezultātā tika izraisīta lielākā eksplozija (izņemot kodolsprādzienus) pasaules vēsturē.
[u]1985. – 1987. gads[/u] Therac-25 akselerators. Radioaktīvās apstarošanas terapijas iekārtas bojājums izraisa nāvējošus apstarošanas gadījumus dažās slimnīcās. Therac-25 bija uzlabota iepriekšējās iekārtas versija, kas spēja radīt divu veidu radiāciju: zemas jaudas elektronu starus vai arī rentgenstarus. Rentgenstari tika ģenerēti, augstas jaudas elektroniem triecoties pret metāla plāksni, kura atradās starp elektronu lielgabalu un pacientu. Otrs uzlabojums Therac-20 elektromehāniskās drošības sistēmas nomaiņa uz programmas kontrolētu drošības sistēmu, jo uzskatīja, ka tā būs drošāka. Taču inženieri nezināja, ka Therac-20 un Therac-25 darbojās uz operētājsistēmas, kuru radot tika pieļauta kļūda, saukta par “[url=http://en.wikipedia.org/wiki/Race_condition#Computing]race condition[/url]”. Steigā nejauši Therac-25 tika nokonfigurēts tā, ka elektronu lielgabals varēja palaist rentgenstarus arī tādā gadījumā, ja dzelzs plāksne neatrodas starp pacientu un lielgabalu. Vismaz pieci pacienti mira, vairāki smagi tika ievainoti.
[u]1988. gads[/u] Morisa tārps. Pirmais interneta tārps, kurš inficēja no 2000 līdz 6000 datoriem mazāk nekā dienas laikā, izmantojot bufera pārpildes kļūdu. Kļūdu izraisīja gets() funkcija, kas saņem teksta rindu no tīkla. Nelaimīgā kārtā šai funkcijai nav ierobežojuma uz ievades daudzumu un, ja tiek nosūtīti daudz pieprasījumu, tārps spēj pārņemt kontroli pār jebkuru datoru, kuram vien tas spēj pieslēgties. Šī funkcija vēl joprojām ir lietošanā.
[u]1988. – 1996. gads.[/u] Kerberos gadījuma skaitļu ģenerators. Nevērīgi veidojot kodu, drošības sistēmas gadījuma skaitļu ģenerators reāli neveidoja patiesi nesakritīgus jeb unikālus skaitļus. Rezultātā astoņus gadus ir iespējams iekļūt jebkurā datorā, kurš autorizācijai izmanto Kerberos sistēmu.
[u]1990. gada 15. janvāris[/u] AT&T tīkla darbības pārtraukums. Kļūda jaunā programmas, kura kontrolē AT&T #4ESS (1976. gadā izstrādātā ceturtās paaudzes elektronisko komutatoru sistēma) liela attāluma komutatorus, versijā, kas izraisīja šīs milzīgās sistēmas datoru atteici specifiskā gadījumā saņemot ziņu no cita datoru ziņu, kuru tie sūtīja, atsākot darbību pēc atteices. 15. janvārī komutators Ņujorkā uzkaras, restartējas, izsūta šo specifisko ziņu citiem komutatoriem, kā rezultātā viss tīkls kļuva darbnespējīgs. Iedomājieties 114 komutatori uzkaras un restartējas katras sešas sekundes atstājot sešdesmit tūkstošus cilvēku bez sakariem. Problēma tika izlabota uzliekot atpakaļ iepriekšējo programmas relīzi.
[u]1993. gads[/u] Intel peldošā komata kļūda. Silīcija izraisīta kļūda Intel Pentium procesoru veiktajos aprēķinos. Piemēram, dalot 4195835.0 ar 3145727.0 rezultāts ir 1.33374 nevis 1.33382. kļūda ir 0.006 procenti. Lai arī šī kļūda ietekmēja salīdzinoši nedaudzus lietotājus, tās izrasītās sekas bija kompānijas lielākais sabiedrisko attiecību murgs. Sākumā, no apgrozībā esošajiem 3 -5 miljoniem defektīvu čipu, Intel bija ar mieru mainīt procesorus tikai tiem patērētājiem, kuri varēja pierādīt, ka viņiem patiešām ir nepieciešama augsta precizitāte, taču vēlāk čipi tika samainīti jebkuram, kurš pieprasīja to maiņu. Tas izmaksāja 475 miljonus dolāru.
[u]1995/1996. gads[/u] [i]The Death ping[/i] (Nāves ehotests). Kļūda TCP/IP protokolā pieļāva iespēju uzkārt lielāko daļu operētājsistēmu sūtot “ļauno” ehotesta paketi no jebkuras vietas internetā, kas izraisīja tā saukto “Blue Screen of Death” lielākajai daļai Windows darbstaciju. Jāpiebilst, ka cieta arī daudzas Mac un Unix sistēmas.
[u]1996. gada 4. jūnijs[/u] Ariane 5, lidojums 501. Ariane 4 raķetes datora programmatūra tiek izmantota arī Ariane 5 datorā, kuras jaudīgākie dzinēji izraisa kļūdu raķetes vadības sistēmā. Kļūda radās noapaļojot 64-bitu decimāldaļskaitļus uz 16-bitu veselajiem skaitļiem. Tas tad arī izraisīja vadības sistēmas nobrukšanu un raķetes sadalīšanos 40 sekundes pēc starta.
[u]2000. gada novembris[/u] Nacionālais Onkoloģijas Institūts, Panama. Dažādu blakusapstākļu dēļ “Multidata systems international” izstrādāta programma nepareizi aprēķināja apstarošanas terapijas nepieciešamās devas pacientiem. Šoreiz gan daļēja vaina būtu jāuzņemas arī ārstiem, kuri bija centušies apmānīt programmu. Rezultātā mira vismaz astoņi pacienti, apmēram divdesmit pacientiem konstatēja radiācijas pārdozēšanu, un fiziķi, kuriem bija jāpārbauda datora aprēķini, tika apvainoti slepkavībās.
Domājams, ka šis saraksts laika gaitā mainīsies un papildināsies, jo daudzas cilvēces radītās iekārtas kļūst arvien vairāk atkarīgas no datoriem.