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-13 05:22 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Это похоже на запуск x86 кода под x64-ядром
Системы команд хоть и родственные, но разные

Date: 2024-11-13 05:49 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
Или прикрутить этот эмулятор или впихнуть его в QEMU, а Linux умеет запускать чужие бинарники под QEMU.
Ну, есть варианты. Главное чтоб никто не собрался повторить подвиг и спаять на максимально простых микросхемах. :)

Date: 2024-11-13 06:34 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Вообще да, впихнуть эмулятор режима пользователя БЭСМ-6 под QEMU и запускать пакетные задачи как бинарники было бы весело. Вполне себе курсовой проект мог бы быть.

Date: 2024-11-13 06:30 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Кодить на Паскале под Линуксом - то ещё удовольствие, как мы недавно имели возможность убедиться.

Date: 2024-11-13 08:01 (UTC)
lxe: (Default)
From: [personal profile] lxe
А в чем фундаментальная проблема?
ABI разве не должен быть language agnostic? (Если язык не предписывает экзотическое представление данных.)

Date: 2024-11-13 08:32 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Фундаментальных проблем нет, но удовольствия никакого. Всё I/O по сравнению с Си делается через пень-колоду.

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