Nie bądź zakładnikiem Microsoftu. Linux też odpali programy z Windowsa

3 godzin temu

Zapewne każdy, kto choć raz spróbował przesiadki na Linuksa albo Maca, odbił się od tej samej ściany: ulubiona gra, program księgowy czy specjalistyczne narzędzie działa tylko na Windowsie. Wine to rozwiązanie stare jak świat, które z powodzeniem pozwala odpalać okienkowy soft na Linuksie, macOS, FreeBSD, a choćby Androidzie. Pytanie tylko, co ten mechanizm potrafi, a czego jeszcze nie potrafi.

Wine to NIE JEST emulator

Wine to skrót od Wine Is Not an Emulator. Wyjaśnijmy to sobie raz a dobrze – Wine niczego nie symuluje. Gdy włączasz wirtualną maszynę, komputer musi udawać całe inne urządzenie, co zjada mnóstwo zasobów. Zamiast stawiać pod maską ciężkie, sztuczne środowisko, ten projekt działa jak tłumacz na żywo. Gdy gra napisana na Windowsa prosi o wyświetlenie grafiki albo odtworzenie dźwięku, Wine przechwytuje tę komendę i natychmiast przekłada ją na język rozumiany przez Linux czy macOS.

Wine to akronim. | Źródło: GitHub

Cały ten proces odbywa się bez odczuwalnych opóźnień. Ale jak to w ogóle możliwe? Wine ma w sobie własne, napisane od zera odpowiedniki bibliotek systemowych Microsoftu. Obsługuje stare programy 16-bitowe, tradycyjne aplikacje 32-bitowe i nowożytny kod 64-bitowy. Do tego dogaduje się z bibliotekami DirectX, Vulkan oraz OpenGL, a dźwięk rozdziela przez standardowe systemowe miksery.

Wiele współczesnych programów i gier potrafi działać na Linuksie zaskakująco płynnie – czasem choćby stabilniej niż na oryginalnym systemie Microsoftu.

Strona główna warstwy Wine poprowadzi Cię za rączkę. | Źródło: winehq.org

Co ciekawe, w jednym systemie możesz trzymać odizolowane od siebie „butelki”. To po prostu osobne profile z własnymi ustawieniami Windowsa. Dzięki temu jeden stary program księgowy myśli, iż działa na Windowsie XP, a odpalona obok gra korzysta z bibliotek pod Windowsa 10. Aplikacje nie działają też w zupełnej izolacji od otoczenia. Wine integruje się z pulpitem Linuksa, tworząc skróty w menu systemowym, obsługując wspólny schowek oraz pozwalając na bezpośrednie otwieranie skojarzonych plików (np. . psd czy .doc).

Instalacja Winampa z pliku .exe na systemie Linux. | Źródło: mat. własny

To bat na monopol Microsoftu

Bez Wine wybór alternatywnego systemu operacyjnego byłby dla wielu osób po prostu niemożliwy. Wyobraź sobie firmę, która chce uciec od wzrastających cen licencji Windowsa. Zwykle blokują ją specjalistyczne programy do księgowości czy magazynu, które istnieją tylko w wersji na Okienka. Tłumacz API usuwa tę barierę – pozwalając zachować stare oprogramowanie na nowym, darmowym systemie.

Jest w tym też ukryty plus dla bezpieczeństwa. Kod Wine powstaje niezależnie od Microsoftu. jeżeli jakiś wirus wykorzystuje lukę w konkretnym elemencie Windowsa, na Linuksie pod Wine najczęściej po prostu nie zadziała, bo ten element został napisany inaczej. Zwiększanie różnorodności systemów na rynku sprawia, iż hakerom trudniej zainfekować miliony maszyn jednym prostym atakiem.

Decyzja Valve o stworzeniu konsoli Steam Deck nie wzięła się znikąd. Ich nakładka Proton to nic innego jak mocno podrasowane Wine, nakierowane na wydajność w grach. Śladem tym idą także inni giganci. Na architektury ARM (np. procesory Apple Silicon z serii M) trafiają rozwiązania w stylu Apple Game Porting Toolkit, które również korzystają z dorobku tego projektu.

Steam na Linux – wybór Protona. | Źródło: mat. własny

Cudów nie ma, czyli gdzie leżą granice

Największym ograniczeniem jest fakt, iż Wine działa wyłącznie w trybie użytkownika, a nie w głębokim rdzeniu systemu. Z tego powodu nie uruchomisz na nim sterowników do nietypowego sprzętu z Windowsa. Urządzenie musi być najpierw rozpoznane przez sam system operacyjny gospodarza.

Wine i Bottles dostępne w menedżerze systemu na Linux Mint. | Źródło: mat. własny

To samo dotyczy agresywnych zabezpieczeń w grach. Systemy antypirackie oraz oprogramowanie typu anti-cheat (jak chociażby Vanguard) wymagają niskopoziomowego dostępu do komputera. Ponieważ Wine im tego nie da, gra po prostu się nie włączy.

Trzeba też pamiętać o sprawach bezpieczeństwa. Wine domyślnie nie zamyka uruchamianych aplikacji w bezpiecznym klatkowym środowisku (tzw. sandboxie). jeżeli pobierzesz z sieci zainfekowany plik .exe i włączysz go przez Wine, szkodnik dostanie takie same uprawnienia do Twoich prywatnych plików, jak użytkownik, który go odpalił. Z tego powodu uruchamianie tego narzędzia z poziomu konta administratora (root) to prosta droga do kłopotów.

Nie każda aplikacja w ogóle zadziała. Projekt stale się rozwija, a społeczność prowadzi ogromną bazę danych AppDB, w której użytkownicy oceniają działanie tysięcy programów.

Baza aplikacji obsługiwanych przez Wine. | Źródło: AppDB (zrzut ekranu)

Choć klasyczne Wine obsługuje się głównie z terminala i pomocniczego skryptu Winetricks, dzisiaj nikt nie musi klepać komend manualnie. Dla początkujących powstały wygodne nakładki graficzne, takie jak Bottles, Lutris czy płatny CrossOver. Pozwalają one zarządzać „butelkami”, dociągać brakujące biblioteki i instalować programy dosłownie kilkoma kliknięciami myszy.

Wygodna „obsługa” Wine poprzez Winetricks. | Źródło: mat. własny

Na sam start nie potrzebujesz jednak zaawansowanej wiedzy. Narzędzie zajmuje zaledwie około 1,4 GB na dysku i nie zużywa zasobów, gdy z niego nie korzystasz. Wystarczy zainstalować je kilkoma kliknięciami z menedżera pakietów w Twoim systemie i sprawdzić, jak ulubiony program radzi sobie bez Windowsa pod maską.

Źródło: oprac. własne / Zdj. otwierające: WineHQ, mat. własny (zrzut ekranu)

linuxopensource
Idź do oryginalnego materiału