Кто придумал MS-DOS? Почему Digital Research проиграла Microsoft? Почему MS-DOS и CP/M похожи как две капли воды? За чье молчание Билл Гейтс заплатил миллион долларов? Почему Гари Килдалл отказался от заманчивого предложения IBM? Как Гейтс убедил IBM стать партнером по суперприбыльному бизнесу продажи ПК?

В этой статье мы попытаемся достаточно подробно остановиться на ряде вопросов, которые имеют прямое или косвенное отношение к предыстории рождения MS-DOS. Как нам представляется, детальное изложение событий не только поможет разобраться, что послужило предпосылками для появления этой ОС, но и в общих чертах отразит состояние микрокомпьютерных технологий в конце 70-x и начале 80-х годов минувшего столетия.

Трагедия Гари Килдалла. Эпоха CP/M

К концу 1970-х операционная система CP/M стала промышленным стандартом де-факто на рынке 8-разрядных микрокомпьютеров, под нее разрабатывалась большая часть программного обеспечения. По некоторым данным, общее число реализованных копий за все время существования CP/M составляет более 1,5 млн. Ее повсеместная востребованность объяснялась в первую очередь наличием встроенной поддержки дисководов с гибкими магнитными дисками. Использование же последних было оправдано удобством произвольного доступа к данным — в отличие от той же магнитной ленты. Между тем стабильная и прибыльная монополия CP/M была практически в одночасье разрушена с рождением 12 августа 1981 г. IBM PC — первого удачного персонального компьютера от IBM.

История CP/M началась с того, что Гари Килдалл (Gary Kildall) в 1972 г. по чистой случайности приобрел за 25 долл. 4-разрядный микропроцессор Intel 4004. Создав ряд программ для навигационных расчетов, Килдалл пробует заинтересовать Intel своими разработками. Руководство компании положительно оценивает способности Гари и берет его на работу в качестве консультанта. К концу 1973 г. Килдалл придумывает язык программирования PL/M (Programming Language for Microcomputers), объединяющий идеи PL/I, Алгола и XPL. Немного позже он начинает создание версии PL/M для процессора 8080. Однако компьютер Intellec-8, на котором работает Гари по поручению Intel, обладал довольно скромной конфигурацией (клавиатура, монитор, считыватель с перфоленты). И Килдалл приходит к выводу о необходимости использования дисковода с гибкими магнитными дисками. Да, это было действительно революционной идеей.

Восьмидюймовый гибкий диск (1971, справа)

В сотрудничестве с Аланом Шугартом (Alan Shugart), изобретателем гибкого диска, и Джоном Тородом (John Torod), своим однокурсником, Килдалл подключает к Intellec-8 дисковод, снабженный контроллером. После этого он приступает к созданию операционной системы как набора сервисных программ для организации обмена данными с памятью и дисками на уровне более высоком, чем прямое аппаратное программирование. Через два месяца ядро операционной системы было готово. Свое детище Гари решил назвать CP/M — Control Program/Monitor, это уже потом аббревиатура стала расшифровываться как Control Program/Microcomputer.

В последующем Килдалл постоянно дорабатывает CP/M, снабжая ее дополнительными средствами и сервисными утилитами. Со временем он создает варианты CP/M и для других процессоров. Самое удивительное, что руководство Intel абсолютно не заинтересовалось появлением CP/M, хотя компания имела грандиозные планы в отношении PL/M. В дальнейшем Килдалл организует собственную компанию Digital Research, отдавая большую часть времени работе над CP/M. Между тем судьба уготовила Килдаллу сюрприз, причем довольно неприятный.

В 1980 г., исходя из текущей рыночной ситуации, корпорация IBM решает построить собственный 16-разрядный персональный компьютер, подобный популярному Apple, с похожим программным обеспечением. И для этого, разумеется, нужна была операционная система. Однако на тот момент версии CP/M были исключительно 8-разрядными. Параллельно с этим корпорация IBM задумывается и о наборе ПО для проектируемого ПК. Зная об успешных разработках Microsoft (несколько версий Бейсика, Кобола и Фортрана для различных компьютерных систем), IBM встречается с Биллом Гейтсом, попросив того высказать свои соображения в отношении будущего ПК. Гейтс, конечно же, предлагает голубому гиганту приобрести у него Бейсик. А на вопрос об операционной системе советует обратиться к Гари Килдаллу — автору CP/M. Но тот медлит, а Гейтс не упускает свой шанс: он отсылает в IBM письмо, в котором убеждает компанию использовать в создаваемом компьютере 16-разрядный микропроцессор Intel 8088, а не 8-разрядный. В дальнейшем письмо позволит ему склонить чашу весов в выборе IBM на свою сторону, так как это предполагает, что CP/M Гари Килдалла изначально выполнена для 8-разрядных машин, а ОС от Microsoft «заточена» якобы под 16-разрядные компьютеры. Разумеется, Гейтс обещает поставить IBM нужную ей операционную систему в должные сроки.

