Рано или поздно оказываются забытыми почти все ИТ-продукты, бывшие популярными в свое время.

Гари Килдалл был невероятно продуктивен и брался за все, что ему казалось сложным и интересным

11 июля 1994 года при невыясненных обстоятельствах в одном из баров на калифорнийском побережье погиб Гари Килдалл. Сегодня ему было бы почти шестьдесят и он наверняка бы преуспевал, входил в клуб руководителей крупнейших компьютерных компаний мира. Но беда в том, что он лет на 10-15 постарше большинства из них и, может быть, именно эта разница в полпоколения и не позволила в конечном счете занять принадлежащее ему по праву место в компьютерной истории. В отличие от других Килдалл так и не стал бизнесменом, ему помешали излишний академизм и романтичность, ему недоставало прагматизма, имевшегося у его более известных последователей в избытке. В итоге сейчас его имя известно в основном историкам отрасли, вместе с ним канули в Лету и его главные творения: операционные системы CP/M и DR-DOS, язык программирования PL/M. Но кое-что живет; стоит напомнить, что появлением в профессиональном языке термина «флоппи-диск» мы обязаны Килдаллу, это он впервые использовал его для названия гибких (flexible) дисков.

Забвение — печальная судьба практически всего, что делается в ИТ. Рано или поздно оказываются забытыми почти все продукты, бывшие популярными в свое время. Но они не исчезают совсем. При более внимательном рассмотрении оказывается, что многие идеи, воплощенные в них, либо все еще живут в продуктах с другими именами либо оказывают заметное влияние на их появление.

Это относится и к творческому наследию Килдалла. Он обрел популярность, создав CP/M — самую распространенную операционную систему на персональных компьютерах, принятую еще до появления «стандарта» IBM PC. Даже в СССР она была известна, сюда поступало много дешевых компьютеров Robotron из тогдашней Германской Демократической Республики. О том, откуда взялась эта CP/M, тогда никто и не задумывался, а сейчас, спустя годы, обнаруживается драматическая история системы и ее автора Гари Килдалла, сделавшего ее в одиночку.

CP/M унаследовала очень многое от операционных систем корпорации Digital Equipment, в том числе структуру каталогов, набор системных команд и их названия

Килдалл был невероятно продуктивен и брался за все, что ему казалось сложным и интересным. Например, когда он решил научить сына программированию на LOGO, то не стал ни к кому обращаться и сам написал интерпретатор для этого языка. А разработкой системы класса кросс-системы для микропроцессора Intel 4004 мог бы заниматься как минимум отдел советского НИИ. Спору нет, по сути, и в наших условиях ее бы все равно делали один-два человека, но в том-то и разница, что Килдалл и его единомышленники не нуждались ни в каких организационных структурах, чтобы делать свои компьютеры и операционные системы.

