DOS-utvider

DOS-utvidere eller DOS-forlengere (av engelsk DOS extenders) er navnet på en rekke programmer som har vært utviklet siden 1986 for å overkomme begrensningene i utnyttelse av PC-minne (hovedminne, RAM) i MS-DOS og beslektede operativsystemer. I PC-ens barndom, da MS-DOS ble utviklet, var minne svært dyrt, og svært begrensede minnemengder fikk plass i PC-en. Programutviklerne forsøkte derfor å minimere programstørrelsen, og DOS' begrensninger i minnehåndtering spilte ingen rolle.
Etter hvert ble programmene og folks datafiler større, minnebrikkene falt i pris, nye PC-prosessorer (80286 og høyere) kunne håndtere mer minne enn de gamle, og PC-ene fikk plass til mer minne. I tillegg ønsket stadig flere å kjøre flere programmer på én gang (multitasking). Stadig flere programmer fikk det som ble kalt et grafisk brukergrensesnitt, så langt mer data måtte håndteres hver gang noe skulle skrives på skjermen. Alt dette økte behovet for minne og datakraft. Samtidig hadde MS-DOS-standarden blitt uhyre populær. Med DOS-utviderne kunne folk bruke DOS og DOS-programmer som de var vant til, men med langt større muligheter enn før. På den måten forlenget DOS-utviderne også DOS' levetid.


== MS-DOS' og DOS-utvidernes modus operandi ==
MS-DOS og tilsvarende (f.eks. DR DOS) kjørte i reell modus. På den måten kunne bare ett program kjøres på én gang, og DOS utnyttet inntil 1024 kB (kilobyte) eller 1 MB (megabyte) av datamaskinens hovedminne. Av dette var 640 kB tilgjengelige for brukerprogrammer, mens minneområdet mellom 640 og 1024 kB var reservert drivere. 
Samtidig som MS-DOS kjører i de første 1024 kB, kjører en DOS-utvider som et annet operativsystem i minneområdet fra 1 MB og oppover. For brukeren skjer dette «sømløst», og gir den illusjon at datamaskinen bare kjører ett operativsystem. Mange «DOS-spill» kjører utenfor minneområdet til MS-DOS, i et annet operativsystem, mens brukerne illusorisk opplever dette som ett og samme operativsystem.
De første DOS-utviderne kjørte programmer i beskyttet modus på 16-bit prosessoren Intel 80286, med tilgang til 16 MB RAM. Også 32-bits prosessorer (som Intel 80386 og kloner av denne), som kom på markedet høsten 1986, kunne bruke disse DOS-utviderne. Men etterhvert ble det også lansert DOS-utvidere for disse. Også mange nytteprogrammer har utnyttet DOS-utvidere – f.eks. visse versjoner av IBM Interleaf Publisher, Lotus 1-2-3 for DOS og WordPerfect for DOS.


== Andre operativsystemer erstattet DOS ==
DOS' begrensninger gjorde at en rekke operativsystemer ble lansert. Bl.a. OS/2, Windows NT og en rekke varianter av Linux fikk en viss utbredelse. Men først i 2001 lanserte Microsoft Windows XP (en videreutvikling av NT), det første operativsystem med masseutbredelse som helt og holdent erstattet DOS. Det gamle operativsystemet ble etter hvert fortrengt til spesielle behov (f.eks. visse spill) og til dem som fortsatt kunne bruke gammel programvare samt spesielt interesserte. DOS-utvidere kan hentes gratis eller kjøpes på nettet.


== Eksempler på DOS-utvidere ==


=== Phar Lap 286|DOS-Extender, 386|DOS-Extender og TNT DOS-Extender ===
Den første DOS-utvideren ble utviklet av Phar Lap. DOS-utvideren Phar Lap 286|DOS-Extender emulerte OS/2 i beskyttet modus, med samtlige API-kall i OS/2 1.x. I november 1986 lanserte selskapet 386|DOS-Extender, en 32-bit DOS-utvider som kjørte i beskyttet modus på Intel 80386. Den ble brukt bl.a. til konstruksjonsprogrammet AutoCAD 11.
En videreutviklet utgave av Phar Lap 386|DOS-Extender ble omdøpt til TNT DOS-Extender, og hadde støtte for dynamiske link-biblioteker, tråder, multitasking (flerbehandling) og en «WinPipe VxD» som gjorde det mulig å benytte Microsoft Windows som grafisk brukergrensesnitt til DOS-utvideren.  


=== DOS/4GW ===
Den første DOS-utvider som ble tilgjengelig i stor skala, var DOS/4GW for datamaskiner med Intel 80386 og nyere prosessorer. Utvideren ble distribuert sammen med 32-bit kompilatorene Watcom C, C++ og Fortran, og ble blant annet benyttet til utviklingen av det populære videospillet DOOM.


=== CauseWay 386 DOS extender ===
CauseWay 386 DOS extender for Watcom C/C++ & Assembly Language, er en DOS-utvider som ble utviklet av Michael Devore, for selskapet Devore Software & Consulting i California. Den 9. januar 2000 ble CauseWay 386 DOS extender offentlig eiendom med åpen kildekode.


=== DOS/32A ===
DOS/32 Advanced (DOS/32A) er en tidligere kommersiell DOS-utgiver laget av Naresh Kumar, som ble lansert i 1996 som en konkurrent til DOS/4GW. Den er blitt benyttet i personlige datamaskiner, men også i innebygde systemer fordi den er liten og rask. I mai 2002 ble DOS/32A fri programvare med åpen kildekode. Siste versjon er DOS/32A v9.1.2 fra 20. april 2006.


=== Wuschel's DOS eXtender (WDOSX) ===
Wuschel's DOS eXtender (WDOSX), er en fri 32-bit DOS-utvider med støtte for standardene VCPI, DPMI, XMS, RAW (BIOS INT 0x15) og en utvidet DOS INT 21 API. DOS-utvideren kan gjøres under 32 bit Windows XP. 
Programmer for WDOSX kan utvikles ved hjelp av assemblerne NASM, TASM og MASM, og kompilatorene Microsoft Visual C++ versjonene 4, 5 og 6, Borland Turbo C++ 4.x og 5.x, Borland C++ Builder, Borland Delphi versjonene 2, 3 og 4 og DJGPP versjon 2.
WDOSX inneholder en rekke biblioteker, eksempel-programmer og en fullskjerms debugger. WDOSX Versjon 0.97 ble lansert i februar 2005.


=== Andre DOS-utvidere ===
DOS-utviderne PMODE og PMODE/W, av Thomas Pytel og Charles Sheffold.  PMODE/W ble benyttet sammen med Watcom C som et alternativ til DOS/4GW, og var populær blant utviklere av demoer.
Ergo OS/286 og OS/386 utvidere, samt DPM16 og DPM32-utvidere
HX DOS Extender
DOS-utvideren X-32 VM Dos Extender av Doug Huffman
GO32, benyttet før versjon 2 av DJ Delories portering av GNU Compiler Collection og Free Pascal
CWSDPMI skrevet av Charles W. Sandmann (teknisk sett ikke en DOS-utvider, men en DPMI server for programmer generert av DJ Delories portering av GNU Compiler Collection til 32-bit DOS-utvideren DJGPP)
Windows 3.0, Windows 3.1x, Windows 95, Windows 98 og Windows Me


== Opprettelsen av standarder ==
I begynnelsen var utviklingen av minnekrevende programvare for næringslivet den største drivkraften bak DOS-utvidere. Senere ble DOS-utvidere i økende grad tatt i bruk av utviklere av videospill.
Utviklingen av DOS-utvidere ble foretatt av en rekke selskaper og privatpersoner uavhengig av hverandre og av Microsoft. De var derfor ikke «standardiserte», og programvare for én DOS-utvider var ikke alltid kompatible med andre DOS-utvidere. Potensielle minnekonflikter grunnet ulike former for minnehåndtering i ulike DOS-utvidere, skapte behov for standarder. Videre ble det behov for uniforme grensesnitt mot klient-programmer.
Det første standardiserte grenesnittet var Virtual Control Program Interface, som ble lansert av Phar Lap i 1989. Det ble samme år overskygget av Microsofts egen DOS Protected Mode Interface Specification, som den 22. mai 1990 ble en integrert del av Windows 3.0. Begge grensesnittene tilførte en API for allokering av minne, håndtering av avbrudd, multitasking og svitsjing mellom reell modus og beskyttet modus.


== Referanser ==