«Открытые системы»

Перефразируя известное выражение относительно «Шинели» Гоголя, можно сказать, что все современные операционные системы вышли из Multics и RSX-11
В 1964 году в Кембриджском исследовательском центре IBM была разработана операционная система CP/CMS для мэйнфреймов System/360

На компьютерах первого и второго поколений все ресурсы отдавались одной исполняемой программе, написанной в кодах или на ассемблере, а для управления вводом/выводом достаточно было всего нескольких специальных команд. В таких условиях потребности в управляющей программе, которую позже назвали операционной системой, не возникало.

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

Они стали еще актуальнее с появлением языков высокого уровня, в которых не было прямой возможности для использования машинных команд компьютера. Так, непосредственно после создания компилятора с Фортрана в компании General Motors совместно с North American Aviation написали мониторную систему FORTRAN monitor system для IBM-704. Аналогичный инструментарий был создан для системы наблюдения за воздушным движением Semi-Automatic Ground Environment (SAGE). Функции мониторных систем (еще их иногда называли супервизорами), которые стали предшественницами операционных систем, в основном состояли в организации пакетного режима. Организация управления по современным меркам выглядела довольно экзотичной: карты с операторами на языке управления заданиями JCL собирались в колоду, после ввода которой последовательность операторов определяла специфику выполнения задания. Подобной системой снабжались первые модели EC-ЭВМ; в БЭСМ-6 она называлась «Мониторная система Дубна».

Апогеем в развитии пакетного режима стала OS/360 (1964 год). Ее разработкой руководил Фредерик Брукс, автор известной книги «Мистический человеко-месяц». Книга, посвященная разработке больших систем, пользовалась большой популярностью. Среди афористических выражений, которыми она была насыщена, одно получило название закона Брукса: «Если проект запаздывает, то добавление рабочей силы задержит его еще больше». Пакетный режим не оправдал ожиданий, оказавшись всего лишь паллиативом; он отличался чудовищным неудобством — общение программистов с компьютером ограничивалось окошком для сдачи заданий и получения распечаток с результатами. Пользование языком JCL требовало особой квалификации, поэтому обычно обходились стандартными заданиями, позволявшими хоть как-то выполнить программу.

Единственной альтернативой пакетному режиму мог быть только многопользовательский режим работы. Как и почти во всех новациях 60-х, пионерами в его создании выступили сотрудники Массачусетского технологического института. В 1961 году под руководством Роберта Фано и Фернандо Корбато была создана система Compatible Time-Sharing System, поддерживающая режим разделения времени. CTSS и аналогичные ей системы давали возможность пользователям, работающим на подключенных к машине терминалах, самим выполнять задания в соответствии с присвоенными им приоритетами, в интерактивном режиме редактируя и отлаживая свои программы. В 1964 году в Кембриджском исследовательском центре IBM была разработана операционная система CP/CMS для мэйнфреймов System/360. В последующем она стала основой для ОС VM, стоявшей на компьютерах System/360 и System/370. Для Burroughs 5000 была создана Master Control Program, способная создавать виртуальную память и управлять несколькими процессорами одновременно, а для Univac — EXEC I, которая могла резервировать память, разделять ресурсы процессора и обрабатывать запросы ввода/вывода.

Самым серьезным шагом по направлению к современным операционным системам было создание Multics. Драматическая история этой системы начиналась в те времена, когда о стоимости создания программных продуктов не задумывались, а завершилась тогда, когда этот вид деятельности стал таким же бизнесом, как все остальное. В итоге получился в подлинном смысле «колосс на глиняных ногах». Multics создавалась в рамках программы MAC, название которой расшифровывают как «множественный доступ к компьютерам» (Multiple Access Computers) или «Человек и компьютер» (Man and Computer). Инициатором проекта MAC был Джозеф Ликлайдер, один из руководителей оборонного агентства, которое тогда именовалось ARPA (Ликлайдер больше известен как инициатор проекта ARPAnet, предшественника Internet). Проект был рассчитан на восемь лет при годовом финансировании 2 млн. долл., но срок и затраты оказались излишне оптимистическими.

