>> Hoofdindex <<

Virtual PC voor OS/2

> OS/2 Index <

Inleiding

Een OS onder een OS

Welke real PC?

Besturingssystemen installeren

Addities

Virtuele schijven delen

Netwerken met Virtual PC

Afsluiten van een gast besturingssysteem

Welke Windows versie?

Virtual PC en Open32

Multimedia ondersteuning

Geluid onder Windows

Linux onder Virtual PC

Open BSD 4.1 onder Virtual PC

Geluid onder Linux

OS/2 Warp 4 onder Virtual PC

OS/2 Warp 3 onder Virtual PC

OS/2 Warp Connect onder Virtual PC

OS/2 versie 2.1 onder Virtual PC

Nog enige andere besturingssystemen

De toekomst van Virtual PC

Literatuur


Inleiding

> Top <

In april 2002 bracht de Duitse firma Innotek een bijzondere port op de markt: Virtual PC for OS/2. Het was een op ODIN technologie gebaseerde port van Virtual PC voor Windows van de firma Connectix. Helaas is dit product van de markt gehaald. Want in januari 2003 kreeg Virtual PC een nieuwe eigenaar, Microsoft, die nog geen half jaar later de distributie van Connectix' Virtual PC voor Windows en Innoteks OS/2 port ervan liet staken.

Connectix ontwikkelde Virtual PC voor de MAC (1997) en bracht later Windows versies uit. Innotek, die Flash 5 op het OS/2 platform introduceerde, porteerde Virtual PC versie 4.3 voor Windows naar OS/2 via ODIN/Open32 technologie. Innotek bracht de OS/2 versies 4.3.2, 5 en 5.1 van Virtual PC voor OS/2 uit en zorgde voor een Windows versie met extra OS/2 ondersteuning.

Virtual PC is een PC emulator. Het draait - traag, maar waar, heuse PC besturingssystemen in een venster. Onder OS/2 viel de snelheid nog wel mee. U kunt met Virtual PC meerdere taken uitvoeren onder verschillende besturingssystemen. En als een venster - pardon besturingssysteem - wat op zich laat wachten, schakelt u tijdelijk over naar een besturingssysteem.

Het mooiste is dat Virtual PC u een fantastische netwerkondersteuning biedt. Met voldoende werkgeheugen kunt u een netwerk aanleggen van meerdere besturingssystemen op één PC. Op die manier kunt u bronnen delen.

Met 32 MB RAM kan een Linux Virtual PC al dienst doen als een web- en e-mailserver of als applicatieserver voor X. In tekstmodus vraagt Linux weinig resources en de XFree86 server van OS/2 (of Hoblink X11) kan het grafische rekenwerk doen. OS/2 kan optreden als Proxy, NFS of Samba server voor Linux of omgekeerd.

Een Windows 9x of NT Virtual PC kan dienst doen als Windows emulator voor Windows programma's die u met Wine niet aan de praat krijgt. 3D spelletjes lopen te langzaam, maar de 2D Windows Media Player viel me niet tegen.

Een OS onder een OS. Hoe zit dat met de stabiliteit?

> Top <

Het is nogal wat om een ander besturingssysteem zodanig in te tomen dat het als een toepassing onder OS/2 loopt. Dit stelt hoge eisen aan Virtual PC, OS/2, de stuurbestanden en uw hardware.

Applicaties mogen de hardware niet direct benaderen. Het besturingssysteem is intermediair. Een meertaken besturingssysteem zorgt ervoor dat de applicaties (hun draden) om en om met de hardware (processor) praten. Hierbij krijgt een toepassing gedurende een van tevoren vastgestelde tijd toegang tot de processor. Via de processor krijgt het programma een deel van het virtuele geheugen en via de stuurbestanden toegang tot de randapparatuur. Mocht een programma direct (bug in het programma) of indirect (bug in het besturingssysteem of een stuurbestand) geheugen aanspreken dat aan een andere toepassing toegewezen is, dan zal de processor dit aan het besturingssysteem melden. Naar gelang de inschatting van het besturingssysteem of dit gevaarlijk is (kernel space) of niet (user space), wordt het besturingssysteem (trap error) of het programma met een foutmelding (SYS3175) afgesloten.


Gast applicaties

Hypervisor (verborgen)

Gast omgeving (Windows, Linux)

Gast besturingssysteem

Gast stuurbestanden

Virtual PC (programma onder OS/2)

Virtuele PC (processor, moederbord, geheugen)

Virtuele randapparatuur

Gastheer omgeving (OS/2)

Besturingssysteem (OS/2)

Stuurbestanden (van OS/2)

Fysieke hardware

Uw hardware (processor, moederbord, geheugen)

Uw randapparatuur

Gebruikersprogramma zullen het besturingssysteem dus moeten benaderen. Maar een besturingssysteem wil pure hardware zien. Hoe kan een besturingssysteem dan als applicatie lopen?

Een hardwarematige oplossing is de Virtuele DOS Machine (VDM) van Windows 9x en OS/2. In virtual 8086 mode emuleert de 386 processor een in real mode lopende 8086 processor. De DOS applicaties spreken een deel van het virtuele geheugen via virtuele 8086 processor aan, maar op de achtergrond wordt dit geheugen door het 32 bits besturingssystemen beheerd. De DOS applicaties mogen alleen de geëmuleerde 8086 hardware, BIOS en DOS functies aanroepen. Maar DOS applicaties die specifieke 80386 functies (bijv. segmenten >64 kb) aanroepen lopen niet. Dan volgt een foutmelding van de processor. Om die reden kunt u onder een VDM met bootlin ook geen Linux booten of met de DOS versie van PQMagic werken in een VDM.

Maar een 386 besturingssysteem zal de 386 en zijn geheugenbereiken zelf willen besturen. Het is geen applicatie die zich naar de regels schikt. En op de MAC ontbreekt zelfs de x86 processor. Hoe lost Connectix' Virtual PC dit op?

Daartoe krijgt ieder besturingssysteem een Virtuele PC toegewezen. Het is software die met behulp van uw besturingssysteem en uw stuurbestanden een specifieke hardware configuratie nabootst. De door Virtuele PC geëmuleerde hardware is met opzet conservatief gekozen. Het gaat om breed ondersteunde PCI randapparatuur: S3 videokaart, 16 bits Creative Labs PCI geluidskaart, DEC ethernetchip. Hiermee zal de Virtuele PC ook met verouderde of niet open source besturingssystemen lopen. Maar de PCI randapparatuur is wel modern genoeg om door een PnP BIOS lezend besturingssystemen (Windows 9x, NT, Warp 4, Linux) te worden herkend. De geëmuleerde randapparatuur van Virtual PC 4 zoals Windows 95 die ziet vindt u in Apparaatbeheer.

Virtual PC 5 kwam met licht gewijzigde virtuele hardware. Maar ook deze zal door de meeste besturingssystemen meteen herkend worden.

Op de PowerPC moet Virtual PC software steeds een vertaalslag van de voor de geëmuleerde x86 processor geschreven machine code naar de op het systeem aanwezige RISC processor maken. De situatie is te vergelijken met Java: Daar verricht een just in time (jrt) runtime compiler het vertaalwerk van de voor een RISC processor geschreven Java applicaties naar het x86 gastbesturingssysteem. Dat geeft natuurlijk altijd vertraging.

De PC besturingssystemen en programma's die op de Windows en OS/2 versies van VPC draaien, kunnen hun x86 instructies wel op de x86 processor uitvoeren. Vooral gebruikersprogramma's zullen hiervan profiteren. Hun code kan onversneden worden uitgevoerd. Ze bewerken immers alleen maar hun eigen deel van het virtuele geheugen.

Voor systeemprogramma's en kernels die in kernelmodus draaien geldt een ander verhaal. Ze hebben onbeperkte geheugentoegang en mogen alle processorinstructies uitvoeren. Er moet dus een hogere instantie zijn die de niet onder OS/2 toegestane "fouten" van het gastbesturingssysteem corrigeert. Een onzichtbare beschermengel voor de kernels.

Hiertoe nestelt een minikernel van Virtual PC (de zogenaamde hypervisor) zich als een Stealth virus tussen het gastbesturingssysteem en de MMU. De ondersteuning van de hypervisor wordt via het stuurbestand VPCAPPS.SYS geladen. De in machinetaal geschreven hypervisor wordt als draad met hoogste prioriteit in de geheugenruimte van het gastbesturingssysteem uitgevoerd. Om te voorkomen dat twee geheugenbeheerders met dit geheugen aan het werk gaan, valt het door VPC gebruikte hoofd- en videogeheugen van het gastbesturingssysteem niet onder het beheer van OS/2's geheugenbeheerder (MEMoryMANager), maar wordt het als niet swappable ("long term locked") systeemgeheugen verstrekt. Binnen dit voor hem gereserveerde fysieke geheugen kan het gastbesturingssysteem geheugenpagina's naar zijn pagineringsbestand schrijven. Dat blijft dus zijn verantwoordelijkheid.

Mocht een gast OS besluiten de geheugenruimte van de (voor hem verborgen) hypervisor te overschrijven, dan zal de hypervisor zich snel naar een veiliger plek in het geheugen verplaatsen. Zodra de kernel van de gast iets met de geheugentabellen doet, waardoor OS/2 in de problemen kan komen, zal de hypervisor ingrijpen. Hij vertaalt de instructies zo, dat OS/2 ermee kan leven. Dit gaat zo snel (milliseconden) dat OS/2 en zijn gastbesturingssystemen er zelf niets van merken.

In mijn praktijk verliep de samenwerking tussen OS/2 en de gastbesturingssystemen bijzonder goed. VPC gedroeg zich aldoor als een fatsoenlijke OS/2 PM applicatie die het actieve venster netjes afstond. De stabiliteit van OS/2 en Presentation Manager leden dus niet onder VPC. En dat is beslist geen geringe prestatie voor een programma dat met zijn eigen stuurbestand met de hoogste prioriteit loopt. Dat kan alleen als het programma excellent geschreven is.

Ik zag wel vastlopers van het PM programma Virtual PC. Ze ontstonden typisch tijdens het booten van een al dan niet opgeslagen Virtuele PC. In deze tijd-kritische situatie zullen het gastbesturingssysteem en zijn hypervisor nog niet volledig in het geheugen geladen zijn. Het gastbesturingssysteem zal tijdens het booten de processor benaderen, maar de niet door OS/2 toegestane acties van het gastbesturingssysteem worden nog niet door de hypervisor opgevangen. Omdat het gastbesturingssysteem als een PM programma onder OS/2 loopt zal het PM programma Virtual PC met de foutmelding "Unhandled exception" worden afgesloten. Dat is een onder OS/2 onvermijdbare situatie. U kunt deze bootproblemen voorkomen door tijdens het bootproces van een gastbesturingssysteem niet naar een ander programma over te schakelen. Na het booten hebt u weer vrij spel.

Image-bestanden op de vaste schijf dienen als virtuele vaste schijven. Voor het besturingssysteem gaat het om een tot drie 16 GB schijven, maar VPC gaat zuinig om met uw schijfruimte en via een slim Virtual Hard Disk beheer kunt u net als op een multibootsysteem de besturingssystemen elkaars schijfruimte laten delen..

Welke real PC?

> Top <

Processor

Om een Virtuele PC als applicatie te kunnen draaien moet u beschikken over een snelle en stabiele PC (> 400 MHz) en een goed multitasking besturingssysteem. Virtual PC vraagt veel van uw hardware en drivers. Kleine gebreken zullen zichtbaar zijn. Een besturingssysteem is immers geen spelletje. Innotek adviseert OS/2 Warp 4 met FP 15, hoewel FP 8 het in testen ook deed.

De met processoroptimalisaties volgestouwde Virtual PC 5 is snel op een Athlon, maar relatief langzaam op een gelijk geklokte Pentium IV processor. De Duron, Celeron, Pentium II, en Pentium III processors doen het weer goed. Virtual PC 5 ondersteunt de Pentium MMX, AMD K6-II or AMD K6-III niet meer. Ook de nog niet ondersteunde OS/2 SMP systemen veroorzaken veel problemen. De kloksnelheid van de processor zegt niet alles. Belangrijk is dat de processor en het host OS beschikken over een goed ondersteunde level 2 cache, een stabiel moederbord (BIOS) en veel werkgeheugen (>256 MB). Reken voor puur processorwerk (niet grafische applicaties) op een vertraging van ongeveer 75%. Maar voor grafische applicaties zal de vertraging ten opzicht van een 3D DirectX kaart vele malen hoger zijn.

