12 Ağustos 2013 Pazartesi

En Önemli Yazılım Hataları

Mariner 1 22 Haziran 1962

Fortran dilinde DO I = 1.10 yerine I=1,10 yazılması.

Yazılımındaki bir hata fırlatma sırasında roketin istenen yörüngeden ayrılmasına yol açtı. Kontrol yönetimi tarafından roket Atlantik Okyanusu’nda yok edildi.
Kazayla ilgili inceleme yapıldığında, bir kâğıda kurşun kalemle yazılmış bir formülün bilgisayara yanlış geçirilmiş olduğu ortaya çıktı. Böylece bilgisayar roketin yörüngesini yanlış hesaplamıştır.



1982 — Sovyet Gaz Hattı

CIA’e bağlı çalışan operatörler Sibirya gaz hattını kontrol etmek üzere satın alınan Kanada bilgisayar sistemine bir böcek yerleştirdiler. Bu böcek Sovyet incelemesinden geçecek, ama sonunda işletme anında başarısız kalacak bir ekipmanı araç olarak kullandı. Yerleştirilen böceğin hatalı çalışması sonucu gezegenin tarihinde en büyük nükleeer olmayan patlama meydana geldi.

1985-1987 — Therac-25 Tıp Kazası

Bir radyasyon terapi cihazı hatalı çalıştı ve çeşitli tıbbi tesislerde ölümcül düzeyde radyasyon verdi.
Daha önceki bir tasarım geliştirilerek yaratılmuş bulunan Therac-25 iki farklı tür radyasyon verilen “ileri” bir terapi sistemi idi. Ya düşük güçlü elektron ışını (beta parçacıklar) veya X-ışınları veriyordu.
Therac-25′in X-ışınları yüksek güçlü elektronların elektron silahı ile hasta arasına yerleştirilmiş bir metal hedefe çarptırılmaları ile yaratılıyordu. İkinci bir “ilerleme” de eski Therac-20 nin elektromekanik güvenlik bağlantılarının yazılım kontrolüyle yapılmasıydı.
Bu karara yazılımın daha güvenli olduğu düşüncesiyle varılmıştı. Mühendislerin bilmediği şey hem 20 hem 25′in hiçbir resmi eğitimi olmayan bir programcı tarafından yazılmış olduklarıydı. Bir görünmez hata nedeniyle, hızlı yazan bir klavye kullanıcısı kaza yaparak Therac-25′in elektron ışınını yüksek enerjili modda, fakat metal hedef yerinde olmadan, hastaya gönderecek şekilde çalışmasına yol açabilirdi. Böyle oldu ve en az 5 hasta öldü başkaları ciddi şekilde yaralandı.

1988 — Berkeley Unix Sisteminde Tampon Bellek Taşması:

Adına Morris Worm denen ilk İnternet solucanı bir tampon bellek yetersizliği sorunundan yararlanıp, bir günden az bir zaman içinde, 2000-6000 arası bilgisayara bulaştı. Bu konuyla ilgili kod gets() olarak ifade edilen bir standart girdi-çıktı kütüphanesi fonksiyonuydu. Bu fonksiyon ağ üzerinde bir metin satırı okur. Maalesef gets() fonksiyonunun girdiyi sınırlamayla ilgili bir kontrolü yoktur ve çok büyük bir girdi solucanın bağlanabildiği makinayı kontrolüne almasını sağlayabilir.

1988-1996 — Kerberos Rasgele Sayı Üreticisi Kazası:

Kerberos güvenlik sisteminin yazarları, programın rasgele sayı üreticisini uygun bir parametreyle beslemeyi ihmal edince, yetkilendirme için Kerberos’a dayanan bir bilgisayara izinsiz giriş yapmak mümkün hale geldi.

15 ocak 1990 — AT&T Bilgisayar Ağı Kazası

AT&T’nin #4ESS uzun mesafe şalterlerini kontrol eden yazılımının yeni sürümündeki bir görülmeyen bir hata, bu dev bilgisayarların komşu makinaların birinden belirli bir mesaj almaları durumunda çökmelerine neden oldu. Kısa süre sonra, her 6 saniyede 114 şalter çöküp yeniden çalışmaya başlar hale geldi. Böylece 9 saat boyunca 60 bin kadar kişi uzun mesafeli servis kullanamaz hale geldi. Sonuçta mühendisler yazılımın eski sürümünü yüklediler.

