Vin

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

Wine este un strat de compatibilitate pentru rularea aplicațiilor Windows pe Linux.

Wine este un strat de compatibilitate open-source pentru rularea aplicațiilor Windows pe sisteme de operare bazate pe Unix, cum ar fi Linux și macOS. Permite utilizatorilor să ruleze software Windows fără a fi nevoie de un sistem de operare Windows.

Wine înseamnă „Wine Is Not an Emulator” deoarece nu emulează un mediu Windows complet, ci mai degrabă traduce apelurile de sistem Windows în echivalentele lor pe sistemul gazdă. Acest lucru permite aplicațiilor Windows să ruleze mai eficient și cu performanțe mai bune decât dacă ar fi emulate.

Caracteristici

Compatibilitate binară

  • Încarcă programe și biblioteci Windows 9x/NT/2000/XP/Vista/7/8/10 și Windows 3.x pe 64 de biți, 32 de biți și 16 biți
  • Aspect de memorie compatibil Win32, gestionarea excepțiilor, fire și procese
  • Proiectat pentru sisteme de operare compatibile POSIX (de exemplu, Linux, macOS și FreeBSD) și Android
  • compatibilitate „bug-for-bug” cu Windows

Suport API Win32

  • Suport pentru jocuri și aplicații bazate pe DirectX (suport Direct3D până la DirectX 12)
  • Suport pentru jocuri și aplicații bazate pe OpenGL și Vulkan
  • Suport DirectShow cu utilizarea GStreamer pentru codecuri
  • Suport Direct2D, DirectWrite
  • Sunt acceptate API-urile audio MMDevice, XAudio, WinMM, DirectSound
  • Imprimarea prin driverul PostScript către sistemul de imprimare gazdă (de obicei CUPS)
  • Driver îmbunătățit Metafile (EMF) și Windows Metafile (WMF).
  • Desktop-in-a-box sau ferestre mixabile

Permite programului Windows să interfațeze cu:

  • Grafică bazată pe X11 care permite afișarea de la distanță pe orice terminal X
  • Grafică bazată pe macOS și Android
  • Fonturi X11, TrueType (.ttf/.ttc) și Windows Bitmap (.fon)
  • Dispozitive de sunet prin ALSA, OSS, PulseAudio, Core Audio etc.
  • Suport pentru tastaturi multilingve și metoda de introducere CJK prin XIM
  • Modemuri, dispozitive seriale
  • Rețele (TCP/IP și IPX)
  • Scanere ASPI
  • Tablete Windows prin XInput (de exemplu, Wacom)
  • Dispozitive de captură video prin v4l2
  • Dispozitive HID prin IOHid (MacOS), evdev (Linux), hidraw (Linux), SDL2

Acoperire și portabilitate API

  • Proiectat pentru compatibilitate sursă și binară cu codul Win32
  • Suita de testare Win32 API pentru a asigura compatibilitatea
  • Compilabil pe o gamă largă de compilatoare C
  • Permite amestecarea codului Win32 și POSIX
  • Permite amestecarea binarelor ELF (.so) și PE (.dll/.exe) într-un spațiu de adrese
  • Fișierele antet compatibile cu Win32
  • Documentație API generată automat
  • Compilator de resurse
  • Compilatorul de mesaje
  • compilator IDL
  • Suport extins pentru Unicode
  • Internaționalizare – Wine acceptă 16 limbi
  • Depanator încorporat și mesaje de urmărire configurabile
  • Suport pentru verificarea memoriei externe folosind Valgrind
  • Exemple de programe

Ce este nou

Echipa Wine este mândră să anunțe că versiunea stabilă Wine 10.0 este acum disponibilă.

Această versiune reprezintă un an de efort de dezvoltare și peste 6.000 de modificări individuale. Conține un număr mare de îmbunătățiri care sunt enumerate mai jos. Principalele puncte de atracție sunt noua arhitectură ARM64EC și suportul de scalare cu DPI ridicat.