Geheugen

Het werkgeheugen dat u aan een virtuele PC toekent, wordt van het voor OS/2 applicaties en het systeem beschikbare vrije geheugen afgenomen. Daarnaast gebruikt VPC zelf ook iets van 30 MiB RAM (virtueel meer!). Dus als uw systeem 1 GiB geheugen heeft en een gast PC draait met 512 MiB werkgeheugen, dan ziet u tijdens het laden van het gast besturingssysteem dat het vrije geheugen met 512 MiB dalen. En als de swapper.dat groeit, dan is dat vooral omdat residente OS/2 applicaties door VPC uit hun fysieke geheugenplaatsen verdreven worden.

VPC reserveert voor zijn gastbesturingssystemen dus veel meer fysiek geheugen dan de gewone OS/2 applicaties die virtueel geheugen gebruiken. Als zij laden beschikken ze weliswaar over vele geheugenadressen, maar die zijn maar voor een klein deel aan fysiek RAM gekoppeld (memory mapping). De programma's krijgen met lazy commit pas beschrijfbare geheugenplaatsen als ze het daadwerkelijk gebruiken, en zo nodig (als er veel virtueel geheugen gecommitteerd is) wordt de inhoud van minder benodigde geheugenplaatsen naar de vaste schijf geswapt.

Maar de lazy commit truc die goed werkt met programma's met een kleine werkset, gaat voor een gastbesturingssysteem niet op. Die moet meteen over al zijn gereserveerde geheugen beschikken. En dat bestuurt hij vervolgens met zijn eigen geheugenbeheerder. En niet via de slimme geheugenbankier van OS/2. Het door OS/2 geheugen is dan ook gelabeld als unswappable en long term locked.

Toch draait VPC wel als een gebruikersapplicatie onder OS/2. En daarom moet het door VPC voor gastbesturingssystemen gereserveerde geheugen wel in het virtuele geheugen van OS/2 afgebeeld worden. Dat is dan ook de reden dat VPC op moderne OS/2 4.5 kernels, waar programma's over meer virtuele geheugenadressen beschikken, ook veel meer fysiek geheugen beschikbaar kan gebruiken. Op een OS/2 2.0 t./m 4.0 systeem met 1 GiB RAM kunt u al een foutmelding krijgen als u een gast besturingssysteem laadt dat groter is dan 250 MiB. De oorzaak is dan een gebrek aan virtuele geheugenadressen voor het OS/2 programma VPC.

Op moderne kernels moet u de VAL dus niet te laag zetten. Bij een VIRTUALADDRESSLIMIT=1024 zag ik dat bij het laden van een derde gastbesturingssysteem het aantal vrije lage geheugenadressen snel van 250 naar 0 MiB kelderden. Klaarblijkelijk waren de virtuele geheugenadressen boven de 512 MiB al door VPC bezet. Alleen het afsluiten van VPC met Watchcat hielp toen nog. Maar bij een te hoge VAL (> 2048) loopt u weer het risico dat essentiele stuurbestanden niet laden.

Moederbord

Dat het moederbord de kern van de PC is wordt nog wel een vergeten. Op mijn Celeron 400 (met geintegreerde level 2 cache) met 256 MB Ram liep Virtual PC naar tevredenheid. Op dit moment gebruik ik een Athlon 1700 XP met 512 MB RAM op een Asus A7V333 moederbord. Maar ik kan me voorstellen dat Virtual PC op een standaard discount PC - een snelle processor op een goedkoop moederbord - in de problemen komt. Een bijzonder aandachtspunt blijft de koeling van de processor. Een VPC sessie vreet processortijd (regelmatig 100%) en zal veel van de koeling vergen. Zeker op een overgeklokte PC...

Het is veelzeggend dat Virtual PC een Standaard PC emuleert. Dus niet de gebruikelijke ACPI Uniprocessor PC. Het heeft als voordeel dat de niet Windows PnP systemen zich goed installeren laten. Maar het is zonneklaar dat de gast PC's niet aan energie-besparing doen. Dat geldt alleen voor de hardware van het host-besturingssysteem.

Grafische kaart

Omdat er op het grafische vlak veel van OS/2 verwacht wordt- u zult immers grafische besturingssystemen 2D draaien - is een snelle door SciTech Display Doctor (SDD) ondersteunde 2D videokaart een pre. Virtual PC voor OS/2 is geoptimaliseerd voor de op Graphics Adapter Device Driver (GRADD) gebaseerde videostuurbestanden (SDD, Matrox, nVidia). Hoe meer rekenwerk de hoofdprocessor via de GRADD API's naar de videoprocessor kan delegeren, hoe beter.

Hiertoe maken Virtual PC en GRADD uitgebreid gebruik van Direct Interface Video Extensions (DIVE) van dive.dll. Via de DIVE interface van Multimedia Presentation Manager/2 kunnen Presentation Manager (PM) en fullscreen (FS) OS/2 programma's de videokaart rechtstreeks beschrijven. MMPM/2 software motion video, OS/2 ports van de spelletjes Doom en Quake voor OS/2 en de emulator MAME maken hier gebruik van.

Onder SciTech Display Doctor kan de WarpOverlay! API bepaalde videokaarten hardwarematig benaderen bij het vergroten en verkleinen van videobeelden in PM vensters. WarpOverlay vervangt en versnelt de DIVE API. Deze van SDD afhankelijke techniek is vooral van belang bij de het decomprimeren van de MPEG CODECs (COmpressor DECompressor) onder OS/2 door WarpVision, maar zal ook de 2D van VPC versnellen. De multimediaspeler WarpVision is freeware. De stuurbestanden van WarpOverlay zijn shareware.

Met goede drivers en een snelle 2D kaart kunt u onder een breedbandverbinding het TV Journaal met de tweedimensionale Windows Media Player bekijken. Maar driedimensionale spelletjes vertonen altijd een schokkerig beeld. Ten eerste omdat VPC een tweedimensionale S3 kaart emuleert. En ten tweede omdat OS/2 nog geen 3D API kent.

Vaste schijven

Van Virtual PC word gezegd dat het onder de ware 32 bits besturingssystemen (Windows NT, 2K en XP, maar niet op de DOS/Windows 9X varianten) gemiddeld 60% van de processortijd direct kan benutten. Nu zal dat er in hoge mate afhangen van wat u doet. Want de hardwarecomponenten die een Virtual PC goed naar de real PC hardware delegeren kan zijn:



Maar de vaste schijftoegang hoort hier niet bij. Die hangt af van de schijf zelf (inclusief de ingebouwde hardware cache), de effectiviteit van de de cache van het gastbesturingssysteem en dus van OS/2. Het wordt als een pre gezien dat de gastbesturingssystemen de vaste schijf via de DMA kanalen kunnen benaderen. Het werd het als volgt beredeneerd (Bron: "sjain" in Topic: How can I improve speed of Guest OS):

Technical analysis of PIO vs. DMA in an emulated environment
Many Linux distributions use programmed I/O (PIO) over direct memory access (DMA) for their default method of accessing the hard drive - as some Linux developers debate the advantages of PIO vs. DMA when running on physical hardware.
However, in an emulated environment DMA has major advantages over PIO. PIO sends all hard drive requests through the CPU, so that during a typical hard drive operation both the CPU and the hard drive controller are heavily utilized. DMA, on the other hand, communicates directly to the hard drive controller and side steps the CPU for hard drive activity.
Virtual PC is optimized for DMA to virtualized IDE devices (CD/DVDs and hard drives). PIO requires one I/O operation (IN/OUT instruction) for every two or four bytes read from or written to an IDE device. These I/O accesses are difficult to virtualize, and the overhead for each I/O access is relatively high. DMA, on the other hand, only requires one I/O operation for each multi-sector read or write operation.

Op veel besturingssystemen zult u de DMA modus zelf moeten aanzetten. Onder Linux kunt u hdparm uitproberen op een root console via Ctrl-Alt-F2. Als het op de prompt werkt plaatst u deze opdrachten (voor resp. de vaste schijf en de CD) in /etc/init.d/boot.local:

hdparm -m128 -u1 -c3 -W1 -A1 -d1 -X66 /dev/hda
hdparm -u1 -c3 -A1 -d1 -X66 /dev/hdc

Geeft:

suse:/etc/init.d # ./boot.local
/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 128
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
setting xfermode to 66 (UltraDMA mode2)
setting drive read-lookahead to 1 (on)
setting drive write-caching to 1 (on)
multcount = 128 (on)
I/O support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)
/dev/hdc:
setting 32-bit I/O support flag to 3
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
setting xfermode to 66 (UltraDMA mode2)
setting drive read-lookahead to 1 (on)
I/O support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)

Overigens bleek het verschil in snelheid tijdens benchmarks met bonnie nauwelijks uit te maken, maar ik sluit niet uit dat factoren als de ingebouwde vaste schijfcache, het bestandssysteem (hier Reiser) en de Linux cache de verschillen maskeren. Bovendien zal het effect van DMA en SMS vooral zichtbaar zijn als u meerdere intensieve taken tegelijkertijd uitvoert. Ik houd de DMA daarom maar aan.

Busmaster DMA onder OS/2

In een artikel uit 2000 over het installeren van OS/2 op de MAC werd busmaster DMA voor de OS/2 gast afgeraden: Installieren und Betreiben von OS/2 auf einem Macintosh. Maar onder mijn OS/2 systeem met een VPC 5.1 heb ik er geen last van. Integendeel: ik denk dat het een voordeel biedt en ik kon de laatste IBM en Dani OS/2 IDE drivers zonder problemen installeren.

Windows 95

Windows 95 ondersteunt busmaster DMA op VPC met de Intel BMIDE_95.EXE driver. Op de Intel website is hij niet meer te vinden (Windows 95 wordt niet meer door Wintel ondersteunt), maar met een FTP zoekopdracht op AllTheWeb.com hebt u hem zo. De processorbelasting bij vaste schijf benadering zou tijdens PIO acties ongeveer 40% zijn tegenover 25% bij busmaster DMA.



Besturingssystemen installeren

> Top <

De kern van ieder PC vormt het BIOS. Iedere virtuele PC beschikt over zijn eigen PnP BIOS. Dit BIOS laat het booten van bootfloppies, bootbare CD's en hun image bestanden (virtual floppy disk, vfd en iso bestanden) toe. Vrijwel ieder mij bekend PC OS bleek ermee te booten. BEOS echter niet. Dat heeft met het BEOS' afwijkende geheugenbeheer te maken (deels 64 bits).

Voor ieder besturingssysteem dat u installeert zult u een virtuele PC moeten samenstellen. Dit gaat via de Wizard New PC. Eerst wordt het geheugen toegekend (4-181 MB). Omdat Virtual PC zelf al 40 MB RAM gebruikt, en het programma ervan uit gaat dat u meerdere besturingssystemen tegelijkertijd gaat draaien, wordt het RAM in eerste instantie wat zuinig toebedeeld. Maar dit kunt u voor iedere boot weer aanpassen (Settings). Ik heb wat werkbare minimum en maximum hoeveelheden geheugen aan Innoteks lijstje toegevoegd. Bedenk dat RAM niet alleen nodig is voor het besturingssysteem en de applicaties, maar ook gebruikt wordt door de cache van het gastsysteem. Sinds versie 4.3.2 wordt de vhd schijfmirror met de optie -usehostdiskcache door OS/2 gecacht. Om dubbele caching te voorkomen was dit eerder uitgezet.

Besturingssysteem

Geheugen

Min

Max

DOS (met DOS extenders)

16 MB

4 MB?

16 MB

Dos/Windows 3.1(1)

32 MB

4 MB?

32 MB

Windows 95

32 MB

16 MB?

128 MB

Windows NT

64 MB



Windows 98

64 MB

32 MB?

181 MB

Windows ME, Windows 2000

96 MB

64 MB?

181 MB

Windows XP

128 MB

128 MB?

181 MB

Linux, OS/2

64 MB

16 MB?

181 MB

Netware

200 MB



Tijdens installaties, met altijd veel lees- en schrijfactiviteiten, is het verstandig het besturingssysteem tijdelijk extra RAM te geven.

Daarna kunt u een virtuele harddisk (vhd-bestand) voor de virtuele vaste schijf instellen. Ook hierin is Virtual PC zeer flexibel. Hierbij kan gekozen worden voor de aanmaak van een nieuwe partitie op een image bestand of installatie in een al bestaand vhd bestand (Dual Boot of update).

Voor Microsofts besturingssysteem verzorgt de New PC Wizard meteen ook de partitionering en formattering van de virtuele vaste schijf. Zo zal de Wizard voor DOS, Windows 95 en NT een virtuele 2 GB partitie met FAT16 aanmaken. Windows 9x en XP komen op 2 GB vFAT of 16 GB FAT32 schijven terecht. Omdat vFAT en FAT32 onder VPC sneller zijn, zal de Wizard geen NTFS voor NT en XP voorstellen.

In een later stadium kunnen andere vhd-bestanden als tweede of derde schijf worden toegevoegd. In de afbeelding hieronder gebruikt Windows 2000 de C van Windows 95 ("Winkukel") als tweede vaste schijf. Op die manier kunnen ze net als op de echte PC bestanden en programma's delen. Voor meer info zie: Over partities en partitioneren.




Het gaat steeds om partities op een virtuele vaste schijf. Het image bestand is meestal iets van 2 GB. Maar omdat die virtualisatie zo levensecht is zien de partitioneringsprogramma's een vaste schijf van 16 GB voor zich. Linux kan er moeiteloos Ext2, Ext3 of een Reiser op aanmaken. Ook de voor het bestandssysteem ontworpen undelete en defragmentatietools zullen het doen.

Disk /dev/hda: 255 heads, 63 sectors, 2088 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 3 24066 83 Linux
/dev/hda2 4 20 136552+ 82 Linux swap
/dev/hda3 21 2088 16611210 83 Linux

De ruimte die zo'n vhd-bestand op uw schijf inneemt, wordt bepaald door de vullingsgraad van de virtuele schijf. Denk hierbij niet alleen aan de zichtbare bestanden, maar ook aan recent gewiste bestanden en de overhead van het bestandssysteem. En als de hiervoor benodigde schijfruimte groter wordt dan de maximale bestandsgrootte van HPFS (2 GB), zal Virtual PC extra imagebestanden aanmaken.

De VPC Wizard maakt voor MS systemen standaard primaire FAT en FAT32 partities aan. FAT partities zijn maximaal 2 GB, maar FAT32 partities zullen op papier (virtueel) de hele schijf in beslag nemen (16 GB). FAT en FAT32 partities worden echter vooral aan het het begin van de partitie beschreven. De ruimte achterin wordt pas gebruikt als het eerste deel gevuld is. Hierdoor hoeft Virtual PC niet meteen de volle 16 GB voor met FAT32 geformatteerde virtuele schijf te reserveren. De door de VPC Wizard aangemaakte 16378.7 MB FAT32 partitie van Windows 2000 (Win2000.vhd) was 2 GB groot. Dat is de maximale bestandsgrootte van HPFS. Is er meer ruimte nodig, dan worden extra virtuele harddisk (Win2000.v01, Win2000.v02) aangemaakt.

Maar iemand die Windows 2000 Server met zijn eigen bestandssysteem installeerde kwam er achter dat NTFS 5.0 bij voorkeur ongebruikte blokken toewees. De ruimte die vrijkwam door het wissen van bestanden werd niet onmiddellijk hergebruikt. Vanuit het bestandssysteem gezien is dat een goede strategie, maar hierdoor gaat de virtuele schijf veel sterker groeien dan u op grond van de aanwezige bestanden mag verwachten. Iets soortgelijks zal zich met HPFS voordoen. HPFS zal een 16 GB schijf immers vanaf het midden beschrijven. Een 16 GB HPFS schijf neemt dan al meteen al 8 GB in beslag. In dergelijke gevallen kunt u de schijf maar het best zelf partitioneren of het onder VPC snellere FAT16 (met een grote FAT cache) gebruiken.

Addities

> Top <

Voor DOS en Windows gasten levert Innotek VPC addities. Het gaat om stuurbestanden die in het gast OS geïnstalleerd moeten worden en bepaalde diensten leveren. Ze zijn als floppydrive image (DOS addities) of als CDRom images (Windows addities) te installeren. Dat kan vrij simpel door in het al geïnstalleerde OS op te starten en door Floppy of CD / Capture Image en DosAdditions.vfd of onder CD Additons/*.iso te openen. Onder DOS start de virtuele A: schijf DOSADD op en onder de virtuele Windows D:/setup.exe.

De belangrijkste addities zijn gedeelde mappen (Shared Folders). Daarnaast wordt het klembord ondersteund (Copy and Paste). Slepen en neerzetten (Drag and Drop) wordt onder VPC voor OS/2 niet ondersteund.

Gedeelde mappen zijn te vergelijken met netwerkdrives. Met dat verschil dat u er geen serversoftware voor hoeft te draaien. Een groot nadeel is dat ze traag zijn. In de praktijk zijn ze alleen voor te gebruiken voor het delen en uitwisselen van data. Maar het draaien van schijf-intensieve applicaties vanaf een gedeelde map gaat erg traag. Voor mij was het sneller om een grote applicaties vanuit een virtuele PC van en naar een OS/2 netwerkschijf te installeren, dan van en naar een gedeelde map.

Virtuele schijven delen

> Top <

Mits u over voldoende geheugen (256-512 MB) beschikt kunnen meerdere besturingssystemen naast elkaar op de Desktop draaien. Via met OS/2 gedeelde schijven (Shared Folders) en netwerkverbindingen kunnen ze met elkaar communiceren.

Daarnaast kunnen besturingssystemen elkaars de partities van hun virtuele schijven delen. Hierbij gelden dezelfde regels als in "Over partities en partitioneren". In feite is een Virtuele PC een ideale omgeving om het partitioneren te oefenen. Fdisks en Tools als PartitionMagic en DFSee zullen het gewoon doen.

Een prettig verschil met de echte PC is dat u uw vaste schijven kunt verwisselen zonder de systeemkast open te maken! Als u drie virtuele vaste schijven, bijv. een Windows NT, DOS en Windows 95 bootpartitie aan één virtuele PC koppelt kunnen ze elkaars primaire partities zien. Hieronder een schema met Windows 2000 als primaire (boot)partitie. Deze kan de primaire partities van de Dos en Windows 95 virtuele schijven als E en F gebruiken.

C

Windows NT

winnt.vhd

IDE 1

D

CD-ROM



E

Dos

dos.vhd

IDE 2

F

Windows 95

w95.vhd

IDE 3

Natuurlijk moeten de besturingssystemen elkaars bestandssystemen kunnen lezen. Windows 95, NT4 en DOS kunnen geen FAT32 lezen, maar Windows 95 OSR en opvolgers (incl. W2K en XP) wel. Als u met 2 GB uitkomt, installeert u de gedeelde Windows programma's op een vFAT schijf. Overigens mogen besturingssystemen die een virtuele schijf delen niet tegelijkertijd actief zijn. Probeert u het toch, dan geeft VPC een foutmelding. De reden is simpel: voor een snelle virtuele vaste schijf toegang moet het besturingssysteem exclusieve toegang hebben tot het gehele image bestand op de vaste schijf.

Voor de als addities geinstalleerde shared folders geldt dit niet. Hier beheert de OS/2 kernel in samenspraak met het gast OS de file locking van ieder bestand. Misschien verklaart dat hun traagheid.

Netwerkschijven zijn aanzienlijk sneller. Ze zijn voor bestandsdeling ontworpen. Hier handelt de server de file locking af. Bestanden die OS/2 via NetBIOS, NetBios via TCP/IP of NFS (eComStation) beschikbaar stelt, zijn met een flinke cache door vrijwel alle besturingssystemen snel te benaderen.



Netwerken met Virtual PC

> Top <

Er zijn verschillende mogelijkheden om Virtuele PC's met elkaar te laten samenwerken. U kunt dit voor ieder gastbesturingssysteem afzonderlijk instellen. De meeste mogelijkheden hebt u met Innoteks Virtual Switch onder de 32 bits TCP/IP stack van eComStation. Hiermee worden alle mogelijkheden van een ethernetwerk ondersteund.

Shared networking

Standaard biedt Virtual PC voor OS/2 haar gastbesturingssystemen Shared Networking aan. Hierbij treedt Virtual PC als een softwarerouter met netwerkadresvertaling (NAT) voor het gastbesturingssysteem op.

VPC biedt de virtuele netwerkkaart van het gastbesturingssysteem een virtuele DHCP server die hem met de gastheer verbindt. Door de netwerkvertaling ziet de buitenwereld het door de DHCP server verstrekte lokale IP adres van het gastbesturingssysteem niet en wordt u via het publieke IP adres van de gastheer op het internet verbonden. De servers van het gastbesturingssysteem zijn niet te zien: noch op het LAN, noch op het internet (firewall functie), maar het gastbesturingssysteem kan wel van de TCP/IP servers (proxy) op het LAN en van een dial-up verbinding van de gastheer met het internet profiteren.

Internet

OS/2


Router van de provider

IP adres van de provider (vast, DHCP)


IP adres op het LAN (vast, DHCP)

LAN clients met elk hun eigen IP adres


=====Netwerkadresvertaling======

DHCP server van VPC

Het gastbesturingssysteem (DHCP client) kan via de default route van zijn gastheer het internet op.

=====NETBIOS vertaling======

Het gastbesturingssysteem kan op het ethernet LAN zijn bestanden aanbieden via het NetBIOS.

De netwerkadresvertaling beschermt de met het internet verbonden gastheer natuurlijk niet. Zet hier niet het onder VPC's shared networking toch niet werkende NetBIOS via TCP/IP in, maar het niet vanaf het internet te benaderen NetBIOS (NetBEUI). Dit protocol voor direct met elkaar verbonden ethernetkaarten wordt via een aparte NetBIOS vertaling ondersteund. Het stelt u in staat bestanden met andere OS/2 en Windows computers op uw LAN via hun NETBIOS namen te delen (bijv. \\ecs\data). De Window netwerkomgeving wordt onder Shared Networking niet ondersteund ("Unable to browse the network"). Deze werkt alleen met TCPBEUI.

Virtual switch

Omdat ik op het netwerk vaste IP adressen gebruik koos ik voor de Virtual Switch optie. Hierbij kan iedere Virtuele PC onder zijn eigen IP adres functioneren. Dat kan een vast IP adres zijn of een door een DHCP server toegewezen adres. Ik koos voor vaste IP adressen. De virtuele switch kent aan iedere netwerkkaart van het gastbesturingssysteem een uniek, niet met ARP te achterhalen, MAC adres toe.

Internet

OS/2


Router van de provider

IP adres van de provider


Een vast of door DHCP toegewezen IP adres op het LAN

LAN clients met elk hun eigen IP adres


Virtual switch treedt op als een software switch.

VPC clients met elk hun eigen IP adres

Hiervoor moet u het stuurbestand SWITCH.OS2 installeren. Tijdens de installatie van VPC wordt dat voor u gedaan. U hoeft slechts de betreffende optie aan te vinken. Mocht er iets misgaan, dan kunt u het stuurbestand ook handmatig installeren. Het stuurbestand laadt een netwerkprotocol waarmee de virtuele netwerkaarten via een virtuele switch aan de interface van de OS/2 ethernetkaart worden gebonden. Hieronder ziet u een MPTS configuratie voor TCP/IP en NetBEUI op adapter 0 en TCPBEUI op logische adapter 1 . Let op de interface nummers (instellen met change numbers).

Bezit uw PC geen geconfigureerde netwerkaart dan kunt u gebruik maken van de loopbackinterface 127.0.0.1. Op dit adres kunt u vanaf een andere besturingssysteem de OS/2 PC weliswaar niet bereiken, maar met virtual switch optie "Local only" kunnen de gastbesturingssystemen elkaar toch zien. Ze beschikken immers over een gevirtualiseerde netwerkkaart.

Daarnaast bestaat de optie "Local and host" waarmee de gastbesturingssystemen elkaar en de gastheer kunnen benaderen. Voor de communicatie met de gastheer is een ethernetkaart vereist. Een voordeel van deze en de voorgaande instelling is dat de gastbesturingssystemen niet vanaf het internet zijn te zien.

De meest gebruikte instelling is "Local, host and external". Hierbij kunnen de virtuele PC's gebruik maken van de fysieke netwerkaart om andere PC's op het LAN te bereiken.

Bedenk op een met het internet verbonden PC steeds dat het delen van schijven risico's behelst. NetBios via TCP/IP en NFS shares zijn op het internet te zien. Maar via een Trojaans paard op een met het internet verbonden Windows PC staan ook de door Windows benaderde OS/2 NetBIOS shares te kijk.

Een duidelijk minpunt is dat de virtual switch soms de netwerktoegang tot externe shares enorm kan vertragen. Mijn Linux samba server werd eens een factor 30 trager. Later kwam dat niet terug. Bij slechte prestaties kan het zin hebben de bij uw versie geleverde switch.os2 door een oudere versie te vervangen. Zo levert het vervangen van switch.os2 uit versie 5.1 door die van 5.0 betere NetBIOs prestaties op (switch.os2).

Stuurbestanden voor de Intel netwerkkaart voor allerlei besturingssystemen: NCBB - Driver and Utilities

Afsluiten van een gast besturingssysteem

> Top <

Als CAD onder Windows een reflex geworden is (bij mij op het werk), dan hebt u met VPC een probleem, want met Control-Alt-Del sluit u OS/2 af. OS/2 houdt het terecht het beheer over systeemtoetsen als Ctrl-Esc (Taakoverzicht) en Ctrl-Alt-Del. U kunt deze tijdelijk uitzetten het nocad.zip utility.

Hoe sluit u dan een virtuele PC af? Hiervoor gebruikt u de afsluitfuncties van het gastbesturingssysteem (Windows /Start...). Daarnaast kunt u net als met VNC het in het venster aanwezige gastbesturingsyteem met PC / Type Ctrl+Alt+Del een gericht afsluitsignaal sturen. Dit heeft de voorkeur boven PC / Shutdown / Turn off PC.

Een bijzonder prettige mogelijkheid is om de status van een actieve virtuele PC sessie op de vaste schijf op te slaan (PC / Shutdown / Save State PC). De functie is te vergelijken de Standbyknop en winterslaapfunctie van een laptop. Hiermee bespaart u zich trage opstart- en aanmeldingsprocedures. U gaat door met waar u gebleven was. Door de Virtuele PC met Shutdown / Save PC state af te sluiten, kon ik zelfs de installatie van OpenOffice onder Windows onderbreken (afbeelding). Maar net als bij de Power Off optie van een laptop raakt u wel actieve netwerksessies kwijt.

Welke Windows versie?

> Top <

Innotek adviseert het 32 bits Windows NT 4 als Windows gastbesturingssysteem. Windows NT (64 MB aanbevolen) gebruikt veel minder overhead dan Windows XP (128 MB nodig), maar heeft wel de eigenschappen van een pre-emptive multitaskend 32 bits besturingssysteem. De Nieuwe Windows Technologie was niet voor niets op OS/2 gebaseerd.

Windows 95, 98 en ME zijn daarentegen hybride 16/32 bits besturingssystemen met een gebrekkige multitasking en onvoldoende geheugenprotectie om een stabiel werken te garanderen. De laatsten leiden tot blauwe schermen en andere vastlopers. Onder VPC valt hier beter mee te leven dan met een en echte PC: U reboot de gast en gaat gewoon met het gastheerbesturingssyteem door, maar prettig werken is het niet.

Het veelvuldig gebruik van 16 bits systeemaanroepen door Windows 9x vertraagt Virtual PC. Het in 32 bits protected mode draaiende Virtual PC kan de meeste 32 bits taken meteen naar de hardware processor delegeren, maar voor 8 en 16 bits applicaties gebruikt het 32 bits met de processor pratende VPC noodgedwongen de trukendoos. Maar de softwarematige aanpassingen van een in het dynamisch RAM geëmuleerde virtuele PC verlopen natuurlijk vele malen trager dan de hardware routines van een met statisch RAM uitgeruste hybride 16 en 32 bits Intel processor.

OS/2 en Windows NT kennen ook 16 bits onderdelen. Zo zijn veel OS/2 stuurbestanden 16 bits. Maar ze communiceren als het even kan 32 bits met de processor. En ze doen dit voor gewone programma's nooit coöperatief (Zie: Multitasking onder OS/2).

De gebrekkige multitasking en onvoldoende geheugenprotectie vormen het grootse probleem van de 16 en 32 bits Windows 9x/ME systemen. CPU intensieve applicaties (videoclips op de Windows MediaPlayer) draaien op het voor hen geoptimaliseerde Wintel platform bepaald niet slecht. Het probleem ontstaat echter als een applicatie enige CPU-tijd moet delen met een andere applicatie. Dan zijn Windows 9x/ME varianten niet in staat om de processortijd en het geheugen adequaat te verdelen. Die situatie doet zich al voor als u op een met 32 MB uitgeruste Windows 9x versie een virusscanner en een firewall installeert. De firewall, scanner en de netwerkapplicaties moeten dan samenwerken. Maar het tot dan toe nog werkende systeem wordt dan tergend traag. U moet dan meer (minimaal 64 MB) RAM installeren. Toch zou onder OS/2 of NT de "working set" van het systeem ver onder de 32 MB liggen. Maar omdat de op een veranderde situatie traag of niet reagerende Windows kernel de schaarse bronnen niet op het juiste moment aan de hierom vragende applicaties levert, wordt Windows traag en niet responsief. U ziet dan een zandloper of een blauw scherm.

Kortom: de processortijd die NT en Windows onder OS/2 krijgen (al gauw >95%), wordt door NT efficiënter over de applicaties verdeeld dan onder Windows 9x. Helaas heeft het gebruik van van de op NT gebaseerde Windows XP alleen zin als u over een snelle processor (> 1000 Mhz) en veel RAM (> 384 MB) beschikt. Windows 2000 gebruikt minder bronnen, mar hier kunt u beter van de bij VPC voor OS/2 Windows addities afzien, omdat die bij een update via de W2K service packs tot grote problemen leiden.

Valkuilen onder Windows 2000 en XP

Op XP kan de productactivatie u in theorie in de problemen brengen. Ook al draait u XP slechts op een PC, de door XP bij de activatie onderzochte hardware is wel veranderd. Als u op een OEM uw moederbord en uw processor verwisselt, moet u de situatie uitleggen en het systeem dus telefonisch activeren.

Maar ik kon mijn Windows OEM XP Home Edition zowel onder de real PC als onder VPC voor OS/2 installeren. Het ging om dezelfde PC. Ik kan dus dezelfde OEM maar eenmaal draaien. Ik neem aan dat MS tijdens de internet activatie vooral naar de processor kijkt en in het geval van VPC de andere hardware voor lief neemt. Maar een mirror hiervan op mijn laptop (met een andere processor) deed het niet. Dat lijkt me een fair policy.

Voor Windows 2000 liggen de geheugenvereisten weer wat lager (92 MB). De Windows 2000 bèta liep hiermee bij mij naar tevredenheid (en dat zegt wat). En aanzienlijk beter dan het minder werkgeheugen vereisende 32 bits Windows 95 (16-32 MB, maar kreeg 64 MB). Maar met Windows 2000 ontstonden wel veel VPC problemen onder OS/2 na de updates.

Mijn tip: installeer de bij OS/2 geleverde VPC addities niet op Windows 2000. Het heeft er veel weg van dat die door recente service packs onderuit gehaald worden. Bug or feature?

Onder Windows XP kunt u in de Eigenschappen van Deze computer nog wat optimalisaties doen:

Windows XP is niet veilig zonder Service Pack 2 (SP2) te gebruiken. Maar de installatie van SP2 verloopt niet altijd vlekkeloos. Om die reden raadt Microsoft u aan om eerst een backup van uw systeem te maken. Onder VPC gaat dat gemakkelijkst door een kopie van de vhd bestanden te maken. Doe dat wel nadat u het besturingssysteem netjes hebt afgesloten.

De grootte van de virtuele vaste schijf voor de toepassing van SP2 was 1.014.043 kB. Hierop was alleen Windows XP Home geinstalleerd. Ik heb hier een backup XHomeSP0 van gemaakt. Tijdens de setup van SP2 controleert Windows de vaste schijfruimte. Windows kwam tot de conclusie dat er 1,5 GB gebruikt is (de vhd is dan 1.315.173 kB). Windows bepaalde dat er op de 2 GB partitie nog 453 MB beschikbaar is. Dat zou 17 MB te weinig zijn voor SP2, die bovendien 305 MB extra nodig heeft voor de archivering .

Na de update naar S2 en de verplichte security updates nam Windows XP Home 2,44 GB schijfruimte in. Na de installatie van een virusscanner een personal firewall (die van Windows is matig) kwam ik op 2,54 GB.

Conclusies: met minder dan 2 GB valt met XP weinig te beginnen. En 1,5 GB aan bestanden op NTFS (clustersize 4 KB), kunnen door VPC blijkbaar ook in een 1,3 G vhd bestand gepropt worden. Maar omdat SP3 niet verder kon, zat er niets anders op dan de NTFS partitie te vergroten. Hiervoor gebruikte ik Acronis Partitie Manager vanaf een Linux boot CD. Die vergroot de partitie in een paar seconden.

Daarna lukt de installatie wel. Het vhd bestand was inmiddels 2007567kB geworden. De installatie verloopt traag, maar u moet de verleiding weerstaan om tijdens de update video's e.d. op het gastbesturingsyssteem te draaien.

De verborgen map C:\WINDOWS\$NtServicePackUninstall$ bevatte 274 MB aan bestanden (tot 174 MB gecomprimeerd). U kunt deze map wissen als SP2 goed loopt.

Virtual PC voor OS/2 en Open32

> Top <


Virtual PC voor OS/2 is een Windows applicatie die door Innotek naar OS/2 is geporteerd. Hierbij werd gebruik gemaakt van de Open32 Developer API Extensions for OS/2 Warp. Anders dan Odin is dit geen Win32 subsysteem onder OS/2, maar een OS/2 bibliotheek van honderden onder Windows gebruikte opdrachten die het compileren van code naar zowel Windows als OS/2 mogelijk moest maken. Lotus SmartSuite en Opera voor OS/2 zijn de bekendste voorbeelden, maar ook VirtualPC en Odin maken er gebruik van. Ook de OS/2 Warp registry editor is een voortvloeisel uit dit project.

Innotek adviseert het ODIN subsysteem zelf uit het LIBPATH te houden, omdat de huidige OS/2 VPC port nog pure Windows bibliotheken (DLLs) aanroept die in de ODIN systeemmap kunnen zitten. Bij mij leidde dat ertoe dat VPC na een ODIN update weliswaar opstartte, maar de knoppen niet reageerde op de klikken van de muis. Hiervoor was blijkbaar een Windows functie nodig. Na een reboot zonder ODIN in het LIBPATH werkte alles weer normaal.

In dit geval moet u het Odin subsysteem via een cmd aanroepen:

REM ODIN Subsysteem aanroepen 
SET BEGINLIBPATH=C:\ODIN\SYSTEM32 
C:\ODIN\SYSTEM32\PE.EXE "%1 %2 %3" 

Hiermee kunt u prima werken. Het programma object kunt u koppelen aan uw *.exe bestanden, zodat u met rechtsklikken "Openen als" een executable onder het Win32 subsysteem kunt opstarten. Voor Windows programma's die ik regelmatig onder OS/2 gebruik maak ik een apart CMD bestand aan.

SET BEGINLIBPATH=C:\ODIN\SYSTEM32 
F: 
CD \ 
CD AGENT 
START C:\ODIN\SYSTEM32\PE.EXE "F:\AGENT\AGENT.EXE" 
EXIT 

De nieuwslezer Free Agent behoort tot de programma's die met ODIN even gemakkelijk onder OS/2 als onder Window te installeren zijn. Misschien is het onder Windows zelfs wat lastiger omdat er meerdere Windows versies van bestaan. Maar veel Windows programma's laten zich niet onder OS/2 installeren. Hun 16 bits Windows Setup loopt niet onder het 32 bits Odin. Maar door het programma onder het hybride (16 en 32 bits) Windows zelf onder dezelfde letter in een met OS/2 gedeelde map (shared folder) te installeren krijgt u het vrij simpel op HPFS. Als de informatie in de INI registers beperkt is, kunt u het met regedit naar een reg bestand op de gedeelde map exporteren en zonder te rebooten onder OS/2 met regedit2 weer importeren.

Overigens viel op dat de shared folders wel erg langzaam werken. Het installeren van OpenOffice op HPFS kostte dan ook heel wat tijd (uren!!). Uiteindelijk bleek een netwerkinstallatie (met OS/2 als SMB server) nog het snelst.

Multimedia ondersteuning

> Top <

Om maximaal met veel Windows programma's compatibel te zijn ondersteunt Virtual PC de Direct X API. Maar verwacht geen wonderen van een geëmuleerde S3 videochip. Spelletjes drijven op pure grafische processorkracht. De truc van Direct X is om de de grafische co-processor van de videokaart zoveel mogelijk het rekenwerk te laten doen, maar dit lukt natuurlijk niet op een software PC met een software S3 videokaart. Hier moeten VPC en OS/2 het werk doen. Om die reden heeft het ook geen zin om een snellere grafische kaart te emuleren. Alleen het versnellen van real PC heeft zin. Connectix raadt VPC dan ook nadrukkelijk af als Windows spelletjesplatform.

Overigens wil dat niet zeggen dat u geen multimedia applicaties kunt draaien. Of 2D spelletjes kunt draaien. Ze draaien alleen veel langzamer dan onder een echte PC. Van een direct aanspreken van de hardware is geen sprake. Er moet steeds een vertaalslag plaatsvinden tussen Microsofts Direct X en OS/2's Dive. Anderzijds hebben RealPlayer en Windows Media Player vaak eerder te lijden van de kwaliteit van de internetverbinding dan van de performance van VPC onder OS/2.

Geluid onder Windows

> Top <

Standaard staat de geluidsondersteuning uit. Veel OS/2 drivers van gangbare PCI chipsets hebben buffers die te klein zijn om onder VPC te kunnen gebruiken (Timur Tabi). De van Linux geporteerde SoundBlaster Live! is een gunstige uitzondering.

Wilt u de gok wagen dan kan Virtual PC de geluidskaart als volgt aanspreken.

Open de OS/2 Warp Registry Editor (regedit2.exe). Selecteer de map SYSTEM in:

HKEY_LOCAL_MACHINE / SOFTWARE/ VPCWIN / REGROOT_HKEY_LOCALMACHINE / SYSTEM

Maak hier een sleutel (string value) "CustomBuild" aan (rechtsklikken NEW, KEY).

In de nieuwe map "CustomBuild" plaatst u een nieuw "DWORD" met de naam "DisableAudio" (rechtsklikken NEW, DWORD value) en laat de waarde op 0 staan.

Bij het opnieuw opstarten van de Virtuele PC zou het Soundblaster 16 stuurbestand van het gastbesturingssysteem de SoundBlaster Live! kaart van OS/2 moeten kunnen vinden.

Tip: met VPCSETUP /TWEAKVPC wordt de Virtual PC for OS/2 Tweaker opgestart, die de optie Enable sound in Virtual machines bevat.

Performance overwegingen

> Top <

De -fastbackground optie van VPC 4 zorgde ervoor dat een Virtuele PC die op de achtergrond draait steeds weer processortijd krijgt. Dat is handig als u de Windows MediaPlayer of een online update van een Linux server op de achtergrond draait. De tijdkritische MediaPlayer zal ononderbroken geluid geven en een YaST Online Updat (YOU) gaat vele malen sneller. Dit ging bij mij nauwelijks ten koste van een tijd-kritische OS/2 applicatie als Z! die streaming audio vanaf het internet draaide. Wel zag dat de download van een iso bestand door FTPBrowser sessie vertraging opliep.

Bij versie 5 kunt u onder VPC / File / Preferences / Performance de processortijd tussen de virtuele PC's onderling (Share time between multiple PC's) en ten opzichte van het gastbesturingssysteem (Virtual PC background performance) tijdens een VPC sessie regelen. Gedurende een spelletje kunt u een "Run at maximum speed" en bij meerdere VPC sessies "Give front PC more time" inschakelen. Maar de gastbesturingssystemen zullen bij "Run at maximum speed" ook als de actieve applicaties alleen maar op input wachten (W2k Task Manager 2% CPU-use), al aardig wat processortijd gebruiken. Draait zo'n Windows gast "at maximum speed" een online viruscanner en/of firewall dan zult u dat zeker merken.

Volgens top gebruikt Suse 8 met een op input wachtende StarOffice meer processortijd dan een actieve FTPBrowser sessie met prioriteit 3 op de achtergrond. De download liep vertraging op:

Proc:56 Thrd:201 Ready:4 Blocked:196 Frozen:0 Time 20:39:21 Up 4:52:14
Total CPU CPU% Avg% PID 0 20 40 60 80 Name
0:32:52,71 0.0<15.2 71 ...±................. XITAMI.EXE #
0:00:00,12 0.0 0.0 72 ..................... CDWPOPUP.EXE
0:11:24,29 0.0< 5.3 78 ...........±......... MOZILLA.EXE
0:00:00,03 0.0 0.0 82 ..................... MSRV.EXE
0:00:01,61 0.0 0.0 84 ..................... PEER.EXE
0:00:00,62 0.0 0.0 85 ..................... PEER.EXE
1:36:38,02 59.4>44.7 94 ±±±±±±±±±±±±......±.. VPC.EXE
0:00:02,41 0.0 0.0 130 ..................... FTPBADDR.EXE
0:00:10,78 0.0< 0.1 131 ..................... FTPBROWS.EXE
0:25:34,99 15.6>11.8 132 ±±±±...........±..... FTPBTRAN.EXE
0:00:00,27 0.0 0.0 133 ..................... FTPBTRAN.EXE
0:00:19,34 0.0< 0.1 134 ....±................ SSH.EXE
0:00:00,99 0.0 0.0 137 ..................... POSTROAD.EXE
0:01:30,39 0.0< 0.7 139 ......±.............. SOFFICE.EXE
0:00:02,97 0.0 0.0 147 ±.................... E.EXE
0:00:00,09 0.0 0.0 152 ..................... CMD.EXE
0:00:00,55 0.0 0.0 154 ±.................... TOP.EXE
0:00:25,54 4.7> 0.2 157 ±...........±........ Z.EXE
0:00:01,64 0.0 0.0 158 .±................... MPCPUMON.EXE

Met de optie "Give up time to other processes" kwamen de tijdskritische OS/2 achtergrondprocessen FTPBRAN en Z beter aan bod hoewel de CPU use van het systeem slechts daalde van van 30 naar 20% (Athlon 1700). MAXWAIT stond op 2 seconden.

Proc:56 Thrd:201 Ready:7 Blocked:193 Frozen:0 Time 20:38:07 Up 4:51:01
Total CPU CPU% Avg% PID 0 20 40 60 80 Name
0:32:52,12 0.0<15.3 71 ...±................. XITAMI.EXE 
0:00:00,12 0.0 0.0 72 ..................... CDWPOPUP.EXE
0:11:24,29 0.0< 5.3 78 ...........±......... MOZILLA.EXE
0:00:00,03 0.0 0.0 82 ..................... MSRV.EXE
0:00:01,61 0.0 0.0 84 ..................... PEER.EXE
0:00:00,62 0.0 0.0 85 ..................... PEER.EXE
1:36:15,79 5.7<44.7 94 ±±................±.. VPC.EXE
0:00:02,41 0.0 0.0 130 ..................... FTPBADDR.EXE
0:00:10,78 0.0< 0.1 131 ..................... FTPBROWS.EXE
0:25:24,89 41.5>11.8 132 ±±±±±±±±±......±..... FTPBTRAN.EXE
0:00:00,27 0.0 0.0 133 ..................... FTPBTRAN.EXE
0:00:18,97 0.0< 0.1 134 ....±................ SSH.EXE
0:00:00,99 0.0 0.0 137 ..................... POSTROAD.EXE
0:01:27,54 0.0< 0.7 139 ......±.............. SOFFICE.EXE
0:00:02,97 0.0 0.0 147 ±.................... E.EXE
0:00:00,09 0.0 0.0 152 ..................... CMD.EXE
0:00:00,49 0.0 0.0 154 ±.................... TOP.EXE
0:00:18,81 24.5> 0.1 157 ±±±±±.......±........ Z.EXE
0:00:00,86 0.0 0.0 158 .±................... MPCPUMON.EXE

Linux onder Virtual PC

> Top <

Linux is een ideaal besturingssysteem om in een virtuele PC te draaien. Al was het alleen maar omdat er veel gratis ISO bestanden voor te vinden zijn (o.a. op LinuxISO.org). Bovendien stelt Linux weinig eisen aan de hardware. U kunt de Linux kernel en configuratie immers aanpassen. Of meteen voor een mini distributie kiezen. Een Linux server of router kan bijvoorbeeld in tekstmodus draaien. X applicaties kunt u in een Linux venster (> 64 MB RAM) of met minder geheugen onder XFree86/OS2 of Hoblink X server draaien. In het laatste geval dient de Linux Virtual PC een soort applicatieserver voor de X servers van OS/2. Met drie virtuele vaste schijven van zestien GB kunt u een Linux systeem van max. 54 GB booten (mooie taak voor JFS). Bedenk wel dat veel OS/2 programma's niet met de > 2GB (HPFS limiet) bestanden kunnen omgaan.

SuSE linux 7.1 werd met Yast2 van CD geinstalleerd. Op langzame PC's (<400 MHz ) raad ik het niet grafische yast(1) aan. U kunt zowel een echte CD nemen of met VPC Menu/ CD / capture image een iso-bestand aankoppelen. Dat laatste instelleert een stuk sneller.

Als u eerder Linux kernels gecompileerd heeft kunt u de standaardkernel aan de Virtuele PC aanpassen. Vooral het processortype is van belang. De virtuele PC bleek zelfs Ultra DMA te ondersteunen. Dat geeft minder processor overhead.

De bootmeldingen bij het booten van de VPC door Linux kernel vindt u hier: bootmeldingen. Ze zijn van belang voor degenen die een voor VPC geoptimaliseerde Linux kernel willen compileren.

De rechter alt (grabber) toets wordt onder Linux veel gebruikt. Standaard activeert Virtual PC daarmee de PM Interface. Kies dus in Virtual PC \ PC \ Settings \ Keyboard een andere sneltoets voor VPC.

Een ander punt om in de gaten te houden is dat Linux een X server gebruikt. Hierop kunnen vele toetsenborden inloggen. Als u Nederlands als taal opgeeft zullen de meeste linux distributies een NL toetsenbord installeren. Maar Nederlanders gebruiken het us (of beter het uitgebreide usx) toetsenbord. En dan komt u in de problemen. Pas dit dus meteen aan.

De virtuele netwerkaart werd door SuSe 8 als een Tulip 21041 herkend. De generic DEC chip (de4x5) doet het ook en zou wel eens sneller kunnen zijn (ik moet ze nog testen).

NB Tijdens het installeren van Linux ontstaan vaak mount/umount problemen met de CD Rom.

Welke X server?

> Top <

Nieuw in de XFree86 versie 4 X server reeks is de hardwarematige ondersteuning van 3D. Hiervoor zijn speciale stuurstanden voor nodig. Momenteel worden maar een paar videokaarten ondersteund. Stuurbestanden voor de oude S3 chip ontbreken. Deze ondersteunt alleen 2D. Zonder hardwarematige 3D ondersteuning is het soepel draaien van Tuxcart op een snelle real PC al geen doen. Onder VPC kunt u 3D via de Direct Rendering Interface (DRI) dus wel vergeten. Hetzelfde ziet u ook met 3D spelen onder Windows.

Onder SuSe Linux v8 heb ik met xbench enige vergelijkende testen gedaan met XFree86 X Servers. De resultaten zijn prematuur, maar ze geven wel een indruk van de relatieve 2D performance van de "vrije" X servers:

X Server

versie

resolutie,bbp

rate

The XFree86 Project, Inc

11.3360

1024x768x16

93.60 runs/sec

The XFree86 Project, Inc

11.40200000

1024x768x16

89.90 runs/sec

XFree86OS/2 (virtual switch, mga400 kaart)

11.33

1024x768x16

140.60 runs/second

Conclusie: De versie 3 X Server is op een VPC niet langzamer dan de versie 4 server van Sax2. De "oude" met sax in te stellen 11.3360 X server heeft mijn voorkeur aangezien die geen problemen met de beschrijving van het OS/2 beeldscherm geeft.

SuSe 8 maakt standaard gebruik van versie 4:

sjoerd@suse:~> sax
SaX: root Password:
/.../
You are using SaX, the config facility for XFree86 v3.
Your system is set up to run XFree86 v4. To change the
configuration for XFree86 v4 please use
/usr/X11R6/bin/SaX2
instead of SaX. Continuing as you are with this SaX
facility will set up for the use of XFree86 v3 instead
and configure it.
Would you like to continue SaX for
--> XFree86 v3
[ yes | <no> ] yes
SaX: searching card...done
SaX: using XF86_S3 for configuration
SaX: if not correct set server manually using the -s option
SaX: go up again within 8 seconds [ Ctrl-c to abort ]

Verder bleek de van mijn "real" mga4000 chip gebruik makende XFree86OS/2 server niet zoveel sneller dan ik had verwacht.

Geluid onder Linux

> Top <

Onder SuSE Linux kreeg ik het geluid niet zomaar voor elkaar. En het klinkt vooral midi nog nergens naar... Maar op de Loki port van het 2D spelletje Railroad Tycoon hoor ik de schaapjes blaren.

Het eerste probleem dat ik tegenkwam, was dat het niet duidelijk was welke geluidskaart geëmuleerd werd. Voor de drivers gaat het om de chip, maar je kunt niet in een virtuele PC kijken. Windows herkent de virtuele geluidskaart in Apparaatbeheer als Creative Labs Sound Blaster 16 of AWE 32. Dat kunnen volgens de ALSA Soundcard Matrix meerdere chips zijn. Ik neem echter aan dat het om de sb16 driver gaat.

Onder Windows 95 (SB16.VXD) werd de hardware als volgt ingesteld:

IRQ: 5
IO: 0220-022f, DMA 1, 8 bits
IO: 0380-038f, DMA 5, 16 bits

Het handboek geeft de volgende informatie:

Emulates Creative Labs PCI Sound Blaster 16 card 
Supports both DSP (sound effects) and FM synthesis (music) 
Emulation includes two Yamaha OPL2 chips as well as a CT1345 mixer 
Sound card is configured to use a base port of 0x220, IRQ 5, and DMA channel 1 (for 8 bit) or 5 (for 16 bit)
Supports 8-bit and 16-bit sound input and output 

Nu bleek een SB16 met CT1345 mixer niet te bestaan (zie: sb-hardware-prog-guide.pdf). SB16 kaarten gebruiken CT1745 CT1345 mixer is onderdeel van de 8 bits SB Pro. Onder Windows en W2k was dat geen probleem (verbaast me niks), maar onder Linux kwam ik in de problemen (Ctrl-Alt-F10).

Op de Connectix site vond ik nog aanvullende informatie m.b.t. Red Hat Linux:

Sound may need to be configured manually using sndconfig. The sound card is a Sound Blaster 16, the setting are I/O Port: 220, IRQ:5, DMA1: 1, DMA2: 5, MPU: 330.

Daarom kwam ik op de SoundBlaster 16 drivers uit. Hiervoor zijn kernel drivers, Alsa en OSS modules beschikbaar. Mijn Alsa sb16 instellingen zijn:

Geavanceerde geluidskaartoptie
ASP/CSP chip ondersteuning (snd_csp = 1)
16-bit DMA # voor SB16 driver (snd_dma = 5)
8-bit DMA # voor SB16 driver (snd_dma = 1)
FM poort # voor SB16 driver (snd_fm_port = 0x388)
IRQ # poort # voor SB16 driver (snd_irq = 5)
ISA PnP detectie voor SoundBlaster 16 geluidskaart (snd_isapnp = 0)
Mic Auto_gain_Control schakelaar (snd_mic_agc = 1)
MPU-401 poort # voor SB16 driver (snd_mpu_port = 0x330)
Poort # voor SB16 driver (snd_fm_port = 0x220)

ASP/CSP staat voor Creative's Advanced (Digital) Signal Processor (DSP chip) die op de SB16 ASP en AWE 32 (niet VE) zit. De gewone SB16 heeft een socket voor deze chip (zie: MC: AWE tech - a look under the cover.)

Problemen met 64 bits processors

VPC simuleert een 32 bits PC, maar de huidige pC's hebben vaak een 64 bits processor. Of ze gebruiken een 32 bits processor met de Physical Address Extension (PAE) van de Pentium Pro en opvolgers. Hiermee kunnen ze tot 64 GB aan fysiek geheugen benaderen. Als het BIOS dit ondersteunt.

Nu is BIOS van VPC voor Windows niet in staat om dergelijke diensten te leveren. En zeker niet op een 32 bits besturingssysteem als OS/2. Het gevolg is dat de besturingssystemen die de mogelijkheden van de processor (lees moederbord, BIOS en processor) aan het CPU-type aflezen, de mist in kunnen gaan.



Open BSD 4.1 onder Virtual PC

> Top <

De 386 versie van Open BSD is technisch gezien goed onder VPC te installeren. Maar het is geen gemakkelijk besturingssysteem.

U kunt het cd41.iso bestand ophalen van bijv. ftp://ftp.nluug.nl/pub/OpenBSD/. Tijdens het booten worden de DEC 21140 netwerkkaart, de S3 videokaart en zelfs de geluidskaart herkend:

isapnp0 at isa0 port 0x279: read port 0x203                                    
"Sound Blaster 16, PNPB003, PNPB003, " at isapnp0 port 0x220/16,0x380/16 irq 5 drq 1,5 not configured                                                          
"Game Port, PNPB02F, PNPB02F, " at isapnp0 port 0x201/1 not configured    

En dan is het :

(I)nstall, (U)pgrade or (S)hell? i                                             
                                                                               
Welcome to the OpenBSD/i386 4.1 install program.                               
                                                                               
This program will help you install OpenBSD. At any prompt except password      
prompts you can escape to a shell by typing '!'. Default answers are shown     
in []'s and are selected by pressing RETURN.  At any time you can exit this    
program by pressing Control-C, but exiting during an install can leave your    
system in an inconsistent state.                                               
                                                                               
Terminal type? [vt220]
kbd(8) mapping? ('L' for list) [none]
                                                                               
IS YOUR DATA BACKED UP? As with anything that modifies disk contents, this     
program can cause SIGNIFICANT data loss.
                                                                               
It is often helpful to have the installation notes handy. For complex disk     
configurations, relevant disk hardware manuals and a calculator are useful.    
                                                                               
Terminal type? [vt220]                                                         
kbd(8) mapping? ('L' for list) [none]                                          
                                                                               
IS YOUR DATA BACKED UP? As with anything that modifies disk contents, this     
program can cause SIGNIFICANT data loss.                                       
                                                                               
It is often helpful to have the installation notes handy. For complex disk     
configurations, relevant disk hardware manuals and a calculator are useful.    
                                                                               
Proceed with install? [no] y                                                   
Cool! Let's get to it.                                                         
                                                                               
You will now initialize the disk(s) that OpenBSD will use. To enable all       
available security features you should configure the disk(s) to allow the      
creation of separate filesystems for /, /tmp, /var, /usr, and /home.           
                                                                               
Available disks are: wd0.                                                      
Which one is the root disk? (or 'done') [wd0]                                  
Do you want to use *all* of wd0 for OpenBSD? [no] n                            

No, want Yes zou 16 GB innnemen. En alle andere besturingssystemen naar de knoppen helpen. Gelukkig is dit maar VPC.

You will now create a single MBR partition to contain your OpenBSD data. This  
partition must have an id of 'A6'; must *NOT* overlap other partitions; and    
must be marked as the only active partition.                                   
                                                                               
The 'manual' command describes all the fdisk commands in detail.               
                                                                               
Disk: wd0       geometry: 2088/255/63 [33543720 Sectors]                       
Offset: 0       Signature: 0x0                   
         Starting       Ending       LBA Info:                                 
 #: id    C   H  S -    C   H  S [       start:      size   ]                  
------------------------------------------------------------------------       
 0: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
 1: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
 2: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
 3: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
Enter 'help' for information

Wat u ziet zijn 4 mogelijk op IDE schijf wd0 te maken partities, die hier helemaal nog niet ingevuld zijn.

Wat levert help op?

fdisk: 1> help                                                                 
        help            Command help list                                      
        manual          Show entire OpenBSD man page for fdisk                 
        reinit          Re-initialize loaded MBR (to defaults)                 
        setpid          Set the identifier of a given table entry              
        disk            Edit current drive stats                               
        edit            Edit given table entry                                 
        flag            Flag given table entry as bootable                     
        update          Update machine code in loaded MBR                      
        select          Select extended partition table entry MBR              
        swap            Swap two partition entries                             
        print           Print loaded MBR partition table                       
        write           Write loaded MBR to disk                               
        exit            Exit edit of current MBR, without saving changes       
        quit            Quit edit of current MBR, saving current changes       
        abort           Abort program without saving current changes           

Hier wordt je niet veel wijzer van. Het is nu echt tijd om naar de OpenBSD 4.1 Installation Guide te gaan... En dat moet u zeker doen op een PC systeem waarop ook andere besturingssystemen staan. Maar hier is alles nog onbezet (unused). We beginnen dus ingang 0 te editen.

fdisk: 1> e 0                                                                  
         Starting       Ending       LBA Info:                                 
 #: id    C   H  S -    C   H  S [       start:      size   ]                  
------------------------------------------------------------------------       
 0: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
Partition id ('0' to disable)  [0 - FF]: [0] (? for help)         

Het BSD fdisk programma vraagt om een partitienummer voor eenheid 0. We roepen hierbij hulp aan met '?'. .

Choose from the following Partition id values:                                 
00 unused         1C Thinkpad Rec   65 NetWare 3.xx   A8 MacOS X               
01 DOS FAT-12     20 Willowsoft     66 NetWare 386    A9 NetBSD                
02 XENIX /        24 NEC DOS        67 Novell         AB MacOS X boot          
03 XENIX /usr     38 Theos          68 Novell         B7 BSDI filesy*          
04 DOS FAT-16     39 Plan 9         69 Novell         B8 BSDI swap             
05 Extended DOS   40 VENIX 286      70 DiskSecure     BF Solaris               
06 DOS > 32MB     41 Lin/Minux DR   75 PCIX           C0 CTOS                  
07 HPFS/QNX/AUX   42 LinuxSwap DR   80 Minix (old)    C1 DRDOSs FAT12          
08 AIX fs         43 Linux DR       81 Minix (new)    C4 DRDOSs < 32M          
09 AIX/Coherent   4D QNX 4.2 Pri    82 Linux swap     C6 DRDOSs >=32M          
0A OS/2 Bootmgr   4E QNX 4.2 Sec    83 Linux files*   C7 HPFS Disbled          
0B Win95 FAT-32   4F QNX 4.2 Ter    84 OS/2 hidden    DB CPM/C.DOS/C*          
0C Win95 FAT32L   50 DM             85 Linux ext.     DE Dell Maint            
0E DOS FAT-16     51 DM             86 NT FAT VS      E1 SpeedStor             
0F Extended LBA   52 CP/M or SysV   87 NTFS VS        E3 SpeedStor             
10 OPUS           53 DM             93 Amoeba FS      E4 SpeedStor             
11 OS/2 hidden    54 Ontrack        94 Amoeba BBT     EB BeOS/i386             
12 Compaq Diag.   55 EZ-Drive       99 Mylex          EE EFI GPT               
14 OS/2 hidden    56 Golden Bow     9F BSDI           EF EFI Sys               
16 OS/2 hidden    5C Priam          A0 NotebookSave   F1 SpeedStor             
17 OS/2 hidden    61 SpeedStor      A5 FreeBSD        F2 DOS 3.3+ Sec          
18 AST swap       63 ISC, HURD, *   A6 OpenBSD        F4 SpeedStor             
19 Willowtech     64 NetWare 2.xx   A7 NEXTSTEP       FF Xenix BBT             
Partition id ('0' to disable)  [0 - FF]: [0] (? for help)         

Het gewenste partitietypenummer is A6 van OpenBSD.

Partition id ('0' to disable)  [0 - FF]: [A6] (? for help) A6                  
Do you wish to edit in CHS mode? [n] Y
BIOS Starting cylinder [0 - 2087]: [0]
BIOS Starting head [0 - 254]: [0]
BIOS Starting sector [1 - 63]: [1]                                                                                                             
BIOS Ending cylinder [0 - 2087]: [0]

Ik kies voor 2087/8 = 260 cylinders (16/8 = 2 GB) en laat BSD het hierop gebaseerde rekenwerk doen (Enter).

BIOS Ending cylinder [0 - 2087]: [0] 260
BIOS Ending head [0 - 254]: [31]                                               
BIOS Ending sector [1 - 63]: [47]        
fdisk:*1>

FDISK suggereert ons om eenheid 1 verder te gaan, maar we kunnen de huidige layout ook op het scherm afdrukken (p = print).

Disk: wd0       geometry: 2088/255/63 [33543720 Sectors]                       
Offset: 0       Signature: 0x0                                                 
         Starting       Ending       LBA Info:                                 
 #: id    C   H  S -    C   H  S [       start:      size   ]                  
------------------------------------------------------------------------       
 0: A6    0   0  1 -  260  31 47 [           0:     4178900 ] OpenBSD          
 1: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
 2: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
 3: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           

Een partitietabel weergave in megabytes gaat met 'p m'.

fdisk:*1> p m                                                                  
Disk: wd0       geometry: 2088/255/63 [16379 Megabytes]                        
Offset: 0       Signature: 0x0                                                 
         Starting       Ending       LBA Info:                                 
 #: id    C   H  S -    C   H  S [       start:      size   ]                  
------------------------------------------------------------------------       
 0: A6    0   0  1 -  260  31 47 [           0:        2040M] OpenBSD          
 1: 00    0   0  0 -    0   0  0 [           0:           0M] unused           
 2: 00    0   0  0 -    0   0  0 [           0:           0M] unused           
 3: 00    0   0  0 -    0   0  0 [           0:           0M] unused                                                

De 2040 MB partitie kan via het OS/2 netwerk verzonden worden.

fdisk:*1>

Het sterretje op de prompt geeft aan dat fdisk de veranderingen nog niet naar de MBR heeft geschreven. Met w(rite) en q(uit) zullen we dat doen.

fdisk:*1> w 
Writing MBR at offset 0. 
fdisk:*1> q
                                                                               
Disk: wd0       geometry: 2088/255/63 [33543720 Sectors]                       
Offset: 0       Signature: 0x0                                                 
         Starting       Ending       LBA Info:                                 
 #: id    C   H  S -    C   H  S [       start:      size   ]                  
------------------------------------------------------------------------       
 0: A6    0   0  1 -  260  89  4 [           0:     4182511 ] OpenBSD          
 1: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
 2: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
 3: 00    0   0  0 -    0   0  0 [           0:           0 ] unused           
                                                                               
You will now create an OpenBSD disklabel inside the OpenBSD MBR                
partition. The disklabel defines how OpenBSD splits up the MBR partition       
into OpenBSD partitions in which filesystems and swap space are created.       
                                                                               
The offsets used in the disklabel are ABSOLUTE, i.e. relative to the           
start of the disk, NOT the start of the OpenBSD MBR partition.                 
                                                                               
# Inside MBR partition 0: type A6 start 0 size 4182511                         
                                                                               
Treating sectors 0-4182511 as the OpenBSD portion of the disk.                 
You can use the 'b' command to change this.                                    
                                                                               
Initial label editor (enter '?' for help at any prompt)                        





OS/2 Warp 4 onder Virtual PC

> Top <

Ik ga hier uit van de CD installatie. Die kan helemaal van CD plaatsvinden met disk0.dsk, disk1_cd.dsk en disk2.dsk uit \DISKIMGS\OS2\35. Ik kopieerde ze naar de VPC map en kon daarna met Floppy / Capture image bestanden van de diskettes verwisselen. Aangezien Warp zowel de diskettes als de CD rom gebruikt is het niet slim om een diskimage op de echte CD aan te wijzen.

Er was geen voor > 4 GB schijven met idedasd.exe aangepaste Diskette 1 nodig: De VPC Wizard maakt voor OS/2 een 2 GB schijf aan. Daarom kon de disk1_cd.dsk zonder problemen worden gebruikt. Zowel de S3 videokaart als de DEC netwerkkaart werden herkend. De geëmuleerde Soundblaster 16 PnP geluidskaart kreeg meteen de goede instellingen (zie hieronder). Overigens kunt u onder Warp 4 ook voor de Soundblaster 16 PnP kiezen. Het was de snelste OS/2 installatie ooit door mij gedaan.

Tip: als het beeld stilstaat en OS/2 u om het verwisselen van diskettes vraagt:

  1. Zorg ervoor dat u OS/2 de juiste installatiediskette voorschotelt: De installatiediskette heeft het nummer 0. Diskette 1 is dus de tweede diskette. Diskette 2 is de derde en laatste installetiediskette.

  2. Als de juiste diskette na een uw Enter toch niet herkend word, kies dan voor Floppy / Release "A": en daarna voor Floppy / Capture Host drive "A". Doe daarna weer de Enter.

De tweede truc werkt natuurlijk ook met een niet (meer) herkende CD.




Sound Blaster 16 Device Driver. Version 3.20.7                                 
Copyright (c) Creative Technology Ltd., 1995. All rights reserved.             
Card...........: 8                                                             
DMA 8-bit......: 1                                                             
DMA 16-bit.....: 5                                                             
IRQ............: 5                                                             
Base Address...: 220                                                           
MPU Port.......: 330                                                           
Buffer size....: 8KB      

Ook de netwerkaart werd herkend en geladen, maar die bleek niet bijster snel.

Het stuurprogramma voor vergrendelde bestanden is geladen. 
 
  Vergrendelde bestanden worden verwerkt...  
 
  Verwerking voltooid. 
 
IBM OS/2 TCPBEUI 5.05.0  
TCPBEUI: Gebruikt een 32-bit gegevenssegment.  
 
Digital DC21x4 NDIS 2 MAC Driver Version 2.21  
(C) Copyright 1996 Digital Equipment Corporation.  All rights reserved.  
 
DC21140 adapter  
PCI SLOT: 10 IRQ: 0B 
Operation Mode: AUTOSENSE  

Achteraf bleek dit aan de trage NetBIOS emulatie van de Virtual Switch te liggen. Recentere stuurbestanden voor de DEC chip zijn te vinden op de Nic Pak Site van Chuck McKinnis: http://pws.prserv.net/mckinnis/nicpak/dec.zip.

Ik koos voor de Intel 2104x/2114x 10/100 mbps Ethernet Controller.

IBM OS/2 TCPBEUI 5.05.0                                                        
TCPBEUI: Gebruikt een 32-bit gegevenssegment.                                  
                                                                               
Intel 2104x/2114x 10/100 mbps Ethernet Controller  v3.00                       
Copyright (c) 1998 Intel Corporation. All rights reserved.                     
Working with Intel 21140 based 10/100 mpbs Ethernet Controller                 
PCI SLOT: 01     IRQ: 0B                                                       
Selected media: Autosense   

Maar ook daarmee viel de lokale netwerkperformance van het NetBIOS bitter tegen (een paar k/s). Alleen met xcopy viel nog wat gereedschap te verplaatsen. Met Linux (NetBIOS via TCP/IP) en TCP/IP ging het goed, maar voor de Warp 4 eCS verbinding gebruikten beide OS/2-en het onder VPC trage NetBEUI protocol.

Een simpele truc zorgde ervoor dat ze via NetBIOS via TCP/IP gingen communiceren: het verwisselen van net 1 en net 2 in IBMLAM\IBMLAN.INI. Ik had in MPTS NetBIOS op logische adapter 0 gezet en NetBIOS via TCP/IP adapternummer 1 gegeven. Maar door dat om te draaien (TCP/IP mag op 0 of 1 blijven zitten) wordt standaard TCPBEUI gebruikt. En dat ging met 800k/s veel beter.



; OS/2 Peer initialization file

[networks]

  net1 = TCPBEUI$,0,LM10,34,100,14
  net2 = NETBEUI$,1,LM10,34,100,14
; This information is read by the redirector at device initialization time.

NB Pas dit ook IBMCOM\PROTOCOL.INI aan:

[NETBIOS]

   DriverName = netbios$
   ADAPTER0 = tcpbeui$,0
   ADAPTER1 = netbeui$,1

Mocht dit niet werken, en ziet u nog steeds geen poort 139 verbinding met netstat -s, dan is mijn advies het NetBIOS (hier net 2) te deïnstalleren.

net1  =  TCPBEUI$,0,LM10,34,100,14

en verder op:

SRVSERVICES = messenger,peer
srvnets = net1

In protocol.ini:

[NETBIOS]
   DriverName = netbios$
   ADAPTER0 = tcpbeui$,0

Voor de video in OS/2 Warp 4 en Connect (met recent fixpack) installeerde ik de IBM GRAD Driver. Let erop dat u dat het zelfuitpakkende zipbestand met de -d optie uitpakt (met subdirectories). Als de readme Spaans aandoet zit u verkeerd. Pas verder de taalinstelling in de CONFIG.SYS aan. Een goede Hollandse (Dutch) SET LANG=nl_NL (was NL_NL) of en_US. U kunt het ook in een venster doen. Daarna draait u "setup S3 [gradpad] [os2bootdrv]".

Hoe komt u hieraan? Als u beroerde videoinstellingen hebt, kunt u het beste maar weer teruggaan naar VGA.

Dit doet u door tijdens het opstarten van OS/2 onder de tekstmodus verschijnende OS/2 bootblob Alt-F1 te toetsen: Als het grafische OS/2 logo verschijnt bent u al te laat.

OS/2 's Alt-F1 doet hetzelfde als de Alt-F8 van Windows.

U ziet dan het volgende scherm en kiest voor VGA (F3).

Daarna worden de VGA drivers weer geladen.

Let er op dat u eerst Fixpack 5 moet installeren!

[I:\os2bin\drv\grad]setup S3 i:\os2bin\drv\grad c:
s3grdbb  wordt geïnstalleerd

Het proces kan niet worden voltooid. U gebruikt een onjuiste versie van Operating System/2.

Ik gebruik de S3 GRAD driver met een verversingsfrequentie van 43 Hz (zonder flikker) en 16 bits kleuren. De WPS bitmap heb ik uitgezet.







OS/2 Warp 3 onder Virtual PC

> Top <

Ook OS/2 Warp 3 is vrij gemakkelijk onder Virtual PC te installeren. Tenminste als u over een CD versie beschikt. Dan kunt u de diskimages disk0.dsk en disk1_cd.dsk uit \DISKIMGS\OS2\35\ gebruiken om de rest van de CD te installeren. Disk0.dsk en disk1_cd.dsk kopieert u naar de vaste schijf om lockup problemen te voorkomen.

Hiernaast ziet u de belangrijkste instellingen van de systeemconfiguratie:

Let op het juiste toetsenbord (bijna altijd Amerikaans in Nederland).

De PS/2 muis wordt standaard herkend.

De S3 videodrivers vielen me tegen. De veilige weg is om in eerste instantie voor SVGA te kiezen. Dat is de gewone Super VGA en dus niet de SVGA van Chips & Tech. Alternatieve drivers zijn de laatste S3 stuurbestanden uit het DD pack (geaccelereerde GRADD stuurbestanden) en mogelijk SciTech. Maar de SciTech Display Doctor vereist fixpacks en viel me onder VPC bij eCS 1.1 al tegen. SciTech op de real PC is natuurlijk een ander verhaal (snel en stabiel).

APM wordt geinstalleerd, maar ik het wijs deze later uit te zetten door de APM.SYS drivers in de CONFIG.SYS te remmen.

Voor de CD-ROM kiest u andere (IDE CD-ROm).

Onder Warp 3 mag u met de SBLive kaart een goede geluidsemulatie verwachten (Soundblaster 16). De standaard instellingen zullen voldoen.

Printerstuurbestanden kunt u beter later installeren. Tenzij uw printer in dit rijtje uit 1994 voorkomt.

U doet er wel wijs aan de Warp 3 partitie met een ander besturingssysteem te delen, zodat u niet van een modem afhankelijk bent om bestanden op te halen. U kunt hem bijv. als tweede vaste schijf aan een ander besturingssysteem hangen.

Voor het in real-time delen van schijven met de OS/2 PC is MS LAN Manager client zeer geschikt. Voorbeelden van de MPTS configuratie en en drivers vindt u in extra. De installatie van MS LAN manager staat in de OS/2 netwerksectie beschreven.

Voor het updaten van het systeem (noodzakelijk!) raadt ik Simply Fix aan (OS/2 Fixpacks).





OS/2 Warp Connect onder Virtual PC

> Top <

De installatie van OS/2 Warp Connect lijkt op die van Warp 3. Als u geluk hebt kunt u tijdens de installatie het netwerk al configureren. Maar het stuurbestand van de Intel 2104x/2114x 10/100 mbps Ethernet Controller zit niet op de warp Connect CD. Houdt dus een diskette met stuurbestanden paraat.

Minimaal: De stuurbestanden voor de DEC chip: http://pws.prserv.net/mckinnis/nicpak/dec.zip en daniatapi0314.zip en een unzipper. U moet de bestanden uit daniatapi0314.zip in het DOS 8.3 formaat zetten. Anders gaat het lastig op FAT diskette. Nog beter is een diskette met File Commander/2 met unzip.exe in het pad.

De Daniella driver had ik nodig omdat tijdens de netwerkinstallatie ineens de CD niet meer werd herkent. Het invoeren van "basedev=ibm1s506.add /A:0 /U:1 /ATAPI" voor een CD als master (A:0) op 2e controller (U:1) hielp niet. Ook het van diskette installeren van de laatste IDE drivers van IBM hielp niet. Hierdoor liep de installatie vast. OS/2 deed het wel, maar het netwerk werd niet geïnstalleerd.

De startup.cmd met de volgende inhoud liep vast.

@C:\os2\install\LANCLTST.EXE C:\GRPWARE\CLIENTS\SHOWCID TUTOR
D:\CID\LCU\CASAGENT.EXE /REQ:LADCLT /CMD:C:\GRPWARE\CLIENTS\LADCLT /D /L1:C:\GRPWARE\CLIENTS\LOGS\LCU\SRVIFS_REQ.L2
CMD
EXIT

Als de installatie vastloopt kunt u via de Alt-F1 methode naar de OS/2 prompt booten.

                                RECOVERY CHOICES                               
                                                                               
   Select the system configuration file to be used, or enter the option        
   corresponding to the archive desired.                                       
                                                                               
   ESC - Continue the boot process using \CONFIG.SYS without changes           
   C   - Go to command line, (no files replaced, use original CONFIG.SYS)      
   V   - Reset primary video display to VGA and reboot                         
   M   - Restart the system from the Maintenance Desktop (Selective Install)   
                                                                               
   Choosing an archive from the list below replaces your current CONFIG.SYS,   
   Desktop directory, and INI files with older versions.  These older versions 
   might be different from your current files.  Your current files are saved in
   \OS2\ARCHIVES\CURRENT.                       

Aangezien het problematische deel van de installatie via startup.cmd liep, kon ik met " ren startup.cmd startup1.cmd" de installatie tijdelijk pauzeren om de CD weer aan de praat te krijgen. Hiervoor gebruikte ik Daniella's stuurbestand. Nadat de CD na een reboot weer herkent werd startte ik startup1.cmd weer op.

Overigens ging de netwerkinstallatie met Advanced Installation waarbij OS/2 op een kleine HPFS partitie gezet werd (standaard maakt VPC voor OS/2 een 2 MB FAT schijf aan) wel in een keer goed.



Kies ook hier voor de IBM GRADD drivers. Ze ondersteunen 1024 x 768 pixels. Maar kies wel voor een lage refresh grade (43 Hz) om het gast besturingssysteem niet onnodig te belasten. Want de werkelijke verversingstijd (bepalend voor het het geknipper aan uw ogen) wordt door het gastheer besturingssysteem bepaald. Dan krijgt u een rustig beeld. De S3 drivers van de OS/2 Device Driver Pak Online : Home deugen niet voor VPC. Althans niet onder mijn OS/2 Scitech real PC (en naar verluid ook niet onder andere besturingssystemen).





OS/2 fixpacks toepassen met Virtual PC

> Top <

Na installatie kunt fixpacks toepassen. De reguliere Warp 3 fixpacks kunnen zowel onder OS/2 Connect als Warp 3 met Simply Fix via een netwerkmap worden geïnstalleerd.

Zie: ftp://service.boulder.ibm.com/ps/products/os2/fixes/v3.0warp en sfix41.zip op Hobbes.

De gedownloade bestanden kunt u via het netwerk, een extra virtuele vaste schijf of via een beschrijfbare CD aan VPC presenteren.

Voor internettoegang onder Warp Connect gebruikte ik Mozilla. Netscape en Opera vroegen om Warp 4. Mozilla en (de vrij onbruikbare) OS/2 Warp Explorer waren onder Warp Connect voor OS/2 begrippen (met 64 MB RAM) erg langzaam, maar een MPTS upgrade (WRU8421) bracht hier verandering in.

Zie: ftp://service.boulder.ibm.com/ps/products/mpts/fixes/english-uk/wru8421_conv. U kunt hiervan echte diskettes maken, maar u kunt er met VPC ook diskette-images van maken zonder een diskette te bezitten. Maar de gedownloade image bestanden zijn gecomprimeerd. U kunt ze dus niet zomaar onder VPC mounten.

Maak hiervoor een vpc_diskette.cmd aan. Kopieer eerst een 1474560 bytes groot *.dsk bestand (bijv. disk0.dsk van de Warp Conenct CD) naar de VPC map op de vaste schijf. Hernoem hem als tempflop.dsk o.i.d. en mount hem onder VPC als Diskette A (Floppy/ Capture image/bestand).

REM Gebruik alleen met onbelangrijke diskettes of
REM (vele malen sneller) met VPC diskette-images!
LoadDskF %1 a: /F /Y
MAKEDSKF a: i:\img\%1

Plaats Loaddskf.exe en Makedskf.exe in het pad van de OS/2 gast (bijv. in \OS2). Sleep daarna onder de OS/2 gast het gedownloade image bestand naar het batchbestand. Let op dat er %**F in het parameterveld van het object staat. Hierdoor wordt het pad weggelaten (anders loopt makedskf niet).

Loaddskf (http://hobbes.nmsu.edu/pub/os2/system/patches/loaddskf.exe) zet het gedownloade image bestand op een virtuele diskette.

Makedskf (http://hobbes.nmsu.edu/pub/os2/util/disk/makedskf.zip) maakt er een ongecomprimeerd (1474560 bytes) image bestand van in de map i:\img op de vaste schijf. Deze diskette images kunnen door VPC gelezen worden.

De eerste diskette van de MPTS update WRU8421 bevat de install.cmd. Omdat de installatie verder via de vaste schijf verloopt, gaat het prettig snel.

Op de Master OS/2 Warp Update List vind u nog meer updates voor OS/2 Warp Connect. Maar voor hen geldt het aloude adagio: If it ain't broke, don't fix it!





OS/2 versie 2.1 onder Virtual PC

> Top <

OS/2 versie 2.1 is goed onder Virtual PC te installeren. Tenminste als u over images van de diskette beschikt. Maar het "Please wait while the installation partition is formatted..." duurt onder HPFS wel erg lang, tenzij u OS/2 in een kleinere (50-256 MB) partitie installeert. Dit 32 bits besturingssysteem heeft immers maar weinig vaste schijf ruimte nodig.

OS/2 2.1 ondersteunt DOS, Windows 3.1 en natuurlijk 16 en 32 bits OS/2 applicaties.




Om een wat groter beeld te krijgen installeerde ik de S3 drivers van de OS/2 Device Driver Pak. Dat ging goed met 1024x 768 met 256 kleuren, maar met grotere kleurdiepten kreeg ik een onleesbaar beeld.





Nog enige andere besturingssystemen

> Top <

Het besturingssysteem QNX

Op Planet Mirror staan QNX versies die u zonder u te registreren downloaden kunt: Get QNX Realtime Platform. Helaas was het resultaat onder VPC 4 bedroevend.

Het besturingssysteem QNX is bedoeld voor real-time processen. Het vreet processortijd en draaide ongelooflijk traag onder Virtual PC. Toetsenbord en beeldscherm reageren alsof u telnet op nauwelijks bereikbare server. Ik vermoed dat het met de prioriteiten van de draden te maken heeft. Volgens een Innotek ontwikkelaar zou daar bij de volgende versie van VPC aan zijn gewerkt.

Knoppix

KNOPPIX - Live Linux Filesystem On CD is van CD (laptop!) te booten. Recent zijn er Knoppix CD's met virusscanners in omloop.

Dos-achtigen

Ik heb de DOS-achtigen nog niet getest. Logisch, want OS/2 biedt een uitstekende DOS ondersteuning. DOS bootdiskettes vindt u op: BootDisks - PC Support - Essential Utilities , The DOS Page en ftp.lineo.com (Caldera's Dr Dos en OpenDos en CP/M 2.2) en The FreeDOS Project.

Zie ook: Bootdisk.Com



NexStep

How to Install NexStep 3.3 on Virtual PC 4.2/5+

Retrocomputing

Retrocomputing (Gert-Jan C. Lokhorst)

Eric Smith's Retrocomputing page

Retrocomputing webring

Mainframe emulatie

The Hercules System/370, ESA/390, and z/Architecture Emulator



De toekomst van Virtual PC

> Top <

Ik kan niet onvermeld laten dat sinds 19 februari 2003 de toekomst van Virtual PC onduidelijk is geworden. Op die dag maakte Microsoft bekend dat het in januari 2003 de Virtual Machine Technologie van Connectix had opgekocht.

Microsoft zegt met de VPC technologie haar klanten te kunnen helpen om naar "moderne besturingssystemen" te migreren. Een bedrijf dat nu Windows NT 4 domeinservers gebruikt zou die met Virtual Server onder Windows Server 2003 kunnen draaien. Door meerdere server besturingssystemen (Novell Netware, IBM OS/2 LAN servers) in een krachtige server te concentreren, zouden ruimte en beheerskosten kunnen worden bespaard.

Connectix' Virtual PC emulatie techniek was een aanvaardbare software oplossing voor Macintosh, OS/2 en Windows gebruikers die met andere besturingssystemen wilden werken, zonder dat zij hiervoor hun favoriete platform hoefden te verlaten. Maar dat paste niet in Microsofts strategie. De OS/2 versie verdween als eerste van de markt. De Virtual PC for Mac kan nog worden gedownload. Microsoft verdient al jaren aan haar Macintosh software (MS Office). Maar Windows gebruikers moeten de keuze maken tussen Hyper-V van Windows Professional en Innoteks VirtualBox , die inmiddels door Oracle is opgekocht.

Op Windows Virtual PC - Win32 apps | Microsoft Docs lezen we:

Windows Virtual PC is no longer available for use as of Windows 8. Instead, use the Hyper-V WMI provider (V2)

Bob St.John van Serenity Systems gaf aan haar Serenity Virtual Station product naar OS/2 (eComStation) te willen porteren met behulp van Paralells. Maar eerlijk is eerlijk, tegenwoordig lijkt het veel logisceh om 32 bits Windows te draaien op een moderne processor onder Windows of Linux, dan de andere weg te begaan.

Microsoft to Deliver Virtual Machine Solution for Application Compatibility and Desktop Consolidation

Microsoft Acquires Connectix Virtual Machine Technology

Future fuzzier for Mac, Linux as MS buys Connectix tech

Microsoft Eyes Virtual Server Space With Connectix Acquisition

The Life of Virtual PC for OS/2 - Brilliant but Short?

Microsoft Virtual PC 2004 kwam inmiddels gratis beschikbaar.





Literatuur

> Top <

InnoTek Systemberatung Gmb

Innotek Forums

Connectix Virtual PC For Windows: Technical Documents
Connectix Knowledge Database

Installing RedHat 7.2 in Virtual PC 5 for Macintosh

Configuring the Sound Blaster card for Red Hat 7.x under KDE

The X Window User HOWTO: 9. Performance Considerations

NDIS2 MAC drivers for DOS, OS/2, WfW 3.1, WfW3.11, and Windows 95

Free Oses : een verzameling "vrije" besturingssystemen op een rijtje (niet allemaal!)

Virtual machines and OS emulators - twoOStwo.Org

Virtual Machine Downloads

QEMU emulator van Fabrice Bellard.

Computer Laboratory - Xen virtual machine monitor : open source emulator

> Top <
> OS/2 Index <