Проект Кронос и малоизвестная российская команда из Новосибирского академгородка Kronos Research Group (KRG)

    Речь пойдет о проекте, который еще раз опровергает тот предвзятый факт, что в области компьютерных технологий мы всегда отставали от Запада, а российские программисты занимаются «коленочным» программированием, и удел разработчиков разве что настраивать готовые системы под потребности нашего отечественного рынка.



    Проект Кронос и малоизвестная российская команда из Новосибирского академгородка Kronos Research Group (KRG)


    Во второй половине 1980 годов исследовательской группой Кronos были разработаны уникальные технологии, воплощенные в виде целого ряда законченных коммерческих продуктов, и ряд проектов в области космической и телекоммуникационной промышленности. С течением времени группа трансформировалась в три самостоятельные компании, известные как XDS, xTech Ltd. и ProPro Group.

    Kronos Research Group (KRG) еще в середине 80 годов разработала отечественную 32-разрядную рабочую станцию, собственную UNIX-подобную операционную систему, реализовала программную и аппаратную части транспьютерной архитектуры для проекта МАРС (Модульные Асинхронные Развиваемые Системы).




    Новосибирский государственный университет

    Лето 1983 года считается началом создания проекта Кронос, как раз в это время стали доступны материалы по Modula-2 и Lilith. Алексей Недоря работал над дипломной работой — компилятор с языка Edison, Дмитрий Кузнецов работал над созданием компилятора Modula-2. Была организована небольшая группа, которая интересовалась программированием, компиляторами в том числе. Позже к группе присоединились Евгений Тарасов и Владимир Васекин. И вот весной 1984 года этим четверым в голову пришла «нахальная» идея создать что-то подобное Lilith, разработать свою машину со своей ОС.
    Кронос-игрушки – это отдельная история. Вообще говоря, Кронос и задумывался изначально потому, что народу очень хотелось иметь машину для игр в собственном распоряжении. Дорого бы я дала сейчас, чтобы поиграть в Кроносовые игрушки. Чемоданчики – были написаны Джоном Серюковым. Он подолгу играл в них – должно быть, отлаживал :) Ксоникс – каких только не было придумано стратегий выигрыша! Самым изящным считалось загнать все шарики-убийцы в узкие комнаты или лабиринты, где они могли совершать только слабые подёргивания. Пентикс – аналог Тетриса, только из пяти квадратиков – первая игрушка на Илюшином цветном дисплее. Аддикция игры была такая, что добровольно прекратить играть было абсолютно невозможно. Одной из игрушек был «Лабиринт», творение Димки Флаасса. Суть игры – требовалось запрограммировать робота на мета-язычке так, чтобы он обошёл лабиринт, собрав по пути все «клады». Народ сидел, вырисовывая на бумажке схему лабиринта, вычисляемую в процессе игры эмпирически – лабиринт порождался для каждой игры случайным образом. Увлечение игрой закончилось неожиданно и закономерно – Димка переделал лабиринт в 3-мерный, что сильно усложнило игру и катастрофически увеличило время ее прохождения. Не осилили.

    Опираясь на опыт разработки персональной ЭВМ Lilith при разработке, все же многие решения принимались независимо. Была существенно переработана архитектура взаимодействия процессов, прерываний, адресации и работы с внешними устройствами. Многие упрощения были достигнуты благодаря 32-разрядности процессора (в виде платы для Электроники-60), созданием которого были заняты Тарасов с Васекин. Дедушкой Кроноса можно уверенно считать Никлауса Вирта, профессора из Цюриха, именно он создал язык программирования Modula-2 и реализовал его на машине Lilith. Modula-2 незаменима при разработке программного обеспечения.

    Название было дано в честь греческого титана Кроноса. В представлении древних греков царство Кроноса соответствовало «золотому веку», а еще оно созвучно греческому слову «хронос», что в переводе означает — время. По словам разработчиков название скорее всего было выбрано случайно, понравилось звучание.
    Существенной особенностью проекта Кронос была исключительная, я бы сказал, магическая, притягательность его для талантливых студентов. Такого эффективно работающего, стихийно самоорганизованного молодежного коллектива я больше никогда не видел. В выделенных для работы 40 квадратных метрах день и ночь что-то программировалось (программировали обычно ночью), обсуждалось, приходили все новые и новые студенты, им ставили задачи, а уже через небольшое время они чувствовали себя старожилами Кроноса. Через этот проект прошло, наверное, человек 20. Сразу скажу, что все они достигли высшей квалификации и сейчас являются лидерами своих нынешних команд, хотя и в разных организациях, городах и странах.

    Кузнецов начал писать компилятор на Burroughs 6700 и интерпретатор Кроноса. Недоря реализовывал маленькую ОС под управлением интерпретатора. К лету 1984 года Недоря написал на языке Паскаль микроассемблер для микропрограммирования Кроноса. Уже в декабре 1984 года процессор Кронос-1 был готов. После того как для организации кросс-разработки по последовательному каналу Кронос был подключен к Burroughs, начался сложный процесс отладки.



    На Кроносе работала пультовая микропрограмма, на Burroughs же была написана маленькая связная утилита, она позволяла загрузить программу в Кронос и запустить ее. Все заработало, но так себе. Поэтому вскоре началась разработка Кронос-2. Планировалось изменить систему команд, процессор, компилятор. Его разработка началась с разработки системы команд, которую не удавалось друг с другом согласовать. Раскрутка новой системы велась прямо через Кронос, на Паскале был завершен Кронос-ассемблер, который был структурным и поддерживал понятия процедуры и раздельной компиляции.

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

    Начиная с 1985 года все работы по проекту Кронос проводились в Вычислительном центре, при поддержке А.Г.Марчука. Тут работали создатели проекта Дмитрий Кузнецов, Алексей Недоря, Евгений Тарасов и Владимир Филиппов. Изначально был разработан Кронос-1, позже Кронос-2, Кронос-2.2, Кронос-2.5, Кронос-2.6. Кронос-2 был высоко оценен любителями (вручную было изготовлено около 50 машин) и специалистами в промышленности — документация передавалась в разные организации и в некоторых разработка тиражировалась.

    Кронос-2.2, Кронос-2.5, Кронос-2.6 известны как семейство процессоров Кронос.

    В 1985 году команде Kronos Group попала в руки книга Вирта на английском языке, которая была о Modula-2.
    Это было то, что мы искали, – разбиение программных модулей на интерфейсные и исполнительные части, а также система более строгого программирования с сохранением удобного доступа к низкоуровневым средствам. Появилась возможность наладить нормальное коллективное взаимодействие и вычленить на уровне языка системно-зависимые части. Продолжая работы по обкатанной технологии, мы стали перестраивать свое инструментальное хозяйство на ходу. За пару месяцев удалось разыскать работающий компилятор (это были преемники виртовской системы для PDP-11: М22 и М23 для RT-11). Система понравилась, единственное, что разочаровало, – не очень удачная реализация генератора объектного кода. Даже ради красивой идеи мы не могли позволить себе транжирить системные ресурсы.

    Командой была реализована несложная методика ассемблерных вставок, выявлялись критические процедуры, после чего они переписывались вручную на ассемблере "… Оставалось только обмануть защиту компоновщика и написать небольшую программку, которая прямо с листинга в кодах заносила «оптимизированные» процедуры в соответствующее место и корректировала все контрольные суммы, обеспечивающие целостность объектного кода. Все работало как часы".


    Алексей Недоря и Владимир Филиппов у рабочей станции Кронос 2.6

    Работы проводились на машине с 96 Кбайт оперативной памяти, с единственной внешней памятью были флоппи-диски (480 Кбайт). Так как программировать дальше на ассемблере было «затруднительно», Недоря, Кузнецов и Тарасов занялись написание компилятора, для этого потребовалось 2 недели, размер такого компилятора — 3 тысячи строк на ассемблере. «Не знаю, как остальные, – подчеркивает Недоря, – но я до сих пор считаю тот компилятор для „Кроноса“ одной из лучших своих разработок». Команда приступила к созданию операционной системы Excelsior.
    Для ОС Excelsior прототипом послужила ОС UNIX. Она была популярна на то время. Правда окончательная версия, которая была полностью написана на Modula-2, была названа Excelsior iV (мнимая UNIX System V). Она была многопользовательская, многозадачная, построенная на принципе динамической загрузки. 15 человек трудились над созданием операционной системы Excelsior, Дмитрий Кузнецов занимался разработкой файловой системы, а Алексей Недоря — ядром.

    В 1986 году из группы ушел Васекин и его место занял Владимир Филиппов. Уже к 1988 году группа насчитывала почти 20 человек.

    В 1987 году выпускались модификации Кронос-2.5 и Кронос-2.6. СКВ Института кибернетики АН Эстонии, радиозавод в Ижевске, завод в Ленинграде, несколько предприятий в Новосибирске, Бердске, Кишиневе, Перми занимались выпуском этого семейства процессоров, были модернизированы финские 16-разрядные компьютеры серии ELORG-DATA, позже начал разрабатываться 64-разрядный арифметический сопроцессор.

    И так, Кронос — это общее название семейства 32-разрядных процессоров, которые были предназначены для создания микро- и мини-ЭВМ, архитектура данных процессоров ориентирована на поддержку языков программирования высокого уровня, а это позволяло реализовывать новейшие концепции в области создания программного обеспечения и использования ЭВМ.

    Семейство процессоров Кронос 2.X

    Семейство 2.X включает в себя три разработки: 2.2, 2.5, 2.6. Процессоры Кронос выпускались опытными партиями в основном для целей построения инструментальных машин для создания и отладки ПО. Основное применение нашли процессоры Кронос 2.6 при мелкосерийном производстве Рабочей станции Кронос-2.6WS.


    Рабочая станция Кронос-2.6WS

    Процессоры семейства 2.X имеют одну систему команд, различаются по внутреннему функциональному устройству, быстродействию и конструктивному исполнению. Процессоры полностью совместимы программно, блок микропрограммного управления реализует логику функционирования всех блоков. «Две шины данных объединяют арифметико-логическое устройство, блок регистров, быстрый аппаратный стек на 7 слов, устройства выборки команд и ввода/вывода. Двухшинная внутренняя структура процессоров позволяет выполнять бинарные операции на стеке (сложение, вычитание, логические И, ИЛИ и т.д.) за один такт. Таким образом, за один такт исполняется большинство команд, что отвечает основным идеям RISC-архитектуры. Микропрограммное управление упрощает устройство процессоров и дает возможность реализовать сложные команды типа вызова процедуры». (Архитектура процессоров семейства Кронос)


    ОЗУ Кронос М256.2


    процессор Кронос П2.1


    процессор Кронос П2.2

    Кронос 2.2 — первая реализация изложенных выше архитектурных концепций. Процессор выполнен в виде платы в конструктиве ЭВМ Электроника-60, полностью совместим со всеми устройствами, поддерживающими протокол обмена по шине Q-bus 22, оперирует 32-разрядными словами. Шина 16-разрядная, поэтому доступ к слову данных в памяти происходит за два обращения по шине Q-bus 22. АЛУ Кронос 2.2 — 20-разрядное. Адресная арифметика обрабатывается за один такт, а данные – за два такта, процессор размещен на одной плате.


    процессор Кронос П2.5

    Существенным отличием Кронос 2.5 является наличие локальной памяти объемом 0,5-2 Мбайт — в зависимости от применяемых микросхем. Остальная память — на шине Multibus-1 (до 1 Мбайт). Кронос 2.5 является полностью 32-разрядным, выполнен в виде двух плат в конструктиве Intel. Тактовая частота процессора — 3 МГц, производительность — 1 млн простых операций в секунду над стеком.


    процессор Кронос П2.6

    Кронос 2.6 отличается конструктивным исполнением и гибкостью реконфигурации для конкретного применения, он может быть встроен в отдельную мини-ЭВМ, в мультипроцессорный комплекс, размер плат 233,3 х 220 мм (Е2) — плата обрабатывающего тракта (АЛУ, стек, регистры), плата микропрограммного управления, плата локальной памяти (0.5-2 Мбайт), плата адаптера шины ввода/вывода. Устройства объединены локальной синхронной 32-разрядной шиной, куда могут быть добавлены платы памяти, адаптера межпроцессорной связи, контроллера к локальной сети и накопителя на магнитных дисках, плата памяти кода bitmap-дисплея, арифметического вычислителя и других устройств, тактовая частота процессора — 3 МГц, производительность — 1,5 млн операций в секунду над стеком.



    Из жизни коллектива: "… на рабочей станции Кронос 2.6 без особого напряга могли работать одновременно три пользователя. Поскольку народу в группе было гораздо больше, работать приходилось посменно в круглосуточном режиме. Ночные смены любил Леопольд: он сидел до утра, а потом около восьми шел отводить ребенка в садик. Утром подтягивалась следующая смена.

    Приходим однажды утром, на клавиатуре записка от Леопольда. На перфокарте большими печатными буквами написано: «Don't touch! SYSTEM BUCHET!» Английского слова «buchet» никто не знал. Стали искать в словаре Мюллера. Было ясно, что слово написано неправильно, но в каком месте он его переврал и что имел в виду? После обеда, отоспавшись, пришел сам виновник торжества. Оказалось, он хотел донести до нас, что ничего нельзя трогать, поскольку модуль SYSTEM виснет".


    Кронос-2.6 WS. Экспериментальная модель рабочей станции











    Как упоминалось раньше, ЭВМ с процессорами Кронос 2.2, Кронос 2.5 и Кронос 2.6 работали под управлением операционной системы Excelsior, которая предназначалась для решения широкого круга задач. ОС Excelsior была создана отвечая следующим принципам — открытость системы, модульность, интегрируемость результатов, удобство интерфейса. Все программные средства ОС Excelsior ориентированы на мультипроцессное, многозадачное и многопользовательское применение. Модульная архитектура позволяла применять процессоры Кронос и во встроенных системах реального времени, и в супермини-ЭВМ. Легкость программирования делала Кронос незаменимым в приложениях, которые требовали постоянного развития и изменения ПО.

    Исследовательский проект МАРС (Модульные Асинхронные Развиваемые Системы)


    В 1983 году стало известно, что в Японии ведется проект по созданию компьютеров пятого поколения, в котором упор делался на значительное повышение «интеллектуальности» создаваемых систем. Проект привлек внимание и США, и стран Европы, начали формироваться предложения по созданию альтернативных проектов. В СССР взялись дать оценку японскому проекту и предложить концепцию, реальную в наших условиях. Для этого была создана группа специалистов по архитектуре и программному обеспечению ЭВМ, которую возглавил Котов, были привлечены многие специалисты. К началу 1985 года удалось собрать коллектив, подготовить и согласовать необходимые документы, в апреле Временный научно-технический коллектив Старт приступил к работе.

    Александр Марчук заместитель руководителя ВНТК Старт:
    Хорошо помню, что серьезных разногласий, а тем более конфликтов — не было. Была творческая атмосфера, научный анализ, уважение к чужому мнению. В отчете совсем мало было написано про японский проект, недостатки которого не хотелось даже критиковать. Будущее показало, что мы были правы и из того японского «чуда» мало что получилось. Кстати, и ведущие западные страны ответили на «японский вызов» программами национального уровня, и результаты американцев и европейцев оказались впоследствии куда более значимыми. Энтузиазм и творческую атмосферу нашей рабочей группы подпитывало ощущение начала большой созидательной работы.

    Пару слов о финансировании, было выделено 12 млн. рублей на три года, и более миллиона долларов в валюте для закупки инструментальных компьютеров.


    Одна из стоек суперкомпьютера МАРС-М, 1989

    Кронос стал базовым процессором для создаваемой коллективом Старт вычислительной системы МАРС. В Старте Кронос был доведен до промышленного образца, выпускался мелкими сериями. Был разработан микропроцессор.

    МАРС вычислительный элемент имел произвольное число соседей. Основным строительным блоком служил процессор Кронос (МАРС-Т). Целью проекта МАРС-Т было создание сети процессоров, которые были бы связаны быстрыми каналами. Память в системе была только локальная.
    Макет МАРС-Т состоял из четырех процессоров Кронос-2.6, связанных каналами. В процессоры были добавлены дополнительные команды для приема/передачи данных из каналов. На одну машину (головную) загружалась ОС Excelsior iV с модифицированным ядром, на все остальные – небольшое специализированное ядро.

    Позже был проект СОКРАТ, во главе с И. В. Поттосиным, сюда же вошли и некоторые члены Kronos Research Group. Проект предусматривал создание средств кросс-разработки для бортового ПО российских спутников.

    После развала Сюза правительственное финансирование исследовательских проектов прекратилось и, увы, уже в 1991 году проект Старт был практически полностью свернут.

    Началась новая эра -эра частного бизнеса. Участники Группы Кронос создали несколько предприятий. Прикладные программисты собрались в компании ProPro Group, начали работать над созданием чертежного и конструкторского САПР bCAD. Системщики же создали компанию xTech и работали над созданием инструментов программирования, в основном на языках Modula-2 и Оберон-2.


    New Kronos


    А. Денисов, А. Серюков, Е. Тарасов
    ua-hosting.company 164,03
    Хостинг-провайдер: серверы в NL / US до 100 Гбит/с
    Поделиться публикацией
    Комментарии 29
    • +1
      Красота. Но на чем это все было сделано? На существующем секционированном микропроцессорном комплекте (набрали из 8 секций по 4 бита)? На каком? Или на ПЛМ-ках? На каких? Или на стандартной логике? Или с микропрограммой? Очень интересно.
      • 0
        По фото похоже на 584-ю http://155la3.ru/k584.htm или на 589-ю http://sovietcpu.com/ussr-cpu/589-series серию
        • +5
          Ага. http://www.kronos.ru/documentation/ar
          — Все узлы процессоров выполнены на советских ТТЛ и ТТЛШ
          микросхемах широкого применения серий 155, 531, 1802, 1804,
          589, 556.
          — Значит, на 589-й микропроцессорной серии. Т.е. Кронос дальний родственник ЧПУ-стойкам «Микролид» и Электронике Т3-29.
      • 0
        Конечно, нельзя не упомянуть эмулятор: code.google.com/archive/p/kronos юникс на модуле, клёво.
      • –1
        Короче помер он давно этот Кронос. Про МАРС-Т была когда-то заметка в «Техника-молодежи», но так давно что и не вспомнить. Посему считаю первый абзац заваленным по балансу желтого, в желтизну в смысле.
        • +5
          Как говорил один мой знакомый, не готов процитировать, но это было что-то вроде: западное отношение к жизни, как к шахматам (проиграл — умер, лузер и т.д.) не сильно подходит к российскому менталитету. Нам больше подходит философия игры Go — да, ты не доминируешь, но у тебя тоже есть своя зона влияния. Твоя «поляна», на которой ты живёшь и возможно копишь силы. Главное, не потерять, что имеешь.

          Так вот, эта ваша фраза про «помер» она не про факты, ведь код не умирает, она про веру в то, что если условные «мы» там один раз проиграли, то значит жизнь кончена, остаётся только обслуживать вторичный рынок в ИТ. Кто-то или что-то делает многих людей верить в те или иные мифы вместо того, чтобы просто делать своё. Есть в этом отказе от затратного своего нечто животное, приматологическое. Советские кагбэ устали и не могут, но это далеко не смерть.
          • +2
            Ну это же старая статья http://www.computer-museum.ru/histussr/kronos.htm.

            Внизу черным по белому написано «Статья опубликована в газете ComputerWeek-Moscow №20, 1998 г.»
            • 0
              Ну, ua-hosting «первичностью» контента никогда не отличались. Тем более что, с легкой руки администрации, компаниям в их блогах никто особо не помешает. Ну, разве что в минуса статья уйдет, да и то — тем тут интересная.

              Тем более, на фоне прошлых постов от ua-hosting, это не перевод текста человеком, не очень знающим предметную область.

              Хотя я бы, конечно, с большим удовольствием почитал про жизнь самой компании ua-hosting, про мелочи хостинга, про то, о чем не задумываешься, просто оплачивая сервер.
            • 0
              Встречал таких людей, которые именно так и считают — мы навсегда отстали. Но и эта мысль иногда бывает чрезвычайно удобна — для тех, кто не хочет напрягаться. Им вполне достаточно делать тихонько что-то свое, используя уже готовое, кем-то другим сделанное.
              • +3
                >>мы навсегда отстали.
                Просто нужно видеть за любыми неудачами — новые возможности.
                Иногда не нужно гнаться за далеко ушедшими, а нужно открывать новые пути и тогда будут догонять уже нас. Сейчас, например, самым перспективными, на мой взгляд, будут квантовые компьютеры, вот с них и можно начать — операционка, программы, железо.
                • +2
                  Лучше актуальное, основанное на чужой базе, чем никому не нужное, но свое.

                • –1
                  Если профи так «копят силы», как вы говорите, то они сдаются в начале, ну максимум ближе к середине игры. Вариант «копить силы» сработает только в играх школьников
                  • 0
                    Дела обстоят с точностью до наоборот. У нас если человек занявших каким-нибудь делом к примеру бизнесом однажды потерпел неудачу — то все на нем ставят крест и клеймят неудачником, а в штатах не имеет значение сколько раз ошибался, если в результате достиг успеха.
                • +1
                  Очень интересно и познавательно.
                  • +4
                    До чего раньше головы были не загажены кучами информационного мусора и открыты для продуктивного креатива. За две недели два человека пишут компилятор. Сейчас за две недели целая команда составляет лишь планы, выбирает инструменты, пишет бесполезный скелет-черновик какой-то чепухи, о которой через 20 лет вообще никто не вспомнит. И получает за это вознаграждение, которое тем парням показалось бы чуть ил не баснословным капиталом.
                    • –1
                      Да, сейчас уже кажется фантастикой, что два человека могут создать с нуля операционную систему за три года, да и к тому же в свободное от основной работы время. Зато мы имеем Одну-Известную-Среду-Разработки весом в десяток гигабайт, которая на порядок сложнее абсолютного большинства написанных с ее помощью программ. Это как сравнивать какого-нибудь музыканта вроде Игоря Растеряева или покойного Дркина против современной попсы с дорогущими роскошными видеоклипами и песнями, написанными с целью зарабатывания денег.
                      • +4
                        Как бы написать операционку — не задача вообще, вон, на всяких Спектрумах и Микрошах она умещалась в считанные десятки килобайт кода. Но кому сейчас нужны те операционки?
                      • +3
                        Только вот эта чепуха будет разработана в срок. И хотя бы пять лет актуальна. И ей воспользуются на три порядка больше пользователей, чем вообще людей знает о Кроносе. Всем хочется делать что-то эдакое, эпично-трагическое (потому как достичь успеха — фу-фу-фу, можно же и на критику нарваться), а между тем на рынке не хватает специалистов, способных решать актуальные задачи.
                        • 0
                          Специалистами ни тогда не рождались, ни сейчас не рождаются. Специалистов — пруд пруди там, где благоприятствующая экосистема для их «выращивания». Так что, если рынку чего-то не хватает, может проблема в рынке?
                          • 0
                            >>может проблема в рынке
                            Проблема в тех, кто не может создать нормальный рынок
                    • +1
                      Вот это интересно! Но, традиционно по совку об этом было не узнать… У меня почти полный комплект Микропроцессорных Средств и Систем был до дыр зачитан, но Кроносов там не помню :(. И барроузы в новосибирском академе видел, а кроносов — нет… печально.
                      • 0
                        На фото системного блока сзади увидел знакомые советские кулеры, несколько таких работают домашним вентилятором до сих пор :)
                        • 0
                          Они же тарахтят как трактор, еще и 220В :)
                        • 0
                          В 1983 году стало известно, что в Японии ведется проект по созданию компьютеров пятого поколения
                          Боже, сколько раз я об этом слышал
                          • 0
                            Интересная ретроспектива:) и на этом пожалуй всё.
                            • +6
                              Проект предусматривал создание средств кросс-разработки для бортового ПО российских спутников.

                              Проект, между прочим, до сих пор жив, и российские спутники ИСС Решетнев летают на ПО на Модула-2, компиляторы которые созданы как раз в те времена, в том числе и отцами-основателями проекта Кронос.

                              Также ядро 32-битного компилятора Excelsior JET (статического компилятора Java в машинный код) — это тот же компилятор Oberon-2/Modula-2 адаптированный для Java и сам написанный на Oberon-2.
                              • 0
                                > предвзятый факт

                                Похоже, что в действительности всё не так, как на самом деле.

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое