Microsoft zet broncode van MS-DOS 1.00 online en maakt daar museumstuk van

Microsoft heeft de broncode van MS-DOS openbaar gemaakt. Van het originele besturingssysteem, welteverstaan, specifiek 86-DOS 1.00 voor de eerste IBM-pc's. Microsoft heeft onder andere de kernel online gezet, maar ook diepgaande informatie over het ontstaan ervan en snapshots van ontwikkelwerk aan het stukje computergeschiedenis.

Tim Paterson
Tim Paterson, de ontwikkelaar van 86-DOS

Microsoft schrijft dat het de broncode van het oude besturingssysteem op GitHub heeft gezet. De code staat daar naast bijvoorbeeld de broncode van MS-DOS 4.0 en andere oude versies van het besturingssysteem, maar 86-DOS 1.00 is het oudste besturingssysteem van Microsoft dat nu ook openbaar wordt en waarschijnlijk ook het impactvolste.

86-DOS 1.00, in de volksmond beter bekend als MS-DOS, was het besturingssysteem voor de IBM-pc die dat bedrijf in 1980 uitbracht en waarvoor het bij Microsoft uitkwam. Toen IBM die deal voorstelde, had Microsoft zelf nog geen besturingssysteem beschikbaar dat geschikt was voor zulke apparatuur, dus kocht het bedrijf 86-DOS van Seattle Computer Products van ontwikkelaar Tim Paterson.

Daarmee begon Microsofts astronomische groei naar een van de invloedrijkste bedrijven uit de geschiedenis. Nu heeft Microsoft die code, waarmee het allemaal begon, online gezet. De repo is veel méér dan alleen een bundel broncode, maar een kijkje in de geschiedenis van de ontwikkeling en groei van MS-DOS.

Zo staan er ook handgeschreven notities van Tim Paterson in de repo, wat Microsoft 'een geprinte commitgeschiedenis van een Git-repo' noemt, e-mails en documenten over hoe het ontwikkelproces van MS-DOS voor de 8086 verliep. Daarmee is de repo bijna een museumstuk dat uitlegt hoe Microsoft en Paterson tot hun ontwikkeling kwamen.

Alle code is verder beschikbaar onder een MIT-licentie en kan zelfs worden gecompileerd, al is daar Seattle Computer Products' ASM-assembler voor nodig, die overigens met de code wordt meegeleverd.

Microsoft zet al sinds 2014 broncode van oude software online, maar de laatste jaren doet het bedrijf dat steeds vaker met het oog op preservatie en geschiedschrijving. Zo waren de eerste broncodes alleen nog beschikbaar onder strenge licenties, maar daar is Microsoft in de afgelopen jaren soepeler in geworden.

Door Tijs Hofmans

Nieuwscoördinator

01-05-2026 • 11:27

59

Submitter: Ecke

Reacties (59)

Sorteer op:

Weergave:

Ik ben begonnen met MS-DOS 3.1 (of 3.10 of zoiets, weet het niet 100% zeker meer). In elk geval DOS 3.x ... man wat een tijd.

edlin is nog steeds de beste editor. I said what I said.
MS-DOS 4.01 hier met Windows 3.0 op een Commodore 286 met een 40MB Harde schijf, zowel 3,5" als 5.25" floppy drives en een 12" kleuren monitor. Wat een tijd was me dat.

