понедельник, 14 октября 2013 г.

Канувшие в лету: история забытых проектов Microsoft. История №2, часть 1: MS-DOS.

Канувшие в лету: история забытых проектов Microsoft. История №2, часть 1: MS-DOS.
Здравствуйте, уважаемые читатели! Сегодня первый юбилейный выпуск колонки «Канувшие в лету» — пятый. И в этом выпуске мне хотелось бы рассказать об MS-DOS — культовой операционной системе от Microsoft, которая также канула в лету. Эта система, как я уже сказал, стала культовой для не одного поколения. В этой статье вы узнаете, откуда появилась эта система, кто такой Гари Килдалл и прочую интересную информацию. Сегодняшняя статья охватывает период с зарождения системы вплоть до выхода MS-DOS 2.0.

Всем кому интересно, прошу под кат! :)



История DOS начинается с Гари Килдалла. Именно он в 1970-х годах разработал собственный язык программирования PL/M (Programming Language for Microcomputers, Язык программирования для микрокомпьютеров), а затем и собственную ОС на этом языке программирования — CP/M (Control Program for Microcomputers, Контролирующая программа для микрокомпьютеров). Но не будем спешить.

Еще до того, как начать разработку, Гари купил 4-разрядный процессор Intel 4004 всего за 25 долларов. Гари разработал несколько вычислительных программ и решил заинтересовать Intel своими разработками. Руководство компании положительно оценило его наработки, и взяла его на работу — в качестве консультанта. 

После того, как его приняли на работу, он начал разрабатывать язык программирования PL/M. Чуть позже он адаптировал язык для процессора 8080. Intel выдала ему компьютер для работы — это был Intellec-8. Но выдала компания его в довольно-таки скудной конфигурации. Посудите сами: клавиатура, монитор и устройство для считывания перфолент. Гари кажется это неудобным, и он приходит к гениальной и революционной идее — использовать дисководы гибких дисков (дискеты). Для реализации своей идеи он приглашает Алана Шугарта — изобретателя гибкого диска и Джона Торода — однокурсника Гари. Вместе они смогли подключить к компьютеру Intellec-8 этот дисковод, оборудованный контроллером. Гари начинает разработку ядра операционной системы в виде программ для обращений и работы с памятью и дисками на более высоком, чем прямое аппаратное программирование, уровне. Окончив разработку ядра ОС спустя 2 месяца, он назвал ее Control Program/Monitor. Однако, позднее система стала называться уже как Control Program for Microcomputers.
Intellec
Intellec-8

Система CP/M стала стандартом де-факто в мире тогдашних компьютеров. Большая часть программ создавалось именно под эту ОС. Немудрено, что IBM заинтересовалась системой. Ведь, как известно, в 1981 году Голубой Гигант выпустил IBM PC — 16-разрядный ПК (во время разработки проекта предполагалось использование 8-битного процессора). CP/M же была исключительно восьмиразрядной системой. IBM же думала не только об ОС, но и об программном обеспечении (ПО) для него. Голубой Гигант был уже в курсе дел Microsoft — тогдашнего разработчика средств для программирования, в частности, Бейсика, Фортрана и Кобола для различных компьютерных систем. Представители голубого гиганта встретились с Гейтсом. Билл, пользуясь случаем, предлагает приобрести Бейсик. На вопрос, о том, какую ОС он видит в компьютерах, Билл ответил — CP/M и порекомендовал обратиться к Килдаллу.
Скриншот CP/M, Apple IICP/M для Apple II

Когда представители компании IBM пришли к Килдаллу домой, то увидели, что дома нет никого, кроме его жены — Дороти (Килдалл был в отъезде). Они начали вести переговоры с ней. Несмотря на то, что Дороти держалась молодцом и старалась не поддаваться уговорам, IBM могла уговорить ее — их тактика была наступательна и агрессивна. Компания хотела получить полные права на операционную систему. Когда же Килдалл вернулся из поездки, то прервал переговоры на неделю, объяснив это тем, что у него и его жены были планы — недельный круиз по Карибскому морю. Во время отсутствия Килдалла, подоспел и Гейтс. Он убедил компанию использовать новейшие 16-битные процессоры, что склонило чашу весов в пользу ОС от Microsoft которая была изначально создана под 16-битные процессоры. Гейтс пообещал предоставить систему в сроки. 

Стоит отметить, что Килдаллу сделка с IBM была бы только на пользу, и он от нее никак не пострадал бы. Он был готов продать систему, но это бы повлекло бы за собой заключение контракта с голубым гигантом. Однако, он не мог пойти на такой шаг, ведь ему пришлось бы работать еще больше. Он смог бы работать больше и больше, но ситуация в его семье не позволяла этого. Он и так слишком много работал, и это не нравилось его жене. Он редко когда был свободен. Поэтому он выбрал счастье в семье, прервав переговоры на круиз по Карибскому Морю.

Внимательный читатель наверняка задастся вопросом: какую же систему хотел предоставить Гейтс, если он тогда работал в компании, занимавшейся разработкой языков программирования и не имела никакой системы? И чем же была лучше эта система, если различалась она только разрядностью и программ под нее и быть не могло? Сейчас вы узнаете ответы на все вопросы.

Как вы поняли, CP/M никогда не принадлежала Microsoft и не является прямым прародителем MS-DOS. Все дело в том, что в компании Seattle Computer Products(SCP) начали разрабатывать компьютер на базе 16-битного процессора 8086. Я не буду вдаваться в обширные технические подробности. Просто скажу, что этот компьютер оборудовался 16-битным Бейсиком от Майкрософт. Но, как посчитал Род Брок (глава SCP), Бейсик был скорее игрушкой, а не мощным инструментом для разработки профессионального ПО. Поэтому было принято решение о создании собственной ОС.

