将 Linux 内核移植到没有执行模式的体系结构(总是在内核模式) 并且没有 MMU 似乎是一个非常不受保护的系统。是否有可能让 Linux 在该环境中运行?如果可能的话,那是否毫无意义?既然 Linux 提供的所有安全性都浪费了,考虑其他替代方案是否更明智?
答案1
从技术角度来看,这并非不可能。20 世纪 80 年代,IBM 发布了IBM个人计算机和电脑XT,这些处理器基于 Intel 8088 处理器(8086 和 x86 系列的前身),没有保护模式:它始终能够执行所有操作。(它有一个非常简单的内存管理方案,允许它使用 16 位虚拟地址空间访问 2 20字节的物理地址空间。)
然而,有一个适用于 XT 的 Unix 版本。确实,任何进程都可以访问所有内存(或直接启动 I/O),但从 C 程序中做到这一点并不容易。用户知道它并不是真正安全的,但至少它具有虚假的安全性。它在某种意义上与 DOS(也许是最早的 Windows 版本)竞争,而 DOS 并没有安全性,因此,如果说有什么不同的话,那就是 Unix 在这个问题上领先了。
可能需要对 Linux 进行一些更改以使其不被原始硬件所阻塞,但这可能就像停用试图将用户进程置于用户模式的代码一样简单。甚至可能有一个
#ifdef
解决方案。当然,安全性并不是 Linux 的唯一特性:它是一种功能。除了 Unix(我将 Cygwin 等也算在内)之外,你还能在哪里找到
awk
、sed
、管道和无用的 cat?更重要的是,对于这样的计算机,你有两个基本选项:- 用它作为镇纸或门挡,或者
- 将其用作计算机。
如果你选择将它用作计算机,为什么不安装 Linux 呢?
当然,您永远不会想将它连接到互联网。