[ Datorn i utbildningen ]

Nr 4-93


Farväl till DOS

av Martin Fahlgren


MS-DOS är ett föråldrat operativsystem som å det snaraste bör få pension och ersättas med något bättre. Denna artikel utreder varför och diskuterar några möjliga alternativ.

DOS historia

Den första DOS-versionen presenterades 1981, tillsammans med persondatorn IBM-PC.

PC:n var byggd kring en 16 bitars mikroprocessor från företaget Intel. Processorn, som hade beteckningen 8088, kunde adressera upp till 1 MB minne, men IBM fördelade detta så att maximalt 640 KB kunde utnyttjas som arbetsminne, resten reserverades för bildminne, ROM-kretsar m m. Idag verkar detta vara snålt tilltaget, men vid den tiden framstod 640 KB som mer än tillräckligt (de första PC:na levererades vanligen med bara 64 KB, dvs tiondelen av detta).

DOS var skräddarsytt för denna verklighet. Det var ett litet och kompakt operativsystem, som med råge klarade de uppgifter det hade att lösa (hantera upp till 640 KB minne och upp till två diskettstationer).

Utvecklingen gick emellertid snabbare än man förutsett. Två år efteråt kom IBM:s XT-modell, som hade samma processor, men var försedd med en hårddisk, vilket krävde ganska omfattande förändringar i DOS' filsystem (DOS version 2). Den viktigaste nyheten var möjligheten att indela skivor i kataloger, vilket är nödvändigt för större sekundärminnen. Minneshanteringen genomgick dock inga förändringar, vilket ju inte var så underligt, eftersom det var fråga om samma processor. DOS var fortfarande väl anpassat till de hårdvaruresurser det hade till uppgift att hantera.

Drygt ett år efteråt (hösten 1984) började dock avgrunden mellan hårdvarans möjligheter och DOS' kapacitet att öppna sig. Då lanserades nämligen AT-modellen, som byggdes kring en ny Intel-processor, med beteckningen 80286. "286:an" kunde adressera upp till 16 MB primärminne och var konstruerad för att kunna exekvera flera program samtidigt, s k multikörning. Den nya DOS-version som kom ungefär samtidigt kunde dock inte dra nytta av dessa nya processoregenskaper, vilket medförde att en AT-dator med DOS helt enkelt fungerade som en snabbare PC, inget annat.

För att ta vara på 286-processorns möjligheter behövdes ett nytt operativsystem och därför började IBM och Microsoft att utveckla ett sådant. Detta nya, till 286-processorn anpassade, operativsystem lanserades drygt tre år senare (i december 1987), under namnet OS/2, version 1. På många sätt blev denna OS/2-version en flopp, bl a beroende på att det kom alldeles för sent.

1986 kom Intels 32 bitars 80386-processor, som kunde adressera upp till 4 GB minne (dvs över 4000 MB), och som dessutom kunde arbeta som flera 8088-processorer samtidigt. Sedan följde i486 (med inbyggd "matteprocessor") och det allra senaste skriket, Pentium-processorn. Båda dessa är 32 bitars processorer, förbättrade gentemot "386:an".

Flera nya DOS-versioner har också sett dagens ljus, den senaste är version 6. Ingen av dessa kan fullt ut utnyttja de moderna processorerna. I grunden är och förblir DOS ett operativsystem för 8088-processorn. Det enda förbättringen av minneshanteringen som åstadkommits, är att det (fr o m DOS 5) är möjligt att med en 32 bitars processor flytta delar av DOS och vissa drivrutiner från det konventionella minnet (det under 640 KB), varvid utrymmet för andra program kan ökas något (några tiotal KB kan frigöras på detta sätt).

Vad angår då bristerna i DOS den vanlige användaren? Den stora spridningen av DOS (över 20 miljoner persondatorer) har lett till att det finns massor med nyttoprogram och det är väl det som betyder något, speciellt som vissa av begränsningarna i DOS kan åtgärdas med MS Windows och annan programvara. Så länge som "jobbet blir gjort", finns det väl ingen anledning att se sig om efter något annat? Jo, det är hög tid att göra just det. DOS lever idag på nåder, på övertid, och måste ersättas med ett operativsystem som bättre tillvaratar maskinvarans möjligheter. Om inte, då kommer själva PC:n att tyna bort, helt enkelt därför att "jobbet" kan göras bättre, säkrare, snabbare och enklare med andra datorer. För att klargöra detta ska vi titta lite närmare på DOS och dess begränsningar.

Problem med DOS

1. Minnesbegränsningar