Случилось так, что IBM и DEC отказались от участия в проекте MAC, в итоге выбор пал на General Electric и ее машину GE-645, это была гражданская версия компьютера GE M236, разработанного для ВВС США. По условиям ARPA проектом руководил триумвират, состав которого на протяжении лет менялся. Одно время его членом был выходец из России Виктор Высоцкий. К участию в проекте решила подключиться и Bell Labs; так в 1965 году сложился виртуальный коллектив из представителей МТИ, Bell Labs и GE. Тогда же были опубликованы первые статьи, описывающие будущую операционную систему. С самого начала проект подвергался критике за излишнюю амбициозность; многие считали его нереализуемым вообще. Проект Multics действительно отличался совершенно невероятными по своим масштабам замыслами. Показателен следующий факт: было решено писать программы на языке PL/I, но не был готов компилятор. Чтобы не терять время, написали руководство для программиста, объем которого превысил 3 тыс. страниц. Нет ничего удивительного в том, что проектный период растянулся почти на два десятилетия. В конечном итоге эта операционная система была установлена на нескольких компьютерах в США, Канаде и Франции и проработала довольно долго, последний экземпляр Multics просуществовал до 2000 года. И, как это случается в компьютерной истории, дальнейшее развитие пошло вовсе не по основной, задуманной ее авторами траектории. В 1969 году работавшие по проекту программисты Bell Labs, лидерами которых были Кен Томпсон и Деннис Риччи, создали собственную систему — Unix.

В истории операционных систем есть еще одна интересная страница с занятной цепочкой преемственности. На мини-ЭВМ PDP/11 устанавливалась система RSX-11; наиболее популярной оказалась ее версия RSX-11M. В ее разработке лидировал Дэйв Катлер, он же в последующем разрабатывал VMS для компьютеров VAX. К тому же он был идеологом в создании объектно-ориентрованной операционной системы для не пошедшего в серию процессора PRISM. С 1988 года Катлер работает в Microsoft, где возглавлял проект Windows NT, он работал над 64-разрядной версией NT для процессора Alpha, а сейчас участвует в подготовке 64-разрядной версии Windows.


Роберт Марио Фано

родился в 1917 году в Италии в Турине. Он поступил в туринский колледж School of Engineering, но в 1939 году эмигрировал в США. Здесь он продолжил обучение в Массачусетском технологическом институте (МИТ), получив степень бакалавра в 1941 году. После этого он проработал шесть лет в лаборатории Radiation Laborator МИТ, а в 1947 году защитил диссертацию на звание доктора. В период с 1950 по 1953 год он возглавлял группу изучения радиолокационных технологий в Лаборатории им. Линкольна, но в основном его работа была связана с МИТ. В начале 60-х он занимался разработкой компьютеров, работающих по принципу разделения времени. В 1963 году он возглавил проект MAC и оставался на этой должности до 1968 года. Интересы Фано не ограничивались информационными системами. Он опубликовал ряд статей по микроволновым системам, электромагнетизму, теории сетей, а также по вопросам обучения специалистов технологической сферы. Фано является действительным членом Американской академии искусств и науки и института Institute of Electrical and Electronics Engineers. В 1976 году Фано получил премию Клода Шеннона за вклад в развитие теории информации.


Фредерик Филлипс Брукс

родился в 1931 году. В 1953 году он закончил Университет Дьюка, а в 1956 году получил степень доктора прикладной математики в Гарвардском университете. Его научным руководителем при подготовке диссертации был Говард Айкен. В этом же году Брукс поступил на работу в IBM, где сначала участвовал в создании суперкомпьютера Stretch для лаборатории в Лос-Аламосе, а затем руководил направлением разработки семейства мэйнфреймов System/360 и операционной системы OS/360. Опыт руководства проектами по разработке вычислительных машин и программного обеспечения нашел отражение в книге «Мифический человеко-месяц», известной сейчас едва ли не каждому специалисту по ИТ. В 1965 году Брукс стал инициаторам организации факультета информатики Университета Северной Каролины, который он возглавлял в течение 20 лет. Отойдя от руководства, он продолжает активно заниматься исследованиями. Основным предметом его интереса являются системы виртуальной реальности — трехмерная компьютерная графика реального времени. В 1999 году он стал лауреатом премии Тьюринга.


Фернандо Хосе Корбато

родился в 1926 году в Калифорнии. В своем родном штате он начал обучение и получил степень бакалавра в 1950 году в Калифорнийском технологическом институте. Спустя шесть лет он получил звание доктора уже в Массачусетском технологическом институте (МТИ). В 1962 году он занял должность доцента этого института, а в 1965 году стал профессором. С 1956 по 1966 год он сотрудничал также в центре Computation Center МТИ. Именно здесь впервые был реализован принцип разделения времени. Вычислительная система, действующая по принципу разделения времени, была запущена в ноябре 1961 года. Работа над ней продолжалась до 1963 года, после чего началась ее штатная работа в Лаборатории информатики МТИ. Корбато занимал видные посты во многих организациях, работа которых была направлена на развитие вычислетельной техники. В 1982 году он стал действительным членом Американской ассоциации по развитию науки. В 1990 году ассоциация Association for Computing Machinery выдвинула его на Тьюринговскую премию за «…систематизацию понятий и усилия по разработке крупномасштабных вычислительных систем общего назначения, работающих по принципу разделения времени и разделения ресурсов».