ARM64

  • Arhitectura ARM64EC este pe deplin acceptată, cu paritate caracteristică cu suportul ARM64.
  • Modulele hibride ARM64X sunt complet acceptate. Acest lucru permite amestecarea codului ARM64EC și simplu ARM64 într-un singur binar. Tot Wine poate fi construit ca ARM64X prin trecerea opțiunii –enable-archs=arm64ec,aarch64 pentru configurare. Acest lucru necesită încă un lanț de instrumente LLVM experimental, dar este de așteptat ca viitoarea lansare LLVM 20 să poată construi ARM64X Wine din cutie.
  • Este implementată interfața de emulare x86 pe 64 de biți. Acest lucru profită de suportul ARM64EC pentru a rula tot codul Wine ca nativ, doar codul x86-64 al aplicației necesită emulare.
  • Wine nu oferă nicio bibliotecă de emulare în acest moment, dar poate fi utilizată o bibliotecă externă care exportă interfața de emulare, specificând numele acesteia în cheia de registry HKLM\Software\Microsoft\Wow64\amd64. Emulatorul FEX implementează această interfață atunci când este construit ca ARM64EC.
  • Trebuie remarcat faptul că suportul ARM64 necesită ca dimensiunea paginii de sistem să fie de 4K, deoarece aceasta este ceea ce specifică Windows ABI. Rularea pe nuclee cu pagini de 16K sau 64K nu este acceptată în acest moment.

Grafică

  • Suportul pentru DPI ridicat este implementat cu mai multă acuratețe, iar ferestrele care nu conștient DPI sunt scalate automat, în loc să expună dimensiunile DPI ridicate la aplicații care nu se așteaptă.
  • Indicatoarele de compatibilitate sunt implementate pentru a suprascrie suportul pentru DPI ridicat, fie per-aplicație, fie la nivel global în prefix.
  • Redarea ferestrei copil Vulkan este acceptată cu backend-ul X11, pentru aplicațiile care necesită randare 3D pe ferestrele copil. Acest lucru a fost deja acceptat cu OpenGL, iar suportul Vulkan este acum la egalitate.
  • Driverul Vulkan acceptă până la versiunea 1.4.303 a specificației Vulkan. De asemenea, acceptă extensiile Vulkan Video.
  • Legarea fonturilor este acceptată în GdiPlus.

Integrare desktop

  • Este disponibil un nou mecanism de emulare pentru setarea modului de înscriere. Este încă foarte experimental, dar poate fi folosit pentru a forța modificările modului de afișare să fie emulate complet, în loc să modifice efectiv setările de afișare.
  • Ferestrele sunt căptușite și scalate dacă este necesar pentru a se potrivi în afișajul fizic, ca și cum rezoluția monitorului ar fi schimbată, dar nu este necesară nicio setare a modului real, îmbunătățind experiența utilizatorului.
  • Este furnizat un nou applet Desktop Control Panel desk.cpl, pentru a inspecta și a modifica configurația afișajului. Poate fi folosit și pentru a modifica rezoluția desktopului virtual sau pentru a controla noile setări de afișare emulate.
  • Setările de afișare sunt restaurate la valorile implicite dacă un proces se blochează fără a le restaura corect.
  • Pictogramele din bara de sistem pot fi complet dezactivate setând NoTrayItemsDisplay=1 în cheia HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.
  • Lansatoarele Shell pot fi dezactivate în modul desktop setând NoDesktop=1 în cheia HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.

