是否可以为 80286 机器(或任何没有分页内存机制但具有分段内存的机器)提供 Unix 操作系统?
80286是没有TLB、Page tables的CPU;只有分段虚拟内存和分段保护内存。
有可能在这样的机器上安装 Linux 吗?
UPD:处理器很旧,所以我只问历史版本,而不是超现代的 linux 2.6.42.11 或 Solaris 13 或 FreeBSD 10 或......
Linux/微控制器项目 (µClinux)是 Linux 到没有内存管理单元 (MMU) 的系统的一个端口。
还有较旧的ELKS项目。
但是,由于缺少 MMU,许多标准 UNIX 功能(如fork
和mmap
)不受支持。
今天的 Linux 只能编译为 486 或更高。所以不太可能。我确实记得 386 在 2.4.x 时代得到了一定程度的支持,但我不记得关于 286 的任何事情。
用户 Zack 说 Xenix(基于原始 UNIX)能够在 80286 上运行:
肯定有在 80286 上运行的 Unix——我想到了 Xenix——但我不知道是否有任何东西可以实现你所说的现代编程环境。
我查了一下,Xenix FAQ http://www.uni-giessen.de/faq/archiv/sco-xenix/msg00000.html说
QA1 ... PC/AT 提供了硬件内存保护,SCO Xenix/286 利用了它。
所以它是一个 PC/AT (80286) unix,它确实使用了使用分段内存的内存保护(与使用基于页面的内存保护的现代 unix 不同)。
根据http://www.deinmeister.de/x86modes.htm 80286 仅在段方面具有内存保护,而不是页面(在 80386 中添加了页面)。
不知道你对它的编程有多感兴趣(如果有的话),但不久前我在玩麻省理工学院的 OpenCourseWare 课程,他们有一个移植到 x86 的 Minix 版本(不确定它是否仅适用于 386+与否,似乎无法再找到链接)。无论如何,如果您有兴趣,可以在这里查看:MIT OpenCourseWare 操作系统工程
我怀疑是这样。从一开始,Linux 就是为 386 设计的,使用 386 特有的特性。另一方面,MINIX 早于 386(和 286),因此应该有兼容 286 的版本。