首页 > 解决方案 > 启动 Linux 的最低处理器能力

问题描述

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

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

标签: linux-kerneloperating-systemlinux-device-drivercpu-architectureinstruction-set

解决方案


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

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

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


推荐阅读