Wydano Wine 5.0

Wydano Wine 5.021 stycznia 2020 roku zadebiutowała oficjalna wersja stabilna. Wine 5.0 — darmowe narzędzie do uruchamiania natywnych programów Windows w środowisku UNIX. To alternatywna, wolna implementacja Windows API. Rekursywny akronim WINE oznacza "Wine Is Not an Emulator".

Ta wersja powstała po około roku prac oraz ponad 7400 pojedynczych zmian. Główny programista Alexandre Julliard wyróżnia cztery:

  • Wsparcie dla modułów w formacie PE. To rozwiązuje problemy z różnymi systemami ochrony przed kopiowaniem, które porównują moduły systemowe na dysku i w pamięci.
  • Wsparcie dla wielu monitorów i wielu GPU, w tym dynamiczna zmiana ustawień.
  • Reimplementacja XAudio2 oparta na projekcie FAudio, otwartej implementacji bibliotek dźwiękowych DirectX. Przejście na FAudio pozwala osiągnąć wyższą jakość dźwięku w grach, wykorzystać miksowanie głośności, rozszerzone efekty dźwiękowe itp.
  • Wsparcie dla Vulkan 1.1.


Więcej szczegółów na temat kluczowych nowości.

Moduły PE

Przy dostępności kompilatora MinGW, większość modułów Wine teraz kompilowana jest w formacie plików wykonywalnych PE (Portable Executable, binarny format Windows) zamiast ELF.

Pliki wykonywalne PE są teraz kopiowane do katalogu ~/.wine zamiast stosować fikcyjne pliki DLL, co sprawia, że aplikacje bardziej przypominają prawdziwe instalacje Windows.

Na razie nie wszystkie moduły zostały przekonwertowane do formatu PE. Prace trwają.

Podsystem graficzny

Jak już wspomniano, dodano wsparcie dla pracy z wieloma monitorami i kartami graficznymi.

Sterownik Vulkan zaktualizowano do specyfikacji Vulkan 1.1.126.

Dodatkowo biblioteka WindowsCodecs teraz obsługuje dodatkowe formaty rastrowe, w tym formaty z indeksowaną paletą.

Direct3D

Aplikacje pełnoekranowe Direct3D teraz blokują wywołanie wygaszacza ekranu.

Dla aplikacji DXGI zrealizowano możliwość przełączania się między trybem pełnoekranowym a okienkowym za pomocą standardowej kombinacji Alt+Enter.

Rozszerzone możliwości Direct3D 12: wsparcie dla przełączania między trybem pełnoekranowym a okienkowym, zmiany trybów ekranu, wyświetlania ze skalowaniem oraz interwały wymiany buforów rysujących (swap interval). Wszystkie te funkcje zostały już zrealizowane w poprzednich wersjach API Direct3D.

Uczestnicy projektu starannie pracowali i usunęli dosłownie setki błędów, co poprawiło obsługę Wine w różnych krytycznych sytuacjach. Należą do nich pobieranie zasobów 2D w samplach 3D i odwrotnie, zastosowanie wartości wykraczających poza dopuszczalne zakresy dla testów przezroczystości i głębokości, renderowanie z odbitymi teksturami i buforami, użycie nieprawidłowych klipperów (obiekt DirectDraw) i wiele innych.

Zmniejszono rozmiar wymaganego adresowego przestrzeni przy ładowaniu 3D tekstur skompresowanych metodą S3TC (zamiast ładowania całości, tekstury są ładowane w kawałkach).

W przypadku starszych aplikacji DirectDraw wprowadzono różne ulepszenia i poprawki związane z obliczaniem oświetlenia.

Rozszerzono bazę kart graficznych rozpoznawanych w Direct3D.

Sieć i kryptografia

Silnik Gecko zaktualizowano do wersji 2.47.1 w celu wsparcia nowoczesnych narzędzi. Wdrożono szereg nowych API HTML.