MS-DOS är i det stora hela anpassat efter 16 bitarsprocessorn 8088, medan de flesta av dagens persondatorer utnyttjar 32 bitars processorer. Detta får följande konsekvenser:

  1. Ett DOS-program kan maximalt utnyttja 640 KB för program och data, i själva verket mindre, eftersom också operativsystemet kräver en del.
  2. Primärminnet är segmenterat i block om vardera 64 KB, vilket betyder att det utan problem bara går att komma åt 64 KB data åt gången. För att manipulera större minnesblock krävs speciella mått och steg, vilka dessutom försämrar prestanda.
  3. Processorn får för det mesta jobba med 16 bitar i taget, trots att en 32 bitars processor kan hantera det dubbla antalet, vilket ger prestandaförsämringar.

Ett 32 bitars operativsystem eliminerar dessa problem (kan adressera minnet linjärt upp till 4GB och arbetar med 32 bitar åt gången).

Hur stora prestandavinster som kan förväntas med ett 32 bitars operativsystem beror på tillämpningen.

Tester

Själv har jag testat C-program dels under DOS och dels under flera 32 bitars UNIX-system. När det överhuvudtaget varit möjligt att köra programmen under DOS har de exekverat mellan 2-7(!!!) ggr snabbare under UNIX. Sådana prestandaförbättringar kan man inte räkna med överlag, men minst 20-30% lär det alltid bli om programmen f ö är ekvivalenta, ofta betydligt mer (de program jag själv jobbat med har rört beräkningar med s k multipel precision, där ett 32 bitarssystem ger extra stora prestandavinster).

Vissa av minnesproblemen med DOS kan lösas, trots att DOS ligger i botten, vilket säkert de flesta Windows-användare känner till, men alla dessa lösningar är halvmesyrer. De olika minnesmodeller, minneshanterare osv, som då kommer till användning krånglar till det för såväl de "vanliga" användarna som för programmerarna, som får ödsla tid och möda på problem som överhuvudtaget inte skulle existera med ett riktigt 32-bitars operativsystem. De enda som har något att vinna på detta är de som tillhandahåller programmeringsverktyg och programpaket som syftar till att hjälpa andra att krångla sig förbi begränsningarna hos DOS.

Programmerarnas vedermödor kanske du som en vanlig användare struntar i, men det borde du inte göra, eftersom slutresultat av deras arbete skulle bli bättre om de slapp detta "hackande" för att övervinna begränsningarna hos DOS.

Minneshanterare

En del av problem som programmerarna har att brottas med har också alla lite mer drivna datoranvändare råkat ut. Den snårskog av olika minneshanterare (olika versioner av EMS, XMS, DPMI, VCPI osv), som förutom att de kan ge upphov till programkonflikter även kan kräva att datorn omstartas för att köra ett visst program, illustrerar det hela. Ingen av dessa lösningar utnyttjar heller primärminnet eller de moderna processorernas kapacitet på ett optimalt sätt (Windows utnyttjar t ex bara 16 MB primärminne).

2) Inget understöd för multikörning

DOS utnyttjar inte de moderna processorernas inbyggda minnesskydd, vilket ger instabilitet (systemkrascher), dvs ett program som "löper amok" kan låsa hela systemet. Windows klarar en del av dessa problem, men långt ifrån alla.

DOS understödjer ingen multikörning överhuvudtaget och den multikörning som är möjlig med Windows 3.1 är inte mycket att hurra för. Den som t ex försökt att under Windows formatera en diskett och samtidigt fortsätta att jobba med en ordbehandlare, vet vad jag menar. Denna avsaknad av verklig multikörning innebär ett slöseri med datorresurser och kan vara mycket irriterande för den som vill utnyttja sin dator på ett effektivt sätt. Det må så vara att de flesta accepterar situationen så länge som de inte fått klart för sig vad som faktiskt är möjligt (med ett bättre operativsystem), men på längre sikt kommer inte någon att godta ett sådant sakernas tillstånd.

En annan konsekvens av att DOS inte klarar multikörning är att DOS inte kan bilda grundvalen för ett nätoperativsystem. Detta må vara mums filibaba för företag som Novell, som därmed fått en lukrativ marknad för sitt eget nätoperativsystem. Användarna har dock ingen anledning att ställa sig positiva till detta, ty det både fördyrar och krånglar till det hela: Ett adekvat operativsystem skulle göra speciella nätverksoperativsystem, som Novell Netware, överflödiga.

3) Bristfälligt filsystem

Filsystemet i DOS är långsamt och ineffektivt och är inte kapabelt att på ett vettigt sätt hantera de stora sekundärminnen som nu börjar bli allt vanligare.

De korta filnamnen, som högst kan bestå av 8 tecken (plus max 3 teckens filtypstillägg), är ett annat uttryck för att filsystemet inte är anpassat till dagens behov. Åtta tecken är alldeles för litet när man kan ha tiotusentals filer på sin hårddisk. I detta avseende är DOS 'sämre' än alla andra på smådatorer förekommande operativsystem (äldre UNIX-versioner klarar t ex minst 14 tecken, medan modernare versioner godtar upp till 256 tecken).

Filsystemet är inte heller feltolerant. Om exempelvis en allokeringsenhet blivit skadad ger DOS bara ett felmeddelande och vägrar skriva på skivan. För att reda ut sådana problem brukar man tvingas ta till specialprogram som markerar de felaktiga allokeringsenheterna. Ett adekvat operativsystem skulle hantera detta automatiskt, dvs själv markera de felaktiga delarna och skriva data på andra oskadade sektorer.

4) Andra problem

DOS är maskinberoende, dvs förekommer enbart på IBM-kompatibla persondatorer. Detta skapar problem när program och data ska flyttas mellan olika datorer.

DOS saknar all tillstymmelse till säkerhetshantering: Alla användare kan t ex kopiera och radera vilka filer som helst och t o m formatera hårddisken.

Programmeringsmöjligheterna i DOS (batch-språket) är mycket primitiva jämfört med de fullfjädrade programspråk som t ex olika UNIX-skal ger tillgång till. Även om detta främst är av intresse för mer avancerade datoranvändare (programmerare, systemansvariga etc), finns det ingen anledning att acceptera ett sådant outvecklat kommandospråk som det i DOS.

Fördelar med DOS

Har då DOS alls inga fördelar? Ja visst! Den viktigaste är dess stora spridning. Detta är grunden till att det finns massor med prisvärd programvara för de mest skilda tillämpningar. Under DOS är det också möjligt att utnyttja många olika slags extrautrustning (drivrutiner, anpassade till DOS, finns för ett stort antal grafikkort, skrivare, CD-ROM-spelare, ljudkort, nätverkskort, scanners, floptiska diskar, faxmodem, bandstationer etc).

Existensen av tusentals applikationsprogram och det rika urvalet av extrautrustning som är tillgängligt under DOS/Windows försvårar samtidigt också byte till ett nytt operativsystem. I synnerhet gäller detta extrautrustningen, eftersom det kan vara svårt, eller t o m omöjligt, att till det nya operativsystemet finna drivrutiner till ett visst grafikkort eller en viss bandstation. När det gäller den vanliga programvaran är det enklare, eftersom många av de existerande alternativa operativsystemen kan köra DOS-program och/eller Windowsprogram.


Önskelista

Ett modernt operativsystem

  1. måste vara ett 32 bitars system som fullt ut kan utnyttja maskinvaran. Helst bör det även kunna fördela arbetet mellan flera processorer, något som allt fler datorer kommer att utrustas med i framtiden.
  2. måste klara verklig, s k preemptiv multikörning. Detta innebär också att operativsystemet måste kunna förhindra systemkrasch om något av de exekverande programmen kraschar
  3. måste ha ett effektivt och feltolerant filsystem. Långa filnamn är ett krav. Filsystemet bör också tillhandahålla flera slags filskydd, bl a bör åtkomst av vissa filer kunna begränsas till olika användarkategorier (nödvändigt i nätverk och för att skydda viktiga program och data mot ändringar/kopiering/radering av obehöriga).
  4. bör kunna köra gamla DOS- och Windows-program, åtminstone under en övergångsperiod.
  5. bör ha ett bra grafiskt användargränssnitt (MS Windows har sina brister, både vad gäller snabbhet och utformning).
  6. bör vara hårdvaruoberoende, dvs bör kunna användas med datorer av många olika slag
  7. bör kunna användas i fleranvändarmiljö
  8. bör ha ett kraftfullt kommandospråk (batch-språk)

Alternativ till DOS

Ovan har jag försökt klargöra varför MS-DOS på sikt måste ersättas. I resten av artikeln ska jag diskutera olika alternativ till DOS, och deras fördelar och nackdelar.

Idag finns redan tre olika operativsystem att välja mellan: OS/2 2.1 (från IBM), Windows NT 3.1 (från Microsoft) och flera UNIX-versioner (de viktigaste från Novell, Sunsoft och Santa Cruz Operations).

