Wine, warstwa zgodności systemu Windows, osiąga wersję 5.0 na Androidzie

Wine to warstwa zgodności systemu Windows, która umożliwia użytkownikom uruchamianie aplikacji Windows na innych systemach operacyjnych. Wine dla Androida osiągnęło już wersję 5.0 — sprawdź!

Ekosystem aplikacji na Androida stale ewoluował przez lata jego istnienia, napędzany ciągłym przyjmowaniem urządzeń mobilnych jako podstawowego sposobu interakcji z komputerem dla większości ludzi. Wielu użytkowników skłania się ku stylowi życia opartemu wyłącznie na urządzeniach mobilnych, a dzieje się tak dlatego, że aplikacje i ekosystem aplikacji na urządzenia mobilne spełniły ich szczególne potrzeby. Ale jeśli kiedykolwiek będziesz potrzebować aplikacji komputerowej bez dostępu do komputera, co byś zrobił? W tym miejscu pojawia się Wine, warstwa kompatybilności systemu Windows, która pozwala użytkownikom uruchamiać w pełni rozwinięte aplikacje Windows na różnych systemach operacyjnych. Wino na Androida ma teraz osiągnął wersję 5.0, podsumowując roczne wysiłki zespołu na rzecz rozwoju.

Wine to bezpłatna warstwa zgodności o otwartym kodzie źródłowym dla systemu Windows, której celem jest umożliwienie programom komputerowym opracowanym dla systemu Windows działania w innych systemach operacyjnych.

Wine na Androida przenosi Wine na Androida, oczywiście. Wine nie jest emulatorem (co jest właściwie rekurencyjnym backronimem nazwy), więc może tylko działać wersje aplikacji specyficzne dla architektury — wersja ARM Wine na Androida będzie obsługiwać tylko aplikacje ARM, a nie x86.

Najważniejsze elementy stabilnej wersji Wine 5.0 obejmują obsługę wielu monitorów i obsługę Vulkan 1.1. Pełny dziennik zmian aktualizacji jest następujący:

Lista zmian Wine 5.0:

  • Moduły PE:
    • Większość modułów jest zbudowana w formacie PE (przenośny plik wykonywalny, format binarny systemu Windows) zamiast ELF, jeśli dostępny jest kompilator MinGW. Pomaga to różnym schematom ochrony przed kopiowaniem, które sprawdzają, czy zawartość modułów systemowych na dysku i w pamięci jest identyczna.
    • Rzeczywiste pliki binarne PE są kopiowane do przedrostka Wine zamiast fałszywych plików DLL. To sprawia, że ​​prefiks wygląda bardziej jak prawdziwa instalacja systemu Windows, kosztem dodatkowej przestrzeni dyskowej.
    • Moduły, które zostały przekonwertowane na PE, mogą używać standardowych funkcji C z szerokim znakiem, a także stałych znakowych z szerokim znakiem, takich jak L"abc". Dzięki temu kod jest łatwiejszy do odczytania.
    • Nie wszystkie moduły zostały jeszcze przekonwertowane na PE; jest to proces ciągły, który będzie kontynuowany podczas serii prac rozwojowych nad Wine 5.x.
    • Środowisko wykonawcze Wine C zostało zaktualizowane, aby obsługiwało łączenie z plikami binarnymi skompilowanymi przez MinGW; jest on domyślnie używany zamiast środowiska wykonawczego MinGW podczas budowania bibliotek DLL.
  • Grafika:
    • Wiele kart graficznych i monitorów jest prawidłowo obsługiwanych, łącznie z dynamicznymi zmianami konfiguracji.
    • Sterownik Vulkan obsługuje aż do wersji 1.1.126 specyfikacji Vulkan.
    • Biblioteka WindowsCodecs umożliwia konwersję większej liczby formatów bitmap, w tym formatów indeksowanych paletą.
  • Direct3D:
    • Pełnoekranowe aplikacje Direct3D blokują wygaszacz ekranu.
    • Prezentacje łańcucha wymiany DXGI informują aplikację o zminimalizowaniu odpowiedniego okna. Zwykle pozwala to aplikacjom na zmniejszenie zużycia procesora przy minimalizacji, a w niektórych przypadkach jest wymagane, aby umożliwić ponowne przywrócenie okna aplikacji.
    • W aplikacjach DXGI zaimplementowano przełączanie pomiędzy trybem pełnoekranowym i okienkowym za pomocą standardowej kombinacji Alt+Enter.
    • W aplikacjach Direct3D 12 zaimplementowano następujące funkcje:
      • Przełączanie pomiędzy trybem pełnoekranowym i okienkowym.
      • Zmiana trybów wyświetlania.
      • Skalowane prezenty.
      • Zmieniaj interwały. Te funkcje były już wcześniej zaimplementowane we wcześniejszych wersjach interfejsu API Direct3D.
    • Poprawiono obsługę różnych przypadków Edge. Pośród innych:
      • Wartości odniesienia poza zakresem dla testów alfa i szablonowych.
      • Próbkowanie zasobów 2D za pomocą próbników 3D i odwrotnie.
      • Rysowanie z mapowanymi teksturami i buforami.
      • Użycie nieprawidłowych obiektów maszynki do strzyżenia DirectDraw.
      • Tworzenie urządzeń Direct3D w nieprawidłowym systemie Windows, np. w oknie pulpitu.
      • Rzutnie z minimalnym Z większym lub równym maksymalnemu Z.
      • Zasoby powiązane jednocześnie przez widoki zasobów modułu cieniującego i widoki celu renderowania lub szablonu głębi.
      • Blits pomiędzy formatami ze składnikami alfa i bez nich. Ponieważ dobrze zachowujące się aplikacje nie opierają się na tych przypadkach brzegowych, zazwyczaj wpływają one tylko na jedną lub dwie aplikacje każda. Niemniej jednak jest ich całkiem sporo.
    • Regiony brudnych tekstur są śledzone dokładniej w przypadku przesyłania tekstur Direct3D 8 i 9.
    • Przesyłanie tekstur 3D skompresowanych za pomocą S3TC wymaga mniej przestrzeni adresowej. Ponieważ tekstury 3D mogą być potencjalnie duże, a wyczerpanie przestrzeni adresowej stanowi problem w aplikacjach 32-bitowych, tekstury 3D skompresowane za pomocą S3TC są przesyłane w porcjach, a nie w pojedynczym przesyłaniu.
    • Zaimplementowano interfejs ID3D11Multithread.
    • Wprowadzono różne poprawki i ulepszenia obliczeń oświetlenia dla starszych aplikacji DirectDraw.
    • Zaimplementowano ograniczoną obsługę blitów w łańcuchach wymiany.
    • Zaimplementowano więcej interfejsów API odbicia modułu cieniującego.
    • Blitter procesora wine3d może obsługiwać skompresowane zasoby źródłowe. Obsługa skompresowanych zasobów docelowych została już zaimplementowana w poprzedniej wersji.
    • Baza danych kart graficznych Direct3D rozpoznaje więcej kart graficznych.
    • Nowe klucze rejestru HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • "shader_backend" (REG_SZ)Zaplecze modułu cieniującego, którego należy użyć. Możliwe wartości to „glsl” (domyślne) dla GLSL, „arb” dla programów wierzchołków/fragmentów ARB i „none”, aby wyłączyć obsługę modułów cieniujących.
      • "strict_shader_math" (REG_DWORD)Włącz (0x1) lub wyłącz (0x0, domyślnie) bardziej rygorystyczne tłumaczenie shaderów Direct3D, potencjalnie kosztem wydajności. Obecnie robi to różnicę tylko w przypadku domyślnego modułu cieniującego GLSL w połączeniu z zastrzeżonymi sterownikami NVIDIA.
    • Przestarzały klucz rejestru HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • „UseGLSL”Zostało to zastąpione powyższym ustawieniem „shader_backend”.
  • D3DX:
    • Zaimplementowano obsługę kompresji tekstur przy użyciu kompresji S3TC.
    • Różne operacje, jak np. wypełnienia teksturą na powierzchniach, których nie można mapować, są realizowane bardziej poprawnie. Poprzednio ich implementacja opierała się na podstawowej implementacji Direct3D, która nie wymuszała ograniczeń mapowania.
    • Wprowadzono różne ulepszenia i poprawki do struktury efektów.
  • Jądro:
    • Większość funkcji, które znajdowały się wcześniej w Kernel32, została przeniesiona do KernelBase, aby zachować zgodność z architekturą najnowszych wersji systemu Windows.
    • Biblioteki o niewłaściwej bitowości 32/64-bitowej są ignorowane, gdy zostaną znalezione w ścieżce wyszukiwania, aby umożliwić załadowanie właściwej, jeśli zostanie znaleziona w dalszej części ścieżki.
    • Obiekty jądra są lepiej emulowane w przypadku sterowników urządzeń, które oczekują manipulowania obiektami od strony jądra.
    • Zaimplementowano obiekty synchronizacji na poziomie jądra, takie jak blokady spinowe, szybkie muteksy, usuwanie blokad i zmienne zasobów.
    • Stan baterii systemu jest prawidłowo raportowany do aplikacji.
  • Interfejs użytkownika:
    • Zminimalizowane okna są wyświetlane przy użyciu paska tytułu zamiast starych ikon w stylu systemu Windows 3.1.
    • Zaimplementowano nowe style przycisków Przyciski podziału i Łącza poleceń.
    • Element sterujący Edytuj ustawia poprawnie marginesy także dla czcionek CJK.
  • Integracja z komputerem stacjonarnym:
    • Dla folderów „Pobrane” i „Szablony” tworzone są dowiązania symboliczne do odpowiednich katalogów uniksowych.
  • Urządzenia wejściowe:
    • Sterowniki urządzeń typu Plug & Play można instalować i ładować podczas uruchamiania.
    • Kontrolery gier są lepiej obsługiwane, w tym odpowiednia obsługa przełącznika kapelusza, sterowania kierownicą, gazem i hamulcem.
    • Stary interfejs API joysticka w wersjach systemu Linux wcześniejszych niż 2.2 nie jest już obsługiwany.
  • .INTERNET:
    • Silnik Mono został zaktualizowany do wersji 4.9.4, w tym części platformy Windows Prezentacja Foundation (WPF).
    • Dodatki Gecko i Mono obsługują instalację współdzieloną, w której pliki są używane bezpośrednio z globalnej lokalizacji w katalogu /usr/share/wine, zamiast być kopiowane do każdego nowego przedrostka.
  • Internet i sieci:
    • Silnik Gecko został odświeżony w celu obsługi najnowszych zestawów narzędzi.
    • Zaimplementowano wiele nowych interfejsów API HTML.
    • MSHTML obsługuje niektóre elementy SVG.
    • Obiekt błędu i propagacja wyjątków są obsługiwane w języku VBScript.
    • Zaimplementowano wiele wbudowanych funkcji VBScript.
    • JScript Tryb zgodny z EcmaScript został rozszerzony o obsługę większej liczby funkcji.
    • Obiekty skryptów JScript i VBScript udostępniają interfejsy informacji o typie.
    • Konfigurację serwera proxy HTTP można pobrać za pośrednictwem protokołu DHCP.
    • Obsługiwane są przekierowania HTTP paszportu.
    • Usługa HTTP i odpowiadająca jej biblioteka po stronie klienta (HTTPAPI) są częściowo zaimplementowane.
  • Kryptografia:
    • Klucze ECC (krzywa eliptyczna) są obsługiwane podczas korzystania z GnuTLS.
    • Zaimplementowano importowanie kluczy i certyfikatów z obiektów blob PFX.
    • Obsługiwany jest algorytm wyprowadzania klucza PBKDF2.
  • Tekst i czcionki:
    • Funkcje pozycjonowania OpenType są obsługiwane w programie DirectWrite i domyślnie włączone dla alfabetu łacińskiego, łącznie z kerningiem.
    • Dostęp do danych czcionek jest bezpieczniejszy dzięki sprawdzeniu poprawności różnych tabel danych przed ich użyciem.
    • Interfejsy DirectWrite zostały zaktualizowane do najnowszego pakietu SDK, zawierającego niektóre z najnowszych dodatków API.
  • Audio Video:
    • Biblioteki XAudio2 zostały ponownie zaimplementowane tak, aby mogły korzystać z zewnętrznej biblioteki FAudio, co zapewnia lepszą kompatybilność.
    • Biblioteki Media Foundation są rozbudowane, w tym:
      • Obsługa wbudowanych i asynchronicznych kolejek roboczych użytkownika.
      • Możliwość przesyłania okresowych wywołań zwrotnych, oczekujących, zaplanowanych i regularnych elementów pracy, z obsługą priorytetu elementów.
      • Obsługa kolejek zdarzeń medialnych.
      • Różne podstawowe API do obsługi obiektów typu media, deskryptorów strumieni i prezentacji, atrybutów obiektów, obiektów strumieni bajtów, próbek i buforów.
      • Początkowa implementacja narzędzia do rozpoznawania źródła.
      • Wstępna implementacja API Source Reader.
      • Implementacja obiektu Sample Grabber.
      • Podstawowe wsparcie dla budowania obiektów topologicznych.
      • Implementacja wbudowanego zegara prezentacji, rozpoczęto wdrażanie funkcjonalności Media Session.
    • Filtr przechwytywania wideo został przeniesiony tak, aby korzystał z wersji 4l2 zamiast przestarzałego interfejsu API v4l1, co umożliwia korzystanie z niektórych kamer, które nie obsługują wersji 4l1.
    • Usunięto obsługę tłumaczenia i odczytu YUV na RGB z urządzeń v4l2 przy użyciu mmap(); w obu przypadkach polegamy teraz na libv4l2.
    • Wbudowane dekodery AVI, MPEG-I i WAVE zostały usunięte; do dekodowania takich plików multimedialnych polegamy teraz na GStreamer lub Mac QuickTime Toolkit.
    • Zaimplementowano więcej interfejsów API konfiguracji VMR7.
    • Sterowniki dźwięku obsługują regulację głośności dla każdego kanału.
  • Umiędzynarodowienie:
    • Tabele znaków Unicode oparte są na wersji 12.1.0 standardu Unicode.
    • Zaimplementowano normalizację Unicode.
    • Identyfikator regionu geograficznego jest automatycznie ustawiany w rejestrze na podstawie bieżących ustawień regionalnych. W razie potrzeby można go zmodyfikować w HKEY_CURRENT_USER\Control Panel\International\Geo.
    • Obsługiwane są języki syngaleskie i asturyjskie.
    • Obsługiwana jest strona kodowa 28601 (łacińska/tajska).
  • RPC/COM:
    • Organizator typelib obsługuje złożone struktury i tablice.
    • Istnieje wstępna implementacja biblioteki wykonawczej Windows Script.
    • Istnieje wstępna implementacja biblioteki Microsoft ActiveX Data Objects (ADO).
  • Instalatorzy:
    • Obsługiwane są pliki poprawek Instalatora Microsoft (MSI).
    • Narzędzie WUSA (samodzielny instalator Windows Update) obsługuje instalowanie plików aktualizacji .MSU.
  • Platformy ARM:
    • Odwijanie wyjątków jest zaimplementowane dla ARM64 przy użyciu biblioteki libunwind.
    • Bezstopniowe proxy OLE są obsługiwane na ARM64.
  • Narzędzia programistyczne / Winelib:
    • Zdalny debuger programu Visual Studio może służyć do debugowania aplikacji działających w środowisku Wine.
    • Biblioteka Debug Engine (DBGENG) została częściowo zaimplementowana.
    • Pliki binarne zbudowane dla systemu Windows nie są już zależne od biblioteki libwine, co umożliwia ich działanie w systemie Windows bez żadnych dodatkowych zależności. Biblioteka libwine nie jest już w ogóle tworzona dla systemu Windows.
    • Kompilator zasobów i kompilator IDL obsługują opcję „--sysroot”, która umożliwia lokalizowanie plików nagłówkowych w środowiskach kompilacji krzyżowej.
    • Winegcc obsługuje opcje „--target”, „--wine-objdir”, „--winebuild” i „-fuse-ld”, które ułatwiają użycie go jako kompilatora krzyżowego lub z niestandardowymi łańcuchami narzędzi.
    • Nagłówek wine/unicode.h nie jest już dostępny dla aplikacji, ponieważ funkcje zostaną ostatecznie usunięte i zastąpione standardowymi funkcjami znakowymi środowiska wykonawczego C.
  • Zbuduj infrastrukturę:
    • Pliki binarne testowe są budowane w formacie PE, jeśli dostępny jest MinGW, więc ten sam plik binarny testowy może działać zarówno w Wine, jak i Windows. Cel marki „crosstest” nie jest już potrzebny ani obsługiwany.
    • Konwencja wywoływania „fastcall” jest obsługiwana w plikach specyfikacji. Używa poprawnego zmiany nazwy dla kompilacji systemu Windows.
    • W plikach specyfikacji obsługiwana jest flaga punktu wejścia „-import”, aby zaznaczyć funkcje, które wymagają wygenerowania przedrostka kodu poprawki hotpatch w celu importowania.
    • Winebuild obsługuje opcję „--builtin”, która pozwala na dodanie specjalnego podpisu do plików binarnych PE w celu oznaczenia ich jako wbudowanych plików Wine.
  • Wbudowane aplikacje:
    • Wdrożono narzędzie CHCP. Umożliwia ustawienie strony kodowej konsoli.
    • Zaimplementowano narzędzie MSIDB. Umożliwia manipulowanie bazami danych MSI.
  • Ulepszenia w wydajności:
    • Różne funkcje czasowe korzystają z zegarów systemowych o wyższej wydajności, jeśli są dostępne, aby zmniejszyć obciążenie pętli renderowania w wielu grach.
    • Wyszukiwanie plików korzysta z obsługi składania wielkości liter w systemie plików ext4, jeśli jest ona włączona w przeszukiwanym katalogu.
    • Pola list w stylu braku danych (LBS_NODATA) charakteryzują się lepszą wydajnością w przypadku dużej liczby elementów.
    • Zamki Slim Reader/Writer, zdarzenia z kluczem i zmienne warunkowe używają futeksów w systemie Linux, aby uniknąć podróży w obie strony serwera Wine.
  • Nowe zależności zewnętrzne:
    • Kompilator krzyżowy MinGW-w64 służy do budowania modułów w formacie PE.
    • Biblioteka FAudio służy do implementacji XAudio2.
    • Biblioteka Inotify służy do powiadamiania o zmianach plików na platformach BSD.
    • Biblioteka Unwind służy do obsługi wyjątków w ARM64.
    • Zamiast wersji 1 używana jest biblioteka Video4Linux w wersji 2.

Czytaj więcej


Źródło: Siedziba Wina

Historia przez: Policja Androida