MS-DOS
Wikipedia
MS-DOS, Microsoft DOS eller Microsoft Disk Operating System var ett populärt operativsystem producerat av Microsoft på 80-talet och i början av 90-talet.
MS-DOS skapades 1980 av Tim Paterson vid det lilla företaget Seattle Computer Products under namnet QDOS, senare omdöpt till DOS-86 eftersom det var skrivet för Intels processor 8086. Microsoft köpte operativsystemet av Seattle Computer Products, anställde Tim Paterson och licensierade det till IBM som använde det i sina tidiga PC-datorer under namnet PC-DOS. Microsofts avtal med IBM skulle visa sig vara väldigt fördelaktigt då Microsoft fick behålla rättigheterna att vidareutveckla och sälja systemet till utvecklare av PC-kloner, under namnet MS-DOS. Ursprungligen var QDOS en klon av operativsystemet CP/M och lånade namn av CP/M-kommandon, som i sin tur lånade många av dem från Unix.
Den sista versionen av MS-DOS som såldes i affärer som en separat produkt var 6.22. Windows-versioner upp till Windows 3.11 kördes ovanpå MS-DOS (eller något annat DOS-kompatibelt operativsystem) och hanterade filsystem och systemanrop. I Windows 95 fanns MS-DOS kvar som version 7.0 men användes endast för filåtkomst och start av den grafiska miljön; Windows skötte därefter själv systemanropen. Den sista Windows-version som kördes på MS-DOS var Windows Me, där Windows även skötte systemstart.
Innehåll |
[redigera] MS-DOS uppbyggnad
Microsoft DOS är ett operativsystem med text- och teckenbaserat gränssnitt, till skillnad från senare tiders grafiska. Det innebär att man får skriva in textkommandon för de olika saker man kan tänkas vilja göra.
MS-DOS är ett mycket stabilt operativsystem och detta till stor del på grund av dess största begränsning. Man kan nämligen bara köra ett program (egentligen process) i taget (jämför multikörning). Andra begränsningar som kan nämnas är att DOS har en övre minnesgräns på 640 kB, då det var baserat på Intels 16-bitarsprocessorserie, kombinerat med designval för vilka minnesområden som skulle reserveras för expansionskort och systemets ROM.
[redigera] Kommandon
Man har två sorters kommandon i MS-DOS: interna som sköts från kommandotolken (command.com), samt externa som har en egen programfil. Det finns tre sorters programfiler som prioriteras i ordningen som följer: .EXE, .COM och .BAT. En batchfil (.bat) är en textfil med diverse kommandon som körs radvis. Dessa kan kompileras till exempelvis kommandofiler för att köras fortare. Annars kan man skriva in kommandona direkt vid prompten (C:\>) och sedan trycka på enter-tangenten för att köra dem ett i taget (dvs seriellt). Vill man omdirigera utmatningen från ett kommando kan man använda pipetecknet (|) eller omdirigera med > och <. Man kan även använda kommandot Con.
För att specifiera flera filer brukar man använda sig av jokertecken (wild cards). Om man skriver ett frågetecken (?) kommer det att representera ett tecken, vilket som helst. Om man skriver en stjärna (*) kommer det att representera inget, ett eller hur många tecken som helst.
[redigera] Namnkonventioner
Vidare får filnamnen högst innehålla åtta tecken samt ytterligare tre tecken som åtskiljs av de övriga med punkt, den så kallade filändelsen. Filändelsn är till för att operativsystemet skall kunna associera filerna, exempelvis står ".EXE" för exekverbar fil, ".TXT" för textfil och så vidare. Används ett modernare DOS, eller extra program, stöds VFAT och FAT32 och då är man inte begränsad till enbart 8.3 namnkonventionen.
Några tecken får inte användas varken i fil- eller katalognamn, bland andra '*', '+', '-', '?', '/', '\', '[', ']', '{', '}', '(', ')', ':', ';', '.', ',', '=', '<' och '>'. Dessutom är vissa ord reserverade, som exempelvis CON, AUX, COM 1-4, PRN, LPT 1-4 och NUL.
[redigera] Katalogstruktur
I DOS arbetar man i en katalogstruktur sedan version 2. Katalogstrukturen brukar liknas vid ett upp-och-nervänt träd där roten är överst, underkatalogerna förgrenar sig nedåt och där löven representerar filer. De olika partitionerna på hårddisken (exempelvis C:) brukar kallas rot (root) och tecknet för detta är backslash: \. Under roten finns moderkataloger (parent directories) som i sin tur rymmer barnkataloger (child directories) som innehåller filer (files). En sökväg i DOS kan se ut så här:
C:\Moderkat\barnkat\textfil.txt
[redigera] Filsystem
Filsystemet i DOS heter FAT. FAT är en förkortning för file allocation table (fillallokeringstabell) som innebär en tabell över placeringen av filer och kataloger. I filsystemet lagras filerna i ett kedjesystem där filallokeringstabellen är en lista över vilka block som är lediga och i vilka block det finns filer. I pekarna till de upptagna blocken finns också adressen till det block där filen fortsätter att lagras. En rotkatalog kan (beroende på version) innehålla upp till 512 kataloger och miljontals underkataloger.
[redigera] Minnesområden
När DOS skapades var minneskraven på operativsystem betydligt mindre krävande än idag. Detta innebar att allt eftersom DOS utvecklades tvingades man lösa hur operativsystemet skulle kunna adressera mer minne för mer minneskrävande program.
[redigera] Base memory
Det konventionella minnet eller base memory som det också heter är det område i primärminnet på 640 kB som var tillgängliga för alla program att allokera minne från. Till skillnad från XMS och EMS behövdes ingen särskild drivrutin för att använda den här delen av minnet.
[redigera] Upper memory
Det höga minnet eller upper memory block är utrymmet från 640 kB upp till 1 MiB (1024 kB). Detta brukar hänvisas till i DOS som HIGH. Här kan man lägga exempelvis drivrutiner och MS-DOS egna rutiner när de laddas i config.sys (DOS=UMB samt DEVICEHIGH=drivrutin) och på så sätt lämna plats för annat i det konventionella minnet. Det enda hindret mot att använda detta minne var om BIOS eller expansionskort själva ville disponera det.
[redigera] High memory area
HMA (high memory area) är ytterligare 64 kB ovanför UMB. Även här kan man placera DOS egna rutiner i config.sys (DOS=HIGH). Området var speciellt då det enbart kunde täckas av ett minnessegment, medan övriga segment är överlagrade.
[redigera] Extended memory
Det utökade minnesområdet eller XMS (extended memory specifikation) brukar man kalla allt minne ovanför HMA.
[redigera] Expanded memory
EMS var en variant som en del program i slutet av åttiotalet använde för att kunna utnyttja mer minne. Det används inte längre. Det byggde ursprungligen på speciella expansionskort med egna minneskretsar och ROM, som kunde "växla" in olika delar av EMS i vanligt minne. Det emulerades sedan ofta med EMM386 och liknande program.
[redigera] Olika DOS-versioner
[redigera] MS-DOS 1.0
DOS 1.0, som kom i augusti 1981, lagrade alla filer direkt under rot på diskett. Den hade bara stöd för enkelsidig diskett, och hela operativsystemet rymdes på en sådan 5,25-tumsdiskett. Från och med 1.10 (1982) hade det stöd för dubbelsidiga disketter med lagringskapacitet på upp till 320 kB.
Tim Paterson lämnade utvecklingen våren –82 då Mark Zbikowski tog över. Än idag inleds alla EXE-filer av hans initialer i början på binärfilen.
Exempel på kommandon som fanns med i den första versionen av DOS är:
- Copy som är ett internt kommando för att kopiera filer. Med hjälp av specialfilen con kan man dessutom ändra utmatningen till en textfil (copy con namn.txt). Funktionstangenten F6 (eller Ctrl+Z) kan sedan avsluta detta, eftersom det sågs som filslut. Det var även vanligt att själva tecknet Ctrl+Z förekom i slutet av filer i tidiga DOS-versioner.
- Kommandot Date var också ett internt kommando i DOS 1.0. Det visar och kan ändra systemklockans aktuella datuminställning.
- Kommandot Time fungerade likadant men gällde tidsinställningarna istället.
- Type är ett internt kommando som skriver ut innehållet i en fil på skärmen.
- Del (internt) står för delete och används för att ta bort filer.
- Även Dir är ett internt kommando och listar filerna.
- Ren eller rename är ett internt kommando som används för att byta namn på filer.
- Diskcopy är ett externt kommando (diskcopy.com) som används för att kopiera disketter.
- Format är ett externt kommando (Format.com) som används till att formatera disketter (och med tiden hårddiskar). Växeln /s överför även systemfiler.
- Sys (Sys.com) överför systemet, det vill säga filerna IO.sys, MSDOS.sys och Command.com så att man kan boota från den enhet dit man överfört filerna.
- I DOS 1.0 medföljde även en liten radeditor som hette Edlin, föregångare till Edit.
[redigera] MS-DOS 2.0
1983 kom DOS 2.0 den hade förutom stöd för diskettstation även stöd för upp till 32 MB stora hårddiskar. I DOS 2.0 infördes DOS katalogsystem där man kan lagra filer i olika kataloger. Version 2.10 var en specialversion för bärbara datorer (IBM Portable PC).
I DOS 2.0 infördes en rad nya kommandon. Exempelvis:
- Ver som var ett internt kommando som visar vilken version av MS-DOS man använder, en fördel när det nu helt plötsligt fanns två olika.
- CLS ( ett internt kommando) för att rensa skärmen.
- Det interna kommandot prompt användes kort och gott för att ändra utseendet på prompten.
- Fdisk (Fdisk.exe) är ett externt kommando som används för att partitionera hårddiskar
Den nya filstrukturen förde också med sig en drös av nya kommandon:
- Tree (Tree.com) är externt och visar katalogstrukturen som ett träd.
- CD eller chdir (internt) för change directory då det nu krävdes att kunna förflytta sig mellan olika kataloger.
- RD eller rmdir är interna kommandon för att ta bort katalog
- MD eller Mkdir är ett internt kommando för att skapa ny katalog.
- Path (internt) används för att styra sökvägarna operativsystemet använder sig av när det lokaliserar körbara program (externa kommandon, skriptfiler och andra program).
[redigera] MS-DOS 3.0
1984 kom version 3.0, som klarade 1,2 MB floppydiskett. 1985 införde 3.10 stöd för nätverk, och två år senare kom stöd för enkelsidig 3,5-tumsdiskett (720 kB) i och med version 3.20. I 3.30 kom även stöd för dubbelsidiga 3,5-tumsdisketter (1,44 MB), och där har man även infört stöd för upp till 64 MB stora hårddiskar med två partitioner på högst 32 MB vardera. 1987 kom även Compaq MS-DOS 3.31 med stöd för partitioner på 512 MB på Compaqdatorer.
I trean började man använda volymetiketter på hårddiskar. I denna version tillkom också bland annat följande kommandon:
- Attrib (attrib.exe) som var ett externt kommando som kunde skrivskydda filer med attributet R för Read-Only samt attributet A för Archive som används vid backup och sätts automatiskt av systemet om en ändring gjorts sedan senaste backup.
- Label (label.exe) används för att visa eller ändra volymetiketten på hårddiskar.
- XCopy (xcopy.exe) tillkom i version 3.2. Detta kommando kan bland annat används för att kopiera en hel trädstruktur samtidigt.
[redigera] MS-DOS 4.0
MS-DOS 4.0 från 1988 drogs med minnesproblem tack vare en rad minnesslukande program.
- Med hjälp av det något minnesslukande (6 kB) programmet SHARE. hade DOS nu stöd för 1 GB stora hårdiskar med 2 partitioner på upp till 512 MB vardera.
- Det grafiska skalet DOSSHELL ritade upp en enkel trädstruktur där man kunde bläddra bland filerna och katalogerna. Detta program användes ytterligare 20 kB av minnesområdet. Detta spelade förstås bara någon roll om man sedan startade andra program inifrån skalet.
- mem (mem.exe) är ett externt kommando som visar information om det konventionella minnet och tillkom för att användarna skulle ha bättre kontroll på minnesallokeringen.
[redigera] MS-DOS 5.0
På grund av minnesförbrukningen i 4.0 utvecklades metoder för att få tillgång till ytterligare minne. 1991 kom DOS version 5.0. Det använder en drivrutin som heter Himem.sys och som därför kan utnyttja minnesområdet mellan 1024 och 1088 för att ladda in vissa delar av operativsystemet och därmed frigöra 64 kB av det konventionella minnet till att köra program som kräver mycket ledigt minne.
DOSSHELL förbättrades i version 5 och var bland annat mindre minnesslukande. Vidare tillät det en enkel form av multikörning som kallades task swapping där program kunde ligga vilande i bakgrunden.
Det finns stöd för upp till 2 GB stora partitioner, men i praktiken flera andra begränsningar för hur stora hårddiskar som kan adresseras.
I version 5.0 kom några nya kommandon:
- Ordbehandlingsprogrammet Edit (Edit.com).
- Även doskey (doskey.com) kom i version 5. Det är ett program som minns alla kommandon man gett så att man med hjälp av piltangenterna kan bläddra sig fram mellan givna kommandon.
- Undelete (Undelete.exe) är ett program som återställer filer som tagits bort med kommandot del, dock med klart varierande tillförlitlighet, bland annat eftersom filen för att återställas korrekt inte fick vara fragmenterad.
Det tillkom även två nya attribut i version 5: S för system som är ett attribut som systemet sätter på filer som behövs för operativsystemet. H står för hidden och används för att göra vissa filer dolda för kommandot dir.
I och med den avsevärt förbättrade minneshanteringen blev den grafiska användarmiljön i Windows för första gången praktiskt användbar. (De tidigare versionerna hade varit allt för minneskrävande för att få en större användarskara). Det första Windows som kördes på DOS 5.0 var Windows 3. Detta är en stor anledning till att Windows 3 (och särskilt versionen med stöd för nätverk: 3.11 for Workgroups) blev en sådan försäljningsframgång.
[redigera] MS-DOS 6.0
1993 kom version 6.0. Microsoft hade här införlivat en egen tolkning av diskkomprimeringsprogrammet Stacker i operativsystemet. 6.20 och 6.22 är ytterligare revideringar där bland annat programmet scandisk tillkommit. För att DOS 6.22 skall fungera bra rekommenderas minst en 8 MB stor partition för systemfilerna.
I DOS 6.0 tillkom en rad användbara kommandon:
- Dblspace var ett externt kommando (dblspace.exe) som används för att komprimera hela volymer
- Dblspace ersattes i version 6.22 av drvspace. Den ingår bland systemfilerna och överförs med exempelvis sys.com till diskett eller hårddisk.
- Ett annat användbart kommando var deltree som används för att ta bort en hel trädstruktur.
- Move (move.exe) flyttar och byter namn på filer
- Memmaker (Memmaker.exe) optimerar användningen av konventionellt minne, den redigerar automatiskt autoexec.bat och config.sys och flyttar delar av operativsystemet till HMA och UMB.
- Scandisk (Scandisk.exe) används för att korrigera fel i filsystemet. Ersätter det äldre chkdisk som dock fortfarande finns kvar.
- Msd (msd.exe) visar information om datorn.
- I version 6 tillkom även Help (help.com) som är ett externt kommando som ger information om de olika kommandona.
Version 6.22 kom att bli den sista rena DOS-versionen från Microsoft.
[redigera] MS-DOS för Windows 95
Version 7.0 kom 1995 och är en integrerad del av Windows. Annars är den bara en avskalad variant av 6.22 där de flesta kommandon är borttagna. I Windows initieras DOS av kommandotolken (command.com). Vissa av kommandona (som DIR och övriga interna kommandon som hanterade filnamn) utökades för att hantera långa filnamn, när de laddadse inifrån Windows. Om de kördes i rent DOS-läge fungerade de inte, eftersom den filsystemskod som laddades då inte behärskade detta. En skillnad i Windows 98 och senare versioner av Windows 95 var att den version av Drivespace som ingick var något effektivare än tidigare. Denna version hade tidigare enbart erbjudits genom Plus!-paketet.
[redigera] MS-DOS för NT-baserade Windows
I Windows NT, XP, 2000 och 2003 är allt vad som behövs inbakat i Windows, och det DOS som fortfarande kan anropas är inte något "äkta" DOS, som Windows behöver för att fungera. Det finns med bara som ett "påhäng" för att möjliggöra körning av äldre, DOS-baserade program med Windows som operativsystem.
Man måste också vara medveten om att ett konsolprogram i Windows mycket väl ändå kan vara ett verkligt modernt Windows-program. cmd.exe och många av de traditionella externa kommandona i DOS är under Windows NT sådana konsolprogram.
[redigera] Hur DOS startar
[redigera] Bootprogrammet
När en PC startas körs först BIOS (Basic Input/Output System) (som startar CMOS) och sedan P.O.S.T. (Power On Self Test). Bootprogrammet laddar in de operativsystemspecifik kod från MBR. Denna start är identisk i alla IBM-kompatibla datorer.
[redigera] IO.SYS
Är DOS installerat på datorn så laddar bootprogrammet in filen IO.SYS i primärminnet och kör den för att styra och aktivera heter för in- och utmatning. IO.SYS kör i sin tur igång MSDOS.SYS som startar själva operativsystemet.
[redigera] MSDOS.SYS
MSDOS.SYS är en dold, skrivskyddad, systemfil som ser till att config.sys kan läsas in och därefter köra det skal som anges i config.sys (shell=) eller startenhet:\command.com om raden saknas.
Filen finns även i Windows, och är då en textfil där man kan gå in och ändra ett antal konfigurationsvärden. Där är hela funktionen placerad i IO.SYS.
[redigera] COMMAND.COM
När MSDOS.SYS är färdig startar den det skal som angets i config.sys, nästan alltid COMMAND.COM, som läser in de interna kommandona (ex CD, MD, RD, DIR etc.) i det konventionella minnet.
[redigera] Inställningsfiler
MSDOS läser Config.sys filen efter användaranpassade inställningar och drivrutiner efter att msdos.sys lästs in.
Till sist körs Autoexec.bat av skalet som ställer in diverse användaranpassade inställningar, startar diverse program, drivrutiner och batchfiler allt efter hur man har ställt in det.