1. Maj 2024

Et kig på MS-DOS 1.25 - 4.00

English autotranslation (Google Translate)

Microsoft har for nylig frigivet tidlige udgaver af operativsystemet MS-DOS som Open Source (under MIT-licens). Det giver et spændende indblik i, hvordan man strikkede et operativsystem sammen i start-80′erne.

Der er en heftig omgang maskinkode og lidt C. Det, der slår mig ved første hurtige gennemsyn er, hvordan fil-strukturen i projektet udvikler sig fra v1.0 til v.4.0 og hvordan det - tilsyneladende - kun er relativt lidt i den tidlige kode, der er dokumenteret. Det er ret typisk for solo-programmører eller små teams, fordi man har ret meget styr på, hvad koden gør. Det er også interessant at se, at dynamisk linking gjorde sit indtog allerede i MS-DOS 4. Du kan finde indscannet dokumentation i ‘MSDOS4.0-ozzie’.

En anden interessant detalje er, at koden til MS-DOS 1.25 har Seattle Computer Products (SCP) påskrevet som udvikler i headeren på assembler-filerne. Hvordan er de endt der? Jo - find kaffen og slåbrokken:

Lang historie kort

IBM ville ind på markedet for microcomputere, og var i 1980 i forhandlinger med Digital Research om at købe en Intel 8086-kompatibel udgave af deres operativsystem CP/M. Hvis du aldrig har hørt om Digital Research før, så er det fordi IT-medierne har glemt computerens barndom. Digital Research’ CP/M var alle steder i 70′erne. Faktisk meget lig Microsofts Windows-dominans i dag.

Før CP/M blev operativsystemer typisk skrevet direkte til den computerhardware, de skulle køre på, hvilket betød store kompatiblitetproblemer mellem maskinerne. CP/M udlignede de forskelle med stor succes.

På grund af diverse forviklinger gik handlen mellem IBM og Digital Research dog i vasken, og så henvendte IBM sig istedet til Microsoft. Microsoft havde på daværende tidspunkt intet operativsystem, men så muligheden for en lukrativ handel. Så de henvendte sig til Seattle Computer Products, som lavede en x86-kompatibel klon af CP/M, ved navn 86-DOS. Den købte Microsoft, og gik i gang med at udvikle Microsoft og IBMs fælles 86-DOS variant. Varianten blev omdøbt til IBM PC-DOS.

Hvordan kom MS-DOS så ind i billedet? Jo, Microsoft lavede et snedigt træk: De havde set det opblomstende marked af IBM-kloner, og da IBM havde ikke sikret sig eksklusiv-retten til Microsofts kode, kunne Microsoft uden videre licensere deres egen version - jeps, MS-DOS - til fabrikanterne af IBM-kompatible computerkloner, and the rest is history, som man siger. IBMs PC DOS 5 er iflg. Wikipedia den sidste version, Microsoft arbejdede på, derefter overtog IBM selv udviklingen.

Hvor er koden til f.eks 5.00, 6.22 og 7.0?

Mit gæt er, at man endnu ikke vil udgive den, fordi der stadig er hardware i drift med de versioner, og fordi man mener, der kan være en potentiel sikkerhedsrisiko.

Links

Github: Microsoft MSDOS 1.25-4.00
Wikipedia: MS-DOS
Wikipedia: PC-DOS
Wikipedia: DR-DOS
Wikipedia: 86-DOS