Реализована загрузка Linux на ПК Commodore 64 с восьмиразрядным CPU и 64КБ ОЗУ

Продемонстрирована возможность загрузки Linux на персональном компьютере Commodore 64, выпускавшемся в 80-х годах прошлого века. Для организации запуска Linux на устройстве с разработанным в 1975 году восьмиразрядным микропроцессором MOS 6502 был задействован semu, минималистичный эмулятор системы с процессором RISC-V (RV32IMA), способной выполнить ядро и компоненты пользовательского окружения Linux. Сборка эмулятора для работы на CPU серии MOS 65xx была произведена при помощи инструментария llvm-mos, основанного на LLVM и позволяющего собирать для устаревших процессоров современные программы, написанные на С/C++.

Так как компьютер оснащён всего 64 КБ ОЗУ в работе был задействован блок расширения памяти (REU, RAM Expansion Unit) и эмуляция виртуальной памяти с MMU. Загрузка ядра Linux при запуске в эмуляторе RISC-V заняла около недели, а запуск эмулятора и создание скриншота – несколько часов. При повторном проведении экспериментам применение оптимизаций позволило сократить время загрузки до 39 часов. Предполагается, что включение дополнительных оптимизаций позволит ускорить работу эмулятора ещё примерно в 10 раз. Для того чтобы исключить длительный процесс загрузки также реализована возможность использования слепка уже загруженного состояния эмулируемой системы по аналогии с созданием снапшотов виртуальных машин.


Release. Ссылка here.