Тем временем Пол Аллен, соратник Гейтса, приобретает операционную систему QDOS Тима Патерсона (Tim Paterson), никому не известного программиста из фирмы Seattle Computer Products. И вновь судьба-злодейка выставила всех участников этой истории в странном, искаженном свете: QDOS оказывается невероятно похожей на СР/М Гари Килдалла.

История Тима Патерсона. Период 86-DOS

Хотя доподлинно известно, что MS-DOS приобрела популярность благодаря успеху IBM PC, корни ее берут начало в первых поколениях микрокомпьютеров. Так, первые, широко распространенные микрокомпьютеры были построены на аппаратной части, использующей так называемую шину S-100. Начало этому было положено с появлением в 1976 г. разработанного предприятием MITS (Microwave Instrumentation and Telemetry Systems) компьютера Altair 8800. Конструктивной особенностью системной платы Altair было отсутствие на ней каких-либо жестко встроенных модулей — по сути, она имела только ряд 100-контактных разъемов (шин S-100), необходимых для подключения других плат. В роли последних выступали как непосредственно основные элементы компьютера (процессор, память), так и дополнительные (терминал, последовательные и параллельные интерфейсы, адаптеры клавиатуры, дисплея, магнитофона). Фактически пользователь мог выбрать конфигурацию Altair по своему усмотрению: расширить память, модернизировать процессор, добавить новые функции. Именно она, шина S-100, обеспечила поразительную популярность Altair 8800, обусловленную гибкостью его конструкции. Только благодаря концепции S-100 появилось множество фирм и предприятий, разрабатывающих платы для Altair.

В 1978 г. небольшая фирма Seattle Computer Products (SCP), располагающаяся в городе Туквила (Tukwila), шт. Вашингтон, начала производство карт памяти для шины S-100. Часть своей продукции SCP реализовывала посредством специализирующегося на компьютерах магазина в Сиэтле — The Retail Computer Store. В этом магазине работает техником Тим Патерсон, одновременно учащийся в Университете Вашингтона (University of Washington). Примечательным для нашей истории оказался один факт биографии Тима: он очень хорошо разбирался в компьютере Imsai 8080.

Однажды, когда владелец SCP Род Брок (Rod Brock) в очередной раз приехал в магазин забрать новые заказы от покупателей, они разговорились. Брок пожаловался Патерсону на ряд проблем, возникающих при использовании производимых SCP плат памяти. Тим высказал по этому поводу несколько толковых идей, Брок же взял парня на заметку и после окончания университета предложил Патерсону работу в SCP, где тот, согласившись на зарплату в 50 долл. в день, и пытался найти решение задачи.

Персональный компьютер Altair 8800 (1975, 397 долл.): сколько же талантов он воспитал?

В июле 1978 г. появляется микропроцессор Intel 8086. Опытный Брок посылает Тима на интеловский семинар, посвященный новому продукту. Заметим, что подавляющее большинство тогдашних компьютеров со схемой

S-100 базировалось либо на Intel 8080, либо на Zilog Z-80. Процессор 8086 был потенциально быстрее своих предшественников, хотя и не мог выполнять существующие 8-разрядные программы.

Будучи достаточно прозорливым, Брок дает Патерсону задание разработать плату с процессором 8086 для шины S-100. Первые удачные прототипы появились уже в мае 1979 г. Тогда же SCP обращается в Microsoft с просьбой подумать о создании 16-разрядного ПО для нового компьютера компании. Так уж случилось, что в самой Microsoft уже какое-то время велись разработки программ для 8086. В итоге прототипы SCP снабжаются 16-разрядной автономной дисковой версией Бейсика от Microsoft.

В ноябре 1979 г. SCP начинает продажи своих компьютеров на базе Altair и процессора 8086 с установленным интерпретатором Бейсика от Microsoft. Между тем Бейсик, являясь скорее игрушкой, чем полноценным языком программирования, не предлагал каких-либо удачных средств для написания стороннего коммерческого ПО, поэтому Брок принимает решение о создании операционной системы для своих компьютеров.

Не секрет, что в то время ОС CP/M производства Digital Research являлась чуть ли не единственной операционной системой для 8-разрядных микрокомпьютеров, своего рода стандартом де-факто. Следуя за технологическим прогрессом, Digital Research усиленно работает над новой, 16-разрядной версией своей ОС (CP/M-86), предназначенной для использования в компьютерах на основе процессора 8086. Становится понятно, почему Digital Research заинтересовалась разработкой SCP. Однако Брок сотрудничать отказывается. Между тем выход CP/M-86 намечен на конец 1979 г.

Но даже к апрелю 1980 г. CP/M-86 так и не выходит — Брок сильно обеспокоен. И действительно, кто купит компьютеры, пусть даже с новым 8086, но без набора программного обеспечения? Думается, только либо разработчики, либо энтузиасты, желающие быть всегда на гребне технологической волны. Патерсон предлагает Броку написать собственную операционную систему, не дожидаясь, пока Гари Килдалл закончит свою CP/M-86.

Итак, наш герой чувствует, что сможет проделать аналогичную работу и в отношении 8086, причем уверен, что его ОС (далее по тексту DOS — Disk Operating System, дисковая операционная система) окажется много лучше CP/M. План Тима состоял из двух этапов. Первым делом Патерсон предполагает создание «быстрой и грязной» (quick and dirty) DOS — для того чтобы немедленно заполнить недостающее звено в цепи продаж компьютеров на базе 8086. Далее планировалась тщательная отладка (так никогда, к сожалению, и не реализованная) готовой DOS, которая затем должна была явиться в двух версиях: одно- и многопользовательской. Брок соглашается.

Патерсон выбрал верную стратегию для разработки DOS. В первую очередь была поставлена цель максимально облегчить написание ПО сторонними программистами в окружении DOS, а также упростить процесс переноса на другие платформы. Дело в том, что программы для 8-разрядной CP/M не могли непосредственно исполняться 16-разрядным 8086, их следовало немного переработать с учетом схемы адресации данных, поддерживаемой новым процессором. А поскольку CP/M лидировала в качестве операционной системы на микрокомпьютере, под нее были написаны тысячи программ, которые и требовалось перенести в среду DOS. Для этого Тим решил добиться совместимости с уже существующей 8-разрядной CP/M на уровне API-интерфейса. Это значительно облегчило программирование в DOS: все выглядело так, будто вы пишете под старой доброй CP/M.

Во-вторых, желая наделить свою операционную систему максимальной эффективностью и быстродействием, он пишет ее на чистом ассемблере.

В период с апреля по июль 1980 г. Патерсон тратит почти половину своего времени на создание QDOS. И уже в августе QDOS 0.11 начала продаваться в комплекте с компьютерами производства SCP на основе Intel 8086. Брок вновь связывается с Microsoft и предлагает ей заняться адаптированием существующего ПО под окружение QDOS. Гейтс выражает готовность, но... только за деньги.

В декабре 1980 г. Патерсон выпускает новую версию QDOS под маркой 86-DOS 0.33. Именно ее исходные тексты (порядка 4 тыс. ассемблерных строк) в последующем и приобретает Microsoft.

Гениальный Гейтс. Время MS-DOS

Некоторое время спустя Microsoft все же заключает с SCP сделку: Гейтс единоразово выплачивает Броку сумму в 10 тыс. долл. за право продажи 86-DOS и по 15 тыс. долл. за каждого OEM-партнера (Original Equipment Manufacturer, изготовитель комплексного оборудования), согласившегося купить 86-DOS. При этом, разумеется, Билл не раскрывает (это было условием сделки) того, что уже имеющимся партнером выступает сама IBM. В итоге удовлетворенные стороны подписывают необходимые бумаги: Брок получает вожделенные 25 тыс. долл., Microsoft — 86-DOS.

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

В апреле 1981 г. Тим Патерсон покидает Seattle Computer Products (успев выпустить, кстати, 86-DOS 1.0), а в мае по приглашению Гейтса устраивается на работу в Microsoft. В этом Билл заинтересован, как никто другой: ведь необходимо избежать возможных скандалов вокруг авторских прав на 86-DOS, а также облегчить труд Microsoft по адаптации этой ОС под запросы IBM. До невозможности удивленный и даже рассерженный тем фактом, что заказчиком операционной системы выступает IBM, Патерсон все же продолжает работу над 86-DOS под крылом заботливого Гейтса.

В самом напряженном темпе, чрезвычайно эффективно используя отпущенное время, Патерсон перерабатывает 86-DOS под требования IBM. Разумеется, сроки поджимают — Тим не успевает до конца выполнить все поставленные условия. В июле он передает то, что имелось на тот день, — местами недоработанную MS-DOS 1.0. Голубой гигант изменяет название операционной системы на PC-DOS 1.0 и начинает ее поставки вместе со своим IBM PC.

Напомним, что Гейтс приобрел исходные тексты 86-DOS 0.33, хотя в апреле 1981 г. Патерсон выпустил 86-DOS 1.0. Понятно, что MS-DOS 1.0, полученная в результате переработки Патерсоном 86-DOS 0.3, уже не могла служить камнем преткновения для выяснения, кому же принадлежат авторские права на DOS — Броку (Seattle Computer Products) или Гейтсу (Microsoft).

Когда Гари Килдалл увидел PC-DOS, то высказался примерно так: «Я был сильно поражен потрясающей схожестью между PC-DOS и СР/М. Я был вне себя от злости на IBM и Microsoft. Все, кто хоть немного разбирался в компьютерах, могли убедиться, что даже команды этих операционных систем были одинаковыми. Это было просто невероятно!»

Возмущенный Килдалл выразил свое недоумение по поводу того, что такой гигант, как IBM, умудрился сделать подобное. Однако все-таки не решился предпринимать какие-либо судебные меры в отношении корпорации — как из-за своего склада характера, так и по причине поступившего от IBM предложения. Компания посулила в качестве компенсации включить только что созданную Килдаллом 16-разрядную версию ОС (CP/M-86) в состав ПО, поставляемого с IBM PC. Но все оказалось еще хуже, чем хотелось несчастному Килдаллу.

Одна из первых версий MS-DOS 1.0

Так, при приобретении IBM PC покупателю предлагалось выбрать из трех ОС: PC-DOS, CP/M-86 и P-System UCSD (ОС с интегрированным языком Паскаль). Благодаря тому что PC-DOS оказалась самой дешевой, выбор потребителя пал именно на нее — наметилась тенденция комплектовать все последующие компьютеры IBM PC только PC-DOS.

Что касается коммерческого видения DOS, до определенных пор для Microsoft эта ОС представлялась исключительно как вотчина IBM — Гейтс уделял много времени рынку языков программирования. Однако уже в 1982 г. Microsoft решает выйти на коммерческую арену операционных систем, заинтересовав ею и своих OEM-партнеров. Тогда же она проводит политику перехода с CP/M-версий своих продуктов (тех же языков программирования) исключительно на их DOS-реализации. Подобный шаг значительно ослабил лидирующие позиции Digital Research в монополии де-факто на операционные системы для микрокомпьютеров.

Необходимо понимать, почему Microsoft удалось пойти собственным путем вразрез с планами IBM, начав собственную кампанию по продаже MS-DOS. Во-первых, сразу после получения вожделенной MS-DOS 1.0 для своего персонального компьютера IBM, конечно же, проводит ее ревизию и, обнаружив порядка 300 ошибок, переписывает неверные участки, попутно переименовав в PC-DOS. По причине этой вынужденной модификации первоначальной версии MS-DOS и IBM, и Microsoft обладают авторскими правами на данную операционную систему.

Во-вторых, Гейтсу, уверенному в будущем MS-DOS, удалось убедить IBM не заключать с ним исключительного лицензионного соглашения по передаче всех прав на DOS, а также уговорить корпорацию продавать ПК отдельно от операционной системы. По условиям контракта Microsoft получала некоторый процент с каждого проданного IBM PC. Забавно, но нынешние менеджеры изучают детали этого договора в качестве примера катастрофической ошибки со стороны IBM.

Правильная маркетинговая политика Microsoft вкупе с успехом IBM PC послужили созданию прочного 15-летнего фундамента для DOS. В течение этого срока, вплоть до прихода на рынок Windows 95, DOS непрестанно развивалась, совершенствовалась и впитывала лучшие разработки третьих фирм, оставаясь при этом, конечно же, доминирующей ОС в нише персональных компьютеров. Учитывая плановую стратегию перехода из 16-разрядного мира DOS в сферу 32-разрядных Windows 95 и Windows NT, как относительно перспективных операционных сред, Microsoft постепенно прекратила обновления и реализацию MS-DOS.

На сегодняшний день можно смело утверждать, что эпоха DOS завершилась. Путь DOS — это путь любой мало-мальски успешной разработки в золотом веке персональных компьютеров. Опыт ее распространения — это опыт своевременной и верной маркетинговой политики в отношении перспективных бизнес-решений. Итоги ее эпохи — это поколение программистов на IBM PC — коммерчески наиболее удачной модели персонального компьютера.

Юрий Стрельченко dot@omen.ru

Екатерина Турбинаturbina2@tut.by