Исходные коды MS-DOS 4.00, созданной совместно с IBM более 30 лет назад, теперь доступны для изучения и модификации.
Microsoft выпустила исходный код operative system (ОС) MS-DOS версии 4.00, а также сопутствующие материалы, такие как двоичные файлы, образы дисков и документацию. Исходный код, которому уже почти 45 лет, опубликован под лицензией MIT, дающей разработчикам полную свободу действий.
Выпуск MS-DOS 4.00 представляет особый интерес, поскольку эта версия создавалась в сотрудничестве с IBM и послужила основой для ветви ОС под названием Multitasking DOS (MT-DOS). Данная ветвь имела ограниченное распространение, однако включала в себя возможности многозадачности.
Публикация исходного кода MS-DOS 4.00 была ускорена благодаря переписке между бывшим техническим директором Microsoft Рэем Оззи и молодым исследователем Коннором Хайдом. Именно Оззи предоставил несколько бета-версий DOS 4, которые он сохранил со времен работы в Lotus.
Вице-президент сообщества разработчиков Microsoft Скотт Хансельман и интернет-архивист Джефф Спонагл помогли сохранить эти материалы в цифровом формате и получить необходимые разрешения на публикацию.
MS-DOS 4.00 представляет из себя самую современную версия DOS с открытым исходным кодом, которая включает в себя возможности многозадачности, что нехарактерно для ОС командной строки. Одним из ключевых компонентов, отвечающих за многозадачность, является менеджер сеансов (SM.EXE).
С его помощью можно быстро переключаться между шестью приложениями с использованием горячих клавиш. Однако в тестах Хайда выявилось много ошибок в работе SM.EXE, из-за чего использовать эту функцию на практике затруднительно.
Исходный код на ассемблере для Intel 8086, двоичные файлы, образы дисков и документация теперь доступны на GitHub. Желающие могут самостоятельно запустить ОС, используя один из двух образов дисков. Владельцы старых компьютеров вроде IBM PC XT или Pentium смогут установить ОС в её изначальном виде. Остальные могут опробовать MS-DOS 4.00 в эмуляторах PCem или 86box. На GitHub также доступны исходные коды более ранних версий MS-DOS 1.25 и 2.0.