Vin

Vin
programvare
Vinkonfigurasjonsvindu
SjangerKompatibilitetslag
UtviklerVinlag
Dato for første versjonjuni 1993
Siste versjon7.0 (18. januar 2022)
Siste  beta6,19 (10. oktober 2021)
OperativsystemLinux
macOS
POSIX
SpråkC.
TillatelseGNU Lesser General Public License
( gratis lisens )
Nettstedwww.winehq.org/

Wine ( W ine er ikke et e mulator rekursivt akronym som kan oversettes til italiensk med Wine er ikke en emulator , før 1997 Windows og mulator for å skille det fra vanlige emulatorer) [1] er en programvare skrevet i C opprinnelig laget for GNU -drift systems / Linux , senere utvidet til andre operativsystemer, med sikte på å tillate drift av programmer utviklet for Microsoft Windows -operativsystemet .

Historie

Bob Amstadt (den første prosjektlederen) og Eric Youngdale startet utviklingen av Wine i 1993 som en måte å kjøre Windows-applikasjoner på Linux , de første ideene om opprinnelsen til prosjektet kan bli funnet i Usenet-diskusjonene på comp.os.linux i juni 1993 . Programmet ble inspirert av to produkter koordinert av Sun Microsystems : Wabi for Oracle Solaris - operativsystemet og Windows Public Initiative (et forsøk på å fullstendig re-implementere Windows API i åpen kildekode-form som en ISO-standard, men avvist på grunn av press fra Microsoft i 1996) og hadde opprinnelig applikasjoner laget for Windows 3.x (16-bit).

Alexandre Julliard tok over utviklingen av prosjektet fra 1994 i dag , og det ble opprinnelig distribuert under MIT-lisensen som X Window System, men på grunn av bekymringer rundt de proprietære versjonene av Wine kunne de på den måten ikke distribuere modifikasjonene sine til prosjektbase, fra og med mars 2002 har prosjektet brukt LGPL -lisensen for vin. Den første utgivelseskandidaten for versjon 1.0 ble utgitt 9. mai 2008 . Etter fire andre utgivelseskandidater ble den endelige 1.0-versjonen av Wine utgitt 17. juni 2008 , etter 15 års utvikling. Nylig har utviklingen fokusert på kompatibilitet med 32- og 64-bits applikasjoner designet for NT-avledede operativsystemer.

Funksjoner

Arkitektur

Arkitekturen til Wine-systemet er basert på NT -systemer . På det høyeste nivået i hierarkiet er applikasjonen som skal kjøres, som har grensesnitt med et undersett av programspesifikke biblioteker og noen systembiblioteker, som ikke kommuniserer direkte med kjernen , men med et spesifikt undersystem for Win32-plattformen, assistert av en grensesnittbibliotek (NTDLL).

I Windows NT kaller ikke applikasjonene direkte til kjernefunksjoner, men til et av undersystemene som er opprettet, som gjør sitt ytterste for å utføre kommunikasjon på de laveste nivåene; på dette punktet i hierarkiet erstattes kjernegrensesnittrollen av wineserver , et program som er aktivt som en prosessdemon som administrerer applikasjonsprosesser og tråder , så vel som deres synkronisering og interkommunikasjon . Parallelt med vinserveren startes applikasjonen ved å være innkapslet i en vintråd , et klientprogram som er synlig som en fullverdig Unix-prosess. Applikasjoner og biblioteker som refererer direkte til Windows-systemdrivere blir omdirigert til den respektive komponenten implementert av vindriveren . I sin helhet sørger systemet for at kjernedriverne til operativsystemet som brukes, blir brukt , usynlig på de høyeste nivåene.

I bunnen av systemet refererer både server- og klientprogrammene til Wine til standardbibliotekene til Unix-systemet, og spesielt til systembiblioteket og til det til X-systemet. Alt, i sin helhet, utføres i brukerområdet til operativsystemet. Til dags dato er det ikke sett for seg noen form for direkte integrasjon med de lavere nivåene av systemet (som en modulær kjerneintegrasjon), spesielt for å unngå begrensninger som vil hindre Wine fra å kjøre på forskjellige plattformer.

Operasjon

I stedet for å fungere som en fullverdig emulator, implementerer Wine et kompatibilitetslag, og tilbyr alternative, åpen kildekode- implementeringer av DLL - er , krever at Windows-programmer og -prosesser erstatter Windows NT-kjernen, og gir koblingen til API -ene som er nødvendige for at de skal fungere. .

Så i denne forstand emulerer ikke Wine noen arkitektur eller operativsystem , men gir heller de kjørende programmene nødvendig støtte for bruk av spesifikke Windows-funksjoner som kan være nødvendige. For å gjøre dette er Wine avhengig av det grafiske systemet (f.eks . X11 ), ettersom de fleste av de opprinnelige applikasjonene for Win32 krever grafiske primitiver for vinduadministrasjon (kommandolinjeapplikasjonene kan fortsatt brukes gjennom wineconsole-programmet).

Prosjektet viste seg imidlertid å være langt og vanskelig for utviklere, hovedsakelig på grunn av ufullstendig og feil dokumentasjon av Windows API. Mens de fleste Microsoft-dokumenter i stor grad beskriver Win32-funksjoner, har noen områder som filformater og protokoller ikke offisielle Microsoft-spesifikasjoner. Noen ganger var det nødvendig for Wine å replikere selv obskure feil for å la noen applikasjoner fungere riktig. Som et resultat benyttet Wine-teamet seg av en omvendt konstruksjonsteknikk kalt Clean room design for å kunne implementere mange funksjonskall og kunne bruke filformater i noen bransjer.

Konfigurasjon og bruk

