İçindekiler
Pinball Neden Windows’tan Kaldırıldı?
Pinball… Windows 95 zamanından XP zamanına kadar tüm işletim sistemlerinde olan, oyuncuların gönlüne taht kurmuş bir oyun. Peki neden artık varsayılan olarak Windows’un bir parçası değil?
Çok uzun süredir Windows ekibinde olan Raymond Chen, oyunun kaldırılma sebebi olarak 64 bitlik kayan nokta (floating point) aritmetiğini gösteriyor. Objelerin çarpışıp çarpışmadığı bir kayan nokta bug’ı sebebiyle bilgisayar tarafından anlaşılamıyormuş. Bunun yanında ekibin elinde kısıtlı bir süre ve dokümante edilmemiş bir kod varmış. Bu yüzden oyun, Windows XP 64 Bit sürümünden kaldırılmış. Fakat durum sadece bundan ibaret değil.
Sunucular ve iş istasyonları için daha fazla işlemci ve bellek gücüne ihtiyaç olduğu ortadaydı. Intel ve HP, kolları sıvayarak yeni bir işlemci mimarisi hazırlamaya başladı. Microsoft ise bu işlemcilere Windows’u geçirmek istiyordu fakat geliştiricilerde sadece Itanium işlemcilere ait bir emülatör mevcuttu. Milyonlarca satırın söz konusu olduğu bir yazılım projesinde emülatör kullanmak çok fazla zaman alan bir iş.
1999’da Compaq, Alpha işlemciler kullanan bilgisayarlara Windows desteğini kesti. Bunun sonucunda Microsoft’un elinde Alpha işlemciye sahip bolca bilgisayar, platforma ait sayfalarca dokümantasyon ve platforma yazılım geliştirme konusunda tecrübeli isimler kaldı.
Alpha, 64 bitlik RISC tabanlı bir işlemci mimarisiydi. Ellerinin altında bu iş istasyonları bulunan geliştiriciler, simülatör kullanmak yerine sistemi Alpha’ya taşıdılar. Geliştiricilerin amacı Alpha’ya yeni bir Windows sürümü çıkartmak değildi. Sistem yazılımlarının 64 bit sistemlerde nasıl çalıştığı, ne gibi hataların olduğunu Alpha üzerinde gördüler. Böylece işin zor kısmı olan 32 bit’ten 64 bit’e yazılım geçirme safhasını tamamladılar.
Alpha tabanlı bir bilgisayar ve katkıda bulunduğu ürün!
Bu geçiş süresinden dolayı Windows XP’nin farklı versiyonları mevcut. Chen’in bahsettiği “Windows XP 64 Bit Edition” sürümü, Itanium makineler ile uyumlu. Windows XP’nin 2 farklı sürümü daha mevcut; “Windows XP 64 Bit Edition Version 2003” (Itanium 2) ve “Windows XP Professional 64 Bit Edition” (x86-64). Bu versiyonların ortak noktası ise hepsinin çıkış noktasının Alpha üzerinde derlenen sürüm tabanlı olması.
Pinball’un geçirildiği ve geçirilmeye çalışıldığı tüm platformlar IEEE 754 kayan nokta aritmetik standardını kullanıyor. Bu standarda göre bit seviyesinde işlemler yapılarak bilimsel gösterim kullanılabilir ve ondalıklı sayıları böyle gösterebiliriz. Fakat bunu limitli bir bit alanında yaptığımız için işler beklendiği gibi gitmeyebiliyor.
Python 3.9.2’de 0.2 + 0.1 işleminin sonucu.
Örneğin Python’da 0.2 ile 0.1’i topladığımız zaman 0.30000000000000004 sonucunu elde ediyoruz, çünkü IEEE 754‘e göre 0.3 ile 0.30000000000000004’ün gösterim şekli aynı! Öte yandan IEEE 754 standardında 0’ın (sıfır) bile bir işareti bulunuyor.
Ondalıklı sayıların IEEE 754 standardına göre gösterim şekillerine buradan bakabilirsiniz. Ayrıca test ettiğimiz bilgisayarın x86-64 tabanlı bir i5-6500T işlemciye sahip olduğunu belirtelim.
Pinball, 1997 yılında kapanmış Cinematronics tarafından yazılan bir oyun. Bundan dolayı Microsoft mühendislerinin Pinball ile alakalı herhangi bir kaynağı veya soru soracakları muhatapları yoktu. Ekibin kısıtlı bir süresi ve limitli dokümantasyonu olması sebebiyle Pinball, 64 bit sistemlerde rafa kalktı.
Raymond Chen’in tahminlerine göre Pinball’un çarpışma tespit sistemindeki bug’ın sebebi, C kütüphanesinin varsayılan yuvarlama (rounding) modunun yanlış olması veya MSVC derleyicisiyle alakalı bir hataydı. Bu hatanın sebebi ise 32 bit’ten 64 bit’e geçiş esnasında ondalık sayı gösteriminde kesinliğin değişmesi ve yapılan yuvarlama işleminin eski kesinliğe göre yapılmasıydı. Şu anki sistemlerde Pinball’un hatasız bir şekilde çalıştığını da belirtelim.
Ek olarak Pinball’un kaynak kodları hala daha Cinematronics’in üst kuruluşlarında. Eskiden imzalanan NDA’den (gizlilik sözleşmesi) dolayı Microsoft, kaynak kodunu paylaşmamakla yükümlü.
Özet
Bu yazımızda siz değerli okurlarımız ile Pinball’un neden Windows’tan kaldırdığını paylaştık. Sizce Microsoft Pinball’u opsiyonel bir özellik olarak tekrar son kullanıcı ile paylaşabilir miydi? Görüşlerinizi “Yorumlar” kısmında bekliyoruz!
kaynak : Technopat.net