Stabilne wydanie Wine 8.0

Po roku rozwoju i 28 wersjach próbnych zaprezentowano stabilną wersję otwartej implementacji Win32 API — Wine 8.0, która zawiera ponad 8600 zmian. Kluczowym osiągnięciem w nowej wersji jest zakończenie pracy nad konwersją modułów Wine do formatu.

W Wine potwierdzono pełną funkcjonalność 5266 programów dla systemu Windows (rok temu 5156, dwa lata temu 5049), dodatkowo 4370 programów (rok temu 4312, dwa lata temu 4227) działa doskonale z dodatkowymi ustawieniami i zewnętrznymi DLL. U 3888 programów (rok temu 3813, dwa lata temu 3703) występują drobne problemy, które nie przeszkadzają w używaniu podstawowych funkcji aplikacji.

Kluczowe nowości Wine 8.0:

  • Moduły w formacie PE
    • Po czterech latach pracy w pełni zakończono konwersję wszystkich bibliotek DLL do stosowania formatu plików wykonywalnych PE (Portable Executable, stosowanego w Windows). Użycie PE pozwala na korzystanie z dostępnych dla Windows debugerów oraz rozwiązuje problemy z obsługą różnych mechanizmów ochrony przed kopiowaniem, które sprawdzają tożsamość modułów systemowych na dysku i w pamięci. Rozwiązano również problemy z działaniem aplikacji 32-bitowych na hostach 64-bitowych oraz aplikacji x86 na systemach ARM. Wśród pozostałych zadań, które planuje się rozwiązać w przyszłych wersjach eksperymentalnych Wine 8.x, wymienia się konwersję modułów do interfejsu wywołań systemowych NT zamiast dokonywania bezpośrednich wywołań między poziomami PE a Unix.
    • Zrealizowano specjalny menedżer wywołań systemowych, używany do translacji zapytań z PE do bibliotek Unix w celu zmniejszenia kosztów przy wykonywaniu pełnego wywołania systemowego NT. Na przykład, wprowadzona optymalizacja pozwoliła na zmniejszenie spadku wydajności przy korzystaniu z bibliotek OpenGL i Vulkan.
    • W aplikacjach Winelib zachowano możliwość korzystania z mieszanych zestawów bibliotek Windows/Unix w formacie ELF (.dll.so), jednak takie aplikacje bez 32-bitowych bibliotek nie będą wspierać funkcjonalności dostępnej poprzez interfejs wywołań systemowych NT, takiej jak WoW64.
  • WoW64
    • Dla wszystkich bibliotek Unix dostępne są warstwy WoW64 (64-bit Windows-on-Windows), które umożliwiają 32-bitowym modułom w formacie PE dostęp do 64-bitowych bibliotek Unix, co po pozbyciu się bezpośrednich wywołań PE/Unix umożliwia uruchamianie 32-bitowych aplikacji Windows bez instalacji 32-bitowych bibliotek Unix.
    • W przypadku braku 32-bitowego ładowarki Wine uruchomienie 32-bitowych aplikacji jest możliwe w nowym eksperymentalnym trybie Windows-podobnym WoW64, w którym kod 32-bitowy działa wewnątrz 64-bitowego procesu. Tryb ten aktywuje się podczas kompilacji Wine z opcją ‘—enable-archs’.
  • Podsystem graficzny
    • W domyślnej konfiguracji zastosowano jasną motywację („Light”). Temat można zmienić za pomocą narzędzia WineCfg.
      Stabilne wydanie Wine 8.0
    • Sterowniki graficzne (winex11.drv, winemac.drv, wineandroid.drv) zostały przekształcone do wykonywania systemowych wywołań na poziomie Unix i dostępu do sterowników przez bibliotekę Win32u.
      Stabilne wydanie Wine 8.0
    • Zrealizowana architektura przetwarzania wydruku (Print Processor), stosowana do eliminacji bezpośrednich wywołań między poziomami PE i Unix w sterowniku drukarki.
    • W API Direct2D wprowadzono wsparcie dla efektów.
    • W API Direct2D dodano możliwość zapisu i odtwarzania list poleceń.
    • W sterowniku dla API graficznego Vulkan dodano wsparcie dla specyfikacji Vulkan 1.3.237 (w Wine 7 obsługiwano Vulkan 1.2).
  • Direct3D
    • Dodano nowy kompilator shaderów dla języka HLSL (High-Level Shader Language), zrealizowany w oparciu o bibliotekę vkd3d-shader. Przygotowano również dezasemblator HLSL oraz preprocesor HLSL oparty na vkd3d-shader.
    • Zrealizowano interfejs Thread Pump, który pojawił się w D3DX 10.
    • W efektach Direct3D 10 dodano wsparcie dla wielu nowych wyrażeń.
    • W dodatkowej bibliotece dla D3DX 9 wprowadzono wsparcie dla projekcji tekstur Cubemap.
  • Dźwięk i wideo
    • Na bazie frameworka GStreamer wprowadzono wsparcie dla filtrów dekodujących dźwięk w formacie MPEG-1.
    • Dodano filtr do odczytu strumieniowego dźwięku i wideo w formacie ASF (Advanced Systems Format).
    • Usunięto pośrednią bibliotekę-warstwę OpenAL32.dll, zamiast której teraz wykorzystywana jest rodzinna biblioteka Windows OpenAL32.dll, dostarczana z aplikacjami.
    • W Media Foundation Player poprawiono deteckcję typu zawartości.
    • Zrealizowano możliwość zarządzania szybkością transferu danych (Rate control).
    • Ulepszono wsparcie dla miksera i rysownika (presenter), oferowanych domyślnie w Enhanced Video Renderer (EVR).
    • Dodano wstępną implementację API Writer Encoding.
    • Ulepszono wsparcie dla ładowania topologii.
  • Urządzenia wejściowe
    • Znacząco poprawiono wsparcie dla gorącego podłączenia kontrolerów.
    • Zaproponowano ulepszoną implementację kodu dla obsługi joysticków opartą na bibliotece SDL.
    • Ulepszono wsparcie dla efektu wibracji (Force feedback) przy użyciu joysticków.
    • Wprowadzono możliwość kontroli lewego i prawego silnika wibracyjnego, korzystającego z specyfikacji HID Haptic.
    • Zmieniony interfejs użytkownika. panelu sterowania joystick.
    • Dzięki wykorzystaniu backendu hidraw zapewniono wsparcie dla kontrolerów Sony DualShock i DualSense.
    • Zaproponowano moduł WinRT Windows.Gaming.Input z realizacją interfejsu API do obsługi gamepadów, joysticków i joysticków. Nowe API realizuje również powiadomienia o gorącym podłączeniu urządzeń, efekty dotykowe i wibracyjne.
  • Międzynarodowa lokalizacja
    • Zapewniono generację poprawnej bazy danych lokalizacji w formacie locale.nls z repozytorium Unicode CLDR (Unicode Common Locale Data Repository).
    • Funkcje porównywania ciągów Unicode zmieniono na użycie bazy danych i algorytmu Windows Sortkey zamiast algorytmu Unicode Collation, co przybliżyło działanie do Windows.
    • W większości funkcji dodano wsparcie dla górnych zakresów kodów (płaszczyzn) Unicode.
    • Umożliwiono użycie UTF-8 jako kodowania ANSI.
    • Tablice symboli zostały zaktualizowane do specyfikacji Unicode 15.0.0.
  • Tekst i czcionki
    • Dla większości systemowych czcionek włączono powiązanie czcionek, co pozwoliło rozwiązać problem braku glifów w systemach z chińskimi, koreańskimi i japońskimi lokalizacjami.
    • Przeprojektowano powrót do czcionki zapasowej w DirectWrite.
  • Jądro (interfejsy jądra Windows)
    • Zrealizowano bazę danych ApiSetSchema, która zastąpiła moduły api-ms-* i pozwoliła na zmniejszenie zużycia dysku i przestrzeni adresowej.
    • Zapewniono zachowanie atrybutów plików DOS na dysku w formacie zgodnym z Samba, wykorzystując do tego rozszerzone atrybuty systemu plików.
  • Możliwości sieciowe
    • Dodano wsparcie dla protokołu OCSP (Online Certificate Status Protocol), stosowanego do weryfikacji odwołanych certyfikatów.
    • Rozszerzono możliwości EcmaScript dostępne w trybie zgodności ze standardami JavaScript.
    • Zrealizowano zbieracz śmieci dla JavaScript.
    • W pakiecie z silnikiem Gecko włączono narzędzia dla osób z ograniczoną sprawnością.
    • W MSHTML dodano wsparcie dla API Web Storage, obiektu Performance oraz dodatkowych obiektów do przetwarzania zdarzeń.
  • Wbudowane aplikacje
    • Wszystkie wbudowane aplikacje zostały przetłumaczone na użycie biblioteki Common Controls 6, z wsparciem dla motywów wizualnych i renderowania z uwzględnieniem ekranów o wysokiej gęstości pikseli.
    • Rozszerzone możliwości debugowania wątków w debugerze Wine Debugger (winedbg).
    • W narzędziach do pracy z rejestrem (REGEDIT i REG) dodano wsparcie dla typu QWORD.
    • W Notepad dodano pasek stanu z informacjami o pozycji kursora oraz funkcję Goto Line do przechodzenia do określonego numeru wiersza.
    • W wbudowanej konsoli zapewniono wyjście danych w kodowej stronie OEM.
    • Do narzędzia sc.exe (Service Control) dodano komendę ‘query’.
  • System kompilacji
    • Umożliwiono kompilację plików wykonywalnych w formacie PE dla wielu architektur (np. ‘—enable-archs=i386,x86_64’).
    • Na wszystkich platformach z 32-bitowym typem long, typy danych zdefiniowane w Windows jako long, w Wine są teraz redefiniowane jako ‘long’ zamiast ‘int’. W Winelib to zachowanie można wyłączyć poprzez zdefiniowanie WINE_NO_LONG_TYPES.
    • Dodano możliwość generowania bibliotek bez użycia dlltool (włącza się poprzez zadanie opcji ‘—without-dlltool’ w winebuild).
    • Aby zwiększyć efektywność ładowania i zmniejszyć rozmiar bibliotek, które nie zawierają kodu i zawierają tylko zasoby, w winegcc wprowadzono opcję ‘—data-only’.
  • Różne
    • Zaktualizowane wersje wbudowanych bibliotek Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXslt 1.1.37, Zlib 1.2.13.
    • Silnik Wine Mono z realizacją platformy .NET został zaktualizowany do wersji 7.4.
    • Wprowadzono wsparcie dla szyfrowania opartego na algorytmie RSA oraz cyfrowych podpisów RSA-PSS.
    • Dodano wczesną wersję API UI Automation.
    • W drzewie źródeł dodano biblioteki LDAP i vkd3d, które są kompilowane w formacie PE, co wyeliminowało konieczność dostarczania unixowych wersji tych bibliotek.
    • Zaniechano użycia biblioteki OpenAL.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster