Linux kernel 引导Linux的最低处理器能力

Linux kernel 引导Linux的最低处理器能力,linux-kernel,operating-system,linux-device-driver,cpu-architecture,instruction-set,Linux Kernel,Operating System,Linux Device Driver,Cpu Architecture,Instruction Set,我正在设计一个定制处理器。它是一个流水线五级处理器。最终,我们希望在它上面引导Linux。为了启动像Linux这样的成熟操作系统,定制处理器必须具备的最低功能是什么 请注意,我不是在询问将Linux移植到自定义处理器所需的步骤。在这个阶段,我只想知道我的处理器必须支持哪些功能才能启动Linux之类的操作系统。虚拟内存分页和内核与用户权限级别是玩具CPU可能不具备的主要功能。有些Linux的端口没有这些,比如8086或286,我想不是i386,但这些不是完全合适的Linux 当然还有定时器中断,可

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


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

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

当然还有定时器中断,可能还有至少32位整数的原子加载/存储。也可能是原子测试和设置,也可能是其他RMW原语,或者至少是LL/SC。可能如果ISA只有16位,那么可能只有16位原子性,因为这仍然是指针宽度,但IDK是否取决于32位易失性存储或加载是原子的。我认为Linux可以使用SeqLock来发布来自计时器中断的64位或128位时间戳更新,诸如此类


至于移植,您需要一个与GCC兼容的C编译器,可以针对您的ISA,以及一些手工编写的asm。还有一些可以用作控制台的驱动程序,例如串口。

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

当然还有定时器中断,可能还有至少32位整数的原子加载/存储。也可能是原子测试和设置,也可能是其他RMW原语,或者至少是LL/SC。可能如果ISA只有16位,那么可能只有16位原子性,因为这仍然是指针宽度,但IDK是否取决于32位易失性存储或加载是原子的。我认为Linux可以使用SeqLock来发布来自计时器中断的64位或128位时间戳更新,诸如此类


至于移植,您需要一个与GCC兼容的C编译器,可以针对您的ISA,以及一些手工编写的asm。还有一些可以用作控制台的驱动程序,例如串口。

ARM7没有MMU,它不阻止在其上运行Linux。基本上,任何微处理器即使是8位微处理器都能运行Linux,问题是用户需要什么功能。问题中没有列出这些要求。ARM7没有MMU,它不阻止在其上运行Linux。基本上,任何微处理器即使是8位微处理器都能运行Linux,问题是用户需要什么功能。问题中没有列出这些要求。