morphman86 skrev:Varför går det inte att installera ett enda av alla de spel som finns för Windows? (Jag har inte hittat ett enda spel i mitt arkiv, som inte är gjort för Windows) Exempel på spel jag försökt installera är:
Det enkla svaret på frågan vore: För att det inte är Windows du kör, och just de versionerna av spelen är skrivna för att fungera med specifika versioner av Windows.
Det lite längre vore: För att det inte finns en enda rad kod i Wine som kommer från Windows.
Wine
Is
Not an
Emulator, det enda som emuleras är förmågan att läsa och starta .exe filer, kommunikationen som programmet/spelet gör sker indirekt med Linux operativet genom ett översättningslager (Windows API:et implementerat i Linux som det så fint heter).
Wall of text-svaret vore kanske:
Det man kan få ut av det ovan, om man läser mellan raderna (hjälper även att vara programmerare), är helt enkelt att Windows programmen tror de snackar med Windows, fast det egentligen är Linux. Detta är teoretiskt sett inte så svårt att genomföra då all kommunikation med Windows
ska ske genom ett antal strikt definierade funktioner/kommandon. Windows 32bit Application Programming Interface, Win32-API. Oavsett om det faktiskt är Windows eller Linux som körs i botten så kommer programmet ställa samma frågor till operativet och skicka samma svar tillbaka när det tillfrågas. Piece of cake, vet vi frågorna och svaren borde det ju inte vara så svårt att se till att Linux ställer samma frågor som Windows gör när ett program körs, och svarar på samma sätt Windows gör när ett program frågar något.
Självklart finns det en hake någonstans. Under årens lopp har det funnits vissa dolda eller odukumenterade funktioner i Win32-API:et. Program har kunnat ställa frågor till Windows som normalt bara skulle ställas av Microsofts egna program. Det är inget problem för Microsoft internt, då de vet hur Windows hanterar frågan, och vilka svaren kan bli, men det blir ett stort problem när andra programmerare hittar dessa funktioner och börjar utnyttja dem. Med stor sannolikhet finns det en anledning till att de var dolda och/eller odokumenterade; De fungerade inte som man förväntade sig i alla lägen! Det fanns en stor risk att Microsoft skulle döpa om dessa funktioner, helt ändra hur de fungerar, vilka svar som kan ges eller frågor som kan ställas. Kanske tas de bort helt i nästa version av Windows, eller rent utav i någon uppgradering. De är helt enkelt för instabila att användas av tredje part. Men inte stoppar det folk från att försöka utnyttja dem...
Det är dessa funktioner som Wine-folket har väldigt svårt att få koll på, just eftersom det inte finns mycket dokumentation att tillgå, och för att många program (mest spel) utnyttjar dessa doldisar på väldigt många olika sätt. Därmed öppnar de för en nästan oändlig mängd saker som kan gå fel när det inte är Windows som faktiskt finns på andra sidan API:et och pratar med programmet.
Microsoft upptäckte självklart tidigt att programmerare började utnyttja dessa funktioner, och framför allt att kunder började klaga när deras mjukvara inte längre fungerade på den nya och "bättre" Windowsversionen.
Microsoft tog ofta kontakt med företagen som utvecklat mjukvaran och försökte hjälpa dem med att skriva om koden så den inte längre använde de dolda funktionerna, och därmed även fungerade på nya versioner av Windows.
Men det hände också att företagen inte längre fanns kvar, eller att mjukvaran var så gammal att den inte längre underhölls av tillverkaren. Försök i det läget förklara för en arg Microsoft-kund, som inte längre kan få igång sitt gamla bokföringsprogram på sin nya "bättre" dator, att det är företaget som gjorde programmet från början som felet ligger hos och inte Windows i sig, trots att inget annat förändrats.
Microsoft var till slut tvungna att börja bygga in en "checklista" i varje ny version av Windows. Checklistan kollade om ett visst program som var känt för att orsaka problem var installerat eller kördes. Om så var fallet började Windows att emulera de buggar och/eller dolda och odokumenterade funktioner som programmet förlitade sig på, allt för att det skulle lyckas starta och utföra sin uppgift trots att det i grunden var felkonstruerat. Allt för att kunder ville ha nya versioner av Windows, men även krävde bakåtkompatibilitet så långt tillbaka som DOS och Windows 3.1! Win 3.1 kördes till och med i 16 bitar, men folk förväntar sig ändå att program därifrån ska fungera felfritt i ett 32 bitars system, vilket egentligen inte är särskilt smidigt! DOS hängde med ett bra tag, men sen ersattes även det av en emulerad kommandoprompt, även den med en ckecklista över knasigheter som var tvungna att aktiveras vid rätt tidpunkt.
Ni kan ju själva räkna ut vad som hände X antal år, Y antal Windows-versioner, Z^massor olika versioner av programmen senare... Det är inte hållbart i längden och vid någon tidpunkt måste det ta slut. Om jag inte minns fel togs tex 16 bitars stödet bort helt i Vista för att nämna en sak...
Jag tror Apple har varit mycket hårdare på det här och helt enkelt tvingat kunder att uppgradera eller helt byta programvara för vissa versioner av OSX, vilket gjort det enklare för dem men kanske inte för kunderna...
Hur som helst, Wine-folket gör ett jäkligt bra jobb än så länge då de försöker härma Windows så gott det går. De har till och med fått lägga in "buggar" i Wines bibliotek, eftersom det är enda sättet att få de "fula" programmen att fungera.
Wine är inte på långa vägar "klart", och frågan är om det kan bli det då man inte alltid vet hur Windows beter sig förrän det är för sent...
För att lösa problem med ett visst specifikt spel, gör som tidigare nämnts och leta i Applikationsdatabasen på WineHQ. Kolla om det nämns några specifika buggar och om det är dem du råkar ut för, annars kanske du stött på något som ingen annan rapporterat än. Bästa sättet att få hjälp, och samtidigt hjälpa Wine att bli bättre, vore ju att rapportera den misstänkta buggen. Testa så mycket du kan komma på, utför regressions-tester för att se om problemet bara uppstår i vissa kombinationer av Wine-versioner och spel-versioner osv. Allt hjälper dem att hjälpa dig med att få igång det som strular.
Om inte annat, håll utkik. Det släpps ibland patchar även till gamla spel, och Wine själv kommer ganska regelbundet ut i nya versioner där varje löst bugg listas i ändringsloggen. Grafikdrivrutiner uppgraderas ständigt, du kanske rent utav har ett för nytt kort (funderade just på om det finns fullt stabila drivrutiner till 8k-serien än, har inget själv så jag vet inte)....
Hmm, blev som vanligt bra mycket mer än jag tänkt, inte bra att skriva mitt i natten....