Pinball niye Windows’tan Kaldırıldı?

Adanali

Member
Pinball… Windows 95 vaktinden XP vaktine kadar tüm işletim sistemlerinde olan, oyuncuların gönlüne taht kurmuş bir oyun. Pekala niye artık var iseyılan olarak Windows’un bir kesimi değil?

Çok uzun müddettir Windows takımında olan Raymond Chen, oyunun kaldırılma niçini olarak 64 bitlik kayan nokta (floating point) aritmetiğini gösteriyor. Nesnelerin çarpışıp çarpışmadığı bir kayan nokta bug’ı sebebiyle bilgisayar tarafınca anlaşılamıyormuş. Bunun yanında grubun elinde kısıtlı bir müddet ve dokümante edilmemiş bir kod varmış. Bu yüzden oyun, Windows XP 64 Bit sürümünden kaldırılmış. Lakin durum yalnızca bundan ibaret değil.

Intel Itanium 2 mimarisine sahip bir işlemci.

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 ama geliştiricilerde yalnızca Itanium işlemcilere ilişkin bir emülatör mevcuttu. Milyonlarca satırın kelam konusu olduğu bir yazılım projesinde emülatör kullanmak oldukça fazla vakit alan bir iş.

1999’da Compaq, Alpha işlemciler kullanan bilgisayarlara Windows takviyesini kesti. Bunun kararında Microsoft’un elinde Alpha işlemciye sahip bolca bilgisayar, platforma ilişkin 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 maksadı 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 üzere yanlışların olduğunu Alpha üzerinde gördüler. bu biçimdece işin güç 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ş mühletinden dolayı Windows XP’nin farklı versiyonları mevcut. Chen’in bahsetmiş olduğu “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 nazaran bit düzeyinde süreçler yapılarak bilimsel gösterim kullanılabilir ve ondalıklı sayıları bu biçimde gösterebiliriz. Ancak bunu limitli bir bit alanında yaptığımız için işler beklendiği üzere gitmeyebiliyor.

Python 3.9.2’de 0.2 + 0.1 sürecinin kararı.

Örneğin Python’da 0.2 ile 0.1’i topladığımız vakit 0.30000000000000004 kararınu elde ediyoruz, çünkü IEEE 754‘e göre 0.3 ile 0.30000000000000004’ün gösterim formu 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 nazaran gösterim yollarına buradan bakabilirsiniz. Ayrıyeten 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ınca yazılan bir oyun. Bundan dolayı Microsoft mühendislerinin Pinball ile alakalı rastgele bir kaynağı yahut soru soracakları muhatapları yoktu. Takımın kısıtlı bir müddetsi ve limitli dokümantasyonu olması sebebiyle Pinball, 64 bit sistemlerde rafa kalktı.

Raymond Chen’in iddialarına bakılırsa Pinball’un çarpışma tespit sistemindeki bug’ın niçini, C kütüphanesinin var iseyılan yuvarlama (rounding) modunun yanlış olması yahut MSVC derleyicisiyle alakalı bir yanılgıydı. Bu yanlışın niçini ise 32 bit’ten 64 bit’e geçiş esnasında ondalık sayı göskavramında mutlaklığın değişmesi ve yapılan yuvarlama sürecinin eski katılığa nazaran yapılmasıydı. Şu anki sistemlerde Pinball’un hatasız bir biçimde çalıştığını da belirtelim.

Ek olarak Pinball’un kaynak kodları hala daha Cinematronics’in üst kuruluşlarında. Evvelce imzalanan NDA’den (gizlilik sözleşmesi) dolayı Microsoft, kaynak kodunu paylaşmamakla yükümlü.

Özet

Bu yazımızda siz bedelli okurlarımız ile Pinball’un niye 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!