1993 - Intel Pentium İşlemcide Sorun

Bir silikon hatası Intel Pentium bilgisayar yongasının belli bir büyüklük aralığındaki ondalıklı sayıları bölerken hata yapmasına yol açıyordu. Örneğin 4195835.0 / 3145727.0 sonucu 1.33382 yerine 1.33374 olyordu. Bu yüzde 0.006 lık bir hataydı. Bu görünmez hata az sayıda kullanıcıyı etkiledi, ama halkla ilişkiler kâbusu yarattı. Piyasaya sürülmüş 3- 5 milyon arası yonga vardı. Başlangıçta Intel daha hassas hesaplamalara ihtiyacı olduğunu kanıtlayanlar için yonga değişişkliği yapmayı önerdi; ama sonunda teslim oldu, şikâyet eden herkesin yongasını değiştirmeyi kabul etti. Sonunda bu görünmez hata Intel’e 475 milyon dolara maloldu.

4 Haziran 1996 — Ariane 5 Flight 501

Ariane 4 roketinin çalışma kodu Ariane 5′te yeniden kullanılmıştı. Fakat Ariane 5′in daha hızlı olan motoru, roketin uçuş bilgisayarındaki bir aritmetik işlemde bir hatanın ortaya çıkmasına yol açıyordu. Hata, bilgisayar ifadeleriyle, 64 bitlik ondalıklı sayıyı 16 bitlik işaretli tam sayıya dönüştüren kodda idi. Daha hızlı motor 64 bitlik sayıların Ariane 5′te, Ariane 4 de olduğundan daha büyük olmasına yol açıyor ve böylece sayısal taşma durumu yaratıyor, o da uçuş bilgisayarının çökmesini getiriyordu. Flight 501′in destek bilgisayarı çöktü, 0.05 saniye sonra da ana bilgisayar çöktü. Çöken bilgisayarlar sonucu, roketin ana işlemcisi motorlara aşırı güç yüklenmesine yol açtı ve roket, fırlatıldıktan 40 saniye sonra, parçalandı.

Kasım 2000 — National Cancer Institute, Panama

Bir dizi kaza sonucu bir ABD firması olan Multidata Systems International tarafından yazılmış olan terapi planlama yazılımı, radyasyon terapisine girecek hastaya yollanacak uygun radyasyon dozunu yanlış hesapladı. Multidata’nın yazılımı bir radyasyon terapistinin, “blok” denen, sağlam dokuların radyasyondan korunmasını sağlayan metal kalkanın yerini bilgisayar ekranında belirlemesine olanak veriyordu.

F-18 çarpışması…

F-16 kullanılan similasyon progamındaki paremetrelerin düzgün olarak F-18 similasyonua aktarılmaması.

Yıl belirsizlikleri…

Mary Bandar 1992 yılında '88 doğumlu diğer çocuklarla birlikte, Winona, Minnesota bir anaokulu katılmak üzere davet aldı.
Mary 104 yaşında idi
----zaman.

Tarih,Zaman ve Tamsayılar

 A Washington D.C. Hastane bilgisayar sistemi çöktü 19 eylül, 1989.
tarih 01.01.1900 olarak değişti. 1979 yılında ABD'de, depremlere dayanacak şekilde bir nükleer santral tasarlandı. Ancak kullanılan bir simülasyon programındaki bir program hatası yüzünden reaktör kurulmadı.

Norwegian bank ATM…
10 kat para eksilen bakiye yok…
İngiliz bankası…
Bir yazılım kusuru yarım saat içinde yaptığı tek yönlü para trasferleri nedeni ile 2 milyar İngiliz sterlini kaybetti! Bankayı sonunda fon kurtarıldı.
Merkez bankası kur hesabı…
Avustralyalı bir adam, Sri Lanka Rupisini 104.500 $ değerine satın aldı. Ertesi gün 440.258 $ a bir başka bankaya sattı. İlk bankanın yazılım Rupi pozisyonda yanlış döviz kuru göstermişti. Bankanın açtığı davayı dolandırıcılık olmadığından  ilave olan 335,758 $ saklayabilirsiniz kararı verdi!