Direct3D

  • Redarea GL necesită acum GLSL 1.20, EXT_framebuffer_object și ARB_texture_non_power_of_two. Backend-ul vechi de shader ARB nu mai este disponibil, iar setarea Offscreen RenderingMode a fost eliminată.
  • Exportul shader stencil este implementat pentru randarele GL și Vulkan.
  • Este disponibilă o conductă de funcții fixe bazată pe HLSL pentru Direct3D 9 și versiuni anterioare, oferind suport pentru emularea funcției fixe pentru redarea Vulkan. Poate fi folosit și pentru redarea GL, setând setarea D3D ffp_hlsl la o valoare diferită de zero folosind registry sau variabila de mediu WINE_D3D_CONFIG.
  • Redarea Vulkan folosește mai multe extensii de stare dinamice, dacă sunt disponibile, cu scopul de a reduce bâlbâiala în jocuri.
  • Un backend alternativ pentru shader GLSL folosind vkd3d-shader este acum disponibil și poate fi selectat prin setarea D3D shader_backend la glsl-vkd3d. Suportul actual pentru vkd3d-shader GLSL este incomplet în raport cu backend-ul încorporat pentru shader GLSL, dar este în curs de dezvoltare.

Biblioteci de ajutor Direct3D

  • Suportul inițial pentru compilarea efectelor Direct3D este implementat folosind vkd3d-shader.
  • D3DX 9 acceptă multe mai multe formate cu hărți de nivel și paletizate.
  • D3DX 9 acceptă salvarea suprafețelor paletizate în fișiere DDS.
  • D3DX 9 acceptă generarea mipmap la încărcarea fișierelor de textură de volum.
  • D3DX 9 acceptă citirea fișierelor PNG pe 48 și 64 de biți.

Șofer Wayland

  • Driverul grafic Wayland este activat în mod implicit, dar driverul X11 are în continuare prioritate dacă ambele sunt disponibile. Pentru a forța utilizarea driverului Wayland în acest caz, asigurați-vă că variabila de mediu DISPLAY este dezactivată.
  • Ferestrele pop-up ar trebui să fie poziționate corect în majoritatea cazurilor.
  • OpenGL este acceptat.
  • Repetarea automată a tastei este implementată.

Multimedia

  • Este introdus un nou backend bazat pe FFmpeg, ca alternativă la backend-ul GStreamer. Este destinat să îmbunătățească compatibilitatea cu conductele Media Foundation. Totuși, este încă în stadiu experimental și va fi nevoie de mai multă muncă, în special pentru redarea D3D-aware. Poate fi activat setând valoarea DisableGstByteStreamHandler=1 în cheia de registry HKCU\Software\Wine\MediaFoundation.
  • Conductele multimedia Media Foundation sunt implementate cu mai multă acuratețe, pentru numeroasele aplicații care depind de componentele individuale de demuxare și decodare care urmează să fie expuse. Rezoluția topologiei cu crearea de demuxer și decodor și conectare automată este îmbunătățită.
  • DirectMusic acceptă încărcarea fișierelor MIDI.

Dispozitive de intrare / HID

  • Dispozitivele HID brute cu mai multe colecții de nivel superior sunt analizate corect și expuse ca dispozitive individuale la aplicația Windows.
  • Intrarea pe ecranul tactil și evenimentele sunt acceptate cu backend-ul X11, iar suportul de bază multi-touch prin mesajele WM_POINTER este implementat. Mesajele din fereastra mouse-ului, cum ar fi WM_LBUTTON*, WM_RBUTTON* și WM_MOUSEMOVE sunt, de asemenea, generate din evenimentele tactile principale.
  • Un număr de structuri interne USER32 sunt stocate în memoria partajată, pentru a îmbunătăți performanța și a reduce încărcarea serverului Wine, evitând călătoriile dus-întors pe server.
  • Este implementată o versiune inițială a unui driver Bluetooth, cu unele funcționalități de bază.
  • Aplicația Joystick Control Panel joy.cpl permite comutarea unor setări avansate.
  • Aspectul tastaturii Dvorak este acceptat corespunzător.

Internaționalizarea

  • Datele locale sunt generate din baza de date Unicode CLDR versiunea 46. Sunt acceptate următoarele locații suplimentare: kaa-UZ, lld-IT, ltg-LV și mhn-IT.
  • Tabelele de caractere Unicode se bazează pe versiunea 16.0.0 a standardului Unicode.
  • Datele fusului orar se bazează pe versiunea 2024a a bazei de date a fusului orar IANA.

