Güzel Bir Yazı Emeğine Sağlık!.

Teknolojik yazılım hataları bazen ölümcül olabiliyor. İşte, dünden bugüne kronolojik sırayla, Wired News tarafından listelenen tüm zamanların en kötü yazılım hataları. Geçenlerde Toyota, Prius araçlarında bir neden olmadan yanan farlar ve motorun beklenmedilk şekilde durmasıyla ilgili olarak 160.000 aracını piyasadan çektiğini açıkladı. Bu araçlardaki sorunun kaynağının donanım değil yazılım hatası olduğu anlaşıldı. Prius'da "software bug" denen bir sorun vardı. Bu olayla birlikte 1945'lere kadar uzman yazılım böcekleri anımsandı. 1945 yılında mühendisler Harvard Mark II sisteminde bir böcek bulmuşlardı. Bilgisayar bir testten geçtiği sırada bir hata oluştuğu görülmüş, ardından böcek yakalanmıştı. Bu böcek gerçek bir bilgisayar böceği olarak yazılım tarihine geçti. 60 yıl sonra bugün de bilgisayar böcekleriyle karşılaştığımız durumlar oluyor, yazılım ile donanım arasındaki çizgi donuklaşırken kodlama hataları gittikçe daha fazla yaşamımıza giriyor. Kodlama hataları yalnız bilgisayar sistemlerini değil, cep telefonlarını, enerji tesislerini, arabaları, kalp atışlarını düzenleyen cihazları ve birçok tıbbi ekipmanı etkileyebiliyor. Bilgisayarlardaki bir güvenlik açığının, bilgisayar solucanları tarafından kullanılarak İnternet'in birkaç gün kapanmasına yol açması, ya da bir kodlama hatasının telefon sisteminin çalışmasını engellemesi, duruma göre, eşit derecede zarar verebilir. Bilgisayar yazılımlarındaki kodlama hatalarına bağlı gizli sorunların ortaya çıktığı ilginç olaylar dizisi ölüme yol açan hataları da içeriyor. BİLİNEN ÜNLÜ YAZILIM SORUNLARI Birçok insan en önemli yazılım sorununun ölüme yol açan sorun olduğunu söyleyecektir. Böyle şeylerin tekrarlanmaması için Therac-25 olayını anımsamakta yarar var. Therac-25 olayı yazılımın kritik uygulamalarda kullanılmasına karşı bir uyarı olarak görülmektedir. Bu tür sistemleri inceleyen uzmanlar, yazılım bir kaç kişiyi öldürse de, bu tür ölümcül hatalara odaklanmanın teknolojinin daha akıllı işlem sürecinin çok gerekli olduğu alanlarına uygulanmasını önleyebileceğini söylüyorlar. Onlara göre bazı durumlarda bir yazılım eksikliği, kaçınılmaz olan hatalarla ölenlerden daha fazla insanın ölmesine yol açabilir. Bu çok tartışmalı bir konudur. İşte, kronolojik sırayla, Wired News tarafından listelenen tüm zamanların 10 en kötü yazılım hatası: 28 Temmuz 1962 -- Mariner 1 Uzay Roketi: Mariner 1'in uçuş 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 kağı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ı. 1982 -- Sovyet Gaz Hattı: Söylentiye göre, 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. Sovyetler Birliği'nin bu sistemi hassas ABD teknolojisini gizlice satın alma ya da çalma çabalarının bir parçası olarak aldığı iddia ediliyorduı. Yine söylentiye göre, CIA, programı keşfetti ve onun geri tepmesini sağlamaya karar verdi. Bunun için Sovyet incelemesinden geçecek, ama sonunda işletme anında başarısız kalacak bir ekipmanı araç olarak kullandı. Böylece 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ı 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. Programcılar çalışan koddaki gets fonksiyonunu kullanım dışı bıraktılar; ama onu C programlama dilinin standart girdi-çıktı kütüphanesinden çıkarmayı kabul etmediler. 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