W MSHTML zaimplementowano wsparcie dla elementów SVG.

Dodano wiele nowych funkcji VBScript (na przykład obsługę błędów i wyjątków).

Wprowadzono możliwość uzyskania parametrów konfiguracji HTTP proxy przez DHCP.

W obszarze kryptografii wprowadzono wsparcie dla kluczy kryptograficznych opartych na krzywych eliptycznych (ECC) przez GnuTLS, dodano możliwość importowania kluczy i certyfikatów z plików w formacie PFX, dodano wsparcie dla schematu tworzenia klucza opartego na haśle PBKDF2.

Wydano Wine 5.0
Adobe Photoshop CS6 pod Wine

Inne istotne nowości

  • Wsparcie dla spinlocków jądra NT.
  • Dzięki wygaśnięciu patentu na kompresję tekstur DXTn i S3 możliwe stało się ich włączenie do domyślnej implementacji.
  • Wsparcie dla instalacji sterowników plug-and-play.
  • Różne ulepszenia DirectWrite.
  • Ulepszona obsługa API Windows Media Foundation.
  • Lepsza synchronizacja prymitywów dzięki implementacji na futexach.
  • Wspólne użycie Wine-Mono w celu zaoszczędzenia miejsca zamiast każdorazowej implementacji opensourcowej .NET. ~/.wine.
  • Wsparcie dla Unicode 12.0 i 12.1.
  • Implementacja wstępnej usługi HTTP (HTTP.sys) jako zamiennika dla API Winsock i IIS, w wyniku czego wydajność stała się wyższa niż w przypadku API Windows Sockets.
  • Lepsza kompatybilność z debuggerami Windows.
  • Lepsze wsparcie dla LLVM MinGW oraz usprawnienia cross-kompilacji WineGCC.

Można również wspomnieć o ulepszeniach w interfejsie użytkownika. Na przykład, zminimalizowane okna są teraz wyświetlane za pomocą paska tytułu, a nie ikonek w stylu Windows 3.1. Ulepszono obsługę kontrolerów gier, w tym hat switch, kierownicę i pedały.

Usunięto wbudowane dekodery AVI, MPEG-I i WAVE z Wine, zamiast nich używane są teraz systemowe GStreamer lub QuickTime.

Dodano możliwość używania debuggera z Visual Studio do zdalnego debugowania aplikacji uruchamianych w Wine, częściowo zrealizowano bibliotekę DBGENG (Debug Engine), z kompilowanych dla Windows plików usunięto zależność od libwine.

Dla optymalizacji wydajności różne funkcje operacji na czasie zostały przetłumaczone na wykorzystanie wysoko wydajnych systemowych funkcji czasu, co pozwoliło obniżyć narzut w pętli renderowania wielu gier. Wprowadzono również inne optymalizacje wydajności.

Pełna lista zmian dostępna jest pod tym linkiem. tutaj.

Kod źródłowy Wine 5.0, lustrzane odbicie
Binarne pliki dla różnych dystrybucji
Dokumentacja

Na stronie AppDB prowadzona jest baza aplikacji Windows, które są kompatybilne z Wine. Oto liderzy pod względem liczby głosów.:

  1. Final Fantasy XI
  2. Adobe Photoshop CS6 (13.0)
  3. World of Warcraft 8.3.0
  4. EVE Online Current
  5. Magic: The Gathering Online 4.x

Można przypuszczać, że te aplikacje są najczęściej uruchamiane w Wine.

Uwaga. Premiera Wine 5.0 jest poświęcona pamięci Józefa Kucii (Józef Kucia), który tragicznie zmarł w sierpniu 2019 roku w wieku 30 lat, badając jaskinię na południu Polski. Józef był ważnym uczestnikiem w rozwoju Direct3D Wine, a także głównym autorem projektu. vkd3dW czasie swojej pracy nad Wine wniósł ponad 2500 poprawek.

Wydano Wine 5.0

Źródło: habr.com

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