Sevgili bergi okuyucuları, “açık kaynak” kavramının yazılım teknolojisi için ne kadar önemli olduğu son yıllarda daha iyi anlaşılıyor. Hal böyleyken büyük bir çoğunluğumuzun hala daha vazgeçemediği “Windows platformu”na bağımlılığı azaltmak için bu kaynağın geliştirilmesi de kaçınılmaz oluyor :) Böylece Windows’ta çalışıp da Linux’ta çalıştırılamayan “olmazsa olmaz” uygulamaları kolaylıkla Linux dağıtımı kurulu olan bir makinede çalıştırabilmemizi mümkün kılacak yazılımlar ortaya çıktı. Bunlardan biri de Wine.

Wine sözcüğü “Wine Is Not Emulator”(Wine Öykünücü* Değildir) özyinelemeli açılımının kısaltılmasıdır. Wine projesi 1993 yılında Bob Amstadt tarafından başlatıldı. Tek tek Windows’un tüm fonksiyonlarını Linux’ta çalışacak şekilde yeniden yazdılar. Amstadt’ın ve daha sonra pek çok kişinin katkıda bulunduğu projede Wine, aşama aşama Windows standartlarını destekler duruma geldi, ve hala daha geliştirilmeye devam ediliyor. Yazılım, projenin 15. yılında, yani 2008’de kullanıcıların hizmetine girdi.

Wine’ın çıkarılması düşünüldüğü zamanlar, yani 1993’te Sun Microsystems hali hazırda ticari yazılımı Wabi’yi tanıtmıştı. Wabi de Wine’ın bugün aldığı şekle kısmen uyacak şekilde tasarlanmıştı. Windows 3.x uygulamalarını çalıştırıyor, True Type yazı tiplerini destekliyordu. Wabi ilk çıktığında sadece Solaris 2.x makinelerinde çalıştırılabiliyordu. Ancak Caldera Systems tarafından çıkarılan sürümü Linux makinelerine kurulmaya başlandı.

Wabi Windows’un lisanslı uygulamalarına Wine’dan daha kolay erişebiliyor. Çünkü tüm Microsoft güncellemeleri Wine tabanlı ortamlarda çalışan Microsoft yazılımlarında geçerli olmuyor. Ayrıca WGA(Windows Genuine Advantage) sistemi Wine için kayıt anahtarı olup olmadığını kontrol ediyor. Ancak WGA sistemine rağmen çalışan bazı yazılımlar da var. Nitekim Microsoft IE7 ve Windows Media Player için WGA gerekliliğini kaldırmış durumda.

Wine’ın Wabi’den avantajlı olduğu durumlar ise XP’ye kadar çıkmış olan tüm Windows platformlarında ve DOS kütüphaneleriyle çalıştırılabiliyor olması. Wabi ise sadece 16 bitlik Windows programlarını çalıştırabiliyor. Ayrıca tercih sebebi de tabii ki açık kaynaklı bir yazılım olması :)

Wabi gibi Windows uygulamalarını çalıştıran bir başka yazılım da Cedega. Bilgisayar oyunlarına DirectX desteğini Wine ve Wabi’den daha iyi yapabildiği için daha çok tercih ediliyor. Ancak aylık bir miktar para ödemeniz karşılığında bu hizmeti sağlıyor.

Wine'ın Çalışma Yapısı

Gelelim Wine’ın alt yapısına. Wine adından da anlaşıldığı gibi işlemciye öykünmüyor, yani bir başka deyişle bilgisayar gibi işlemiyor. Wine yalnızca bir Windows API [Application Programming Interface (Uygulama Programlama Ara Yüzü)] çevirme programı. Yani işletim sisteminizle Windows uygulaması arasında bir yorumlayıcı gibi çalışıyor. Uygulamanın gerektirdiği işlemleri işletim sistemine tercüme ediyor ve işletim sistemi de gerekli işlemleri yerine getiriyor. Örneğin Windows programında yeni bir pencere açıldığında Wine bunu Xlib kütüphanesi yoluyla pencere açma işlemine dönüştürüyor. DOS’tan dosya okuma talimatları geldiğinde Wine bunu Unix sistem çağrılarına çeviriyor.

Wine, programları en az Windows kadar hızlı çalıştırıyor, çünkü programlar bilgisayarın kendi işlemcisi kullanılarak çalıştırılıyor, yani açılımından da anlaşıldığı gibi Wine işlemciyi taklit etmiyor. Wine’ın kendisi 32bitlik bir uygulama, dolayısıyla Windows’un hızını geçebildiği durumlar da olabiliyor. Wine çoğu uygulamanın gerektirdiği Windows ikili dosyaları (binary file) ve bazı DLL{Dynamically Linked Libraries (Devingen Bağlı Kitaplık)}leri de yüklüyor.

