Зачем это и что здесь настоящее

Эта методичка — к набору лабораторных, в которых вы работаете с операционной системой 1986 года, запущенной на процессоре, описанном на Verilog. В браузере, без установки.

Прежде чем разбираться, стоит договориться, что именно настоящее, а что имитация. В ретрокомпьютерных проектах это обычно размыто, и зря.

Что настоящее

Процессор. Под страницей работает RISC5.v — синтезируемый Verilog Никлауса Вирта, прогоняемый такт за тактом симулятором Verilator. Это не модель процессора и не эмулятор: это тот самый код, который прошивается в ПЛИС. Когда вы видите на экране мигающий курсор, его рисует настоящая логика, просимулированная с точностью до такта.

Система. Project Oberon — операционная система, которую Вирт и Юрг Гуткнехт написали в 1986 году и переписали под собственный процессор в 2013-м. Вся она, вместе с компилятором, оконной средой и текстовым редактором, занимает около десяти тысяч строк.

Компилятор. Компилятор Оберона написан на Обероне и лежит на том же диске, что и всё остальное. В лабораторной №7 вы запустите его и он соберёт сам себя.

Что не настоящее

Периферия. Диск, клавиатура и мышь смоделированы на C++ и JavaScript. Настоящая плата общается с SD-картой по SPI и с клавиатурой по PS/2; здесь эти протоколы воспроизведены программно. Процессор об этом не знает — он видит те же регистры по тем же адресам.

Скорость. Симуляция даёт около четырёх мегагерц эквивалента — примерно вчетверо медленнее настоящей платы. Загрузка занимает пару секунд.

Почему этому можно верить

Утверждать «у нас настоящий процессор» легко. Проверить трудно. Поэтому всё, что вы увидите, проверено машинно, и проверки лежат в том же репозитории:

Последний пункт стоит того, чтобы задержаться. Он означает, что перед вами не музейный экспонат, а замкнутая система: описание процессора порождает процессор, процессор выполняет систему, система содержит компилятор, компилятор порождает саму систему. Круг сходится, и это проверяется одной командой.

Как читать дальше

Главы независимы настолько, насколько это возможно, но порядок не случаен:

Если хочется сразу потрогать — начинайте с лабораторной №1, она ничего не требует, кроме браузера.