Kapitel 11. Emulatorer

En emulator er et program, som gør det muligt at afvikle programmer skrevet til en anden computer eller styresystem. Vi vil i dette afsnit se på en række forskellige emulatorer, som du kan benytte under Linux.

Med hensyn til emulatorer kan Linux køre SCO-programmer (SCO er en kommerciel Unix-variant) gennem det, der hedder iBCS biblioteket (Intel Binary Code Standard). Dette giver adgang til en del ekstra kommercielle database-programmer.

Har du en kraftig (gerne 128 Mb RAM) og hurtig PC (gerne mere end 266 MHz Pentium II), kan du købe VMware, som laver en emuleret processor og kobling til maskinen. Så kan du køre dine Windows-programmer samtidig med, at du kører dine Linux-programmer - og principielt kan alle programmer køre. VMware kræver naturligvis, at Windows er installeret på computeren. VMware findes på http://www.vmware.com

Et alternativ er win4lin, som også er på vej frem. Den kan købes fra http://www.netraverse.com. Win4lin kræver umiddelbart langt færre ressourcer end VMware, men har også et par begrænsninger, såsom at kerne 2.4 ikke understøttes, der findes ingen "network neighborhood", man skal samba-mounte (eller nfs-mounte) netværksdrev, før man starter win4lin, og i en tabel til win4lin angive, hvordan drevbogstaver afbildes. Det vil være noget i retning af: C: afbildes til /home/bruger/win M: afbildes til /nfs/server/directory etc. Hukommelse kan tildeles til Windows fra 20 Mb op til max. 64 Mb. Der er også begrænsninger i den grafik, der kan understøttes.

Hvor VMware og win4lin er kommercielle pakker, så er et frit projekt Plex86 på vej. Dog er det endnu ikke anvendeligt og er ekstremt langsomt.

Figur 11-1. Windows kører under Linux via win4lin

11.1. VMware - flere maskiner i én

Du kan med programmet VMware (http://vmware.com) sætte din maskine op til at køre flere styresystemer samtidigt. Du kan hente en 30-dages licens til systemet hos http://vmware.com, (og tilsyneladende forny den en del gange senere, ikke mindst hvis du har en *.mail ;). Samme sted findes en meget fyldig og logisk opdelt installationsvejledning, som, efter et par dages eksperimenter, oven i købet er til at forstå.

11.1.1. Fordele ved virtuelle maskiner

Med de virtuelle maskiner opnår du flere fordele.Samme hardware til alle styresystemer uanset antal. Jeg har en vane med at bruge udrangeret udstyr i en junkmaskine til at lege med, men det er ikke tilfredsstillende at gå fra f.eks. 850MHz PIII til 333 MHz PII. Mulighed for at suspendere maskiner uden at skulle gennem en boot næste gang de skal bruges.Muliged for at afteste netværks-programmer uden at skulle investere en formue i hardware.Mulighed for at lege med nye distributioner uden at ødelægge den kørende server. (Der skal nok være flere gode grunde, men disse var nok til at få mig til lommerne).

Selv om du kan sætte en server op i en virtuel maskine til permanent brug, skal du ikke gøre dette. Virtuelle maskiner er efter min mening kun velegnet i forbindelser med aftestning. Selv en ældre maskine med en installeret server (ikke virtuel) er bedre, og så er du også fri for at få opsætningen på denne maskine forstyrret.

11.1.2. Hardwarekrav

Det kan stærkt anbefales at afprøve programmet for at se, om det kan hvad man ønsker, og om ens hardware er hurtig nok til at give et tilfredsstillende resultat. Ens processor bør efter min mening være CPU >= 600 MHz, RAM >=128 Mb og harddisken skal have 2-4 Gb plads pr. virtuel maskine.

11.1.3. Valg af værtssystemet

Ideen med programmet er, at du først installerer dit HOST-styresystem (Linux, NT4 eller Win2K), og derefter opretter en eller flere virtuelle maskiner under dette HOST-system, hvori du installerer andre (eller samme) styresystemer. Installerer du MS eller andre købe-styresystemer, skal du naturligvis have licens til dem, mere virtuelt er det trods alt ikke.

Det første valg du skal gennemtænke meget grundigt er, hvilket styresystem der skal være på maskinen (HOST).

Det du skal lægge vægt på her er både hvad du normalt bruger din maskine til, og om al din hardware (også den kommende) er understøttet af styresystemet. Begge grunde fik mig til at vælge W2K som HOST, da jeg dels primært arbejder i Delphi, og dels har en hang til mystisk (ofte alt for dyr) hardware.

Den næste overvejelse er hvilke styresystemer, der skal installeres som GUEST-systemer. Her er valget langt lettere, idet du kan have alt der vedrører en given virtuel maskine liggende samlet i en folder ( et dir ), som blot kan slettes, hvis du valgte noget forkert. Du kan naturligvis også vælge at lade den virtuelle maskine som sådan overleve, og blot installere noget andet forfra. Det du risikerer ved fejlvalg er således blot at opsamle unyttige erfaringer, men det kan jo også have en værdi.

11.1.4. Inden installationen

Det er meget vigtigt, at du starter med at installere netværksdrivere i dit HOST-system umiddelbart efter, du har installeret VMware selv, og inden du begynder at installere virtuelle maskiner. Har du ikke dette på plads, vil du hurtigt løbe ind i problemer med at kommunikere mellem systemerne. Jeg valgte at installere driveren til Bridget-networking, hvilket senere giver adgang til at gøre de virtuelle maskiner offentligt tilgængelige. Du kan som alternativ vælge et lukket netværk, som alene giver adgang til at kommunikere internt mellem HOST/GUEST-systemer.

En anden ting, der skal være på plads er skærmens farvedybde. 16 og 24 bit fungerer ganske enkelt ikke. 8 bit giver hurtigere maskiner rent grafisk, mens 32 giver flottere udseende.

Under W2K kan det være praktisk at tilpasse den indbyggede DHCP-servers adresseområde. Jeg har valgt at køre alt under 192.168.1.* og har derfor tilpasset filen C:\WINNT\System32\vmnetdhcp.conf, så der uddeles adresser i det område:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.210 192.168.1.220;
    option broadcast-address 192.168.1.255;
    option domain-name-servers 192.168.1.200;
    option domain-name "linux.intranet";
}

Er det en Windows-HOST, gør det heller ingen skade at køre en defragmentering på harddisken, så der kommer en sammenhæng i de datafiler, de virtuelle maskiner skal "leve" i.

11.1.5. Deling af filer mellem styresystemerne

Installerer du Win9x på en maskine med NT/W2K som HOST, er delingsmulighederne via en workgroup helt som mellem de to styresystemer på to uafhængige maskiner.

Har du Linux med i spil, skal du sætte samba op på den, og arbejde med filflytning fra Windows-siden. Altså:

Linux-HOST + Win9X/NT4/W2K-GUEST: Her skal Linux have samba installeret, og i den/de virtuelle maskiner kan du derefter kopiere til/fra samba-"drevene".

NT/W2K-HOST + Linux-GUEST: Her skal samba igen ind på Linux-maskinen, og du kan fra HOST'en hente og gemme filer på samba-"drevene". Det vil ikke være praktisk at lave en permanent mapning, da Windows-maskinen jo ikke kan finde den virtuelle samba før den er sat i gang.

Har du en selvstændig Linux-server, kan dens samba-"drev" bruges som fælles drev for både HOST- og GUEST-systemerne. Dette vil være den foretrukne løsning for de fleste med en Linux-server, da de filer, der ligger på serveren jo ikke er så udsat for at gå tabt ved et systemnedbrud.

Der er andre muligheder for fildeling, men disse forekommer mig at være de mest enkle at håndtere, ikke mindst fordi de allerede er implementeret mellem min Linux-server og W2K-arbejdspladser.

11.1.6. Skærmopløsning

Dette emne er meget hardware-afhængigt. Jeg kører med et Matrox Marvel G400 TV-kort som har diverse forskellige muligheder for opløsninger. Mit valg har været at sætte værten op til 1152x864, mens gæsterne kun kører i 1024x768. Det giver plads til at vise gæsterne i (virtuel) fuld skærm, og dog tillade overskrift og menulinje omkring dem. Matrox-kortet understøtter desuden virtuelle skærme, så hver af de virtuelle maskiner kan få sin egen skærm at brede sig i.

Andre, nyere skærmkort tillader lignende løsninger.

Der kan opstå lidt problemer med opdateringen af skærmene i de virtuelle maskiner, men jeg tilskriver dem mere Matrox-driveren end VMware.

11.1.7. Reboot/Power off/Suspend

Det er kun i forbindelse med installationer, at man har behov for at "slukke" for den virtuelle maskine. Normalt vælger jeg blot at suspendere den. Det er ganske enkelt herligt at have en fuldt installeret, kørende SuSE/KDE/Konqueror oppe på under 5 sekunder med /etc vist med et hav af små ikoner. Det tager omtrent 4 minutter at lave en boot på min maskine (den har SCSI), så dén med at dual-boote dur ganske enkelt ikke i dagligt brug.

CTRL+ALT+DEL fanges af værten, mens CTRL+ALT+INS oversættes til en lokal CTRL+ALT+DEL i den af de virtuelle maskiner der har fokus. En både sjov og logisk løsning, som man går fejl af en del gange i starten.

Med W2K som HOST giver CTRL+ALT+DEL i en virtuel maskine den sædvanlige logout-dialog, men selv ved valg af CANCEL i denne dialog ryger tastetrykket CTRL+ALT+DEL til den virtuelle maskine, som reagerer på det. Det er det man sædvanligvis er interesseret i, så det kan vel knapt kaldes mere end en skønhedsfejl. Kører den virtuelle maskine X får man her en mulighed for at fortryde, kører den i en tekst-konsol, går den i gang med en "reboot -n" uden videre.

