MS-DOS

MS-DOS ("Microsoft Disk Operating System") on Microsoftin vuonna 1981 julkaisema, tekstipohjaisella komentoliittymällä varustettu käyttöjärjestelmä. Se oli ensimmäinen laajalti levinnyt käyttöjärjestelmä IBM PC -yhteensopiville tietokoneille. Viimeisin itsenäinen versio, 6.22, julkaistiin vuonna 1994, minkä jälkeen MS-DOS on sisältynyt Windows-järjestelmäpaketteihin. Windows 95, 98 ja Me perustuivat MS-DOS:iin, vaikka tämä onkin enimmäkseen käyttäjältä piilotettu. 
Windows NT:n mukana on ollut vuodesta 1993 lähtien NTVDM-komponentti 16-bittisien MS-DOS-ohjelmien suorittamiseen. NTVDM on rajattu 32-bittisille IA-32-suorittimille ja se ei ole enää tuettu x86-64 tai ARM-suorittimilla.
Historia.
IBM tilasi Microsoftilta käyttöjärjestelmän, jonka Microsoft osti valmiina Seattle Computer Products -yhtiöltä (SCP) IBM-kaupan solmimisen jälkeen. SCP:llä oli CP/M:ää muistuttava käyttöjärjestelmä QDOS. Microsoft lisensoi käyttöjärjestelmän IBM:lle, joka myi sitä IBM PC:n kanssa nimellä PC-DOS. Microsoftilla oli oikeus myydä käyttöjärjestelmää erikseen nimellä MS-DOS.
MS-DOSin komentotulkki codice_1 toimi myös pääasiallisena käyttöliittymänä käyttäjälle.
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 muistinhallintayksikön 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. 
Lotus 1-2-3 -taulukkolaskentaohjelma oli IBM PC:n läpimurtosovellus.
1-2-3 sisälsi graafisten kuvaajien tuottomahdollisuuden. 1-2-3:n suuri suosio 1980-luvun puolivälissä oli merkittävä tekijä IBM 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.
Suuri osa tietokonepeleistä julkaistiin MS-DOSille aina 1990-luvun puoliväliin asti. Pelit kuten "Civilization", "Dune II", "", "Doom" ja "Quake" julkaistiin DOSille. DOSissä pystyi myös hyödyntämään 3D-grafiikkaa tukevia näytönohjaimia, kuten 3dfx:n Voodoo Graphicsia.
IBM PC -yhteensopiville tehdyt 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, jota ilman ääniominaisuudet olivat olemattomat.
Internetin käyttöön tarkoitettuja ohjelmia DOSille ei ole juuri tehty, vaikka esimerkiksi Sun Microsystems 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, keskusteluryhmien (Usenet Newsien) 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-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 oli varattu oheislaitteille. Esimerkiksi alue A000016–AFFFF16 oli varattu EGA- tai VGA-näyttökortin muistille.
8086 käytti segmentoitua muistia, jossa muistia käsiteltiin 64 kilotavun lohkoissa: "lähiosoitin" sisälsi offsetin ja "kauko-osoitin" sisälsi segmentin sekä offsetin.
Kuuluisa 640 kB:n muistinrajoitus muodostui pian ongelmaksi ja jo 1984 kehitettiin paljon muistia vaativia taulukkolaskenta- ja tietokantaohjelmia varten EMS-määrittely (Expanded Memory Specification). 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 jotkin 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 pystyi hyödyntämään ylimääräistä muistia.
286-suorittimessa oli myö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 FFFF016 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.
386-suorittimessa oli edeltäviä malleja kehittyneempi muistinhallintayksikkö (MMU), joka mahdollisti 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.
Käynnistys.
MS-DOSin VBR lataa muistiin ensin kolme sektoria IO.SYS-tiedostosta, joka tämän jälkeen käynnistyy ja lataa loput itsestään muistiin ja sen jälkeen MSDOS.SYS-tiedoston, joka lukee CONFIG.SYS-asetustiedoston ja sen jälkeen lataa ja käynnistää COMMAND.COM-komentotulkin, tai muun määritellyn. COMMAND.COM suorittaa juurihakemistosta AUTOEXEC.BAT-komentojonon.
Julkaisut.
MS-DOS:stä julkaistiin seuraavat versiot:
Microsoft on julkaissut MS-DOS:in versioiden 1.25, 2.0 sekä 4.0 lähdekoodin.