Spijtig genoeg heeft het moederbord van die 286 de tand des tijds niet overleeft, nooit beseft dat die Varta batterijen zo een rotzooi kunnen maken totdat het te laat was :(
Aiii dat doet pijn aan m'n hart ja.

M'n vader had toen een Tulip XT gekocht in eerste instantie, met Hercules scherm, maar in m'n herinnering werd die vrij snel opgevolgd door een Philips XT met een kleurenscherm en een whopping 20MB (!) harddisk.

Toen hij eenmaal een upgrade deed naar een 486DX2/66 kreeg ik de Philips XT als eerste 'echte' computer (nadat ik jarenlang een MSX-1 had gehad).
ik heb ook een dx2 op 66 mhz gehad, het was een tandon variant met svga scherm ik weet het nog goed.
Ik ben begonnen met msdos 4.1 waar fxprep bij was en heb er leuke herinneringen aanmsdos 1.0 heb ik nooit in mijn handen gehad alleen later toen heb ik msdos 6.2 gebruikt met windows 3.11 samen met een schrijfprogramma had ik een heus menu gemaakt in dos zodat je kon kiezen wat als eerste opstarte.

samen met norton commander had ik een heus menu samengesteld, men had er basis kennis van programmeren nodig om zoiets te maken.

De naam van het programma is me ontschoten, het is een word variant wordperfect dacht ik dat dat programma heten..samen met mijn svga scherm zacht dat best professioneel uit.


Met dat dos menu kon je de pixels tellen ondanks dat ik svga had.

[Reactie gewijzigd door rjmno1 op 1 mei 2026 15:15]

M'n vader heeft me laten zien hoe je in een aparte directory ( C:\MENU ) een menu.bat kon maken (met edlin uiteraard) en daar menu-opties kon maken en laten zien met, inderdaad, welke programma's je op wilde starten. Enige wat dat ding deed was een lijstje laten zien met "1. WordPerfect 5.1" "2. Geoworks Ensemble" "3. Test Drive" et cetera.

En dan had je in die directory natuurlijk een 1.bat, een 2.bat en een 3.bat et cetera. Mooi spul.
klopt men moest vewijzingen maken waar de programmas staan en het liefst de bestandsnaam erin vermelden moest je ook nog aan geven en wat voor een directory alles stond en dan kon je die batch bestanden met emm 386.exe allemaal hoog laden met de opdrachtpromt lh en dan bestandnaam in autexec.bat, bij config.sys moest je de regel loadhigh= en dan bestand naam.invoeren en dan gebruikte hij maar aan minimaal zijn 640kb basisgeheugen lol ik weet het nog die command,s als je dit als kind zijnde leert dan vergeet je het nooit meer.,de batch bestanden moesten in autoexec.bat hoog geladen worden.

De opdrachtprompt in config,sys was devicehigh en dan een extentie sys dan was die ook hoog geladen

dan kreeg je zoiets als dit:


msdos

waar is die tijd gebleven.

[Reactie gewijzigd door rjmno1 op 1 mei 2026 15:11]

Vreemd dat jullie spreken over "besturingssysteem" en "kernel".

MSDOS, en al helemaal deze eerste versies, is gewoon een bestandsbeheersysteem, geen besturingssysteem, laat staan dat het een "kernel" had.

Het was niet meer dan een library van calls die het mogelijk maken van het lezen en schrijven van bestanden op een zeer beperkte verzameling hardware. Verder deed het gewoon niets.

Een programma starten was het inladen van een bestand en jumpen naar de code. Meer niet.

Ik begrijp niet goed hoe jullie hier zo foutief over spreken.
Vanaf welke complexiteit mag een kernel dan een kernel heten, van jou?
Vanaf het een op zichzelf werkend stuk software is dat letterlijk alles draaiende houdt wat on top ervan draait.

MSDOS deed dat helemaal niet.

Het was een command interpreter die enkel bestandjes kon starten en enkele variabelen kon onthouden via de basic dos calls.
Waarom denk je dit? Want het is simpelweg niet waar. DOS is zoveel meer dan alleen de command interpreter. Het is een volwaardig OS.

Doet een OS uit 2026 gigantisch veel meer dan een OS uit de jaren 80 en 90? Natuurlijk. Maakt dat DOS ineens geen volwaardig OS? Natuurlijk niet.
Tim Paterson's DOS listings, containing source code of 86-DOS 1.00 kernel, various PC-DOS 1.00 pre-release kernels and utilities, and the Microsoft BASIC-86 Compiler runtime library.
In de repository zelf wordt over kernel gesproken, dus niet vreemd dat Tweakers dit zo overneemt. Maar dat is het mooie van een GitHub repo: als het je stoort kan je een issue of pull request aanmaken met je suggestie om dit te verbeteren.
MS-DOS had wel degelijk een kernel. Het ding is opgedeeld in drie delen: IO.SYS, MSDOS.SYS en COMMAND.COM. Die eerste twee delen vormen samen wat je een kernel zou kunnen noemen, en COMMAND.COM is een command shell. Voor de eerste DOS-releases gemaakt voor IBM waren dat IBMBIO.COM en IBMDOS.COM. IBM noemde IBMDOS.COM altijd de kernel van het OS.
Command.com is een interpreter. Niets meer.
Dat zeg ik.. een shell. De kernel zit in die andere twee.
De defintiie van wat een besturingssysteem is, is in de loop der tijd steeds verder aangescherpt. MS-DOS werd in de tijd dat het uit kwam zeer zeker als volwaardig besturingssysteem gezien. CP/M werd dat ook en MS-DOS was "meer" besturingssyteem dan CP/M.
Als je de DOS API (DOS API - Wikipedia) erbij pakt dan zie je weldegelijk de basisfunctionaliteit van een besturingssysteem: bestandsbeheer, procesbeheer, geheugenbeheer, user i/o, etc.

En kernel is een gangbare term voor precies die dingen.

Dat oude implementaties maar een hele dunne laag functionaliteit zelf toevoegden diskwalificeert het gebruik van de term niet. Voor de ontwikkeling van computers is introductie van het concept besturingssysteem/os/kernel juist heel belangrijk geweest. Het maakt juist een discussie mogelijk over wat er wel of niet in hoort en hoe je zoiets opbouwt.
MSDOS 1.0 had helemaal niets van geheugenbeheer, procesbeheer, enz..

Gewoon helemaal niets.
Een heel besturingssysteem in 3600 regels code (inclusief commentaar) :) (De Homepage van Tweakers heeft meer regels ;) (en dat is dan zelfs inclusief relation tags naar externe bestanden :D ))
Er was ooit de 1.44 challenge. Uitdaging was om een volledig OS met grafische interface, een game en netwerkverbinding te maken die op een standaard floppy paste.
86-DOS?!?

