是否有可能为 80286 机器(或任何没有分页内存机制但具有分段内存的机器)提供 Unix 操作系统?
80286是没有TLB、页表的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 上运行:
确实有一些 Unix 运行在 80286 上——我想到了 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 Operating System Engineering
有点反应迟缓(!),但我曾经运行过 Coherent 3.2,它是一个使用 16 位保护模式的 Unix 克隆。 (我在 386 上运行它,但我认为它不需要一个。)
我对此表示怀疑。 从一开始,Linux 就是为 386 设计的,使用了 386 特有的功能。另一方面,MINIX 早于 386(和 286),因此应该有一个兼容 286 的版本。