Linux内核仅在内核模式下工作

Linux内核仅在内核模式下工作

将 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 等也算在内)之外,你还能在哪里找到awksed、管道和无用的 cat?更重要的是,对于这样的计算机,你有两个基本选项:

    • 用它作为镇纸或门挡,或者
    • 将其用作计算机。

    如果你选择将它用作计算机,为什么不安装 Linux 呢?

当然,您永远不会想将它连接到互联网。

相关内容