Bij mijn weten heette het besturingssysteem van Tim Paterson QDOS (Quick 'n Dirty Operating System). Microsoft heeft dat gekocht en uitgebracht als PC-DOS (Personal Computer Disk Operating System). Dat was exclusief voor IBM. De versie van Microsoft voor IBM-compatible computers heette MS-DOS (MicroSoft Disk Operating System).

De eerste PC-hardware draaide op de Intel 8088, wat 8-bits was. Snel erna volgde de 8086. Lager getal, maar nieuwer en beter. Ook toen al waren naamgevingen verwarrend. ;) Deze chip was 16-bits en deze instructieset wordt nog steeds gehandhaafd. De chips die volgden heette 80186 (zeldzaam, maar bestaat) en 80286. Dat is dus waar "86" voor staat. Daarna zijn we vanaf de 80386 overgegaan naar 32-bits en thans zitten we op 64-bits. Maar alhoewel die eerste versies 86-besturingssysteem waren, hadden ze toch echt de benamingen zoals hierboven. Niemand noemde het 86-DOS. Dit is een naam die iemand in retrospectie bedacht heeft.
En vergeet de 80386 met coprocessor niet. Dan was je de koning als je die had.
Ja dat was de 80387, maar er was ook al een -287 en een 8087, die zat in mijn eerste pc. Geen idee wat er ik er mee moest :)
Ja ik had er plaats voor op het moederbord men kon er eentke zo erop klikken dan had ik een cprosessor gehad maargoed hij zat er niet standaard erbij..
ja die had ik later werd dat 486 op 66 mhz dx2 variant.Die was ook van intel.verder had ik nog een 386 dx2 op 40 mhz .ik weet niet wat die systemen gekost hebben mijn vader had alles betaald.


geloof maar dat dat voor een paar duizend gulden was destijds.

[Reactie gewijzigd door rjmno1 op 1 mei 2026 15:27]

Los van wat gehobby met een raytracer (POVRay) heb ik nooit iets aan een FPU gehad in die periode. Dat kwam pas toen 3D serieus iets werd in games en de markt kon uitgaan van tenminste een 486DX.
"De eerste PC-hardware draaide op de Intel 8088, wat 8-bits was"

De 8088 was intern 16 bits net als de 8086. Het verschil was dat er maar 8 data pinnetjes op de chip zaten.
De 8088 en 8086 waren qua processor identiek, allebei 16-bits CPUs maar de 8088 was voorzien van een 8-bit databus zodat die in een kleinere package paste.

De 80286 was iets later en kwam met een MMU en een 16-bit databus (net zoals op de 8086) omdat het moederbord voor de AT niet voor een absolute bodemprijs geproduceerd hoefde te worden.
De 8086 was er eerder dan de 8088, alleen was het een erg dure CPU. De 8088 kon goedkoper geproduceerd worden, dus kreeg die uiteindelijk de voorkeur. Het zijn overigens beide 16-bits CPU's, alleen heeft de 8088 een 8-bits externe databus waardoor het goedkoper geproduceerd kon worden.
ik heb dr dos ook nog gekend en een dos variant waar een heuze compressie opzat ik weet niet meer wat voor een dos operating systeem dat was of ik ben in de war met een compressie programma.?

Was dat niet stacker waar je de gehele onhoud van je hdd kon comprimeren?

Er zat ook nog een programma dat bij ms dos geleverd werd die kon ook comprimeren en dan had je stacker 4.0 zo kon je de intrigitijd van je hdd veranderen en dan zag je dat je terabites aan geheugen overhad maar dat was maar een berekening de echte mb dat je hdd groot was was vele malen kleiner.

vroeger had je ook nog een memmory manager die heette quemm 7.5 en als je die installeerde dan had je meer basisgeheugen over allemaal uitgeprobeert op de oude computer..

Dat comprimeer programma wat bij dos hoorde was dat niet doublespace was dat niet de benaming van dat programma ik weet het niet meer.Dan had ik een computer met een harde schijf van 40 mb met 4 mb intern geheugen en dat kon je uitbrijden naar 8 mb ik weet niet meer wat een geheugen module toendertijd koste.


Het is allemaal 30 jaar geleden.

[Reactie gewijzigd door rjmno1 op 1 mei 2026 16:19]