Когда ретроспективно смотришь на те жалкие (иначе и не скажешь) ресурсы, с которых началась компьютерная революция 70-х, и сравниваешь их с сотнями тысяч квалифицированных специалистов, разбросанных в те же годы по бесчисленным «ящикам» и НИИ, еще яснее понимаешь всю непродуктивность существовавшей системы. Поду`майте, в тот момент, когда Intel создала свой первый микропроцессор, эта компания насчитывала меньше 12 сотрудников, а почти за 10 лет до этого был отстроен подмосковный Зеленоград со всеми его производствами. Пар в нашем котле, как в той бане из анекдота, «ушел в гудок», а жаль.

Intel 4004 и PL/M

Однако вернемся к Гари Килдаллу. Начало его жизненного пути не предвещало ничего необычного, еще с 20-х годов его семья имела довольно своеобразный семейный бизнес, держа морскую школу Kildall Nautical School. Детство Гари провел в ее учебных лабораториях и не помышлял об ином поприще, чем то, которому отдали свою жизнь его близкие. Он, наверное, стал бы преподавателем в этой же школе, но судьба распорядилась по-другому. Началась вьетнамская война и, чтобы «закосить» от нее, выпускник математического факультета Университета штата Вашингтон пошел в военно-морской флот, чтобы преподавать программирование в морской школе более высокого ранга — U.S. Naval Postgraduate School, расположенной в заливе Монтерей.

Здесь в 1972 году он увидел объявление о продаже «микрокомпьютера за 25 долл.», на самом деле это был микропроцессор 4004 (четверка в «4004» означает, что процессор оперирует данными размером в четыре бита, восьмерка в следующей модели «8008» — указание на полный байт), названный компьютером, чтобы показать его универсальность. Эта скромная реклама стала причиной второго поворота в судьбе молодого преподавателя. Для начала Килдалл решил использовать новинку для расчета навигационных таблиц в отцовской школе, но оказалось, что программировать в кодах такой процессор крайне неудобно, и со свойственной ему решимостью Гари взялся за дело.

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

Первым практическим результатом его работы на Intel стал язык программирования PL/M (Programming Language for Microprocessors), вариация на тему известного языка PL/1. Вначале язык был реализован как кросс-система для мэйнфреймов IBM-360 и мини-компьютеров DEC PDP-10, где программы, написанные на языке высокого уровня, преобразовывались в коды целевого процессора. Пользуясь всем сервисом, который предоставлял большой компьютер, можно было писать программы, которые перекомпилировались в коды «голых» микропроцессоров 4004 и 8008. На создание языка и системы кросс-компиляции ушло всего несколько месяцев. В последующих реализациях PL/M вшивался в постоянную память первого компьютера от Intel, который назывался Intellec-4.

Работа, выполненная Килдаллом на этом этапе, очень напоминает то, что сделали Билл Гейтс и Пол Аллен при реализации языка Basic для компьютеров Altair. Но для него язык не был самоцелью, сотрудничество с набирающим силу производителем микропроцессоров позволило Килдаллу создать лабораторию в U.S. Naval Postgraduate School, ставшую научным центром, ориентированным на исследования, связанные с применением микропроцессоров. В лаборатории велись работы, которые сегодня можно рассматривать как одни из ранних попыток создания персонального компьютера. Заметим, в 1973 году Altair, признанный сегодня в качестве первого ПК, еще не существовал даже в проекте. Реально работа в лаборатории началась с того, что Intel передала ей микрокомпьютер Intellec-8 с процессором 8080, клавиатурой, монитором и считывателем с перфоленты. Килдалл быстро осознал непродуктивность такой конфигурации и пришел к необходимости включить в нее гибкий диск. Сегодня это почти тривиально, но это был революционный шаг. Существовавшие в то время компании — MITS, IMSAI и другие, поставлявшие на рынок аналогичную технику, еще очень долго не решались воспользоваться этой идеей и ограничивались перфолентой для ввода и вывода данных.

Для подключения флоппи-дисков, производимых компанией Shugart (вначале 8-дюймовых емкостью 180/360 Кбайт, позже 5-дюймовых), потребовалось создать новый тип устройства, который мы теперь называем контроллером дисков. С этой проблемой Килдаллу помог справиться его однокашник по университету Джон Тород. Общими усилиями они собрали нечто очень похожее на прототип современного ПК.

CP/M

После того как флоппи-диск был подключен, вполне естественным шагом для человека, готового к амбициозным проектам, оказалось намерение самостоятельно создать операционную систему, чтобы превратить Intellec-8 в нормальную вычислительную машину. И вот на основе PL/M была разработана операционная система CP/M (Control Program for Microcomputers или Control Program/Monitor), ставшая через несколько лет стандартом для компьютеров на базе процессоров 8080, 8085 и Z80. Поразительно, но к новому детищу Килдалла в Intel почему-то остались равнодушны. Сегодня можно только удивляться тому, что Intel купила язык PL/M немедленно и без размышлений, а от CP/M отказалась, не веря в то, что кто-то будет использовать ее детище Intellec-8 как самостоятельное вычислительное устройство.

Необходимость развертывания массового производства микропроцессоров оказалась на тот момент более актуальной. В результате компания отвернулась от собственного прототипа ПК, уступив этот рынок другим. Кто знает, если бы решение было иным, каким стал бы мир персональных компьютеров? Но, как известно, история не знает сослагательных наклонений.

CP/M унаследовала очень многое от операционных систем корпорации Digital Equipment, в том числе структуру каталогов, набор системных команд и их названия. Не случайно в одном из журналов ее уподобили DECSYSTEM 10. Вообще же влияние разработок DEC на появление ПК все еще недооценено.

Отпочковавшись от Intel, Килдалл вместе со своей женой Дороти образовал компанию Intergalactic Digital Research, которая в последующем стала известна под более простым названием Digital Research. Свой бизнес они намеревались делать на распространении CP/M. По тем масштабам она расходилась в таких количествах, что Digital Research обвинили в монополизме. Но особое значение имело соглашение с IMSAI, заключенное в 1977 году. Эта компания одной из первых стала поставлять на рынок полностью интегрированные клоны Altair, включающие процессорный блок, монитор и гибкие диски. Единственное, чего не хватало, — это операционной системы, и IMSAI предложила Килдаллу продать им свою ОС. Сделка состоялась, и CP/M начала отдельное от автора существование. Правда, условия сделки были не очень выгодны (сказалась неопытность Гари как бизнесмена) но она помогла становлению CP/M в качестве стандарта де-факто, теперь и другие компании лицензировали ОС с большей выгодой для ее создателя, и он вскоре стал весьма состоятельным человеком.

DR-DOS и MS-DOS

GEM (Graphical Environment Manager) представлял собой интерфейс в стиле Apple для компьютеров, отличных от «Макинтошей»

CP/M постоянно развивалась. Вначале обнаружилась необходимость отделить общую часть ОС от специализированной, связанной с определенной архитектурой процессора и системы, и появился такой известный компонент ОС, как BIOS (Basic Input/Output System). Затем была разработана многозадачная версия MP/M, наконец, с появлением процессоров 8086 была создана версия CP/M-86. С 1987 года система стала называться DR-DOS, и ее первой стандартной редакцией в 1988 году стала версия DR-DOS 3.41, конкурировавшая с MS-DOS 3.3.

Несколько лет MS-DOS и DR-DOS развивались параллельно, IBM поддерживала только первую, а вторая свободно продавалась. С точки зрения пользователя они были совместимы, причем по целому ряду характеристик многие отдавали преимущество DR-DOS, например, у нее был более удобный интерфейс, более развитые средства для работы с дисками и лучшая защита по паролю. Так продолжалось до осени 1991 года, когда Microsoft объявила о планируемой поставке оболочки Windows 3.1, которая не предусматривала совместимость с DR-DOS. Это был жестокий удар, за один год продажи упали более чем в десять раз, и DR-DOS 6.0, принадлежавшая к тому времени Novell, практически ушла со сцены, хотя и была в 1993 году выпущена версия Novell DOS 7.0.

О том, как и почему именно MS-DOS попала на IBM PC и послужила фундаментом для экономического могущества Microsoft, существует множество мифов и легенд. Каждая из заинтересованных сторон трактует события на свой лад. Достоверно известно, что к лету 1980 года, когда IBM обнаружила необходимость в PC-DOS для своих ПК, между Digital Research и Microsoft, как потенциальными партнерами, были заметные различия, причем не в пользу Microsoft. Первая имела многолетний опыт работы в создании операционных систем, а вторая, начинающая фирма, была компетентна только в языках, преимущественно в Basic. Вполне естественно, что IBM вначале обратилась в Digital Research, чтобы тем или иным образом получить ее CP/M. Но Килдалл пропустил эту сделку, говорят, что он в это время пилотировал самолет и не пожелал прервать это занятие, или что-то в этом духе. Одним словом, не сошлись, и подача перешла к Microsoft, где шанс использовали, как надо, по полной.

Объективности ради стоит заметить, что в точности удовлетворяющей потребности IBM 16-разрядной версии операционной системы у Килдалла все же на тот момент не было. По какой-то причине раньше него ее сделал Тим Патерсон из небольшой компании Seattle Computer Products. Официально его ОС называлась 86-DOS, автор откровенно признавал свои недоделки, объясняя их тем, что он быстренько, за два месяца, переписал CP/M для процессора 8086, не сильно заботясь о стиле программирования. О качестве получившегося в результате продукта говорит его внутреннее название QDOS (Quick and Dirty Operating System). И вот именно эту систему купила Microsoft, чтобы в последующем сделать ее основой для MS-DOS.

Есть еще одна достаточно сложная история, которая связывает Digital Research и Microsoft. Работа над средой для LOGO способствовала тому, что Килдалл сосредоточил свое внимание на графических пользовательских интерфесах и создал продукт GEM (Graphical Environment Manager), который представлял собой интерфейс в стиле Apple для компьютеров, отличных от «Макинтошей». Есть мнение, что именно GEM своим существованием стимулировал появление Windows и OS/2, однако массовым он так и не стал. Это объясняют несколькими причинами, но прежде всего маркетинговыми приемами, использованными конкурентами в борьбе против GEM. Они не отличались изысканностью и благородством, поскольку шла речь о дележке крупного пирога. За несколько предшествовавших созданию GEM лет публика поверила Microsoft, ждала программных продуктов именно от нее, поэтому примерно на три года постоянных обещаний Windows блокировали развитие и продажи других графических интерфейсов, в том числе не только GEM, но и Geo-Works и Visi-On.

Подводя итоги

К числу основных достижений Килдалла относятся его решающая роль во внедрении многозадачных операционных систем с вытеснением программ (preemptive multitasking), оконными возможностями и использованием меню для интерфейса и выделенной BIOS, а также создание первого механизма работы с флоппи-дисками, включая буферизацию, алгоритмы чтения вперед, кэширование каталогов, эмуляцию диска в оперативной памяти. В последние годы жизни Килдалл много внимания уделял созданию файловой системы и структуры данных для CD-ROM.

Чтобы не создалось превратного впечатления о причинах его гибели, надо сказать, что в последние годы жизни он был настолько состоятелен, что являлся обладателем коллекции из нескольких десятков спортивных автомобилей.