Виртуальная память (пейджинг) и уровни привилегий ядра и ядра являются основными, которых у игрушечного процессора может не быть. Я думаю, что были порты Linux без них, например, 8086 или 286 (не i386), но это не совсем правильный Linux.
Также, конечно, прерывание по таймеру и, вероятно, атомные нагрузки /хранит как минимум 32-битные целые числа. Вероятно, также атомарный тест и набор и, возможно, другие примитивы RMW, или, по крайней мере, LL / SC. Возможно, если ваш ISA только 16-битный, вы можете избежать только 16-битной атомарности, потому что это по-прежнему ширина указателя, но IDK, если что-то будет зависеть от 32-битных volatile
хранилищ или загрузок, являющихся атомарными. Я думаю, что Linux может использовать SeqLock для публикации 64-битных или 128-битных обновлений временных меток от прерывания таймера и тому подобного.
(Для портирования вам понадобится GCC-совместимый C-компиляторкоторые могут быть нацелены на ваш ISA, и некоторые рукописные асмы. И какой-то драйвер, который вы можете использовать в качестве консоли, например, последовательный порт.)