Conventioneel geheugen

DOS geheugen, soms ook conventioneel geheugen genoemd, verwijst naar het geheugen-adresseringsschema dat in de originele IBM en compatibele PC's werd gebruikt. Deze werden geleverd met slechts één besturingssysteem, Disk Operating System, en dit besturingssysteem moest worden ontworpen om te werken met de microprocessor van de PC, de Intel 8088. Vanwege de technische beperkingen van de 8088 waren de opslag- of geheugenadressen beperkt tot een maximum van één megabyte. (Later kwamen er natuurlijk PC's met 2, 4, 8, en de tegenwoordig gebruikelijke 16 en 32 megabytes RAM). In die tijd werd één megabyte echter beschouwd als een vrij grote hoeveelheid geheugen om toegang toe te hebben.

Een bepaald deel van het random access geheugen was gereserveerd als plaats om het basis input/output systeem of initialisatieprogramma in te laden, een andere ruimte was gereserveerd voor buffergebieden voor display-gegevens, en nog een ruimte voor interrupt-gegevens, enzovoort. De resterende 640 kilobyte geheugen kon worden gebruikt door het DOS-besturingssysteem (dat relatief klein was) en toepassingsprogramma's.

De reden dat dit alles niet academisch is, is dat, nu er nieuwe microprocessoren en besturingssystemen zijn ontwikkeld, veel oudere programma's die met de oorspronkelijke geheugenadresseerbeperkingen waren geschreven, in de nieuwere systemen moesten blijven draaien. Dit betekent dat de nieuwere systemen de oudere programma's hebben moeten aanpassen zodat zij kunnen draaien in het oorspronkelijke beperkte aaneengesloten adresbereik van 640 kilobyte. Een programma dat met deze beperking wordt uitgevoerd, wordt beschreven als draaiend in beschermde modus . (Programma's die zonder deze beperking draaien, worden beschreven als draaiend in beschermde modus .)

Met de opvolgers van de 8088, de 80286 en 80386 microprocessoren, nam het beschikbare geheugen aanzienlijk toe, met tot 15 megabyte mogelijk in een 286 en tot bijna 4 gigabyte aan RAM mogelijk in een 386. Dit extra geheugen boven de oorspronkelijke één megabyte die DOS moest aanspreken wordt extended memory genoemd. Het kunnen adresseren van extended memory betekent draaien in protected mode.

In het algemeen kunnen DOS applicaties alleen in real mode draaien, omdat DOS zelf de geheugenbeperking vereist. Er zijn echter enkele programma's ontwikkeld, DOS extenders genaamd, die met de applicatie kunnen worden gecompileerd en een ingebouwde geheugenbeheer-mogelijkheid bieden. Om meerdere DOS programma's met geheugenuitbreidingen gelijktijdig te kunnen laten draaien, was een gemeenschappelijke aanpak nodig, zodat de programma's het uitgebreide geheugen effectief konden delen. Verschillende standaarden werden ontwikkeld om dit delen te beheren: XMS (Extended Memory Specification), VCPI (Virtual Control Program Interface), en DOS Protected Mode Interface (DOS beschermde modus interface).