supaplex

Windows’ta DOS Oyunları Çalıştırmak

supaplex

supaplex

DOS 1995’te bitmişti. Oysa Windows Xp kullanırken bile DOS oyunları ile ilgili bir problem yoktu. Hangi oyunu çalıştırmayı denesek hemen bir DOS penceresi açılır sonra da oyun başlardı. 16-bit program desteği diye bir şey vardı. Ne olduysa XP ile Vista arasında geçen 6 yılda oldu. Artık eski programlar yeni Windows’larda çalışmıyor. Microsoft’tun Windows ekibinde 1992’den beri çalışan bir yazılımcı olan Raymond Chen kendi blogunda bu program desteklemeler ile ilgili bir sürü yazı yazmış. Bunlardan bir tanesi SimCity hakkında:

Bunu, ilk olarak popüler SimCity oyunun bir yazılımcısının, bana uygulamada kritik bir hata olduğunu söylediğinde duymuştum: bellekte bir alan, serbest bırakıldıktan hemen sonra kullanılmaya çalışılmış, kabul edilemez büyüklükteki bu hata DOS’ta sorun yaratmazken, Windows’ta bellek başka bir uygulama tarafından kullanılmaya çalışıldığı için işe yaramamış. Windows ekibinde test yapanlar popüler bir çok uygulamayı düzgün çalışmasını sağlarlarken, SimCity devamlı çökmüş. Bunu Windows yazılımcılarına rapor etmişler, program debugger ile açıldığında, hatayı bulmuşlar, ve SimCity’nin çalışıp çalışmadığını kontrol eden, ve eğer çalışıyorsa bellek yöneticisini bellek boşaltılsa bile kullanılabilecek bir modda çalıştırmaya yarayan özel bir kod eklemişler.

Böyle bir işlemi herkes yapmazdı. Sonuçta suç program üreticisinde. Ama bir de olaya kullanıcının gözünden bakalım:

Bilgisayarınızda eski bir Windows var ve üzerinde çalışan bir sürü program. Sonra yeni bir Windows çıkıyor ve siz de gidip alıyorsunuz. Kurulumdan sonra programların bir kısmı çalışmıyor ve bazı programları açınca bilgisayar donuyor. Bunun tek sorumlusu yeni aldığınız Windows.  Bu yüzden Windows’u geri iade yaparsınız çünkü bir tek onu yeni almışsınızdır.

Microsoft’un test ekibi çok büyük ve hep başarılı insanları çalıştırır. Uzun zaman tüm programların sorunsuz olarak çalışması için geceli gündüzlü çalışmışlar. Sonuçta da hala kullanılan XP gibi bir işletim sistemi yapmışlar. Ama bir çok yazılımcı bu yöntemi tasvip etmez. Eğer bir uygulama hatalı çalışıyorsa ya da düzensiz bir koda güveniyorsa, bunların işletim sistemi terfilerinde işe yaramaz hale gelmesi gerektiğini düşünürler. Macintosh işletim sistemindeki yazılımcılar da hep bu kampa dahil olmuştur. Örneğin, yazılımcılar uygulamaları daha hızlı çalışsın diye, işlemcinin kesme özellğini kullanmaları gerekirken, işaretçileri atlama tablosuna (jumper table) kopyalayıp doğrudan çağırıyorlardı. ‘Inside Macintosh’ (Macintosh’un resmi programlama kitabı) kitabının bir yerlerinde “bunu yapamazsınız” yazan teknik bir not varken, onlar yaptılar, başardılar ve programları daha hızlı çalıştı… ta ki işletim sisteminin yeni sürümü gelip de hiç biri çalışmaz olana kadar. Macintosh’un ilk günlerinden beri sadece bir kaç uygulamanın hala çalışır olmasının sebebi budur. Tam tersine, 1983’te ilk çıkan IBM PC’leri için yazılan DOS uygulamaları uzun süre sorunsuz bir şekilde çalıştı.

Microsoft Geriyle Uyumluluk Felsefesini Yitirdi

İlk büyük galibiyet Visual Basic.NET’i VB 6.0 ile uyumlu yapılmayarak kazanıldı. Bir Microsoft ürününü alıp da terfi ettirdiğinizde, eski verilerinizin (örneğin VB6’da yazdığınız kodlar) sessiz ve kusursuz bir şekilde aktarımının gerçekleştirilemediği ilk canlı örnek olarak hafızalarda yerini aldı. İlk defa Microsoft, ürünün bir önceki sürümünde yapılmış olan işlere saygı göstermedi. Dolayısıyla VB6 kullanan yazılımcılar da WEB tabanlı yazılıma kaydı.

prince of persia

prince of persia

Daha sonra IIS 6.0, bazı eski uygulamaları çalışmaz hale getiren yeni bir kanal modeliyle geldi. NET 1.1 NET 1.0 ile tam uyumlu değildi. Dosya tipi FAT’tan NTFS’e dönüştü ve son olarak işletim sistemi tamamen yenilendi. Ama bu bir terfi değil: geçmişle ipleri koparma. Joel Spolsky adında eski bir Microsoft çalışanı da bu konuda 2004 yılında bir yazı yazmış ve sonuç olarak şöyle demiş:

Microsoft yeterince büyük ve karını arttırmaya mecbur, işte bu yüzden birden her şeyi baştan icat etmenin o kadar da büyük bir proje olmadığına karar verdi. Eski Microsoft, Raymond Chen’in Microsoft’u, yeni grafik sistemlerini bir DLL serisi olarak yazardı ve hem tüm Windows sürümlerinde çalışır hem de istenilen her uygulamayla birleştirilebilirdi. Bunun yapılamaması için teknik bir sebep yok. Fakat Microsoft, size LongHorn satın almanız için bir sebep sunuyor ve aslında denemeye çalıştıkları da DOS’tan Windows’a geçişte yaşanan değişikliğin bir benzerini gerçekleştirmek. Sorun ise Windows XP’den LongHorn’a geçiş, Windows’tan DOS’a olan geçiş kadar büyük değil. Büyük ihtimalle, Windows için yeni bilgisayarlar ve uygulamalar almak zorunda kalan insanlar, bu sefer bunu yapmayacaklar. Kimbilir belki de yapacaklar, en azından Microsoft’un buna ihtiyacı var, ama şu ana kadar gördüklerim beni pek ikna etmiş değil. Bir çok iddiaya göre Microsoft yanlış yaptı.

Tarih ne kadar da haklı çıkarmış adamı.

Oyun Çalıştırma

Bu kısım işin en kolay kısmı. http://www.dosbox.com/ adresinde DOSBOX programını indirip kurun. Sonra istediğiniz oyunu oynayın. İsterseniz Windows 3.1 çalıştırın, nede olsa o da bir DOS programı.