Леонид Черняк Перефразируя известное выражение относительно «Шинели» Гоголя, можно сказать, что все современные операционные системы вышли из 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. 18.04.2006г., Открытые системы
|