А помните, был такой проект Кронос на закате «союза», на заре «перестройки», профессиональная рабочая станция на собственном железе и собственной ОС.

Вроде был, а вроде и не был, вы и не помните, скорее всего.
История
Вообще, история того, как всё было, гораздо интереснее, чем текущая действительность, хотя бы в силу того, что обыденность не запоминается, часто утомляет. Ежедневные успехи, возможно радуют, но что можно сделать за 6-8 часов такого, чтобы потом вспомнить.
Но стоит оглянуться назад и попробовать всё описать за одну статью, как тут же понимаешь, а ведь насколько насыщенная жизнь была, сколько впечатляющих результатов было достигнуто, во что сложились все ежедневные маленькие вклады в большое дело. В целую историю!
Историю проекта Кронос нет смысла пересказывать повторно, лучше прочитайте подробную статью на Хабре (а затем возвращайтесь к этой статье). Здесь лишь отметим: нам есть, что вспомнить.
Индустрия, конечно же, шагнула вперёд. Прогресс неумолимо приближает нас к сингулярности. Но в тот момент, согласно принципу историзма, данный проект по моему скромному мнению был маленькой частью прогресса.
Актуальность
Тяжело ответить прямо, насколько это всё актуально сегодня. Без претензий на вселенскую мудрость, сегодня кажется, что время подобных проектов ушло.
Впрочем, эта статья не сообщит об очередном убийце x86. Здесь я протяну невидимую нить между прошлым и настоящим. Ничего не исчезает без следа.
Вот, например, актуальный проект WebAssembly. Бинарный и текстовый формат хранения программных инструкций, а также одноимённый движок для исполнения этих инструкций. Мало кто знает, что существовал проект slim-binaries, который предполагал «хранить архитектурно-независимое представление программы, которое может быть эффективно преобразовано в машинные инструкции при загрузке».
Придумались они (slim-binaries) в процессе работы над проектом Оберон, который в свою очередь роднится с Модулой-2, для которой, собственно и воплотили в железе проект Кронос. Отдельной особенностью именно slim-binaries было то, что они ушли от хранения промежуточного кода к хранению абстрактных синтаксических деревьев, порождённых компилятором.
С другой стороны, известная S-нотация позволяет сохранять с помощью скобочек древовидные структуры, в том числе абстрактные синтаксические деревья, очень похожие на то, что мы можем увидеть в текстовом представлении WAT.
(module ;; Объявляем функцию и экспортируем её под именем "add" для JavaScript (func $add (param $a i32) (param $b i32) (result i32) ;; Помещаем первое число ($a) на стек local.get $a ;; Помещаем второе число ($b) на стек local.get $b ;; Инструкция i32.add забирает два верхних значения со стека, ;; складывает их и кладет результат обратно на стек i32.add ) ;; Делаем функцию доступной снаружи модуля (export "add" (func $add)))
Такие вот маленькие и большие вклады в большую всеобщую историю ИТ.
Факты
История любой забытой архитектуры, благодаря Тюрингу и фон Нейману может быть продолжена в виде интерпретаторов, эмуляторов и прочих ресурсоёмких археологических инструментов. Для проекта Кронос существует эталонная виртуальная машина, написанная непосредственными создателями проекта Кронос.
Есть и VHDL-представление для этой архитектуры, судя по фотографиям, оно даже работало, и это хорошо. Относительно недавно авторы Кроноса проявили активность на GitHub и даже сделали пару багфиксов (!!!) в проект тридцатилетней давности. Кстати, вот ссылка.
А я после долгого перерыва почему-то решил опять прикоснуться к теме Оберонов. Вероятно, всему виной слово на две буквы «И». Программирование руками умирает, а уж программирование железок руками точно умирает для человечества.
Поэтому я превратил мысли в идею, а идею в действие и с помощью ручного программирования, а затем с помощью двух весёлых букв, попытался реализовать очередной эмулятор Кроноса, в той мере, в которой это не приводило к угасанию интереса (нет, только не побитовые инструкции, нет).
Сначала получился эмулятор Кроноса в JVM. Всё потому, что я совсем не разбираюсь в языке Си. Оригинальный проект 98-го года открывался только в VS Code 2003 запущенной на Windows 7, то ещё удовольствие. Однако это позволило мне сгенерировать 3 миллиона отладочных трейсов, по которым я восстанавливал работу каждой (ну почти) инструкции уже в виде простого Java-кода.

Да, получилось не всё и не сразу, но в итоге я получил то, с чем можно работать, можно остановить, посмотреть и подумать о вечном, почему именно я стал программистом и за что мне всё это.
Но это была промежуточная станция на пути к конечной цели: реализовать ядро ВМ для Кроноса в виде набора инструкций WebAssembly. Но я же не знаю WebAssembly, да и писать в S-нотации то ещё удовольствие. Впрочем, я не испытываю неприязни к использованию ИИ в мирных целях, поэтому моим переводчиком с Java на WebAssembly стал Gemini.
Не без проблем, не без ошибок, но он довольно бодро нагенерировал мне 5 тыс. строк WAT-кода, да ещё и демонстрировал в процессе какое-то призрачное понимание того, что именно я прошу его сделать, хотя я специально не указывал ему название архитектуры, чтобы избежать лишних референсов, но думаю, он «догадался» сам..
В итоге получился неполный, но перспективный интерпретатор инструкций Кронос, более современный чем эталонное приложение на C для Windows (со всем уважением). Так как это WASM, почти автоматически мы получаем кроссплатформенность на уровне движка V8, то есть, NodeJS или web-браузер.

С исходным кодом можно ознакомиться по ссылке, также доступна ссылка на ВМ в браузере. В процессе кодогенерации восторженный ИИ не раз подчёркивал, как же хорошо и удобно инструкции целевой платформы ложатся на семантику работы WASM, какое интересное наблюдение от говорящего камня.
Впрочем, на то она и археология, камни рассказывают нам о прошлом и настоящем, а мы по результатам бесед строим более лучшее будущее для всех.
До встречи в будущем!
ссылка на оригинал статьи https://habr.com/ru/articles/1082662/