vak: (Default)
[personal profile] vak
Я тут подумал. Если взглянуть на взаимодействие юзерского кода с ядром юникса, можно заметить, что системы команд не обязаны совпадать. Программа юзера может иметь одну систему команд, а ядро - совсем другую. Параметры системного вызова передаются через регистры. Если форматы данных и указателей более-менее совместимы, то и нет проблем.

Мы имеем мэсм6, то есть реализацию системы команд БЭСМ-6 на Верилоге. А Микрочип имеет PolarFire: микропроцессор RISC-V с Линуксом и FPGA в одном чипе. Платка стоит $132 на microchipdirect.com.
Что если скрестить ежа с ужом? Добавить к имеющимся ядрам RISC-V еще и ядро БЭСМ-6. Благо FPGA вроде немаленького размера (95K логических элементов). Научить Линукс запускать и обслуживать процесс БЭСМ-6. Задействовать имеющийся у нас компилятор Паскаля, и можно будет кодить для БЭСМ-6 под Линуксом!

А если ещё маленько поднапрячься, можно и мониторную систему "Дубна" подтащить. Получим весь спектр языков программирования и ассемблеров. Опыт мы наработали на симуляторе dubna.

Мне кажется, вполне реальная идея.

Date: 2024-11-15 21:33 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Если этот скрипт будет достаточно умён, чтобы по -c создавать стандартные массивы (хоть через *punch, хоть через *to perso во временный файл и выдирание оттуда, чтобы не тратить 2 зоны на каждый объектный модуль), а если они указаны в командной строке - правильно вводить их во временную библиотеку (хоть через перфокарточный формат стандартного массива, хоть через формирование perso во временном файле и *perso), то должно работать. Перфокарточный формат представляется более прямолинейным.