- Linux’te Windows oyunlarını çalıştırma mimarisi çekirdek düzeyinde baştan tasarlandı ve önceki
wineserver tabanlı senkronizasyon darboğazı ortadan kaldırıldı
- Yeni NTSYNC sürücüsü, NT senkronizasyon nesnelerini doğrudan çekirdekte işliyor ve FPS’te 8 kata varan artışlar sağlıyor
- WoW64’ün tamamlanması sayesinde 64 bit Linux’te 32 bit Windows uygulamaları ek kütüphane olmadan çalıştırılabiliyor
- Wayland sürücüsünün güçlendirilmesi, Vulkan 1.4 desteği, Bluetooth ve force feedback iyileştirmeleri gibi değişikliklerle grafik ve giriş/çıkış uyumluluğu genişletildi
- Proton, SteamOS, Lutris gibi Wine tabanlı ekosistemin genelinde performans ve kararlılık artışı etkisi yayılıyor
Wine 11’in temel değişiklikleri
-
Wine 11 yalnızca yıllık bir güncelleme değil; Linux’te Windows oyunlarını çalıştırma biçimini çekirdek düzeyinde yeniden yazan büyük çaplı bir revizyon
- Yıllar içinde biriken hata düzeltmeleri ve performans iyileştirmelerine ek olarak NTSYNC desteği, WoW64’ün tamamlanması, Wayland sürücüsünün güçlendirilmesi gibi yapısal değişiklikler içeriyor
- Proton, SteamOS gibi Wine tabanlı projelerin geneline performans kazanımları yayılıyor
Mevcut sınırlamalar ve geçici çözümler
- Geçmişte Wine, Windows’un NT senkronizasyon primitiflerini (mutex, semaphore, event vb.) Linux üzerinde eksiksiz biçimde uygulayamıyordu
- İş parçacıkları arasındaki senkronizasyon için her seferinde wineserver üzerinden RPC çağrısı yapılıyor, saniyede binlerce çağrı kare gecikmesine ve düzensiz zamanlamaya yol açıyordu
- Esync,
eventfd kullanarak wineserver çağrılarını azalttı ancak dosya tanımlayıcı sınırı sorununu ortaya çıkardı
- Fsync,
futex tabanlı olduğu için daha hızlıydı; ancak çekirdek dışı yamalar gerektirdiğinden genel dağıtımlarda kullanımı zordu
- Linux 5.16’daki
futex_waitv, Fsync’in özgün biçiminden farklı ve tam bir ikame değil
- Her iki yöntem de geçici çözüm niteliğindeydi; bazı NT API’leri (ör.
NtPulseEvent, NtWaitForMultipleObjects içindeki wait-for-all modu) doğru biçimde uygulanamıyordu
NTSYNC — çekirdek düzeyinde senkronizasyonun yeniden tasarımı
- NTSYNC, Linux çekirdeğine yeni bir
/dev/ntsync aygıt sürücüsü ekleyerek Windows NT senkronizasyon nesnelerini doğrudan modelliyor
- Senkronizasyon artık kullanıcı alanında değil, doğrudan çekirdeğin içinde işleniyor; böylece wineserver’a gidiş-dönüş çağrıları ortadan kalkıyor
- Kuyruk yönetimi, event anlambilimi ve atomik işlemleri doğrudan çekirdek yürütüyor
- Geliştiricisi, Esync ve Fsync’i yaratan Elizabeth Figura; çözüm 2023 Linux Plumbers Conference’ta tanıtıldıktan sonra Linux 6.14’e dahil edildi
-
Performans artışı verileri
- Dirt 3: 110.6 → 860.7 FPS (%678 artış)
- Resident Evil 2: 26 → 77 FPS
- Call of Juarez: 99.8 → 224.1 FPS
- Tiny Tina’s Wonderlands: 130 → 360 FPS
- Call of Duty: Black Ops I artık tamamen oynanabilir durumda
-
fsync ile farkları
fsync kullanıcıları için artış sınırlı olabilir; ancak çok iş parçacıklı darboğaz yaşayan oyunlarda iyileşme dramatik
- Ana çekirdeğe dahil edildiği için ek yama gerekmiyor; Fedora 42, Ubuntu 25.04 gibi güncel dağıtımlarda hemen kullanılabiliyor
- SteamOS 3.7.20 beta sürümünde varsayılan olarak geliyor, Proton GE içinde de etkinleştirildi
- NTSYNC, Wine tarihinde ilk kez çekirdek düzeyinde doğru senkronizasyon uygulamasının sağlandığı örnek oldu
WoW64 tamamlandı — 32 bit uyumluluğun birleşmesi
- WoW64 (Windows 32-bit on Windows 64-bit) mimarisinin uygulanması Wine 11 ile tamamlandı
- 64 bit Linux sistemlerde 32 bit Windows uygulamalarını çalıştırmak için ayrı 32 bit kütüphane kurmak gerekmiyor
- Tek bir ikili dosya, çalıştırılabilir dosyanın bit düzeyini otomatik algılayıp işliyor
- OpenGL bellek eşleme, SCSI pass-through ve 16 bit uygulama desteği de buna dahil
- Böylece 1990’lardan kalma eski Windows yazılımları da çalıştırılabiliyor
- Eskiden dağıtıma göre değişen multilib yapılandırmaları nedeniyle çalıştırma zordu; artık bunu Wine kendi içinde ele alıyor
Wayland ve diğer önemli iyileştirmeler
-
Wayland sürücüsü
- Çift yönlü pano kopyalama, sürükle-bırak desteği ve çözünürlük değişiminde compositor ölçeklemesi ile eski oyunların uyumluluğu arttı
- X11’den Wayland’a geçişte yaşanan Wine uyumluluk sorunlarının büyük kısmı giderildi
-
Grafik ve medya
- X11 üzerinde EGL, OpenGL için varsayılan arka uç haline getirildi ve GLX’in yerini aldı
- Vulkan 1.4 desteği ile Vulkan Video tabanlı H.264 donanımsal hızlandırmalı çözme eklendi
-
Giriş/çıkış ve çevre birimleri
- Force feedback iyileştirmeleri sayesinde yarış direksiyonları ve flight stick desteği güçlendirildi
-
Bluetooth BLE hizmetleri ve eşleştirme desteği, MIDI soundfont işleme iyileştirildi
- Zip64 sıkıştırma, Unicode 17.0.0, TWAIN 2.0 tarama (64 bit) ve IPv6 ping özellikleri eklendi
-
Performans ve platform genişlemesi
- Linux ve macOS’ta iş parçacığı önceliği yönetimi iyileştirildi, çok iş parçacıklı performans arttı
- ARM64 üzerinde 4K sayfa boyutu simülasyonu desteği eklenerek ARM tabanlı Linux cihazlarla uyumluluk sağlandı
Oyun uyumluluğu ve hata düzeltmeleri
- Nioh 2, StarCraft 2, The Witcher 2, Call of Duty: Black Ops II, Final Fantasy XI, Battle.net gibi önemli yapımlarda uyumluluk iyileştirildi
- Yüzlerce hata düzeltmesiyle genel kararlılık ve performans artırıldı
Genel değerlendirme
- NTSYNC, WoW64’ün tamamlanması, Wayland iyileştirmeleri ve geniş kapsamlı hata düzeltmeleri bir araya gelerek Wine 11’i Proton’dan sonraki en önemli sürüm haline getiriyor
- Proton, Lutris, Bottles gibi Wine tabanlı tüm projelerde performans ve uyumluluk iyileşiyor
- Linux’te oyun oynayan kullanıcılar için Wine 11 kesinlikle denemeye değer bir sürüm
2 yorum
Sonuçta birkaç yıllık eski oyunda yine geriye dönük uyumluluk bozulacak gibi görünüyor..
Demek ki bu da eşdeğer bir takasmış.
Hacker News yorumları
Wine projesine neredeyse sonsuz bir saygı duyuyorum
30 yıl boyunca Windows’un belgelenmiş/belgelenmemiş davranışlarını birebir yeniden üretmeye çalışmak sıkıcı ve ödülü az bir iş gibi geliyor, ama Wine’ın gerçekten kullanılabilir bir ürün hâline gelmesini sağlayan da bu oldu
Özellikle eski oyunların Windows’tan daha iyi çalıştığını görünce, ayrıntılara verilen özen ve acıya karşı sabır gerçekten etkileyici geliyor
Arada basit oyunları çalıştırıp “bu gerçekten oluyor mu?” diye düşündüğüm olurdu, ama güvenilir olduğunu düşünmezdim
Şimdi bunun tamamen yanlış bir değerlendirme olduğunu kabul ediyorum
Son Platinum derecesi alan sürümün Excel 2010 olduğu söyleniyor
Bunun oyunlardan neden daha zor olduğu ilginç
Test sonuçları sayfasına bakınca, bu tür sistematik doğrulamanın yüksek uyumluluğun anahtarı olduğu görülüyor
O projede edinilen bilginin önemli bir kısmı Wine geliştirmesine aktı
O zaman Wine gibi bir şeyi kendim yapmak istemiştim ama bilgim yetersizdi
Şimdi Linux’u yalnızca sunucu için kullanıyorum, Mac için de Wine olduğunu duydum ama özellikle çalıştırmak istediğim bir Windows uygulaması yok
Proton sayesinde oyun kare hızlarının inanılmaz derecede arttığını görmek şaşırtıcı
Dirt 3’ün 110FPS’ten 860FPS’e, Resident Evil 2’nin ise 26FPS’ten 77FPS’e çıkması inanması güç
Bunda Valve’ın ciddi para harcamış olmasının büyük payı olduğunu düşünüyorum
Mevcut fsync tabanlı Wine ile karşılaştırıldığında artış birkaç yüzde puan düzeyinde
Buna rağmen ntsync açık bir iyileştirme
ntsync belgelerine göre bu, Windows’un senkronizasyon yapısını Linux’ta daha doğru uygulamak için kullanılan bir kernel sürücüsü
ntsync performans artışı konusunda fazla heyecanlanmamak gerektiğini söyleyenler de var
Çoğu durumda performans artışı tek haneli yüzde seviyesinde, bazı oyunlar ise biraz daha yavaş bile olabilir
Bu tür düşük seviye teknoloji konularını görünce benim sadece CRUD uygulamaları yapıyor olmam utanç verici geliyor
Eskiden dâhi bir geliştiricinin aşırı yoğun takvimler altında ezildikten sonra basit bir VB CRUD işine geçip bunu “ücretli tatil gibi” diye anlattığı bir hikâye duymuştum
Rails, Phoenix, Django hepsini denedim ama kolay değildi
Son dönemde Claude’un yardımıyla biraz ilerleme kaydettim
Kurumsal gereksinimler karmaşık olduğu için mimari kolayca çökecek hâle gelebiliyor
Valve’a harcadığım binlerce doların sonunda Wine’ı iyileştirmeye gitmiş olması sevindirici
Valve’ın bunun için kaç geliştirici ve yüklenici çalıştırdığını merak ediyorum
Yani fonların büyük kısmı oraya akıyor
Wine paradoksal biçimde kendini gereksiz kılan bir şey olabilir
Linux’ta oyunlar iyi çalışırsa geliştiriciler doğrudan Linux sürümü çıkarır ve Wine’a ihtiyaç kalmayabilir
Yerel sürüm olsa bile Windows sürümünü Proton ile çalıştırmak daha kararlı oluyor
Windows API’si tanıdık ve değişmez olduğu için geliştiriciler geliştirmeyi hâlâ onun etrafında yapıyor
Windows ABI’si hâlâ daha kararlı olduğu için, performans farkı önemsiz kaldığı sürece yalnızca Windows derlemesini korumak daha verimli
ntsync’in kullanıcı alanında paylaşımlı bellek ile uygulanıp uygulanamayacağını soranlar vardı
Claude buna, “Oyunların %95’i için daha basit yaklaşım yeterli olduğundan karmaşık paylaşımlı bellek mantığını uygulama motivasyonu yoktu; doğruluk önemli hâle geldiğinde ise bunu kernel’e taşımak doğal oldu” diye açıklama getirmiş
ntsync basit bir API sarmalayıcısı değil, NT kernel’inin senkronizasyon davranışını yeniden üreten kernel düzeyinde bir adaptör
Kaynak koduna bakıldığında kernel zamanlayıcısıyla sıkı biçimde entegre olduğu görülüyor
Belge bağlantısı
Linux’un Windows’u yeniden uygularken onu geçmesi gerçekten şaşırtıcı
Microsoft kendi yazılımlarını giderek daha rahatsız edici hâle getirirken, böyle bir başarı etkileyici
Eski oyunların çoğu 16 bit temelli ve 32 bit oyunlarda bile kurulum programı bazen 16 bit olabiliyor
Eğer bir Wine geliştiricisi bunu görürse, Carolina Code Conference 2026’da bununla ilgili bir sunum yapmasını isterim
Konuşmacı başvuruları 31 Mart’a kadar açık
macOS’ta da aynısını isteyenler bu depoya katkıda bulunabilir
Eskiden okulun Mac’lerinde Bolo tank oyununu oynadığımı hatırlıyorum ama Windows oyunlarının %1’i bile etmez gibi geliyor