11.1.8. Fokus/prioritet

VMware fanger fokus enten ved et bestemt tastetryk eller ved et klik med musen i den virtuelle maskines vindue. Jeg har valgt kun at bruge musen, det fungerer overbevisende. Man slipper fri igen med CTRL+ALT+ESC, hvorefter fokus er placeret i HOST-maskinen. Skiftes der til fuldskærmstilstand er det ligeledes CTRL+ALT+ESC der skal anvendes for at slippe fri.

Der er mulighed for at bestemme, hvordan maskinens ressourcer skal fordeles mellem de kørende virtuelle maskiner. Normalt vil det være at foretrække med en høj prioritet til den maskine, der har fokus, og en lavere til de øvrige. Ressource-prioriteringen kan ændres under drift.

Der er mulighed for at tildele større eller mindre mængder RAM til de virtuelle maskiner. Denne mængde kan der kun ændres på, når den virtuelle maskine er helt slukket (ikke under suspend, de færreste styresystemer kan håndtere hot-swap-RAM:).

Det er (heldigvis) ikke muligt at starte samme virtuelle maskine op i flere kopier.

11.1.9. Flere ens virtuelle maskiner

Hvis du har fulgt rådet i starten af dette dokument om at installere hver virtuel maskine i sin egen folder (katalog), kan du endog meget hurtigt sætte en række ens virtuelle maskiner op. Start med at installere den første maskine. Luk den virtuelle maskine ned (ellers vil kopien starte med at køre tjek på disken). Kopiér folderen med indhold til en ny folder. Ret sti og evt. filnavne i .vmx-filen vha. en simpel teksteditor.

Nu har du fået to eller flere ens virtuelle maskiner, og kan blot starte dem fra en ende af. Du skal dog være opmærksom på, at fysiske enheder og COM-porte kan give konflikt ved start af flere virtuelle maskiner, som alle ønsker at starte med f.eks. drev A: "connected". VMware løser denne konflikt ved at sætte sådanne enheder til ikke at være forbundet ved boot. De kan derefter aktiveres efter behov under drift.

11.1.10. VMware og VNC

Det er rent faktisk muligt at afvikle virtuelle maskiner via VNC (se også Afsnit 11.5). Hvis HOST'en kører vncserver + en virtuel maskine, kan man bearbejde den virtuelle maskine via sin VNC-forbindelse. Det giver dog en del mere mening at starte vncserver på både HOST og den/de virtuelle maskiner, da "oversættelsen" fra virtuel til HOST til VNC er alt for sløv.

Altså: Installér og start vncserver på alle de virtuelle maskiner. Kører den virtuelle maskine Linux, kan du uden videre minimere den, da VNC alligevel ikke bruger det viste skærmbillede.

Brug vncviewer til at vise hver enkelt maskine.

Dette dokument skives på en bærbar maskines tastatur en stille sommeraften på terrassen via VNC til min normale arbejdsplads, som for øvrigt kører to Win98 og en enkelt SuSE 7.0 i virtuelle maskiner. Linux'en kører minimeret på sin HOST, men i et andet VNC-view på den bærbare, mens min normale Linux-server blot for en ordens skyld kører i et tredie view.

Alle maskiner kører med en tilfredsstillende hastighed. Faktisk er alle en del hurtigere at arbejde på, end hvis jeg havde arbejdet direkte på den bærbare.

11.1.11. Det største problem

Det største problem ved virtuelle maskiner er, efter min mening, at finde rundt i dem. Man kan opnå en del ved at lave skrivebordet forskelligt, både i baggrundsfarve og placering af diverse paneler. (Her har jeg for første gang fundet en nyttig grund til at skifte baggrundsfarve;)

Vænner man sig til aldrig at slukke, men kun "suspend'e" de virtuelle maskiner er meget nået mht. utilsigtet afbrydelse.

11.1.12. Konklusion

VMware er et af de programmer, der på trods af mange års arbejde indenfor EDB-området, har fået mig til at hæve et øjenbryn i (blaseret) begejstring. For første gang siden mit første møde med ægte multitasking i OS/2, er der noget der rykker. Jeg har i mange år haft elektronisk omskiftning mellem fire maskiner til samme tastatur/skærm/mus, og er vant til at kunne skifte let mellem dem, men fleksibiliteten i at kunne se alle samtidigt, og at kunne skifte mellem dem med et klik er virkelig et fremskridt.

Det sker kun en sjælden gang, at min CPU arbejder 100%. Delingen af processorkraften mellem flere maskiner er derfor ikke noget, der i større grad generer. Dette, sammenholdt med den virkning at alle maskiner opdateres samtidigt og gratis hver gang min HOST-maskine ombygges eller udvides, gør programmet særdeles interessant. Selv om skattefar mod- og ufrivilligt sponsorerer to trediedele af mine nyanskaffelser er der jo trods alt den sidste trediedel at tage hensyn til.