Ben in de 1e klas van de MTS begonnen met CP/M

Daarna naar de MEAO gegaan waar we begonnen met MS-DOS 1.0

Heerlijke tijd was dat. De woensdag- en vrijdagmiddag als we rond 14.00 vrij waren, bleef ik met een paar anderen ( en vaak de leraar ook) tot 17.00 achter de computer
edit:
PCM aangepast in CP/M

[Reactie gewijzigd door metalmania_666 op 1 mei 2026 15:42]

CP/M...


PCM was/is een tijdschrift.

[Reactie gewijzigd door Fiber op 1 mei 2026 14:34]

Ik wíst dat ik iets fout deed maar kwam er ff niet op.

Tnx
Doet MS vaker. Zo hebben ze het spel FreeAllegiance na het einde van het software leven aan de community gegeven. Zodat iedereen er mee kan "rommelen".
Voelt toch raar, dat MS DOS een museumstuk is geworden :D

Als ik mij nog niet oud voelde... weet niet meer precies met welke versie ik begonnen ben. Ik denk MS DOS 3.3, maar de versies volgden elkaar snel op in die tijd. MS DOS 5.0 kan ik mij iig nog heel bewust herinneren. Mijn eerste PC was echter een 8088 Schneider Amstrad en die werd met MS DOS 3.3 geleverd.

Ik gebruikte altijd de oude afdankertjes van mijn vader :) En begon met programmeren in Turbo / Power BASIC op een 80286 die ik na die Schneider Amstrad kreeg toen ik een jaar of 10 was. Op mijn 12e kwam dan een heuse Nederlandse Tulip computer, met een 80386 met coprocessor. Die kon zowaar SimCity 2000 draaien.

[Reactie gewijzigd door Lethalis op 1 mei 2026 13:45]

Leuk artikel, ik heb zelf de meeste herinneringen aan MS-DOS 6.22 en Windows 3.11 en daarna al snel naar Windows 95. Ook leuk om alle reacties en herinneringen te lezen.
Ik vind het wel grappig dat ze het over e-mails over het ontwikkelproces hebben. Ik ken wel BBS'en van midden jaren '80, maar e-mail?
Op BBS'en gebruikte je inderdaad nog geen SMTP, maar wel Fidonet.
Daarmee kon je gewoon electronische post direct van gebruiker naar gebruiker sturen, het was alleen niet instantaan.
Email was toen al een paar decennia oud en al vrij gangbaar voor dergelijke communicatie.
In 1980? Decennia? Arpanet begon in 1970. Welke netwerk structuur werd dan voor e-mail gebruikt voor 1970?
Welke netwerk structuur werd dan voor e-mail gebruikt voor 1970?
In de jaren 60 lokaal (mainframes, minicomputers). E-mail hoeft immers niet over een netwerk te gaan, ook niet in moderne implementaties. Bijvoorbeeld: Gebruiker 1 gebruikt webmail (vergelijkbaar met een thinclient/terminal) om een mail op te stellen naar Gebruiker 2 die een account heeft op dezelfde server en die de mail ook weer via webmail leest. Al het mailverkeer is lokaal binnen de server. Alleen gebruikersinteractie met de server gaat over een serieel lijntje/modem (vroeger) of een netwerkverbinding (tegenwoordig), maar dat is op zich geen e-mailverkeer maar enkel verkeer voor gebruikersinteractie met het systeem dat mails opstelt en leest.

Volgens dezelfde pagina was er ook ad hoc langeafstandsverkeer, maar dat was nog niet gestandaardiseerd. Men had dus wel infrastructuur, zoals P2P-modemverbindingen.

[Reactie gewijzigd door The Zep Man op 1 mei 2026 13:09]

Dat dacht ik nauw precies ook. Ik kan me nog Pegasus mail, in DOS, herinneren op de hogeschool Den Bosch, in 1996.
E-mail was één van de eerste use cases voor grootschalig verbonden computers. SMTP als uniform mailprotocol stamt uit 1981. Daarvoor mailde men ook al, maar was het nog niet zo goed geregeld qua protocollen.

[Reactie gewijzigd door The Zep Man op 1 mei 2026 13:03]

Ik denk pas rond de jaren negentig. Ik werkte op IBM as400. Ik had dan ook een e-mail adres van IBM. Als je een mail stuurde naar een collega die naast jouw zat, kon je zien in de mail , dat die via new York 'gereist' had. In België was aan er toen nog niet veel.
Dat is nodig om deze bytes te reserveren zodat andere onderdelen er niet overheen gaan.
En 511 is precies onder het eerstvolgende logische adres: 512. Vanaf daar mogen andere dingen weer schrijven.
Het zit dan weer niet in de andere versies op de git, of wat lijkt op een latere release.

Om te kunnen reageren moet je ingelogd zijn