Windows mu Wine mı?

Wine, yukarıda bahsettiğimiz türlü “çevirmenlik” işlevlerini görürken de performansı Windows kurulu makinelerin performansını bile geçebiliyor. Bunun nedenleri ise şöyle sıralanabilir:

  • OS/2 işletim sisteminde işleyişlerinde hata olan programlar o anda çalışmakta olan başka programların işleyişini etkilemezler. Fakat Windows’ta aynı sistem beklenildiği kadar iyi işlemiyor. Wine ile programlar Unix’in gelişmiş alt yapısını kullanarak birbirinden bağımsız çalıştırılıyorlar.
  • Unix dosya sisteminde çoklu kullanım sistemi kullanılıyor; böylece aynı anda birden fazla yazma ve okuma işlemi gerçekleştirilebiliyor. Windows’un çoklu kullanım sistemi ise Linux’unkinin performansına yetişemiyor. Dolayısıyla Wine harici belleklerden dosya erişimini daha rahat ve hızlı gerçekleştiriyor
  • Windows kurulu bir bilgisayara bağlanılarak Windows uygulamalarını çalıştırmak oldukça zor. Uzaktan erişim için iki bilgisayarda da birbiriyle uyumlu programların yüklü olması gerekiyor ki bu işleri daha da zorlaştırıyor. Üstelik de çoklu kullanıcılı Windows makinelerine bağlanmak genelde mümkün olmuyor. Linux’taki X ara yüzleri ise tam tersine uzaktan erişim özelliğine sahip ve çoklu kullanıcılı bilgisayarlara da bağlanabiliyor. Böylece Wine kullanıcıları birbirlerinin Windows uygulamalarını Internet üzerinden kolaylıkla kullanabiliyorlar.

Wine projesinde çalışanların yaptığı bir grafik testi ise şöyle: Windows XP SP2 ve Gentoo’ya kurulu Wine 0.9.5, 3.8GHz 800 MHz Intel 570 Pentium işlemci ve 1 GB’lık 533Mhz bir DDR2 RAM ile 60GB IDE ATA100 hard diske sahip makinelerde karşılaştırılıyor. Testin sonucunda Wine XP’yi geçiyor ve testin %67’sini başarıyla tamamlıyor. Fakat bunun yanı sıra, herhangi bir uygulamayı Wine’a yüklemek doğal olarak Windows kurulu bir makineye yüklemekten daha zahmetli.

Wine ile Yapabilecekleriniz

  • Win32 (Win95/98/NT/2000/XP), Win16 (Win 3.1) ve DOS programlarını destekler.
  • Harici DLL’lerini (örneğin özgün Windows DLL’leri) kullanma seçenekler.
  • X11 tabanlı grafik görüntüleme (herhangi bir X kabuğuna uzaktan erişim de mümkün)
  • Tek kutuda masaüstü ya da karıştırılabilen pencereler
  • Bazı bilgisayar oyunlarına DirectX desteği
  • Yüksek kaliteli ses desteği
  • Standart Unix PostScript yazıcı sürücülerine PostScript ara yüzlü sürücü (psdrv) desteği
  • Modem ve diğer seri aygıtlar
  • Winsock TCP/IP ağ protokolü
  • SCSI ile tarayıcı, CD-yazıcı… desteği
  • Unicode desteği
  • Wine hata ayıklayıcı ve değiştirilebilen hata izleme iletileri.

Bu kadar övgüden sonra eminim siz de Linux kurulu makinanıza (eğer hala kurmadıysanız bir Linux dağıtımı edindikten sonra) Wine kurup test etmeye heveslenmişsinizdir :) Hemen Wine projesinin web sitesi www.winehq.com‘a girin ve olanca hevesinizle Wine yükleyip test etmenin keyfine varın :)

*Öykünücü sözcüğü www.tbd.org.tradresindeki bilişim terimleri sözlüğünden alınmıştır.

Kaynaklar:

http://wiki.winehq.org/BenchMark-0.9.5 http://www.linux-watch.com/news/NS6148938546.html http://en.wikipedia.org/wiki/Wine_(software) http://www.caldera.com/ http://www.codeweavers.com/services/wine http://www.linuxjournal.com/article/2788