MS-DOS bygger oven på computerens BIOS. Når der bliver tændt for maskinen, eller den nulstilles (resettes) vil BIOS lede efter en valid boot-sektor i en angivet rækkefølge (kan angives i BIOS). En boot-sektor er den første sektor på en diskette eller en harddisk, og den indeholder enten en bootstrap-loader eller et program, der blot meddeler, at denne diskette kan man ikke boote fra, hvorpå det stopper. Dvs. selv om maskinen er beregnet til at boote fra en harddisk, så vil den kunne boote fra en diskette i stedet, hvis den er isat ved starten og BIOS er sat op til at prøve diskettedrevene af først. Først vil resten af BIOS blive læst ind (noget ligger i ROM i forvejen). BIOS ligger i filen io.sys (ibmbio.com hos PC-DOS).   BIOS vil derpå indlæse operativsystemet. Dette består af to dele. Filen msdos.sys (ibmdos.com hos PC-DOS), der efter indlæsning forbliver i maskinens hukommelse, og filen command.com (kommandofortolkeren), der indlæses bagefter, og som kan overskrives af andre programmer, da den vil blive genindlæst, når disse andre programmer afsluttes.  Enkeltbruger MS-DOS er et enkeltbrugersystem, dvs. der er kun én person, der kan benytte systemet ad gangen. Brugeren logger heller ikke på, systemet er klart, når det er bootet. Hvis MS-DOS kører i et netværk, var det dog almindeligt, at man logger på netværket. Man vil også i nogle tilfælde skulle logge på applikationsprogrammer, hvis disse har en adgangskontrol.  Endelig er det muligt for MS-DOS at fungere som filserver eller databaseserver over for andre maskiner i et netværk. På den måde vil flere forskellige brugere kunne benytte den samme MS-DOS-maskine. På den måde kan man køre ganske avancerede flerbrugersystemer på MS-DOS.  Single task MS-DOS er også single task. Det vil sige, der er ét program, der kører. Dette program skal afsluttes, før andre kan få lov til at køre.  Dog har MS-DOS faciliteter til simpel multitasking, der benyttes af MS-DOS til at spoole printfiler, og som også gør det muligt at lade forskellige programmer køre på skift, styret af interrupts fra maskinens ur. MS-DOS lader det dog være helt op til disse programmer at bevare systemets integritet. Der er ingen beskyttelse af maskinens lager eller andre ressourcer. Man kan altså godt implementere multitasking med tvungen tidsdeling, men der er ingen beskyttelse af de enkelte programmer mod andre programmer.  API MS-DOS's Application Programming Interface (API) er baseret på software interrupts. Et applikationsprogram, der har brug for en tjeneste fra MS-DOS, vil udføre en særlig maskininstruktion, et softwareinterrupt. Dette interrupt har et nummer, som via en interrupttabel (interruptvektorer) oversættes til en adresse på en rutine, der håndterer interruptet. Ofte vil de nærme detaljer specificeres ved en kode (et tal) i et eller flere af cpu'ens registre, som interruptrutinen fortolker. Parametre til tjenesten overføres også i cpu'ens registre, tit som en adresse (en pointer) på en datastruktur. Når MS-DOS har udført tjenesten, returneres der til adressen lige efter den instruktion, der kaldte operativsystemet. Ofte ville programmørerne for at få bedre hastighed eller for at udføre ting, der ikke kunne gøres gennem MS-DOS, kalde tilsvarende rutiner i BIOS eller direkte tilgå maskinens hardware. Dette kunne lade sig gøre, da MS-DOS ikke har nogen form for beskyttelse af maskinens eller operativsystemets ressourcer. Der findes også en del udokumenterede tjenester i MS-DOS, altså rutiner som Microsoft havde forbeholdt til egen brug og derfor ikke havde dokumenteret offentligt.  TSR-programmer MS-DOS gav mulighed for nogle meget enkle tilføjelser til det kørende system, nemlig de såkaldte Terminate and Stay Resident-programmer. Når et normalt program afslutter, kalder det en afslutningstjeneste i MS-DOS, der frigiver programmets lager og overgiver kontrollen til MS-DOS. En speciel afslutningsrutine tillader, at programmet kan beholde en del af eller hele den allokerede hukommelse, der altså ikke efterfølgende bliver tildelt andre programmer. Forinden har programmet hægtet sig på et eller flere interrupts, således at programmet kortvarigt bliver vakt til live, når disse interrupts bliver udført. Det er kotume derpå at lade kontrollen gå videre til andre programmer i interrupt-kæden. Ellers vil disse efterfølgende programmer blive sat ud af kraft, systemet vil ikke fungere længere. Metoden blev benyttet til en del fikse forbedringer: Tidlige printspoolere, smarte utilities der kunne kaldes frem ved at trykke på begge shift-taster (som Borland Sidekick) samtidig, tegnsætkonvertering på printerporte osv.  Brugergrænseflade MS-DOS bliver styret med forskellige DOS-kommandoer, dvs. det "sprog" man taler med computeren.  MS-DOS benytter en kommandoprompt også kaldet en kommandolinje til at modtage kommandoer fra brugeren. Disse kommandoer fortolkes af systemets kommandofortolker, der i MS-DOS's tilfælde hedder command.com. Nogle kommandoer bliver udført af selve kommandofortolkeren. Men i de fleste tilfælde vil kommandofortolkeren kalde et særskilt program, der hedder det samme som kommandoen, enten med endelsen .COM eller .EXE (filendelserne svarer til forskellige strukturer for programmerne). Det er muligt for brugerne at tilføje nye programfiler som kommandoer. Endelig kan kommandofortolkeren afvikle en række kommandoer, der er skrevet i en bat-fil, dvs. en fil med endelsen .BAT, hvilket står for batch. Filen køres altså uden at interagere ret meget med brugeren, evt. helt uden interaktion. Bat-filer har en simpel struktur for løkker og betingelser. Ellers fungerer de omtrent som sad brugeren og tastede de enkelte kommandoer ind, efterhånden som den foregående var færdig.  MS-DOS overtog fra version 2.0 filtre og pipes, som de er kendt fra Unix. Det betyder at programmer kan modtage data fra en fil i stedet for fra tastaturet (brugeren), lige som deres uddata evt. kan sendes videre til andre kommandoer.  MS-DOS var designet så den kommandofortolker, der som standard fulgte med, nemt kunne udskiftes med en brugervalgt, men folk ville efter fremkomsten af Apples Macintosh i 1984 hellere have en grafisk brugerflade til deres PC. Mange programmer forsøgte at skabe en grafisk brugergrænseflade og med stor individuel succes for nogle af dem, f.eks. XTree, Norton og Microsoft Word for DOS. Ingen af disse programmer førte dog til en ensartet brugergrænseflade. Tidlige versioner af Windows var som ovennævnte blot programmer der kørte ovenpå MS-DOS og mange versioner af Windows er da også stadig grundlæggende bygget ovenpå MS-DOS.  Oprindelse Oprindeligt blev styresystemet udviklet af Seattle Computer Products i 1980 under navnet 86-DOS, bedre kendt som QDOS (Quick and Dirty Operating System), og på vegne af dette firma licenserede Microsoft QDOS til IBM. Senere købte Microsoft rettighederne til systemet.