Kristof de Bisschop - AO5 de Bisschop Kristof WinOnLinux Versie 1

download Kristof de Bisschop - AO5 de Bisschop Kristof WinOnLinux Versie 1

of 19

Transcript of Kristof de Bisschop - AO5 de Bisschop Kristof WinOnLinux Versie 1

  • C2 FRANKY CORNELIS

    C2 AO5 LINUX 1 Windows applicaties op Linux

    Kristof De Bisschop

    3/10/2013

    Windows applicaties draaien onder Linux

  • Page 1 of 18

    DQSF

    INHOUDSTAFEL

    Soorten Alternatieven............................................................................... 2

    Open-source Linux Alternatief ................................................................. 2

    Commerciel Linux Alternatief ................................................................. 2

    Dual Boot & Windows in Virtual Machine .................................................. 3

    Virtual Box ........................................................................................ 3

    XEN Hypervisor .................................................................................. 4

    Emulators ............................................................................................ 5

    Qemu ............................................................................................... 6

    Bochs ............................................................................................... 6

    Applicatie via Remote System ................................................................ 7

    WINE .................................................................................................. 8

    PlayOnLinux ...................................................................................... 9

    Crossover ......................................................................................... 9

    Installatie PlayOnLinux ............................................................................10

    Voordelen en nadelen ..............................................................................18

  • Page 2 of 18

    SOORTEN ALTERNATIEVEN

    OPEN-SOURCE LINUX ALTERNATIEF Het beste dat we kunnen doen als we een Microsoft Windows applicatie willen draaien onder Linux is gewoon gaan kijken of er geen Open-source voor bestaat. Voor de meeste Microsoft Windows applicaties bestaat er immers een vrij goed alternatief onder Linux dat aan de noden zal voldoen. Het grootste probleem hier is dat de meeste mensen en zeker de Microsoft Windows gebruikers niet op de hoogte zijn van deze alternatieven. Communicatie is niet de strafste kant van Linux. Gelukkig zijn er goede websiten waar je Linux software kan gaan zoeken of zelfs direct kan gaan zoeken naar een Open-source alternatief. Ik ga er hier twee belangrijke opsommen maar er zijn er natuurlijk een pak meer.

    Osalt - http://www.osalt.com/ - Website om specifiek alternatieven te gaan zoeken voor Microsoft Windows software (zie printscreen boven).

    AlternativeTo - http://alternativeto.net/ - Vrij goede site voor alternatieven te zoeken ook goed voor Microsoft Windows. Deze gebruik ik zelf regelmatig.

    COMMERCIEL LINUX ALTERNATIEF

    Commerciel en Linux zijn in feite 2 woorden die niet samen gaan. Maar soms kan je onder Linux goede software vinden waar je moet voor betalen maar dan wel goed werkt. Dikwijls is dit dan ook nog goedkoper dan het Microsoft Windows alternatief. Ik denk hier bijvoorbeeld BricsCad VS Autocad. Een verhaal dat dit illustreerd vind je hier:

  • Page 3 of 18

    http://ivoks.blogspot.be/2007/01/success-story.html. Dit geld ook zeker voor server software. Maar hier gaan we niet op in omdat buiten de scope van het afstandsonderwijs valt.

    DUAL BOOT & WINDOWS IN VIRTUAL MACHINE Ik herinner mij nog van vroeger, voordat we in feite (of miniem) van virtualisatie praken we onze computer met GRUB gingen opstarten en gingen Dual-Boot-en als we met Linux wilden gaan werken. Ok, dit is ook een oplossing maar natuurlijk niet de beste. Enorm veel tijdverlies door het herstarten en je kan geen 2 dingen tegelijk doen in Microsoft Windows & Linux. Gelukkig is er ondertussen al voor Linux een alternatief gekomen namelijk Virtual Box (nu onder beheer van Oracle) wat volledig Open-source (lees gratis) is. Of het goed werkt laten we even in het midden maar laat on stellen dat we alvast niet meer moeten gaan rebooten en dat we er dus enorm veel tijd mee winnen.

    VIRTUAL BOX Een goed document met beschrijving vind U hier: http://arstechnica.com/information-technology/2012/10/virtualbox-is-free-and-open-source-but-lags-behind-vmware-and-parallels/

    Oracle VM VirtualBox vind U hier: https://www.virtualbox.org/

    Definitie: VirtualBox is een vrij computerprogramma om besturingssystemen te draaien binnen een (ander)

    besturingssysteem. Dit gebeurt op basis van virtualisatie. VirtualBox is beschikbaar in verschillende talen voor Windows

    XP+, Mac, Linux, OS/2, Solaris en Unix.

    Oracle VM VirtualBox installeer je dus op Linux (Host Operating System) & daarin installer je dan Microsoft Windows of een andere OS die dan het Gast OS genoemd wordt. Ieder van deze Gasten heeft zijn eigen virtuele omgeving. Oracle VM VirtualBox bestaat in x64 en x86. Kwestie van volledig te zijn . Ik ga dit NIET in de praktijk installeren ik heb dit vroeger al gedaan via de repositories maar het is een waist of time. Vmware Workstation heeft een Linux variant die schitterend werkt & relatief eenvoudig installeert.

  • Page 4 of 18

    XEN HYPERVISOR

    Als we dan praten over Virtual Box dan is de link snel gelegd naar de Xen Hypervisor. De Xen Hypervisor is een krachtige Open-source standaard voor virtualisatie. Het bied een krachtige, efficiente en veilige feature set voor virtualisatie van x86, x64, IA64, PowerPC en andere CPU architectures. Het ondersteunt ook een brede reeks aan gast OSen zoals Windows, Linux, Solaris en BSD. De Xen Hypervisor is een Open-source technologie ontwikkeld en onderhouden in samenwerking met de Xen Hypervisor communitie en programmeurs van de 20 meest inovatieve Data Center solution vendors. Deze zijn onder andere AMD, Dell, HP, IBM, Intel, Novell, RedHat, Sun, Veritas, Citrix (Xen Server) en jawel ook onze vrienden van Cisco. Xen Hypervisor is licenced onder GPL2 / GNU General Public Licence & is gratis verkrijgbaar in binaries als in sourcecode.

    Het doel van Xen, althans zo gelezen, is uniting the industry & the XEN ecosystem om de adoptie van virtualisatie in de bedrijven te bevorderen. http://www.xen.org/

  • Page 5 of 18

    EMULATORS We hebben al veel gepraat over Virtualisatie maar in het kader van de alternatieven komen we ook bij emulators. Iets interessant ik denk het niet maar we kunnen er niet omheen. We gaan dus kort het verschil tussen de 2 moeten aanstippen. De vette tekst heb ik gewoon laten staan in het engels omdat dit in feite een prachtig kort beschrijf is van wat het kort en bondig inhoud. Native virtualization (or full virtualization) is where a type-2 hypervisor is used

    to partially allow access to the hardware and partially to simulate hardware in

    order to allow you to load a full operating system. This is used by emulation packages like VMware Server, Workstation, Virtual PC, and Virtual Server.

    Virtualization Virtualisatie is een simulatie van onderdelen van de hardware van een computer, genoeg zodat een guest operating system ongewijzigd kan werken. Doch de meeste acties

    (operations) gebeuren nog steeds op de effectieve fysische hardware gewoon omdat dit

    effecienter is. Daardoor is een Machine Virtualizer sneller dan een Machine Emulator. Natuurlijk moet de Guest de zelfde architectuur hebben als de Host. Het is te zeggen

    compatibel zijn.

    Emulation is where software is used to simulate hardware for a guest operating

    system to run in. This has been used in the past but is difficult to do and offers

    low performance.

    Emulation

    Bij emulatie zal de virtuele machine de gehele hardware simuleren in de software. Dit

    laat dan wel toe dat een operating system dat geschreven is voor een bepaalde architectuur kan gedraaid worden op de architectuur waar de emulator voor geschreven

    is.

    Hier gaan wij vrij kort overgaan omdat het WINE hoofdstuk wel interessanter vind en omdat emulators meestal genstalleerd worden voor specifieke doeleinden. Een Machine Emulator kan een OS &/of programma dat gemaakt is voor een bepaalde hardware (bvb. Een ARM board) op een andere machine draaien. Dit gebeurt door dynamic translation van de machine code.

    Een meer duidelijk voorbeeld van emulators is bijvoorbeeld de Nintendo GameBoy of Sony Playstation emulators zodat je games op je PC kan spelen die in feite gemaakt zijn voor Nintendo GameBoy toestelletjes of de Sony Playstation Console hardware. Ik ga hier ook enkel de 2 belangrijkste en gekendste aanhalen, Qemu en Bochs.

  • Page 6 of 18

    QEMU

    Qemu kan ook gebruikt worden voor Microsoft Windows. Het is een generic en Open-source - Machine Emulator en Machine Virtualizer. Machine Emulator hebben we in feite al besproken bij de inleiding (dynamic translation technologie). Als we Qemu gaan gebruiken als Machine Virtualizer kunnen we goede resulaten verwachten omdat Qemu de Gast code direct afleverd aan de CPU. Een host driver de Qemu accelerator (KQEMU) is nodig in dit geval. En klein nadeel in dit systeem de Machine Virtualizer Mode verwacht dat zowel de Host als de Guest x86 compatibele processers zijn. http://wiki.qemu.org/Main_Page

    BOCHS

    Bochs is een Open-source IA-32 (x86) PC emulator dat geschreven is in C++ en draait onder de meest populaire platorms. Bochs zorgt voor de emulatie van de Intel x86 CPU, I/O devices en een Custom Bios. De volledige uitleg vind je hier maar het lijkt mij minder interessant. Ik heb ook de indruk dat het project enorm achterop aan het raken is de recente Windows 7 & Windows 8 evolutie niet kan volgen. Hier ga ik dan ook geen tijd insteken. http://bochs.sourceforge.net/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=http://bochs.sourceforge.net/doc/docbook/user/index.html http://bochs.sourceforge.net/

  • Page 7 of 18

    APPLICATIE VIA REMOTE SYSTEM Ook nog een mogelijkheid om met een Microsoft Windows programma op je computer te kunnen werken is door te werken met een Remote System. Dus in feite hl grof gezegd het scherm overnemen van een bestaand extern systeem. Hier denk we dus terug aan onze Terminal Services uit de RDP / Remote Desktop Services les. Interessant dus is hier een Microsoft Windows Server met meerdere calls. Linux heeft trouwens vrij degelijke RDP / Remote Desktop Services ondersteuning via Rdesktop. En van de betere en meest bekende is Rdesktop: http://www.rdesktop.org/

    Beschrijving: Rdesktop is an open source client for Windows Remote Desktop Services, capable of natively speaking Remote

    Desktop Protocol (RDP) in order to present the user's Windows desktop. rdesktop is known to work with Windows versions such

    as NT 4 Terminal Server, 2000, XP, 2003, 2003 R2, Vista, 2008,

    7, and 2008 R2.

    Rdesktop currently runs on most UNIX based platforms with the X Window System, and other ports should be fairly

    straightforward.

    Rdesktop is released under the GNU Public Licence (GPL), version 3

    Er is ook een distro die we onder de Thin Clients kunnen gaan plaatsen. De distro noemt Thinstation: http://thinstation.org/

    Beschrijving: Thinstation is a basic and small, yet very

    powerful, Open Source "thin client" operating system supporting all major connectivity protocols: Citrix ICA, NoMachine NX, 2X ThinClient, Microsoft Windows terminal services (RDP, via

    RDesktop), VMWare View Open client, Cendio ThinLinc, Tarantella, X, telnet, tn5250, VMS terminal and SSH (No special

    configuration of the application servers is needed to use

    Thinstation). Er zijn hier verschillende oplossingen die veel schaalbaarder zijn en meer features hebben. Hier denken we dus zeker aan Citrix wat hier wel de marktleider is & andere minder bekende alternatieven zoals bvb. Propalms http://www.propalms.com/ Ook een concept van Cloud Computing en Webbased applications kunnen we onder dit hoofdstuk brengen. Denk maar bijvoorbeeld in IIS / Internet Information Server (convert to application) waarbij je via de .NET webservices & ASP.NET webapplicaties kan aanmaken.

  • Page 8 of 18

    WINE Als we geen goede alternatieve software voor Microsoft Windows vinden en het moet binnen Linux draaien dan komen we zoiezo uit bij Wine. WINE is een tool die grof de Microsoft Windows simuleert. Het succes van WINE hang zuiver af van de Microsoft Windows applicatie. Wine vind je hier maar zit zit zoiezo in de repository van alle distros. http://www.winehq.org/

    Beschrijving: Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows

    applications on several POSIX-compliant operating systems, such as Linux, Mac OSX, & BSD. Instead of simulating internal

    Windows logic like a virtual machine or emulator, Wine translates

    Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and

    allowing you to cleanly integrate Windows applications into your desktop.

    Het belangrijkste en meest zinnige dat we over WINE kunenn zeggen als we WINE uberhaupt willen gebruiken is dat we best gaan kijken eerst in de WINE database ofdat de applicatie die we willen gebruiken getest & werkend bevonden is verklaard. Anders ambiance verzekerd ... http://appdb.winehq.org/ Aangezien WINE toch n van de meest belangrijke onderdelen van de opdracht van het afstandonderwijs is gaan we hier wel zelf een beetje op in om een duidelijk beeld te scheppen. Wine is een Open-source implemenatie van de Microsoft Windows API in X Windows, OpenGL & Unix. Kort gezegt een compatibiliteits laag om Microsoft Windows software te kunnen verwerken. Klinkt vies en dat is het ook. Wine heeft dus geen Microsoft Windows nodig aangezien het een volledige gratis implementatie is van niet Microsoft code. Doch, WINE kan gebruik maken van Microsoft Windows DLL (Librarys). Wine biedt tevens ook een Developer Toolkit om Microsoft Windows sourcecode om te zetten (porten) naar Linux. WINE bevat ook een program loader zodat niet aangepaste programmas (zouden moeten ...) kunnen draaien op x86 based Unix machines (ik bedoel hiermee dus de ganse reutepeteut Linux, FreeBSD, Mac OS X en Solaris).

    Let wel op en dit weet ik uit ervaring als de Microsoft Windows applicatie een complexe functie bevat naar de omgeving of van grafische aard dan faalt WINE enorm. Een kleine functie in het programma dat WINE niet begrijpt en het is gedaan met spelen.

    Het laatste hoofdstuk gaan we PlayOnLinux is in de praktijk installeren op een Fedora 18 x64. En interessant artikel over de laaste versie van WINE 1.4 dat ik niet wil onthouden: http://www.pcworld.com/article/251510/to_run_windows_software_on_linux_try_wine_1_4.html

  • Page 9 of 18

    PLAYONLINUX

    Een grafische front-end op de WINE package is PlayOnLinux. Het doel van PlayOnLinux is de installatie van Microsoft Windows software op Linux wat gebruiksvriendelijker te maken. Er zijn zo veel pakketen, hieronder vind je CrossOver (betalend). Wat PlayOnLinux onderscheid van de anderen is dat de focus hier ook wel ligt op games. Het systeem dat PlayOnLinux gebruikt zijn wrapper shell scripts (.pol files) die de specifieke configuratie van WINE bevatten om een bepaalde applicatie te installeren. Deze scripts zijn terug te vinden in een online database (speciale configuraties van WINE). Als je game er niet tussen staat kan je het nog steeds zelf installeren manueel (veel succes). Iedere game of applicatie werkt binnen zijn eigen container dus veel interferentie van de Microsoft Windows programmas onderling ga je niet hebben. CrossOver gebruikt een dergelijk systeem dat noemt CrossOver Bottles. CrossOver wordt in volgend onderdeel kort besproken. PlayOnLinux kan ook virtuele partities aanmaken voor specifieke programmas met een ander WINE versie. Hier denken we dan weer aan onze Dual/Multi-Boot computer. De website van PlayOnLinux - http://www.playonlinux.com/en/

    CROSSOVER

    Er is een ook een commerciele variant namelijk CrossOver. CrossOver is een variant op WINE (sourcecode van WINE aangepast) met extra compatibiliteits patchen en extra verbeterde configuratie tools vooral om het ganse geheel wat gebruikersvriendelijker (vereenvoudigder) te maken. CodeWeavers (het bedrijf) levert ook technische support. Zij zijn ook een grote bijdrager aan het WINE project. Hun focus ligt ook een beetje om de grote mainstream pakketen compatibel te maken met WINE. Ik denk hier aan Microsoft Office. En Adobe Photoshop (gesponserd geweest door Google). De website van CodeWeavers - http://www.codeweavers.com/products/

  • Page 10 of 18

    INSTALLATIE PLAYONLINUX

    Omdat dit in eerste instantie toch iets mooi lijkt te zijn en gratis lijkt het mij de moeite om het is te installeren. Ik ben benieuwd ... We starten met installatie via de website.

    We downloaden de laatste versie. Aangezien we na installatie in CentOS geen resultaat hebben besluiten we het nogmaals met Fedora. Voor Fedora worden er speciale RPMs afgeleverd we hopen dus dat dit beter werkt. (In CentOS is geen games menu waar PlayOnLinux zich in nesteld ik dacht dat dat de reden was maar neen, lees verder ...).

    Alsook in Fedora 18 64bit is het ferme noegabollen. Na installatie van RPM is er niks te vinden.

  • Page 11 of 18

    Op dit moment krijg weer dat Linux gevoel. Hop naar de terminal. We zetten ons onmiddellijk als root, het zal nodig zijn ...

    We willen dus als basis PlayOnLinux toevoegen aan onze software repository. Dit doen we met ... su -c 'rpm -ivh http://rpm.playonlinux.com/playonlinux-yum-4-1.noarch.rpm'

    Hier vind hij dat toch de originele installatie vanuit de GUI. Vermoedelijk moeten we dan toch nog installeren

    su -c 'yum install playonlinux'

    En inderdaad we zijn vertrokken, maar er gaat weer iets mis. Er ontbreken nog nodige referenties. Zoeken de online repositorys is een totale ramp. Na dan toch een tropische mirror gevonden te hebben kunnen we 256 mb gaan updaten tegen de waanzinnige snelheid van 30-60 kB/s.

  • Page 12 of 18

    We wachten geduldig af. Je ziet (zie printscreen boven) dat wine wordt genstaleerd op de achtergrond. Zoals je kan lezen op pagina 8 maakt PlayOnLinux gebruik van WINE. Beter omschreven, het is een grafische frontend voor WINE.

    We wachten wat langer ... we zijn ondertussen al 10,20, 40 minuten verder.

  • Page 13 of 18

    We moeten nog een GPG key importeren, dit gaat automatisch (zie printscreen boven).

    En ons geduld wordt beloond, na een half uurtje zijn we klaar. En de applicatie PlayOnLinux is mooi met een prachtig icoontje bijgekomen in onze Fedora 18.

    Dubbelklik op het klavertje vier met de prachtige Microsoft Windows kleuren (zie printscreen boven).

    Bij het opstarten van de applicatie krijgen we alvast een error. Dit komt omdat we werken met een x64 bit Fedora 18 OS. Dit komt omdat de 32bit library van de Mesa Library niet genstalleerd staat. Die moeten we dan nog apart installeren.

  • Page 14 of 18

    su -c 'yum install mesa-dri-drivers mesa-dri-drivers.i686'

    35 Mb. Here we go

    En dit is vrij snel klaar zonder problemen. We zijn benieuwd ... Bij de eerste run van PlayOnLinux moeten we nog de Microsoft Windows fonts installeren.

  • Page 15 of 18

    Dit gaat goed en volledig automatisch.

    En het gaat goed we kunnen starten. Voor de lol gaan we Paint installeren. Dit zou toch moeten goedgaan ... een eenvoudig programmatje.

    Er moet blijkbaar de juiste versie van WINE gedownload worden. Als we de theorie van pagina 8 bovenaan goed gelezen hebben dan weten we nu wat er aan het gebeuren is.

    Installatie geslaagd en we kunnen Microsoft Paint opstarten ...

  • Page 16 of 18

    Weliswaar met succes. En we zijn blij, we hebben Microsoft Paint op Linux. Alweer een grote stap vooruit. Nu gaan we een grotere uitdaging aan en gaan we is een .msi nemen voor een custom installatie te doen. We gaan dan ook een programma kiezen dat niet in de standaard lijst van PlayOnLinux te vinden is. We nemen hier voor Bitcricket IP Calculator (trouwens de beste subnetcalculator die er te vinden is). Dit is ook een .msi bestand en niet een .exe bestand. Blijkbaar vormt dit geen probleem (zie printscreen onder).

  • Page 17 of 18

    En welliswaar een mirakel dit werk en nog goed ook. De interface is wel enorm lelijk maar kom, het werkt.

  • Page 18 of 18

    VOORDELEN EN NADELEN

    Wat is nu de beste keuze, wat zijn de voor en nadelen. Op zicht spreekt dit voor zichzelf. Het beste en vermoedelijk het nvoudigste is een Linux alternatief. Meestal vind je dit wel maar persoonlijk vind ik dit wat water bij de wijn doen. Als je bijvoorbeeld een Microsoft Office poweruser bent en je komt dan in de spartaanse omgeving van Libre Office of ander varianten tja ... . Misschien zijn er dan commerciele alternatieven die dat dan opvangen. Het voordeel hier is dan dat je geen Virtual Machines moet gaan draaien wat dan het systeem weer ten goede komt. Dual-Boot of Multi-Boot kan ook goed zijn, je heb dan de volledige systeem resources voor je OS, maar dit kan dan alweer als maar in n OS tegelijk moet zijn, anders is het natuurlijk niet werkbaar. Een virtual machine van Microsoft Windows in je Linux is dan wel weer een goede oplossing maar je moet een volledige OS draaien ... ook hier is de situatie weer determinant of dit een goede oplossing is. RDP, VNC of m.a.w. een Remote System lijkt mij ook een goede oplossing, welliswaar is het dan niet echt een alternatief aangezien je dan ergens nog wel een Microsoft Windows machine staan hebt. In een bedrijf met een Server 2008R2 of sServer 2012 zie ik hier zeker een toepassingsgebied voor. Emulators, te vermijden als het niet anders kan. In het hoofdstuk van de Machine Emulators (pagina 4) hebben we uitgelegd waarom we ze best vermijden (systeem recourses). En dan zeker The winner of the day met name PlayOnLinux dat (m.u.v. de toch wel wat moeizame installatie) goed werkt. Hiermee kan je dan optimaal van WINE gebruik maken op een relatief nvoudige manier. Natuurlijk zal het wel zijn als we blijven testen en zeker met moeilijkere pakketen ons hier zeker gaan op vastrijden, waar dan een Virtual Machine dan wel weer een oplossing zou zijn of een Remote System.

    Kort gezegt moet het situatie per situatie bekeken worden wat de beste oplossing is. Maar gewoon een Microsoft Windows aanschaffen zal voor mij toch nog steeds het beste alternatief en oplossing zijn. Alle goede software (allez toch 90%) uit de Linux wereld heeft toch zijn weg naar Microsoft Windows gevonden. Ok we moeten dan betalen voor onze OS maar in een bedrijfsomgeving is de kost van een Microsoft Windows OS in mijn ogen nog steeds goedkoper dan alle uren die verloren worden aan support en problemen op de Linux machines. Ik spreek hier dan wel over Workstations met eindgebruikers en niet over servers, dit is een ander verhaal.