MS-DOS

Historia

IBM tilasi Microsoftilta käyttöjärjestelmän, jonka Microsoft osti valmiina Seattle Computer Systems -yhtiöltä (SCS) IBM-kaupan solmimisen jälkeen. SCS:llä oli CP/M:ää muistuttava käyttöjärjestelmä QDOS (Quick and Dirty Operating System, "nopea ja likainen käyttöjärjestelmä", viittaa koodaustapaan jolla QDOS oli kasattu). Microsoft neuvotteli IBM:n kanssa tehtyyn sopimukseen luvan myydä IBM-DOS-käyttöjärjestelmä (myöhemmin PC-DOS) erikseen myös omana Microsoftin tuotteena MS-DOS-nimellä. Nämä tuotteet olivat aluksi identtisiä, mutta eriytyivät myöhemmin, kun Microsoftin ja IBM:n välinen yhteistyö päättyi.
MS-DOSin komentotulkki command.com toimi myös pääasiallisena käyttöliittymänä käyttäjälle. Nimi tulee  sen tiedostonimestä.
MS-DOSiin ei koskaan toteutettu moniajoa, vaikka Microsoft suunnitteli pitkään sellaista koodinimillä 286-DOS, MS-DOS 3 tai MS-DOS 4. Järjestysnumeroltaan vastaavat, perinteistä muistinhallintaa käyttävät versiot julkaistiin vuorollaan, koska OS/2 astui näyttämölle. Intelin 80386-prosessorin tarjoamien edistyneiden muistinhallintatoimintojen myötä tätä rajoitetta pystyttiin kuitenkin kiertämään.
MS-DOS kopioi ideoita muista käyttöjärjestelmistä. Versio 2.0 sisälsi Unixista omaksutut alihakemistot, putket ja tulostuksen uudelleenohjauksen omintakeisin toteutuksin. Versio 5.0 paransi muistinhallintaa, jolloin osa kooltaan kasvaneesta MS-DOSista voitiin siirtää 80286- ja 80386-koneissa muille muistialueille kuluttamasta DOSin kallisarvoista 640 kilotavun perusmuistia.
Versiossa 6.0 tuli mukaan defrag-levyneheytysohjelma ja DoubleSpace-levynpakkaus, joka korvattiin Microsoftin ja Stac Technologiesin välisen patenttioikeudenkäynnin jälkeen versiossa 6.22 DriveSpace-nimisellä ohjelmalla. Kesäkuussa 1994 julkaistu MS-DOS 6.22 oli myös viimeinen erikseen myytävä MS-DOS, versio 7.0 oli saatavissa ainoastaan Windows 95 -ikkunoinnin mukana. Microsoftin vakuutteluista huolimatta Windows 95:ssä MS-DOS käynnistyi automaattisesti taustalla. Käyttöjärjestelmässä olivat uutuutena mukana tuki pitkille tiedostonimille ja "CD..."- ja "CD...." -komennot.

DOSin ohjelmia

MS-DOS peri monet CP/M:n ohjelmista, jotka sovitettiin uudelle käyttöjärjestelmälle. Jo CP/M:ssa toiminut WordStar oli ensimmäisiä suosittuja tekstinkäsittelyohjelmia. Se antoi myöhemmin tilaa WordPerfectille, joka säilyi loppuun asti DOS-ympäristön suosituimpana tekstinkäsittelyohjelmana. Sen kilpailijana – lähinnä Suomessa – oli kotimainen Teko. Ensimmäiseksi PC:n "tappajasovellukseksi" muodostui Lotus 1-2-3-taulukkolaskenta, joka sisälsi graafisten kuvaajien tuottomahdollisuuden. 1-2-3:n suuri suosio 1980-luvun puolivälissä oli merkittävä tekijä PC:n leviämisessä yritysmaailmaan.
DOS-ohjelmat ohjelmoitiin alussa, kuten aiemminkin, lähinnä assemblyllä, mutta kehittyneet kääntäjät yleistyivät myöhemmin. Turbo Pascal ja QuickBASIC olivat suosittuja. C-kääntäjiä DOSille olivat ainakin Microsoftin QuickQ, TurboC ja Watcom. DJ Delorie siirsi myöhemmin GCC:n DOSille nimellä DJGPP. DJGPP vaati kuitenkin 386-suorittimen. MS-DOSin itsensä mukana tuli Microsoftin GW-BASIC-niminen rivinumero-BASIC (PC-DOSissa BASICA), versiosta 5.0 lähtien QuickBasicia muistuttava QBasic.
Pääosa peleistä julkaistiin MS-DOSille aina 1990-luvun puoliväliin asti. Sellaiset klassikot kuin Civilization, Dune II, Command & Conquer, Doom ja Quake tulivat kaikki DOSille. DOSissä pystyi myös hyödyntämään 3D-näytönohjaimia, kuten 3dfx:n Voodoo Graphicsia.
PC-demot tehtiin myös yksinomaan DOS-ympäristöön aina 1990-luvun loppuun asti. DOSille tehtiin myös lukuisia tracker-ohjelmia musiikin säveltämistä varten. Niiden käyttöön tarvittiin erillinen äänikortti, koska PC:n ääniominaisuudet ilman laajennuskortteja olivat olemattomat.
Internetin käyttöön tarkoitettuja ohjelmia DOSille ei ole juuri tehty, vaikka esimerkiksi SUN kehitti yrityskäyttöön jopa PC-NFS-asiakasohjelman ja TCP/IP-pinon. Käytännössä internetiä käytettiin soittamalla modeemilla ja pääteohjelmalla soittosarjaan, josta voi käyttää Unix-koneen shellia sähköpostin käsittelyyn, USENET Newssien lukemiseen ja verkon selaamiseen tekstipohjaisella selaimella kuten Lynx. DOS-aikana yleisin ohjelmien ja muiden tiedostojen hankkimiskeino olivat BBS:t ja erilaiset arkistot, kuten Simtel tai Funetin ftp.funet.fi-palvelu.

MS-DOSin muistinhallinta

MS-DOS kehitettiin IBM PC -koneelle joka käytti Intel 8088 -suoritinta. Ensimmäiset mallit sisälsivät 16 tai 64 kB RAM-muistia ja suoritin pystyi osoittamaan korkeintaan megatavun. IBM PC:n arkkitehtuuri suunniteltiin kuitenkin siten että 640 kB:n kohdalta alkoivat oheislaitteiden muistialueet, joten varsinaista muistia voi lisätä vain 640 kilotavuun asti ja loput 384 kB muistiavaruudesta on varattu oheislaitteille. Esimerkiksi alue A000h–B000h oli varattu näyttökortin muistille ja ylemmät ROM-piireille.
Kuuluisa 640 kB:n muistinrajoitus muodostui pian ongelmaksi ja jo 1984 kehitettiin paljon muistia vaativia taulukkolaskenta- ja tietokantaohjelmia varten EMS-määrittely. Määrittelyn mukaan rakennettiin ISA-väylään liitettäviä lisäkortteja, joiden muisti näkyi oheislaitteille varatulla muistialueella. Tätä muistia voitiin käsitellä sivuittain ja osa kortilla olevasta muistista voitiin ottaa kerrallaan "näkyväksi". Hyvin harvat ohjelmat hyödynsivät kuitenkaan tätä muistia. Käytännössä liian monien laiteajurien lataaminen kulutti perusmuistia jolloin sen liiallinen käyttö esti joidenkin ohjelmien toiminnan. Etenkin jotkut pelit saattoivat vaatia yli 600 kB vapaata perusmuistia.
Intel 80286 -suorittimen kehittyneempi muistinhallinta mahdollisti XMS-muistin (Extended Memory Specification) käytön. 80286 pystyi hyödyntämään 16 MB muistia ja monet 286-tietokoneet toimitettiin 1 MB tai 2 MB muistilla, jota päästiin käyttämään 286-suorittimen suojatussa tilassa (Protected mode). Sitä käytettäessä ei tosin pystynyt käyttämään DOSin palveluja ja hyvin harvat ohjelmat hyödynsivät 286:n kehittyneitä ominaisuuksia. Muistia voi kuitenkin hyödyntää esimerkiksi levyvälimuistina SMARTDRV-ohjaimen avulla tai RAM-levynä. XMS-muistin käytön mahdollisti HIMEM.SYS-laiteohjain, joka tuli käyttöön MS-DOS 5.0:ssä. Myös Windows 3.x pystyi hyödyntämään ylimääräistä muistia.
286-suorittimessa oli myös eräs suunnitteluominaisuus, jonka avulla A20-osoitelinjaa käsittelemällä 286-suoritin pystyi käyttämään reaalitilassa 64 kB muistia 1 MB rajan yläpuolelta osoitteesta FFFF:0000 lähtien. Tästä muistialueesta käytettiin nimeä HMA (High Memory Area). MS-DOS-versiosta 5.0 lähtien osan käyttöjärjestelmästä pystyi siirtämään CONFIG.SYS-tiedoston asetuksella DOS=HIGH tälle alueelle, jolloin perusmuistia jäi vapaaksi.
Intel 386 -suorittimessa oli edeltäviä malleja kehittyneempi muistinhallinta, joka sisälsi muun muassa sivutuksen. Ns. Expanded Memory Managerin avulla DOS voi käyttää XMS-muistia simuloimaan EMS-muistia 386:n Virtual 8086 -tilassa. Tekniikkaa hyödynsi ensimmäisenä Compaq DOS 3.31:n mukana tullut CEMM vuonna 1987. Microsoftin vastaava laiteohjain EMM386.EXE toimitettiin Windows/386:n ja MS-DOS 4.01:n mukana. EMM386 voi myös siirtää osan XMS-muistista tyhjiin kohtiin alueelle 640 kB – 1 MB, (ns. Upper Memory Area) jolloin laiteohjaimia voi ladata tälle alueelle CONFIG.SYSissä LOADHIGH-komennolla perusmuistin vapauttamiseksi.