3

是否可以为 80286 机器(或任何没有分页内存机制但具有分段内存的机器)提供 Unix 操作系统?

80286是没有TLB、Page tables的CPU;只有分段虚拟内存和分段保护内存。

有可能在这样的机器上安装 Linux 吗?

UPD:处理器很旧,所以我只问历史版本,而不是超现代的 linux 2.6.42.11 或 Solaris 13 或 FreeBSD 10 或......

4

5 回答 5

5

Linux/微控制器项目 (µClinux)是 Linux 到没有内存管理单元 (MMU) 的系统的一个端口。

还有较旧的ELKS项目。

但是,由于缺少 MMU,许多标准 UNIX 功能(如forkmmap)不受支持。

于 2011-02-18T20:06:03.700 回答
3

今天的 Linux 只能编译为 486 或更高。所以不太可能。我确实记得 386 在 2.4.x 时代得到了一定程度的支持,但我不记得关于 286 的任何事情。

于 2011-02-18T19:51:44.047 回答
2

用户 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 中添加了页面)。

于 2011-02-20T01:12:15.673 回答
1

不知道你对它的编程有多感兴趣(如果有的话),但不久前我在玩麻省理工学院的 OpenCourseWare 课程,他们有一个移植到 x86 的 Minix 版本(不确定它是否仅适用于 386+与否,似乎无法再找到链接)。无论如何,如果您有兴趣,可以在这里查看:MIT OpenCourseWare 操作系统工程

于 2011-02-18T21:11:01.033 回答
0

我怀疑是这样。从一开始,Linux 就是为 386 设计的,使用 386 特有的特性。另一方面,MINIX 早于 386(和 286),因此应该有兼容 286 的版本。

于 2011-02-18T19:59:53.030 回答