Internet și rețele

  • Motorul JavaScript acceptă o nouă interfață de legare a obiectelor, utilizată de MSHTML pentru a-și expune obiectele într-un mod compatibil cu standardele. Acest lucru elimină distincția dintre obiectele JavaScript și obiectele gazdă din motor, permițând scripturilor o mai mare flexibilitate atunci când interacționează cu obiectele MSHTML.
  • Funcțiile MSHTML încorporate sunt obiecte cu funcții JavaScript adecvate, iar alte proprietăți folosesc funcții accesorii acolo unde este cazul.
  • MSHTML acceptă obiecte prototip și constructoare pentru obiectele încorporate.
  • Obiectele funcție în modul MSHTML moștenit acceptă apelul și metodele de aplicare.
  • Colectorul de gunoi JavaScript operează la nivel global în toate contextele de script dintr-un fir, îmbunătățind acuratețea acestuia.
  • Sunt acceptate obiectele JavaScript ArrayBuffer și DataView.

RPC / COM

  • Apelurile RPC/COM sunt pe deplin acceptate pe platformele ARM, inclusiv funcții precum proxy-uri stubless și tipul de marshaler.
  • Toate proxy-urile COM generate folosesc modul de marshaling complet interpretat pe toate platformele.

C runtime

  • Excepțiile C++ și informațiile tip run-time (RTTI) sunt acceptate pe platformele ARM.
  • Funcțiile ANSI din timpul de execuție C acceptă pagina de coduri UTF-8.

Nucleu

  • Este implementată creșterea procesului, ceea ce înseamnă că procesele rulează ca un utilizator normal în mod implicit, dar pot fi ridicate la acces de administrator atunci când este necesar.
  • Etichetele discurilor sunt preluate de la DBus atunci când este posibil, în loc să acceseze dispozitivul brut.
  • Mailslot-urile sunt implementate direct în serverul Wine în loc să utilizeze o pereche de prize, pentru a permite suportarea semanticii Windows completă.
  • Așteptările asincrone pentru evenimentele portului serial sunt reimplementate. Implementarea anterioară a fost întreruptă de munca de separare PE în Wine 9.0.
  • Procesorul complet XState este acceptat în contexte de fire, permițând suport pentru extensii vectoriale mai noi, cum ar fi AVX-512.

macOS

  • Când construiți cu Xcode >= 15.3 pe macOS, preîncărcarea nu mai este necesară.
  • Emularea Syscall pentru aplicațiile care efectuează apeluri syscall directe NT este acceptată pe macOS Sonoma și mai târziu.

Aplicații încorporate

  • Analizatorul de intrare al instrumentului Command Prompt cmd este rescris, ceea ce remediază o serie de probleme de lungă durată, în special cu extinderea variabilă, înlănțuirea comenzilor și buclele FOR.
  • Wine Debugger winedbg folosește biblioteca Capstone pentru a permite dezasamblarea pe toate tipurile de procesoare acceptate.
  • Instrumentul de comparare a fișierelor fc acceptă compararea fișierelor cu opțiunile implicite.
  • Aplicația findstr acceptă expresii regulate și căutarea care nu ține seama de majuscule și minuscule.
  • Aplicațiile regsvr32 și rundll32 pot înregistra module ARM64EC.
  • Aplicația de sortare este implementată.
  • Aplicația unde acceptă căutarea fișierelor cu opțiuni implicite.
  • Aplicația wmic acceptă un mod interactiv.

Diverse

  • Biblioteca ODBC acceptă încărcarea driverelor ODBC Windows, în plus față de driverele Unix care erau deja acceptate prin libodbc.so.
  • Optimal Asymmetric Encryption Padding (OAEP) este acceptat pentru criptarea RSA.
  • Sesiunile de rețea sunt acceptate în DirectPlay.

Citiți notele complete de lansare aici.

Citeşte mai mult
Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.