Советский UNIX. Как в СССР ковали собственную операционную систему
На рубеже 70-х и 80-х годов ХХ столетия UNIX набирал популярность не только в академических кругах, но также активно внедрялся в различные бизнес-процессы коммерческих предприятий. Портируемость, простота архитектуры и широкие возможности ОС привели к появлению у этой платформы целой армии верных поклонников. Однако «юних» — это у них. А что у нас? В Советском Союзе имелись свои талантливые инженеры и программисты, которые пытались создавать собственные версии операционных систем, во многом вдохновлённые идеями и архитектурой UNIX. И некоторые из этих проектов оказались вполне успешными. А самым успешным среди них стала ОС ДЕМОС.
Поскольку разработчики бесплатно лицензировали UNIX для американских, а также европейских образовательных и научных учреждений, советские специалисты имели возможность почти легально получить магнитные ленты с копией операционной системы на международных научных конференциях и симпозиумах. Тем более, к началу 80-х годов в международных отношениях СССР с западными странами наметилось определённое потепление, а с некоторыми капиталистическими государствами, например, с Францией и Италией, даже налаживалось научно-техническое сотрудничество в отдельных областях. Именно так исходники 7-й версии UNIX для PDP-11, ядро которой Кен Томпсон и Деннис Ритчи переписали на языке Си, в начале восьмидесятых попали в Курчатовский институт. Вскоре институт заполучил ещё одну модификацию 7-й версии: 32-разрядную редакцию для компьютеров VAX.
В вычислительном центре Курчатовского института в те времена трудились советские клоны DEC PDP-11, относившиеся к семейству «Систем малых ЭВМ» — СМ-4. Несмотря на то, что эти машины поддерживали систему команд PDP-11 и в целом были схожи с оригиналом от Digital Equipment Corporation, архитектурные различия давали о себе знать. СМ-4 использовал собственный процессор СМ-4П и специальный интерфейс для сопряжения модулей компьютера под названием «общая шина ОШ СМ», который отсутствовал в оригинальной ЭВМ от DEC. Кроме того, в СМ-4 была реализована собственная подсистема управления памятью, отличалась и архитектура ввода-вывода, обеспечивающая работу периферии. Из-за этих и некоторых других особенностей устройства советской вычислительной машины попытка запустить на ней UNIX не увенчалась успехом — система на СМ ЭВМ просто «не завелась».
ЭВМ СМ-4
Тем не менее, советские программисты не отступились и решили во что бы то ни стало испробовать капиталистический UNIX на отечественной технике. Нужно отметить, что ни руководство Курчатовского института, ни партия, ни правительство не ставили перед инженерами такой задачи — это была исключительно «инициатива снизу». Сами сотрудники вычислительного центра ИАЭ им. И.В. Курчатова понимали, что адаптация этой универсальной операционной системы для работы на советских ЭВМ откроет перед ними новые возможности — прежде всего, в плане переносимости приложений с одной аппаратной платформы на другую. А если ОС удастся сделать по-настоящему кроссплатформенной, это значительно упростило бы задачу обмена прикладными программами и данными с другими организациями, использовавшими семейство компьютеров ЕС ЭВМ. Ко всему прочему, адаптация UNIX для советских машин открывала определённые перспективы и в области обмена опытом с зарубежными научными учреждениями.
Для решения этой непростой задачи сотрудники Курчатовского института заручились поддержкой Минавтопрома и обратились на автомобильный завод АЗЛК, где имелось несколько настоящих DEC PDP-11. На этих машинах исходники UNIX были частично переписаны и адаптированы под архитектуру СМ-4, после чего система как минимум смогла запускаться и полноценно работать на этих ЭВМ. Это уже стало маленькой победой.
Следующим шагом стала локализация операционной системы. По воспоминаниям разработчиков, наибольшую сложность в процессе русификации UNIX представляло то обстоятельство, что и PDP-11, и СМ-4 были 16-битными ЭВМ, а для отображения символов ASCII в операционной системе использовалось 7 бит. При этом восьмой был зарезервирован для служебных нужд, и использовать его для поддержки кириллицы не представлялось возможным. Таким образом, программистам пришлось переписать примерно половину исходных кодов UNIX и полностью переделать все компоненты системы, связанные с обработкой и выводом текста. Проект назвали Диалоговая Единая Мобильная Операционная Система, сокращённо — ДЕМОС.
Но одной локализацией дело не ограничилось. В распоряжении разработчиков из Курчатовского института имелась ещё одна версия UNIX — 32-разрядная, предназначенная для архитектуры VAX, которая обладала более широким арсеналом системных компонент, утилит и прикладных программ. Её также модифицировали и интегрировали в систему, благодаря чему советская ОС научилась полноценно работать сразу на двух архитектурах: 16-разрядной и 32-разрядной. При этом набор компонент в обеих версиях был одинаков: 32-разрядные модули переписали и адаптировали для 16-битной архитектуры. Когда в 1987 году НПО «Сигма», расположенное в столице Литвы Вильнюсе, наладило выпуск 32-битного клона VAX-11/730 под названием СМ-1700, на эту ЭВМ сразу стали устанавливать ОС ДЕМОС в качестве базовой системной платформы.
Ещё одним достижением специалистов из Курчатовского института можно назвать то, что им удалось обойти «врождённое» ограничение 16-разрядной версии UNIX, которая была способна работать с оперативной памятью максимальным объёмом 64 Кбайта, в то время, как СМ-1420 на базе того же процессора СМ-4П поддерживала 248 Кбайт. Проблему решили весьма элегантным способом: с помощью программных эмуляторов (оверлеев), которые переключали адресное пространство процессов запущенных приложений, позволяя им использовать весь доступный на компьютере объём ОЗУ.
Параллельно с работами над ОС ДЕМОС на кафедре прикладной математики и вычислительной техники Института повышения квалификации Минавтопрома группа из девяти специалистов под руководством завкафедрой Михаила Изгияевича Давидова трудились над созданием собственной локализации шестой версии UNIX под названием «Машинно-Независимая Операционная Система (МНОС)». Эта ОС также была ориентирована на 16-разрядную архитектуру PDP-11, но в отличие от Курчатовских специалистов, использовавших язык Си, разработчики МНОС писали на Ассемблере. Код в результате получился довольно компактным, но у него возникли объективные проблемы с кроссплатформенностью. По прошествии времени МНОС была признана менее перспективной по сравнению с универсальной, переносимой и многофункциональной ОС ДЕМОС. В результате обе ветви русскоязычной UNIX были сведены в общий проект, и специалисты Института повышения квалификации Минавтопрома присоединились к коллективу разработчиков ДЕМОС.
ЭВМ СМ-1420
Несмотря на то, что создание ДЕМОС де-факто было инициативой рядовых сотрудников вычислительного центра одного из научных институтов, профильные министерства СССР прекрасно осознавали перспективы внедрения UNIX научно-производственном секторе и признавали необходимость адаптации этой ОС для советских компьютеров. Именно поэтому в 1983 году была официально утверждена программа по разработке русскоязычной версии UNIX для ЕС ЭВМ, получившей название «Инструментальная Мобильная Операционная Система (ИНМОС)». Задачу планировалось решить в ходе XII пятилетки, то есть, к 1990 году, а в качестве ответственной организации назначили Институт электронных управляющих машин им. И.С. Брука (ИНЭУМ). Позже часть разработчиков перешла в Институт проблем информатики Академии наук СССР (ИПИАН), где для дальнейшего развития ИНМОС была создана отдельная лаборатория.
ИНМОС, как и ДЕМОС, изначально разрабатывался для ЭВМ СМ-4, код был написан на языке Си, при этом создатели системы сразу разделили ОС на машинно-зависмую и машинно-независимую части с целью последующего переноса платформы на другие архитектуры. Поскольку за основу был взят тот же UNIX 7-й версии для PDP-11, программисты из ИПИАН столкнулись с такими же в точности трудностями в вопросах русификации, обработки и отображения кириллицы, которые к тому времени уже успешно преодолели их коллеги из Курчатовского института. Пикантный момент заключался в том, что до определённого момента эти две команды не подозревали о существовании друг друга: интернета тогда ещё не изобрели, а коммуникации между научными учреждениями в СССР, работавшими в разных отраслях, зачастую были весьма ограничены. Таким образом, две независимые группы программистов параллельно работали над решением фактически одной и той же задачи, правда, у создателей ДЕМОС было небольшое преимущество, заключавшееся в том, что они приступили к работе раньше и продвинулись в ней намного дальше конкурентов.
В то же самое время у разработчиков ИНМОС имелся собственный козырь в рукаве: их проект имел статус официального, утверждённого и финансируемого государством, в то время как программисты из Курчатовского института считались, по большому счёту, энтузиастами. Это создавало определённые препятствия для внедрения и распространения ДЕМОС, поскольку данный процесс в СССР был предельно забюрократизирован. Для того чтобы советские предприятия могли официально пользоваться какой-либо программой, она должна была предварительно пройти регистрацию в основанном в 1971 году НИИ «Центрпрограммсистем». А для этого разработчики должны предоставить подробную техническую документацию на свой продукт, оформленную в чётком соответствии с ГОСТ, а затем пройти «госприёмку».
Оформлением этой документации и занялись авторы ДЕМОС — по их воспоминаниям, процесс оказался не менее сложным, чем разработка самой операционной системы. На этом этапе к ним присоединились коллеги из Объединённого института ядерных исследований в г. Дубна, Института физики высоких энергий из Протвино и из НИЦЭВТ (Научно-исследовательского центра электронной вычислительной техники). Итоговый объём документации составил 40 томов, при этом в процессе «госприёмки» специалисты тщательно проверяли, как работает и что делает каждый компонент операционной системы, правильно ли он описан, и соответствует ли документация фактическому функционалу ОС. Поскольку подробные справочники по базовой версии UNIX были недоступны создателям ДЕМОС (да и вряд ли бы им помогли, ибо по понятным причинам не соответствовали советским стандартам), документировать систему пришлось с нуля. Заодно разработчики подробно описали созданные ими оригинальные компоненты ОС, отсутствовавшие в исходном дистрибутиве.
Коллектив разработчиков ДЕМОС
Эта работа была полностью завершена летом 1985 года, и именно тогда ОС ДЕМОС обрела наконец официальный статус, а само это название было зафиксировано в утверждённых государством документах. Параллельно группа программистов, к которой присоединилась и часть трудившихся над ИНМОС специалистов из ИПИАН, занялась подготовкой второй версии операционной системы, опиравшейся на ядро BSD 2.8. Эта редакция ДЕМОС увидела свет в конце 1985 года, она была портирована на ЕС ЭВМ и ещё один аналог VAX 11/750 — ЭВМ «Электроника-82». Система также была полностью русифицирована, и помимо предыдущих наработок, включала в себя множество новых компонентов, частично опиравшихся на код BSD.
Следует отметить, что в середине 80-х существовал ещё один проект «советского UNIX» — операционная система MISS (Multipurpose Interactive timeSharing System), разрабатывавшаяся на физическом факультете МГУ программистом Владимиром Бутенко. В отличие от ДЕМОС и ИНМОС, MISS не опирался на существующие дистрибутивы UNIX, а создавался с нуля — за основу была взята только архитектура UNIX. Система была написана для ЕС-1010, которая являлась клоном французского компьютера Mitra-15, позже была портирована на EC-1011 (клон Mitra-225). Но в конечном итоге MISS не выдержала конкуренции с ДЕМОС, и проект был закрыт.
В 1986 году Курчатовский институт, участвовавший в ликвидации последствий аварии на Чернобыльской АЭС, получил от французской компании Aniral-UTEC несколько персональных компьютеров на базе 32-битного процессора Motorola 68010. На этих машинах была установлена французская версия UNIX, которая, по воспоминаниям сотрудников Курчатовского института, постоянно сбоила и работала крайне нестабильно. Протестировав систему, институт предложил французам сделку: советские разработчики подготовят стабильную версию ОС ДЕМОС для этих машин, а компания Aniral-UTEC взамен бесплатно предоставит вычислительной лаборатории института дополнительные персоналки. Так ДЕМОС впервые вышла за пределы Советского Союза на международный рынок. Вскоре эта ОС стала использоваться в научных учреждениях ГДР, Польши и Чехословакии.
К 1988 году ДЕМОС стала самой распространённой в СССР UNIX-подобной операционной системой, способной работать на отечественном «железе», а группа её создателей получила премию Совета Министров СССР. Примерно тогда же система была портирована для Зеленоградских персоналок ДВК производства НИИТТ. К концу 80-х ОС ДЕМОС успешно использовалась на крупных «промышленных» ЭВМ и персональных компьютерах. Дважды в год проводились конференции пользователей ДЕМОС, на которые приезжали представители советских вычислительных центров и делегаты из стран СЭВ. Участники мероприятия выступали с докладами, общались и обменивались программным обеспечением.
ДЕМОС на ПЭВМ ДВК
В 1990 году появилась модифицированная версия ОС ДЕМОС 2.1, и на этом история операционной системы практически завершилась: рынок заполнили персональные компьютеры стандарта IBM PC, а политические изменения в стране резко сузили возможности государства в финансировании новых разработок. Появившийся при институте им. Курчатова в 1989 году кооператив «ДЕМОС» занялся развитием компьютерных сетей (и превратился в итоге в первого на территории СССР коммерческого интернет-провайдера), многие авторы ОС ДЕМОС ушли в коммерцию. В общем, всем внезапно стало не до операционной системы, ориентированной на быстро исчезавшие из обращения советские ЭВМ под натиском хлынувшей в Союз подержанной западной техники. Сегодня дистрибутив ОС ДЕМОС можно отыскать на сайтах с архивами старого софта, правда, для её запуска понадобится эмулятор PDP-11 или ДВК. Многие специалисты, работавшие над этим уникальным проектом, продолжают трудиться в сфере IT, используя накопленный в 80-е уникальный опыт и знания.
Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх