Wine 7.0'ın kararlı sürümü

Bir yıllık geliştirme ve 30 deneysel sürümün ardından, Win32 API'nin açık uygulamasının kararlı bir sürümü sunuldu: 7.0'den fazla değişiklik içeren Wine 9100. Yeni sürümün temel başarıları arasında çoğu Wine modülünün PE formatına çevrilmesi, tema desteği, HID arayüzlü joystick ve giriş cihazları yığınının genişletilmesi ve 64 bit programları çalıştırmak için WoW32 mimarisinin uygulanması yer alıyor. 64 bit ortam.

Wine, Windows için 5156 (bir yıl önce 5049) programın tam olarak çalıştığını doğruladı; başka bir 4312 (bir yıl önce 4227) program, ek ayarlar ve harici DLL'lerle mükemmel çalışıyor. 3813 programda (3703 yıl önce), uygulamaların ana işlevlerinin kullanımını etkilemeyen küçük operasyonel sorunlar var.

Wine 7.0'daki önemli yenilikler:

  • PE formatındaki modüller
    • Hemen hemen tüm DLL'ler, ELF yerine PE (Windows'ta kullanılan Taşınabilir Yürütülebilir) yürütülebilir dosya biçimini kullanacak şekilde dönüştürülmüştür. PE kullanımı, diskteki ve bellekteki sistem modüllerinin kimliğini doğrulayan çeşitli kopya koruma şemalarının desteklenmesiyle ilgili sorunları çözer.
    • Standart NT çekirdek sistem çağrısını kullanarak PE modüllerini Unix kitaplıkları ile etkileşime sokma yeteneği uygulanmıştır; bu, Windows hata ayıklayıcılarından Unix koduna erişimi gizlemenize ve iş parçacığı kaydını izlemenize olanak tanır.
    • Yerleşik DLL'ler artık gerçek bir kitaplık mı yoksa saplama mı olduğuna bakılmaksızın yalnızca diskte karşılık gelen bir PE dosyası varsa yükleniyor. Bu değişiklik, uygulamanın her zaman PE dosyalarına doğru bağlamayı görmesine olanak tanır. Bu davranışı devre dışı bırakmak için WINEBOOTSTRAPMODE ortam değişkenini kullanabilirsiniz.
  • WoW64
    • WoW64 mimarisi (64-bit Windows-on-Windows) uygulanmıştır ve 32-bit Windows uygulamalarını 64-bit Unix işlemlerinde çalıştırmanıza olanak tanır. Destek, 32 bit NT sistem çağrılarını 64 bit NTDLL çağrılarına çeviren bir katmanın bağlanması yoluyla uygulanır.
    • WoW64 katmanları çoğu Unix kütüphanesi için hazırlanmıştır ve 32-bit PE modüllerinin 64-bit Unix kütüphanelerine erişmesine olanak sağlar. Tüm modüller PE formatına dönüştürüldükten sonra 32-bit Unix kütüphanelerini kurmadan 32-bit Windows uygulamalarını çalıştırmak mümkün olacaktır.
  • Temalar
    • Tema desteği uygulandı. WineCfg yapılandırıcısı aracılığıyla seçilebilen “Açık”, “Mavi” ve “Klasik Mavi” tasarım temaları dahildir.
    • Tüm arayüz kontrollerinin görünümünü temalar aracılığıyla özelleştirme yeteneği eklendi. Tasarım teması değiştirildikten sonra öğelerin görünümü otomatik olarak güncellenir.
    • Tüm yerleşik Wine uygulamalarına tema desteği eklendi. Uygulamalar yüksek piksel yoğunluğuna (Yüksek DPI) sahip ekranlara uyarlanmıştır.
  • Grafik alt sistemi
    • Çekirdek düzeyinde grafik işleme ve pencere yönetimi ile ilgili GDI32 ve USER32 kitaplıklarının bölümlerini içeren yeni bir Win32u kitaplığı eklendi. Gelecekte, winex32.drv ve winemac.drv gibi sürücü bileşenlerinin Win11u'ya taşınması konusunda çalışmalar başlayacak.
    • Vulkan sürücüsü, Vulkan grafik API spesifikasyonu 1.2.201'i destekler.
    • Bir tıklamanın isabet edip etmediğini kontrol etme (isabet testi) özelliğiyle, Direct2D API aracılığıyla taranmış geometrik nesnelerin çıktısını almak için destek sağlandı.
    • Direct2D API, ID2D1Effect arayüzü kullanılarak uygulanan görsel efektler için ilk desteği sağlar.
    • Direct2D API, çok iş parçacıklı uygulamalardaki kaynaklara özel erişimi düzenlemek için kullanılan ID2D1MultiThread arabirimi için destek ekledi.
    • WindowsCodecs kitaplıkları seti, WMP (Windows Media Photo) biçimindeki görüntülerin kodunun çözülmesi ve görüntülerin DDS (DirectDraw Surface) biçiminde kodlanması için destek sağlar. Artık görüntülerin Windows'ta desteklenmeyen ICNS biçiminde (macOS için) kodlanmasını desteklemiyoruz.
  • Direct3D
    • Yeni işleme motoru, Direct3D çağrılarını Vulkan grafik API'sine çevirerek önemli ölçüde iyileştirildi. Çoğu durumda, Vulkan tabanlı motordaki Direct3D 10 ve 11 desteği, eski OpenGL tabanlı motorla aynı seviyeye getirildi. Vulkan işleme motorunu etkinleştirmek için Direct3D kayıt defteri değişkeni "renderer"ı "vulkan" olarak ayarlayın.
    • Direct3D 10 ve 11'in birçok özelliği uygulanmıştır; bunlar arasında Ertelenmiş Bağlamlar, aygıt bağlamında çalışan durum nesneleri, arabelleklerdeki kalıcı ofsetler, sıra dışı doku görünümlerini temizleme, veriler arasında tipsiz formatlarda veri kopyalama (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS), vb. yer alır. .
    • Bir Direct3D uygulamasını tam ekran modunda görüntülemek için bir monitör seçmenize olanak tanıyan çoklu monitör yapılandırmaları için destek eklendi.
    • DXGI API, Direct3D 10 ve 11 tabanlı uygulamalar tarafından ekran parlaklığını değiştirmek için kullanılabilen ekran gamma düzeltmesi sağlar. Sanal çerçeve arabellek sayaçlarının (SwapChain) alınması etkinleştirildi.
    • Direct3D 12, sürüm 1.1 kök imzaları için destek ekler.
    • Vulkan API aracılığıyla kod oluşturmada, sistem VK_EXT_host_query_reset uzantısını desteklediğinde sorgu işlemenin verimliliği artırıldı.
    • Örneğin, CEF (Chromium Embedded Framework) çerçevesini temel alan programlarda farklı işlemlerden bir pencereye çıktı alırken, OpenGL veya Vulkan'ın görüntüleme için kullanılamadığı durumlarda GDI yoluyla sanal çerçeve arabelleklerinin (SwapChain) çıktısını alma yeteneği eklendi.
    • GLSL gölgelendirici arka ucunu kullanırken, gölgelendirici talimatları için "kesin" değiştirici sağlanır.
    • DirectDraw API, "RGB", "MMX" ve "Ramp" gibi yazılım aygıtlarını kullanarak sistem belleğine 3D oluşturma desteği ekler.
    • AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 ve NVIDIA GT 630 kartları Direct1030D grafik kartı veritabanına eklendi.
    • “UseGLSL” anahtarı HKEY_CURRENT_USER\Software\Wine\Direct3D kayıt defterinden kaldırıldı; bunun yerine Wine 5.0'dan itibaren “shader_backend” kullanmanız gerekiyor.
    • Direct3D 12'yi desteklemek için artık vkd3d kitaplığının en az 1.2 sürümüne ihtiyacınız var.
  • D3DX
    • D3DX 10 uygulaması, görsel efekt çerçevesine yönelik desteği iyileştirdi ve Windows Media Photo görüntü formatı (JPEG XR) için destek ekledi.
    • D3DX10'da sağlanan, D3DX10CreateTextureFromMemory() gibi doku oluşturma işlevleri eklendi.
    • ID3DX10Sprite ve ID3DX10Font yazılım arayüzleri kısmen uygulanmıştır.
  • Ses ve video
    • DirectShow ve Media Foundation çerçevesi için GStreamer eklentileri, yeni içerik kod çözme API'lerinin geliştirilmesini basitleştirecek şekilde ortak bir WineGStreamer arka ucunda birleştirildi.
    • WineGStreamer arka ucunu temel alan Windows Media nesneleri, eşzamanlı ve eşzamansız okuma için uygulanır.
    • Media Foundation çerçevesinin uygulanması daha da geliştirildi, IMFPMediaPlayer işlevselliği ve örnek ayırıcı desteği eklendi ve EVR ve SAR oluşturma arabellekleri desteği iyileştirildi.
    • QuickTime formatı için bir kod çözücü sağlayan wineqtdecoder kitaplığı kaldırıldı (tüm kodlayıcılar artık GStreamer kullanıyor).
  • Giriş Aygıtları
    • HID (İnsan Arayüzü Cihazları) protokolünü destekleyen giriş aygıtlarına yönelik yığın, HID tanımlayıcılarını ayrıştırma, HID mesajlarını işleme ve mini HID sürücüleri sağlama gibi yetenekler sağlayarak önemli ölçüde iyileştirildi.
    • Winebus.sys sürücüsünün arka uçlarında, cihaz açıklamalarının HID mesajlarına çevrilmesi iyileştirildi.
    • HID protokolünü destekleyen oyun çubukları için yeni bir DirectInput arka ucu eklendi. Oyun çubuklarında geri bildirim efektlerini kullanma yeteneği uygulandı. Geliştirilmiş joystick kontrol paneli. XInput uyumlu cihazlarla optimize edilmiş etkileşim. WinMM'de, Linux'ta evdev arka ucunu ve macOS IOHID'de IOHID'i kullanmak yerine joystick desteği DInput'a taşındı. Eski joystick sürücüsü winejoystick.drv kaldırıldı.
    • DInput modülüne, sanal HID cihazlarının kullanımına dayalı ve fiziksel bir cihaz gerektirmeyen yeni testler eklenmiştir.
  • Metin ve yazı tipleri
    • DirectWrite'a Yazı Tipi Seti nesnesi eklendi.
    • RichEdit, TextHost arayüzünü doğru şekilde uygular.
  • Çekirdek (Windows Çekirdek Arayüzleri)
    • Tanımlanamayan bir yürütülebilir dosyayı ('wine foo.msi' gibi) Wine'da çalıştırırken, artık dosya türüyle ilişkili işleyicileri çağıran start.exe çağrılır.
    • Linux'taki futex'lere benzer şekilde NtAlertThreadByThreadId ve NtWaitForAlertByThreadId senkronizasyon mekanizmaları için destek eklendi.
    • Çekirdek işlevlerinde hata ayıklamak için kullanılan NT hata ayıklama nesneleri için destek eklendi.
    • Performans verilerini kaydetmek için dinamik kayıt defteri anahtarları desteği eklendi.
  • C Çalışma Zamanı
    • C çalışma zamanı, esas olarak Musl kütüphanesinden taşınan tam bir matematiksel işlevler kümesini uygular.
    • Tüm CPU platformları kayan nokta işlevleri için doğru desteği sağlar.
  • Ağ fırsatları
    • Artık varsayılan olarak HTML belgelerini işlemek için kullanılan Internet Explorer 11 (IE11) için geliştirilmiş uyumluluk modu.
    • Mshtml kitaplığı, let ifadesi ve Harita nesnesi gibi özellikler için destek sağlayan ES6 JavaScript modunu (ECMAScript 2015) uygular.
    • Gecko motoruna yapılan eklemelerle birlikte MSI paketlerinin Wine çalışma dizinine kurulumu artık Wine güncellemesi sırasında değil, gerektiğinde yapılıyor.
    • DTLS protokolü için destek eklendi.
    • Bilgisayardaki yönlendirme ve ağ arayüzleri hakkındaki bilgileri saklayan ve diğer hizmetlere ileten NSI (Ağ Mağazası Arayüzü) hizmeti uygulanmıştır.
    • Setockopt ve getockopt gibi WinSock API işleyicileri, Windows mimarisine uyum sağlamak için NTDLL'ye ve afd.sys sürücüsüne taşındı.
    • Wine'ın /etc/protocols ve /etc/networks gibi kendi ağ veritabanı dosyaları artık benzer Unix veritabanlarına erişmek yerine Wine çalışma dizinine yüklendi.
  • Alternatif platformlar
    • M1 ARM yongalarına (Apple Silicon) dayalı Apple ekipmanı için destek eklendi.
    • MacOS'ta BCrypt ve Secur32 özelliklerinin desteklenmesi artık GnuTLS kitaplığının yüklenmesini gerektiriyor.
    • ARM platformları için 32 bit yürütülebilir dosyalar artık Windows'a benzer şekilde Thumb-2 modunda oluşturulmuştur. Bu tür dosyaları yüklemek için bir ön yükleyici kullanılır.
    • 32 bit ARM platformları için geri sarma istisnalarına yönelik destek uygulandı.
    • FreeBSD için, bellek durumu ve pil şarj düzeyi gibi düşük seviyeli sistem bilgilerine yönelik desteklenen sorguların sayısı genişletildi.
  • Yerleşik uygulamalar ve geliştirme araçları
    • Reg.exe yardımcı programı, 32 ve 64 bit kayıt defteri görünümleri için destek ekledi. Kayıt defteri anahtarlarını kopyalamak için destek eklendi.
    • WineDump yardımcı programı, Windows meta verilerinin dökümü ve CodeView girişleri hakkında ayrıntılı bilgilerin görüntülenmesi için destek ekledi.
    • Şarap Hata Ayıklayıcısı (winedbg), 32 bitlik bir hata ayıklayıcıdan 64 bitlik işlemlerde hata ayıklama yeteneği sağlar.
    • IDL derleyicisine (widl) PE dosyalarında yerleşik kitaplıkları yükleme yeteneği eklendi, WinRT'ye özgü nitelikler ve yapılar için destek sağlandı ve platforma özgü bir kitaplık araması uygulandı.
  • Montaj sistemi
    • Mimariye özgü dizinlerde, kitaplıklar artık mimariyi ve yürütülebilir dosyanın türünü yansıtan adlarla kaydedilmektedir; örneğin, PE formatı için 'i386-windows' ve unix kitaplıkları için 'x86_64-unix'; böylece farklı mimarilerin tek bir platformda desteklenmesine olanak sağlanır. Tek bir Wine kurulumu ve Winelib'in çapraz derlemesini sağlar.
    • Yerel DLL'leri kullanmaya geçişi kontrol eden PE dosyalarının başlıklarında bir seçenek ayarlamak için, winebuild'e '--prefer-native option' bayrağı eklendi (DllMain'de DLL_WINE_PREATTACH işleme durduruldu).
    • Artık Şarap kitaplıkları oluşturulurken varsayılan olarak kullanılan Cüce hata ayıklama veri biçiminin 4. sürümü için destek eklendi.
    • Yürütülebilir dosyalara benzersiz yapı tanımlayıcılarını kaydetmek için '-enable-build-id' derleme seçeneği eklendi.
    • Clang derleyicisini MSVC uyumluluk modunda kullanma desteği eklendi.
  • Çeşitli
    • Kullanıcı kabuğundaki (Windows Kabuğu) tipik dizinlerin adları, Windows Vista'dan başlayarak kullanılan şemaya verilmiştir; 'Belgelerim' yerine artık bir 'Belgeler' dizini oluşturuldu ve verilerin çoğu 'AppData' dizinine kaydediliyor.
    • OpenCL kitaplık katmanına OpenCL 1.2 spesifikasyonu desteği eklendi.
    • WinSpool sürücüsü, yazdırma sırasında farklı sayfa boyutları için destek ekledi.
    • ODBC sürücüleri için Microsoft OLE DB sağlayıcısı MSDASQL için başlangıç ​​desteği eklendi.
    • .NET platformunun uygulanmasıyla Wine Mono motoru 7.0.0'ü yayınlayacak şekilde güncellendi.
    • Unicode verileri Unicode 14 spesifikasyonuna güncellendi.
    • Kaynak ağacı, PE formatında derlenen ve Unix formatında bir sürüm gerektirmeyen Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt ve Zlib kitaplıklarını içerir. Aynı zamanda bu kütüphaneler, yerleşik PE seçenekleri yerine harici derlemeleri kullanmak için sistemden de içe aktarılabilir.

Kaynak: opennet.ru

Yorum ekle