Wine je Windows kompatibilni sloj koji korisnicima omogućuje pokretanje Windows aplikacija na drugim operativnim sustavima. Wine za Android sada je dosegao verziju 5.0 -- provjerite!
Ekosustav Android aplikacija postojano se razvijao tijekom godina postojanja Androida, potaknut stalnim usvajanjem mobilnih uređaja kao primarne računalne interakcije za većinu ljudi. Mnogi su korisnici gravitirali prema načinu života isključivo na mobilnim uređajima, a to je zato što su aplikacije i ekosustav aplikacija na mobilnim uređajima uspjeli ispuniti njihove posebne potrebe. Ali ako vam ikada treba aplikacija za radnu površinu, a da nemate pristup radnoj površini, što biste učinili? Ovdje dolazi Wine, Windows kompatibilni sloj koji korisnicima omogućuje pokretanje potpunih Windows aplikacija na različitim operativnim sustavima. Wine za Android ima sada dosegnut v5.0, prikupljajući jednogodišnje razvojne napore tima.
Wine je besplatan sloj kompatibilnosti otvorenog koda za Windows, čiji je cilj omogućiti računalnim programima koji su razvijeni za Windows da rade na drugim operativnim sustavima.
Wine za Android donosi Wine na Android, očito. Wine nije emulator (što je zapravo rekurzivna pozadinska oznaka imena), tako da se može pokrenuti samo verzije aplikacija specifične za arhitekturu -- ARM verzija Winea za Android pokretat će samo ARM aplikacije, a ne x86.Najvažnije stvari za stabilno izdanje Wine 5.0 uključuju podršku za više monitora i podršku za Vulkan 1.1. Potpuni dnevnik promjena za ažuriranje je sljedeći:
Wine 5.0 Changelog:
- PE moduli:
- Većina modula izgrađena je u PE formatu (Portable Executable, Windows binarni format) umjesto ELF-a kada je MinGW kompajler dostupan. Ovo pomaže raznim shemama zaštite od kopiranja koje provjeravaju jesu li sadržaji na disku i u memoriji modula sustava identični.
- Stvarne PE binarne datoteke kopiraju se u Wine prefiks umjesto u lažne DLL datoteke. Zbog toga prefiks izgleda više kao prava Windows instalacija, po cijenu dodatnog prostora na disku.
- Moduli koji su pretvoreni u PE mogu koristiti standardne C funkcije sa širokim znakovima, kao i konstante sa širokim znakovima poput L"abc". To čini kôd lakšim za čitanje.
- Još nisu svi moduli pretvoreni u PE; ovo je tekući proces koji će se nastaviti tijekom razvojne serije Wine 5.x.
- Wine C runtime je ažuriran kako bi podržao povezivanje s MinGW-kompiliranim binarnim datotekama; koristi se prema zadanim postavkama umjesto MinGW runtimea prilikom izgradnje DLL-ova.
- Grafika:
- Više adaptera za prikaz i monitora ispravno je podržano, uključujući dinamičke promjene konfiguracije.
- Upravljački program Vulkan podržava do verzije 1.1.126 specifikacije Vulkan.
- Knjižnica WindowsCodecs može pretvoriti više bitmap formata, uključujući formate indeksirane paletom.
- Direct3D:
- Direct3D aplikacije preko cijelog zaslona sprječavaju čuvar zaslona.
- DXGI swapchain predstavlja obavještava aplikaciju kada je odgovarajući prozor minimiziran. To obično omogućuje aplikacijama da smanje upotrebu CPU-a dok su minimizirane, au nekim je slučajevima potrebno kako bi se omogućilo ponovno vraćanje prozora aplikacije.
- Za DXGI aplikacije implementirano je prebacivanje između načina rada preko cijelog zaslona i načina rada u prozoru pomoću standardne kombinacije Alt+Enter.
- Sljedeće su značajke implementirane za Direct3D 12 aplikacije:
- Prebacivanje između cijelog zaslona i prozora.
- Mijenjanje načina prikaza.
- Skalirani darovi.
- Intervali izmjene. Ove su značajke ranije već bile implementirane za ranije verzije Direct3D API-ja.
- Poboljšano je rukovanje raznim rubnim slučajevima. Između ostalih:
- Referentne vrijednosti izvan raspona za alfa i stencil testove.
- Uzorkovanje 2D resursa pomoću 3D uzorkovatelja i obrnuto.
- Crtanje s mapiranim teksturama i međuspremnicima.
- Upotreba nevažećih DirectDraw clipper objekata.
- Stvaranje Direct3D uređaja na nevažećim Windowsima, poput prozora radne površine.
- Okviri s minimalnim Z većim ili jednakim maksimalnom Z.
- Resursi istovremeno povezani kroz prikaze shader-resursa i render-target ili dubinske matrice.
- Prebacuje između formata sa i bez alfa komponenti. Budući da se aplikacije koje se dobro ponašaju ne oslanjaju na te rubne slučajeve, one obično utječu samo na jednu ili dvije aplikacije. Ipak ih ima popriličan broj.
- Prljave regije teksture prate se točnije za Direct3D 8 i 9 prijenos tekstura.
- Učitavanje 3D tekstura komprimiranih S3TC-om zahtijeva manje adresnog prostora. Budući da 3D teksture mogu biti potencijalno velike, a iscrpljenost adresnog prostora je problem za 32-bitne aplikacije, 3D teksture komprimirane S3TC-om učitavaju se po komadu, umjesto u jednom učitavanju.
- Implementirano je sučelje ID3D11Multithread.
- Napravljeni su različiti popravci izračuna rasvjete i poboljšanja za starije DirectDraw aplikacije.
- Implementirana je ograničena podrška za blitove preko swapchaina.
- Implementirano je više API-ja refleksije shadera.
- Wind3d CPU blitter može rukovati komprimiranim izvornim resursima. Podrška za komprimirane odredišne resurse već je implementirana u prethodnom izdanju.
- Direct3D baza podataka grafičkih kartica prepoznaje više grafičkih kartica.
- Novi ključevi registra HKEY_CURRENT_USER\Software\Wine\Direct3D:
- "shader_backend" (REG_SZ) Pozadina shadera za korištenje. Moguće vrijednosti su "glsl" (zadano) za GLSL, "arb" za ARB vertex/fragment programe i "none" za onemogućavanje podrške za shadere.
- "strict_shader_math" (REG_DWORD) Omogući (0x1) ili onemogući (0x0, zadano) stroži prijevod Direct3D shadera, potencijalno po cijeni izvedbe. Ovo trenutno čini razliku samo sa zadanom pozadinom GLSL shadera u kombinaciji s vlasničkim NVIDIA upravljačkim programima.
- Zastarjeli ključ registra HKEY_CURRENT_USER\Software\Wine\Direct3D:
- "UseGLSL" Ovo je zamijenjeno gornjom postavkom "shader_backend".
- D3DX :
- Implementirana je podrška za kompresiju tekstura pomoću S3TC kompresije.
- Razne operacije, kao npr. ispune teksture, na površinama koje se ne mogu preslikati implementiraju se točnije. Prethodno se njihova implementacija oslanjala na temeljnu Direct3D implementaciju koja nije nametala ograničenja mapiranja.
- Razna poboljšanja i popravci napravljeni su na okviru učinka.
- Zrno:
- Većina funkcija koje su bile u Kernelu32 premještene su u KernelBase, kako bi slijedile arhitekturu novijih verzija Windowsa.
- Knjižnice pogrešne 32/64-bitnosti zanemaruju se kada se pronađu na putu pretraživanja kako bi se omogućilo učitavanje ispravne ako se pronađe dalje na putu.
- Objekti jezgre se bolje emuliraju za upravljačke programe uređaja koji očekuju manipuliranje objektima sa strane jezgre.
- Implementirani su objekti sinkronizacije na razini jezgre kao što su spin zaključavanja, brzi muteksi, uklanjanje zaključavanja i varijable resursa.
- Stanje baterije sustava pravilno se prijavljuje aplikacijama.
- Korisničko sučelje:
- Minimizirani prozori prikazuju se pomoću naslovne trake umjesto starih ikona u stilu Windows 3.1.
- Implementirani su novi stilovi gumba Split Buttons i Command Links.
- Kontrola Edit ispravno postavlja margine i za CJK fontove.
- Integracija radne površine:
- Za mape 'Preuzimanja' i 'Predlošci' stvorene su simboličke veze na odgovarajuće Unix direktorije.
- Ulazni uređaji:
- Upravljački programi Plug & Play uređaja mogu se instalirati i učitati pri pokretanju.
- Upravljači za igre bolje su podržani, uključujući ispravnu podršku za prekidač, kotačić, kontrolu gasa i kočnice.
- Stari joystick API verzija Linuxa starijih od 2.2 više nije podržan.
- .NETO:
- Motor Mono ažuriran je na verziju 4.9.4, uključujući dijelove okvira Windows Presentation Foundation (WPF).
- Gecko i Mono dodaci podržavaju zajedničku instalaciju, gdje se datoteke koriste izravno s globalne lokacije pod /usr/share/wine umjesto da se kopiraju u svaki novi prefiks.
- Internet i umrežavanje:
- Gecko motor je osvježen kako bi podržao novije lance alata.
- Implementiran je niz novih HTML API-ja.
- MSHTML podržava neke SVG elemente.
- Objekt pogreške i širenje iznimke podržani su u VBScriptu.
- Implementiran je niz ugrađenih funkcija VBScripta.
- JScript Način rada usklađen s EcmaScriptom proširen je tako da podržava više značajki.
- Objekti skripti JScript i VBScript izlažu informacijska sučelja tipa.
- HTTP proxy konfiguracija može se dohvatiti putem DHCP-a.
- Passport HTTP preusmjeravanja su podržana.
- HTTP usluga i odgovarajuća biblioteka na strani klijenta (HTTPAPI) su djelomično implementirane.
- Kriptografija:
- Ključevi ECC (eliptične krivulje) podržani su kada koristite GnuTLS.
- Implementiran je uvoz ključeva i certifikata iz PFX blobova.
- PBKDF2 algoritam za derivaciju ključa je podržan.
- Tekst i fontovi:
- OpenType značajke pozicioniranja podržane su u DirectWriteu i omogućene za latinično pismo prema zadanim postavkama, uključujući kerning.
- Pristup podacima o fontovima postaje sigurniji provjerom valjanosti različitih podatkovnih tablica prije njihove uporabe.
- DirectWrite sučelja ažurirana su na noviji SDK, implementirajući neke od najnovijih API dodataka.
- Audio/video:
- Knjižnice XAudio2 ponovno su implementirane za korištenje vanjske biblioteke FAudio, radi bolje kompatibilnosti.
- Knjižnice Media Foundationa su detaljizirane, uključujući:
- Podrška za ugrađene i korisničke asinkrone radne redove.
- Mogućnost podnošenja periodičnih povratnih poziva, čekanja, zakazanih i redovitih radnih stavki, uz podršku za prioritet stavke.
- Podrška za redove medijskih događaja.
- Različiti osnovni API za rukovanje objektima vrste medija, deskriptorima toka i prezentacije, atributima objekata, objektima toka bajtova, uzorcima i međuspremnicima.
- Inicijalna implementacija razrješitelja izvora.
- Početna implementacija Source Reader API-ja.
- Implementacija za objekt Sample Grabber.
- Osnovna podrška za izgradnju topoloških objekata.
- Implementacija ugrađenog prezentacijskog sata, počela implementacija funkcionalnosti Media Session.
- Filtar za video snimanje prenesen je za korištenje v4l2 umjesto zastarjelog v4l1 API-ja, dopuštajući korištenje nekih kamera koje ne podržavaju v4l1.
- Podrška za prijevod YUV u RGB i čitanje s v4l2 uređaja pomoću mmap() je uklonjena; sada ovisimo o libv4l2 za obje ove stvari.
- Ugrađeni AVI, MPEG-I i WAVE dekoderi su uklonjeni; sada ovisimo o GStreameru ili Mac QuickTime Toolkitu za dekodiranje takvih medijskih datoteka.
- Implementirani su još neki VMR7 konfiguracijski API-ji.
- Zvučni upravljački programi podržavaju prilagodbe glasnoće po kanalu.
- Internacionalizacija:
- Unicode tablice znakova temelje se na verziji 12.1.0 Unicode standarda.
- Unicode normalizacija je implementirana.
- ID geografske regije automatski se postavlja u registru na temelju trenutne lokalne postavke. Može se izmijeniti ako je potrebno pod HKEY_CURRENT_USER\Control Panel\International\Geo.
- Sinhaleški i asturijski jezik su podržani.
- Podržana je kodna stranica 28601 (latinica/tajlandski).
- RPC/COM:
- Typelib marshaller podržava složene strukture i nizove.
- Postoji početna implementacija runtime biblioteke Windows Script.
- Postoji početna implementacija biblioteke Microsoft ActiveX Data Objects (ADO).
- Instalateri:
- Podržane su datoteke zakrpe Microsoft Installer (MSI).
- WUSA alat (Windows Update Standalone Installer) podržava instaliranje .MSU datoteka ažuriranja.
- ARM platforme:
- Odmotavanje izuzetaka implementirano je za ARM64, korištenjem biblioteke libunwind.
- OLE stubless proxyji podržani su na ARM64.
- Razvojni alati / Winelib:
- Udaljeni alat za ispravljanje pogrešaka Visual Studio može se koristiti za ispravljanje pogrešaka u aplikacijama koje rade pod Wineom.
- Biblioteka Debug Engine (DBGENG) je djelomično implementirana.
- Binarne datoteke izgrađene za cilj Windowsa više ne ovise o biblioteci libwine, kako bi im se omogućilo izvođenje u sustavu Windows bez ikakvih dodatnih ovisnosti. Knjižnica libwine uopće više nije izgrađena za Windows.
- Resource Compiler i IDL Compiler podržavaju opciju '--sysroot' kako bi se omogućilo lociranje datoteka zaglavlja u okruženjima unakrsnog prevođenja.
- Winegcc podržava opcije '--target', '--wine-objdir', '--winebuild' i '-fuse-ld' koje olakšavaju korištenje kao unakrsnog kompajlera ili s prilagođenim lancima alata.
- Wine/unicode.h zaglavlje više nije dostupno aplikacijama, budući da će funkcije u konačnici biti uklonjene i zamijenjene standardnim C runtime širokim karakternim funkcijama.
- Izgradi infrastrukturu:
- Testne binarne datoteke izgrađene su u PE formatu ako je MinGW dostupan, tako da se ista testna binarna datoteka može izvoditi i na Wineu i na Windowsu. Make target 'crosstest' više nije potreban niti podržan.
- Konvencija poziva 'fastcall' podržana je u datotekama specifikacija. Koristi ispravnu promjenu naziva za međuverzije sustava Windows.
- Zastavica ulazne točke '-import' podržana je u datotekama specifikacija za označavanje funkcija kojima je potreban prefiks koda za brzu zakrpu koji će se generirati za njihove ulaze za uvoz.
- Winebuild podržava opciju '--builtin' za dodavanje posebnog potpisa PE binarnim datotekama kako bi ih označili kao Wine ugrađene.
- Ugrađene aplikacije:
- CHCP alat je implementiran. Omogućuje postavljanje kodne stranice konzole.
- Implementiran je MSIDB alat. Omogućuje manipuliranje MSI bazama podataka.
- Poboljšanja performansi:
- Različite vremenske funkcije koriste satove sustava s višim performansama, ako su dostupni, kako bi smanjile opterećenje u petlji renderiranja mnogih igara.
- Traženje datoteka iskorištava podršku ext4 datotečnog sustava za preklapanje velikih i malih slova ako je omogućena u direktoriju koji se pretražuje.
- Popisni okviri stila bez podataka (LBS_NODATA) imaju bolju izvedbu za veliki broj stavki.
- Slim Reader/Writer zaključavanja, ključni događaji i varijable uvjeta koriste futexe na Linuxu kako bi izbjegli povratna putovanja wineserver-a.
- Nove vanjske ovisnosti:
- Unakrsni kompajler MinGW-w64 koristi se za izgradnju modula u PE formatu.
- Knjižnica FAudio koristi se za implementaciju XAudio2.
- Knjižnica Inotify koristi se za obavijesti o promjenama datoteka na BSD platformama.
- Knjižnica Unwind koristi se za rukovanje iznimkama na ARM64.
- Umjesto verzije 1 koristi se biblioteka Video4Linux verzije 2.
Čitaj više
Izvor: Sjedište vina
Priča putem: AndroidPolice