met varianten, de vraag hoe een exe in Linux moet worden uitgevoerd, is een van de meest herhaalde in forums, sociale netwerken en reacties op blogs. Het was zelfs een van mijn eerste zoekopdrachten toen ik me in Linux begon te interesseren.
Deze vraag heeft geen kort antwoord sinds er is geen enkele methode om Windows-programma's op linux uit te voeren. En het uiteindelijke resultaat hangt af van het programma.
Hoe werkt een computerprogramma?
Om het probleem te begrijpen van het uitvoeren van een exe op Linux we moeten weten hoe een computerprogramma werkt. Om dit te doen, laat me een analogie gebruiken.
De meesten van ons leerden de basisvaardigheden om ons werk thuis, op school of op de universiteit te doen. Op het moment dat we naar ons werk gingen, wisten we hoe we moesten lezen, schrijven, elementaire wiskundige bewerkingen uitvoeren en de kennis die we gemeen hebben met het beroep dat we uitoefenen. Stel dat scholen en universiteiten werden geëlimineerd en dat huishoudens beperkt zouden blijven tot het voorzien van kinderen van alleen de eerste levensbehoeften elk bedrijf moet de taken van het onderwijs op zich nemen.
Het eerste resultaat zou een stijging van de arbeidskosten zijn, aangezien elke werknemer er langer over zou doen om productief te zijn. Aan de andere kant, het is waarschijnlijk dat elk bedrijf of elke sector zijn eigen taal heeft ontwikkeld en waarom niet? je eigen wiskunde. Als we van baan willen veranderen, moet het onderwijsproces worden herhaald. En hetzelfde geldt voor de rest van onze activiteiten.
Hetzelfde gebeurt met computerprogramma's. De ontwikkeltijd is lang en de kosten zijn hoog, wat inhoudt dat eventuele besparingen (zowel in tijd als in geld) belangrijk zijn. Hoe worden deze besparingen gerealiseerd?
De bibliotheken en het besturingssysteem verlaten om de algemene routinetaken uit te voeren.
Hoewel een webbrowser en een tekstverwerker verschillende doelen hebben, moeten ze nog steeds hun menu's op het scherm weergeven, reageren op muisbewegingen of een document naar de printer sturen. Als elk van hen die functies in zijn eigen code zou moeten implementeren, zou het gewicht van elk programma groter zijn en zouden de ontwikkeltijd, de kosten en de kans op fouten toenemen. Daarom worden, zoals ik al eerder zei, bibliotheken en het besturingssysteem gebruikt.
Bibliotheken zijn programma's die op verzoek van andere programma's een bepaalde functie vervullen.. Ze worden geïnstalleerd wanneer een programma ze nodig heeft en zijn klaar om te worden gebruikt door degenen die ze in de toekomst nodig hebben. Het besturingssysteem is verantwoordelijk voor de interactie tussen de computer en de gebruiker en omvat al die bibliotheken voor het goed functioneren van de hardware.
Hoe een exe op Linux te draaien
Het .exe-formaat
Een uitvoerbaar bestand bevat een reeks code-instructies die de computer rechtstreeks uitvoert. wanneer op het bestandspictogram wordt geklikt. In Windows zijn er verschillende soorten uitvoerbare bestanden, maar de meeste hebben de extensie .exe.
Uitvoerbare bestanden bevatten binaire machinecode die is verkregen uit de compilatie van de broncode. Deze code wordt gebruikt om de centrale verwerkingseenheid van de computer te vertellen hoe een programma moet worden uitgevoerd.
Het basisprobleem dat moet worden opgelost bij het uitvoeren van een exe-bestand op Linux, is dat: elk besturingssysteem heeft zijn eigen manier om te communiceren met de bibliotheken en programma's die erop zijn geïnstalleerd. Hoewel ik in het Spaans van Argentinië schrijf, kunt u mij begrijpen, een Chinees moet zijn toevlucht nemen tot de Google-vertaler.
Elk programma bij het opstarten zal controleren op de aanwezigheid van de bibliotheken die het nodig heeft om te draaien. Als het op het juiste besturingssysteem staat, maar de bibliotheken ontbreken, zal het ernaar vragen tijdens de installatie of je vertellen om het handmatig te doen, maar op het verkeerde besturingssysteem zal het niet eens installeren.
Hiervoor zijn drie oplossingen:
- Doe het niet.
- Virtualisatie.
- Compatibiliteitslaag.
doe het niet
Ik probeer niet grappig te zijn. Als je een Windows-programma nodig hebt voor een kritieke behoefte die 100% compatibiliteit vereist, moet je het op Windows installeren. De meeste Linux-distributies zijn ingesteld om te werken met wat bekend staat als dual-booting. Dit is dat bij het opstarten van de computer het mogelijk is om te kiezen met welk besturingssysteem te beginnen. Zelfs het installatieproces is geautomatiseerd op een manier die het gemakkelijk maakt voor de beginnende gebruiker.
Het enige waar je rekening mee moet houden is dat je altijd eerst Windows installeert met alle updates die beschikbaar zijn, daarna correct uitlogt en gewoon doorgaat met de installatie van Linux. Als u niet upgradet, zal het Linux-installatieprogramma Windows niet detecteren en kan het geen gedeeld opstarten instellen. Als u eerst Linux installeert, wist Windows de bootloader en moet u deze opnieuw installeren.
Virtualisatie
Virtualisatie is de procedure waarbij hardware wordt gesimuleerd met behulp van software. Dit betekent dat het besturingssysteem en de geïnstalleerde programma's denken dat ze op een echte computer staan. Deze gesimuleerde hardware (Virtual Machine) gebruikt een deel van de resources van de echte hardware.
Waar het om gaat is het installeren van Windows op een virtuele machine en vervolgens de programma's die we nodig hebben. Het enige nadeel hiervan is dat we niet alle hardwarebronnen zullen benutten en dat de uitvoering langzamer kan zijn. Hoewel dit bij krachtigere computers geen probleem zou moeten zijn.
Virtualisatie-oplossingen voor Linux
- VirtualBox: Het is de bekendste van virtuele machinebeheerders. Het wordt al geleverd met vooraf ingestelde instellingen zodat alle versies van Windows werken en de wizards maken het gemakkelijk om virtuele machines te maken. U kunt bestanden uitwisselen met de hostcomputer en externe apparaten.
- KVM's: Het is een virtualisatietool geïntegreerd in de Linux-kernel en gemaakt door zijn eigen ontwikkelaars. Dit zorgt voor meer veiligheid en een betere integratie met het hostsysteem. Het wordt over het algemeen gebruikt met een virtuele machinemanager genaamd QEMU. Beide staan in de repositories.
- GNOME-dozen: Het is een grafische interface voor verschillende open source virtualisatietechnologieën. Het is een goed alternatief voor VirtualBox dat beginnende gebruikers die een GNOME-desktopgebaseerde distributie gebruiken, kunnen overwegen. Het wordt vooraf geïnstalleerd of bevindt zich in de repositories van de meeste op GNOME gebaseerde distributies.
compatibiliteitslaag
Door een compatibiliteitslaag te gebruiken het is mogelijk om software die voor het ene besturingssysteem is ontworpen, op een ander te gebruiken. Het doet dit door de vereisten van het programma te vertalen in instructies die het hostbesturingssysteem kan dienen.
Wijn
Wijn het is de compatibiliteitslaag waarop alle installatie-oplossingen voor Windows-applicaties op Linux zijn gebouwd. De naam heeft niets met wijn te maken, maar is eerder een recursief acroniem voor Wine is not a emulator. Het is te vinden in de repositories van de belangrijkste Linux-distributies.
CrossOver Linux
Es een product commercieel gebaseerd op Wine met eigen plug-ins. In plaats van tweewekelijkse Wine-releases, richt het zich op het bereiken van betere compatibiliteit.
PlayOnLinux
In dit geval wel een programma dat Het bestaat uit een grafische interface en een reeks scripts die de configuratie van Wine en de installatie van programma's vergemakkelijken. van Windows op Linux. PlayOnLinux is te vinden in de repositories van de belangrijkste Linux-distributies.
Waterflessen
Waterflessen is een applicatie waarvan de grafische interface het gemakkelijker maakt om Wine en andere bestanden te installeren die nodig zijn om Windows-applicaties op Linux te laten werken. Het maakt het beheer van verschillende "Wijnvoorvoegsels" mogelijk. Een Wine-voorvoegsel is een map die de hiërarchie van het Windows-bestandssysteem weergeeft. Het bevat een "C"-schijf waarop software die bedoeld is voor Windows kan worden geïnstalleerd. Daarnaast bevat het andere bestanden die nodig zijn om een op Windows gebaseerde applicatie onder Linux te laten werken.
Hiermee kunnen we zoveel Wine-voorvoegsels maken als we willen en toepassingen installeren die compatibel zijn met Windows.. Zo kunnen we bijvoorbeeld een voorvoegsel hebben voor games en een voorvoegsel voor hulpprogramma's.
Flessen kunnen vanuit de winkel worden geïnstalleerd Flatpak.