Programmet kan dra nytte av katalogen som inneholder den grunnleggende Windows-strukturen, med katalogene "Windows", "Program Files", "Documents", DLL-er og konfigurasjonsfiler (som INI-filer og registret ). Det kan være den originale eller, bedre, en tilpasset.

Det er mange verktøy for å konfigurere vin, bortsett fra vin- verktøy som er grunnleggende applikasjoner integrert med vin for å administrere den (regedit, vinkontrollpanel og andre), det vanligste og mest funksjonelle er vinverktøy, men det er også winesetuptk , hvis utvikling er imidlertid stoppet en stund, og Sidenet .

Når Wine er konfigurert til å starte en Windows - kjørbar fil , skriver du bare inn i terminalen :wine ./percorso/file.exe

Systemverktøy

Programvaren tilbyr noen systemverktøy , for eksempel:

Støttede plattformer

Selv om de hovedsakelig er utviklet for Linux , ble porter for macOS , FreeBSD og Oracle Solaris senere utgitt , som oppdateres mer eller mindre samtidig med Linux-versjonen. 1999 -versjoner av Wine er tilgjengelige for OpenBSD og NetBSD .

Selv om det for øyeblikket ikke oppdateres regelmessig, er en port av Wines Dynamic-link-bibliotek for Microsoft Windows også tilgjengelig .

Verktøy

PlayOnLinux

Det er et grafisk grensesnitt som tar sikte på å forenkle installasjonen av Windows - baserte applikasjoner i et Linux- miljø . Den er utviklet i Bash og Python og gir skript med en .pol-utvidelse som spesifiserer Wine-konfigurasjonene som trengs for å installere og kjøre en bestemt applikasjon.

Den lar brukere installere de mest populære programmene i Windows, for eksempel Apple iTunes og Safari , Microsoft Office , Microsoft Internet Explorer v.6 / 7, AutoCAD , Mono , .NET Framework 2.0, Fireworks MX, Flash MX og mange flere. [2]

Den bruker en online database med skript som skal brukes på de forskjellige applikasjonene som krever en bestemt konfigurasjon; hvis applikasjonen ikke er i databasen, kan en manuell installasjon utføres. I tillegg til spillene, kan et hvilket som helst annet program installeres og hvert av dem legges i en annen beholder (WINEPREFIX) for å unngå forstyrrelser fra ett program med et annet. Dette gir "isolasjon" mer eller mindre lik den som tilbys av CrossOver "flaskearbeid" .

De installerte programmene forblir atskilt fra hverandre. De kan bruke forskjellige versjoner og konfigurasjoner av vin avhengig av tilfellet. Installasjonen av disse håndteres av Play On Linux på Linux-programvare uten behov for å installere Wine separat.

Relaterte prosjekter

Mye av Wine-koden brukes fortsatt til utviklingen av ReactOS , et gratis operativsystem hvis formål er å erstatte Windows-plattformen, og gir full kompatibilitet med applikasjoner og drivere. Det er et uavhengig prosjekt fra Unix-lignende systemer, med autonom kjerne og struktur. Inkluderingen i ReactOS av Wine-koden og det kontinuerlige samarbeidet mellom gruppene i de to prosjektene ga et avgjørende løft til operativsystemet som tjente på arbeidet som ble startet en tid før av Wine-utviklerne.

Wine-koden er også grunnlaget for to kommersielle prosjekter: CrossOver og Cedega (født fra WineX-prosjektet, fork of Wine selv) som prøver å støtte så effektivt som mulig en stor mengde videospill utviklet ved hjelp av begge OpenGL-grafiske biblioteker enn DirectX.

Andre prosjekter som bruker Wine er:

Microsofts forhold til Wine

Microsoft har aldri kommet med offentlige uttalelser om Wine. Microsoft Windows Update blokkerer imidlertid alle oppdateringer av Microsoft-applikasjoner som kjører i Wine-miljøer. Den 16. februar 2005 oppdaget Ivan Leo Puoti at Microsoft søkte i Windows-registeret på jakt etter nøkler relatert til Wine for å forhindre bruk av Windows Update. Så skrev han:

«[...] selv om dette kun er et første forsøk, prøver de å diskriminere Wine-brukere. Selv om dette kan være akseptabelt for operativsystemkomponenter, er dette sannsynligvis et brudd på antitrustlover [3] "

Windows Genuine Advantage (WGA)-systemet sjekker også om det finnes Wine-nøkler i registeret. Vanlige spørsmål sier eksplisitt at WGA ikke vil fungere under Wine fordi det ikke er et "ekte Windows": "Når WGA finner WINE som kjører på systemet, vil det varsle brukeren om at de kjører en ikke-ekte Windows og vil ikke tillate last ned til det systemet". [4] Noen har klart å få WGA til å fungere i vinmiljøer. [5]

Windows Media Player 11 krever WGA, så det kan ikke installeres på systemer med Wine. På den annen side er Internet Explorer 7 WGA-kontrollen fjernet og kan installeres med Wine.

Merknader

  1. ^ Vanlige spørsmål om VIN
  2. ^ Spill på Linux , på playonline.com , Spill på Linux. Hentet 27. april 2010 .
  3. ^ Ivan Leo Puoti, Microsoft genuine looking for Wine (e-postliste), på winehq.com , 2005. Hentet 23. januar 2006 (arkivert fra originalen 13. januar 2006) .
  4. ^ Ekte Windows FAQ , på microsoft.com , Microsoft Corporation. Hentet 30. januar 2006 .
  5. ^ WGA with Wine , på forums.bit-tech.net (arkivert fra originalen 26. april 2007) .

Bibliografi

Relaterte elementer

Andre prosjekter

Eksterne lenker