It has taken 38 years, but the source code of MS-DOS version 4.00 has been made available by Microsoft and IBM. The rationale for this release was because former Microsoft CTO Ray Ozzie came across beta binaries on DOS floppy disks in his collection.
The release stemmed from a correspondence with British researcher Connor Hyde. He is currently working on documenting various DOS versions and the later OS/2, which appeared in 1987 from a collaboration between Microsoft and IBM. The beta binaries were shared with the Microsoft Open Source Programs Office (OSPO) with the goal of making the DOS version publicly available.
The head of OSPO, Jeff Wilcox, managed to find the complete source code of MS-DOS 4.00 in the Microsoft Archives. The “new” release follows ten years after Microsoft’s donation of MS-DOS 1.25 and 2.0 to the Computer History Museum. Open-sourcing of these versions on GitHub followed in 2018 for greater accessibility.
Run on authentic hardware
The software has already been tested on authentic hardware from the same period (the 1983 IBM PC XT), as well as on a newer Intel Pentium and by using emulators such as PCem and 86box.
MS-DOS 4.00 is based on MS-DOS 2.0 from 1981. The major difference from 2.0 is that 4.0 supports multitasking. This allows certain programs to remain active in a so-called “background mode.” However, the 640 KB memory limit, even at that time, was a considerable curtailment of capabilities, especially for the server applications that were the most obvious use case for this version. OEMs did not appear too interested in this variant of MS-DOS. Version 5.0 followed in June 1991.
Like MS-DOS 2.0, the operating system was written entirely in x86 assembly, a family of programming languages that represent commonly used sets of binary numbers in machine code with keywords. Assembly is considered an extremely low-level language because programmers execute fundamental CPU instructions, while modern high-level languages are many times more user-friendly by abstracting this process. The kernel of modern Windows is written in C and C++ programming languages, although a renewal process is currently underway to transfer parts to Rust.
Also read: Microsoft makes open-source version MS-DOS available on GitHub