启动 Linux 的最低处理器功能



我正在设计一个定制处理器。它是一个流水线五级处理器。最终,我们希望在上面启动Linux。为了启动像 Linux 这样的成熟操作系统,自定义处理器必须具备哪些最低功能?

请注意,此时我不是在询问将 Linux 移植到我的自定义处理器所需的步骤。在这个阶段,我只想知道我的处理器必须支持哪些功能才能启动像 Linux 这样的操作系统。

虚拟内存(分页(和内核与用户权限级别是玩具 CPU 可能没有的主要权限级别。 有些 Linux 端口没有这些,比如 8086 或 286(不是 i386(,但这些都不是完全合适的 Linux。

当然还有一个计时器中断,可能还有至少 32 位整数的原子加载/存储。 可能还有原子测试和设置,也许还有其他 RMW 原语,或者至少是 LL/SC。 可能如果你的ISA只有16位,你可能只有16位原子性,因为这仍然是指针宽度,但是IDK如果有什么取决于32位volatile存储或加载是原子的。 我认为 Linux 可以使用 SeqLock 从计时器中断发布 64 位或 128 位时间戳更新,以及类似的东西。

(就移植而言,您需要一个可以针对ISA的GCC兼容C编译器,以及一些手写的asm。 以及某种可以用作控制台的驱动程序,例如串行端口。

最新更新