OS/2

OS/2 2.1 uppfyller i högre eller mindre grad samtliga punkter i önskelistan, utom punkterna 6 och 7. De delvis uppfyllda är punkt 1 (klarar bara en processor, även om IBM utlovat understöd för flera processorer i kommande versioner), punkt 3 (filskyddet) och punkt 8 (batchspråket är i stort sett identiskt med DOS, men detta uppvägs delvis av att OS/2 levereras med programspråket REXX, som kan användas i stället).

OS/2 är väl uttestat. Det är stabilt och understödet för DOS- och Windows-program är ypperligt, varför man kan fortsätta att använda nästan alla gamla DOS- och Windows-program (man kan även, utan risk för systemkrasch. "multiköra" DOS-program).

OS/2 är relativt väl försett med drivrutiner för extrautrustning, t ex understödjs de flesta superVGA-kort och skrivare. Själv har jag även kunnat utnyttja min CD-ROM-spelare och mitt ljudkort. Det finns givetvis också en hel del extrautrustning som det saknas drivrutiner till, men den ypperliga DOS-emuleringen gör då att man åtminstone kan utnyttja utrustningen via denna (OS/2 saknar t ex drivrutin för min bandstreamer, men DOS-emuleringen klarar det hela).

Maskinvarukraven är inte oöverkomliga, en snabb 386:a eller en 486:a med minst 8 MB internminne och 40-50 MB ledigt hårddiskutrymme räcker.

Vilka är då nackdelarna? För det första är OS/2, liksom DOS, knutet till IBM-kompatibla persondatorer. Det faktum att OS/2 är en ren IBM-produkt är ett annat minus, eftersom det betyder att de flesta andra program- och maskinvaruleverantörer står tvekande inför OS/2. Den allmänna inställningen verkar vara "Låt oss vänta och se hur det går", medan Microsoft helt enkelt motarbetar OS/2. Frågan är således om OS/2 har en rimlig chans att slå igenom. För fem-sex år sedan hade det varit en helt annan sak, eftersom IBM då hade helt andra möjligheter att styra utvecklingen, men numera är IBM:s hegemoni på persondatorsidan bruten.

OS/2 är således ett bra alternativ till DOS och Windows, men framtidsutsikterna är osäkra. Eftersom OS/2 säljs till ett mycket fördelaktigt pris (kostar mindre än DOS och Windows ihop), bör dock den intresserade som kan avvara en tusenlapp inte avskräckas från att ge OS/2 en chans.

Windows NT

Windows NT 3.1 är ett helt nytt operativsystem, dvs inte en ny version av Windows, vilket man kan tro av dess namn. Det uppfyller helt eller delvis hela önskelistan utom de två sista punkterna. De delvis uppfyllda är punkt 4 (det är sämre än OS/2 i detta avseende, speciellt när det gäller DOS-emulering), punkt 5 (grafiska gränssnittet är identiskt med Windows, vilket har många brister) och punkt 6 (förutom IBM-kompatibler finns NT bara till några RISC-baserade arbetsstationer).

När det gäller understödet för extrautrustning är Windows NT än så länge svagare än OS/2, men eftersom det helt nyligen kommit ut på marknaden kan detta snabbt förbättras.

Hårdvarukraven är större än för OS/2. För att få rimliga prestanda krävs en 486:a med 16 MB primärminne (även om det går att köra med 12 MB). Hårddisken bör ha minst 75 MB ledigt utrymme.

Windows NT är kraftfullare än OS/2, men kräver mer av hårdvaran, samtidigt som OS/2 är bättre (inkl snabbare) på DOS-emulering.

Till fördelarna med Windows NT hör att Microsoft idag har större tyngd än IBM på persondatorsidan. Detta understryks av att ganska många maskinvaru- och programleverantörer lovat produkter anpassade till Windows NT. Än så länge är detta dock främst utfästelser, faktiska resultat lär vi få vänta ett tag till på.

UNIX

I motsats till OS/2 och Windows NT har UNIX många år på nacken. Det är väl uttestat och det finns mycket programvara speciellt framtagen för UNIX. Moderna UNIX-versioner uppfyller i stort sett alla punkter i önskelistan. De svaga punkterna är punkt 4 (vissa UNIX-system är dåliga på att köra DOS- och Windowsprogram, ibland ingår dessutom inte "DOS-emulering" i grundpaketet, utan måste införskaffas separat) och punkt 5 (kvaliteten av de grafiska gränssnitten varierar).