Как я уже сказал, CP/M от Digital Research (компания Гари Килдалла) была де-факто стандартом. Готовился выход этой системы и под процессор 8086. Модифицированная система получила предварительное название CP/M-86. Компания Seattle Computer Products рассматривала модифицированную систему как вариант для своего компьютера. Но выход модификации задерживался, а компьютеры нуждались в системе. Один из выдающихся работников этой компании — Тим Паттерсон — предложил Броку разработать систему, которая будет даже лучше, чем CP/M. Стоит отметить, что в дипломной работе Паттерсона был и проект многозадачной ОС для процессора Zilog Z80 — одного из самого популярных в то время. 

Тим посчитал, что сможет реализовать подобное и для процессора 8086. У него был готовый план разработки системы. Первая часть плана включала в себя разработку «быстрой и грязной» системы (Quick-and-Dirty OS, QDOS; вы могли заметить это название в статье про Xenix). Вторая же часть плана (которая не была реализована) состояла в отладке и доработке данной дисковой операционной системы (Disk Operating System, DOS) и выпуск ее одно- и многопользовательской версии.

Паттерсон, в первую очередь, поставил задачу организации совместимости с CP/M. Из-за того, что CP/M — восьмибитная, а DOS — 16-битная системы, тысячи программ от первой никогда не смогли бы запуститься на второй. Однако выход был найден — была создана совместимость на уровне API (Application Programming Interface). Иными словами, при разработке под DOS все выглядело и было так, как будто ты пишешь программу под CP/M. Чтобы новая система была более быстрая, Паттерсон писал ее на чистом ассемблере. Выбор файловой системы пал на FAT, которая была в то время самой приемлемой.


Тим Паттерсон. Чем-то на Шаттлворта похож :)

Система QDOS была разработана в течении 6 (!!!) недель. При разработке системы, Паттерсон использовал штатную документацию от CP/M. Вышло так, что был разработан полный аналог системы для 16-битных процессоров. Такой подход (разработка, а не копирование) называется Clean Room. Данное понятие было введено компанией Phoenix позднее.

В декабре 1980 года была выпущена новая версия QDOS, но уже под новым названием — 86-DOS 0.33. 4 тысячи ассемблерного кода именно этой системы были приобретены компанией (угадай, кто?) Microsoft.


Майкрософт приобрела систему, в целом, за 25 тыс. долларов. Еще Майкрософт пригласила на роль ведущего разработчика Тима Паттерсона, создателя этой ОС. Как я уже сказал, Майкрософт пообещала IBM предоставить ОС в сроки, которые уже скоро должны были наступить. Паттерсон старался как можно быстрее доработать систему под требования голубого гиганта. Итог таков: IBM получает недоработанную местами MS-DOS 1.0 и переименовывает ее в PC-DOS.

Благодаря тому, что MS-DOS 1.0 базировалась на QDOS, которая, в свою очередь, базировалась на CP/M, огромное количество программ для CP/M могло запуститься на MS-DOS.

Стоит отметить тот факт, что MS-DOS 1.0 — это переработанная 86-DOS 0.33. Паттерсон же выпустил отдельную версию 86-DOS 1.0. Естественно, что MS-DOS 1.0 никак не могла стать объектом правовых разбирательств. Тем не менее, SCP, спустя 5 лет после продажи своей разработки, потребовала от Майкрософт в суде пересмотреть условия сделки. Итог таков: Майкрософт выплатила около 975 млн. долларов компании из Сиэтла. Такая сумма — это как капля в море денег, которые были добыты стараниями Гейста.


Гари Килдалл

Интересными являются высказывания создателя оригинальной CP/M Гари Килдалла. Когда он впервые увидел PC-DOS, то сказал, что "был очень поражен сходством CP/M и PC-DOS. Я был вне себя от ярости на IBM и Microsoft. Спросите любого мало-мальски знающего компьютер человека — он подтвердит, что даже команды обеих систем были одинаковы. Невероятно!". Также он сказал: "Спросите Гейтса, почему при использовании функции 09Н (прерывание — прим. timblaer) строковые последовательности оканчиваются знаком доллара. Он не ответит вам. Я один знаю правду".

Гари Килдалл не стал составлять иски к IBM и Microsoft. IBM же, в качестве «компенсации», включила его CP/M-86 в список доступных для компьютера PC операционных систем (при покупке можно было делать выбор). Но все стало еще хуже. Дело в том, что из трех представленных ОС (UСSD (со встроенным паскалем), PC-DOS и CP/M), самой дешевой оказалась PC-DOS, цена которой была 60 долларов против 175 долларов у CP/M.

Microsoft никогда до этого времени не уделяла внимания операционным системам. Задумалась она об этом лишь с выходом MS-DOS 2.0, стартовав собственную кампанию по продажам системы. Паттерсон к тому времени ушел с поста разработчика по своим причинам, уступив место Марку Збиковски (его инициалы MZ до сих пор можно увидеть в любом EXE-файле). 


MS-DOS 1.0

Майкрософт смогла убедить IBM не заключать более договоров, по которым права на систему принадлежат IBM. Взамен этого Майкрософт предложила продавать компьютеры отдельно от системы, а каждый компьютер, оборудованный системой от Майкрософт, приносил определенный процент в копилку Майкрософта.

Так был заложен фундамент для системы, которая вплоть до 2000 года (!) использовалась в системах от Майкрософт. Эта система стала культовой для нескольких поколений.

Сегодня вы узнали историю зарождения системы MS-DOS. Жду ваших отзывов и пожеланий!


В следующем выпуске: MS-DOS как самостоятельная система.

Комментариев нет:

Отправить комментарий