Om man kunde välja operativsystem enbart utifrån önskelistan, då skulle UNIX vara det självklara valet. UNIX är dessutom ett öppet system och inte bundet till något speciellt företag. Tyvärr är det inte så enkelt. Det faktum att det inte finns en enda UNIX-leverantör har också bidragit till uppkomsten av olika UNIX-versioner, och skillnaderna dem emellan kan vara avsevärda. Avsaknaden av standardisering är UNIX' akilleshäl: Så länge som det finns tre-fyra (eller ännu fler) olika UNIX-varianter, kommer UNIX aldrig att bli ett slagkraftigt DOS-alternativ för den vanlige persondatoranvändaren (däremot kan UNIX lägga beslag på "nischer", där fördelarna med UNIX är uppenbara). Detta medför också att många programvaruföretag tvekar inför att avsätta resurser på att framta UNIX-versioner av sina produkter och att kommersiell UNIX-programvara i allmänhet är mycket dyrare än DOS-programvara.

De viktigaste UNIX-leverantörerna (Novell, IBM, Sunsoft och SCO) har också insett detta - i teorin. I våras utfärdade de en deklaration där de utfäste sig att avlägsna alla väsentliga skillnader mellan sina UNIX-versioner. Det återstår dock att se om detta omsätts i praktisk handling, och inom rimlig tid.

Andra alternativ

De ovan nämna operativsystemen existerar redan idag, men det finns också andra möjliga "DOS-ersättare".

Den variant som Microsoft verkar ha tänkt sig är att vid sidan av Windows NT utveckla en ny 32 bitars (DOS-baserad) Windows-version. Denna ska lösa de viktigaste problemen med Windows 3.1 (bl a ska den klara riktig multikörning), men samtidigt kräva mindre datorkraft än Windows NT. Vi skulle därmed få ett nytt operativsystem som utgör en slags övergångsform mellan DOS och Windows NT. Redan Windows 3.1 har i själva verket övertagit de flesta av funktionerna i DOS (som egentligen bara har hand om filhanteringen) och kan faktiskt i vissa avseenden betraktas som ett nytt operativsystem. Den nya 32 bitars Windowsversionen skulle överta ännu fler av DOS uppgifter.

Vid första anblicken kan en sådan lösning verka attraktiv, eftersom den minimerar de problem som ett byte till något helt nytt skulle kunna dra med sig. Jag måste dock erkänna att jag inte är särdeles trakterad över en sådan variant. För det första kan man undra vad DOS då har för existensberättigande (annat än för att ge Microsoft en extra inkomstkälla). För det andra, och det är den viktigaste invändningen, skulle vi därmed få dras med halvmesyrer en längre period och därmed förlänga "pinan". Att bygga vidare på det gamla DOS/Windows är som att renovera och bygga ut ett fallfärdigt ruckel. Resultatet skulle bli bättre om man rev det gamla och byggde ett nytt efter moderna byggnormer (för det är väl inget uppiffat museiföremål vi behöver, eller?).

En annan möjlighet är lanseringen av ett nytt och moderniserat 32 bitars DOS (med understöd för multikörning m m). Ett sådant DOS skulle kunna avlägsna flera av de problem som kvarstår med Windows-alternativet. Det skulle också underlätta skrivningen av sådana 32 bitars applikationer som inte ska köras under Windows (sådana program kan faktiskt vara att föredra för vissa tillämpningar, t ex när man vill kunna utnyttja batchkörning, omdirigera in- och utmatning m m). Man kan dock inte komma ifrån att även ett sådant operativsystem skulle bli en slags halvmesyr, där vissa av bristerna i DOS skulle vara avhjälpta, medan andra skulle finnas kvar (se önskelistan).


Slutkläm

Att byta ut ett antal tillämpningsprogram eller byta till en modernare dator är för det mesta ganska problemfritt. Byte av operativsystem är en mer genomgripande förändring som kan vara betydligt svårare att genomföra. DOS är en utmärkt illustration av detta.

DOS har överlevt sig självt och borde egentligen ha ersatts för flera år sedan. Det som gett DOS ytterligare respittid är att det saknas ett "självklart" alternativ. Detta sakernas tillstånd kan dock inte fortsätta så länge till utan att få allvarliga negativa konsekvenser. Det är således hög tid att se sig om efter ett nytt operativsystem och helst också testa något eller några av dem.

Martin F (i oktober -93)


Copyright © 1997 Martin Fahlgren

Epost:

uvvmfn@vasavux.educ.goteborg.se

[Till början av sidan] [Till artikelförteckningen]