Embeddable Linux Kernel Subset - ELKS


ELKS 是一个“16 位、无 MMU、跑在 IA16(8086 系列)上的 Linux 子集”,支持超古老的 8086/8088/80186/80286 CPU,也能跑在 SBC、FPGA、ESP32 模拟器上。首发于1999年5月。

ELKS is a project providing an early fork of the Linux OS for systems based on the Intel IA16 architecture (16-bit processors: 8086, 8088, 80188, 80186, 80286, NEC V20, V30 and compatibles). Such systems can be ancient computers (IBM-PC XT / AT and clones) as well as more recent SBCs, SoCs, FPGAs, as well as modern 80386+ x86 desktops. ELKS supports networking, graphics, ia16-elf-gcc, OpenWatcom C and its own native C compiler, and installation to HDD using both MINIX and MSDOS FAT filesystems.
• 内核:精简的 Linux 0.x/1.x 分支
• 文件系统:MINIX、FAT16(MSDOS)
• 网络:基本的 TCP/IP、telnet、netstat 等
• 编译器:ia16-elf-gcc、OpenWatcom C、ELKS 原生 C 编译器
不用额外买硬件,直接用 QEMU、v86 在线模拟都能玩,甚至可以直接 telnet 到老 BBS 站点。

能做什么
咱归根结底,玩 ELKS 就是给老硬件赋予新活力。下面这张表展示了其基本特性:
随手敲几个命令:
mount /dev/fd0 /mnt
cd /bin
nxtetris
按下 'n' 就能体验 80 年代的俄罗斯方块,穿越感十足。

解决了哪些痛点
1. 古董硬件复活:1990 年代的老 PC,内存 512K、软驱一张,依然能跑当年的 “Linux” 系统。
2. 教学和研究:想研究操作系统内核,弄个小而精的内核源码,分析比现代内核可读多了。
3. 嵌入式探索:无 MMU、资源极度受限场景,ELKS 提供了极简可用的 Linux 体验,能当嵌入式学习平台。
4. 编译链自洽:全套工具链跑在宿主机和 ELKS 本机上,不用折腾复杂交叉编译环境。
优缺点
下面用表格给大家直观对比:
ELKS,既是一台“穿越机”,把 8086 世界和 Linux 串起来;又是一个“小而美”的操作系统实验平台,非常适合怀旧玩家、OS 教学、嵌入式入门。
如果你手头有台老机器,或者想搞搞精简内核项目,不妨试试 ELKS,绝对能带给你前所未有的“时光倒流”体验。
最新版本:0.8
v0.8.1于2024年10月中旬发布。
项目主页:https://github.com/ghaerr/elks

ELKS is a project providing an early fork of the Linux OS for systems based on the Intel IA16 architecture (16-bit processors: 8086, 8088, 80188, 80186, 80286, NEC V20, V30 and compatibles). Such systems can be ancient computers (IBM-PC XT / AT and clones) as well as more recent SBCs, SoCs, FPGAs, as well as modern 80386+ x86 desktops. ELKS supports networking, graphics, ia16-elf-gcc, OpenWatcom C and its own native C compiler, and installation to HDD using both MINIX and MSDOS FAT filesystems.
• 内核:精简的 Linux 0.x/1.x 分支
• 文件系统:MINIX、FAT16(MSDOS)
• 网络:基本的 TCP/IP、telnet、netstat 等
• 编译器:ia16-elf-gcc、OpenWatcom C、ELKS 原生 C 编译器
不用额外买硬件,直接用 QEMU、v86 在线模拟都能玩,甚至可以直接 telnet 到老 BBS 站点。

能做什么
咱归根结底,玩 ELKS 就是给老硬件赋予新活力。下面这张表展示了其基本特性:
功能 | 要求/说明 |
内存需求 | 256K 运行,512K 更舒适,128K ROM 系统也能跑 |
存储 | 软盘(1.44MB)、硬盘(FAT、MINIX)、ROM |
用户空间程序 | vi、basic、nxtetris、doom(当然很简化版) |
网络 | 网卡驱动 + TCP/IP + telnet/ftp |
图形 | Nano‐X 简单窗口,VGA/text 模式 |
开发链 | ia16-elf-gcc、as86、ld86、make |
随手敲几个命令:
mount /dev/fd0 /mnt
cd /bin
nxtetris
按下 'n' 就能体验 80 年代的俄罗斯方块,穿越感十足。

解决了哪些痛点
1. 古董硬件复活:1990 年代的老 PC,内存 512K、软驱一张,依然能跑当年的 “Linux” 系统。
2. 教学和研究:想研究操作系统内核,弄个小而精的内核源码,分析比现代内核可读多了。
3. 嵌入式探索:无 MMU、资源极度受限场景,ELKS 提供了极简可用的 Linux 体验,能当嵌入式学习平台。
4. 编译链自洽:全套工具链跑在宿主机和 ELKS 本机上,不用折腾复杂交叉编译环境。
优缺点
下面用表格给大家直观对比:
优点 | 缺点 |
极轻量:最低 128K 即可启动 | 功能少:现代常用的系统调用、库都没得用 |
支持多种编译器:ia16-elf-gcc、OpenWatcom C | 驱动不全:显卡、网卡仅支持一小部分型号 |
可跑在真实硬件和模拟器上 | 网络性能有限,且配置稍繁琐 |
社区活跃:文档齐全、issue 响应快 | 界面原始:图形只靠 Nano‐X,体验比不上现代 GUI |
超有趣:玩复古、学内核、搞嵌入式一举多得 | 学习曲线:IA16 架构、无 MMU 特性都要额外适应 |
ELKS,既是一台“穿越机”,把 8086 世界和 Linux 串起来;又是一个“小而美”的操作系统实验平台,非常适合怀旧玩家、OS 教学、嵌入式入门。
如果你手头有台老机器,或者想搞搞精简内核项目,不妨试试 ELKS,绝对能带给你前所未有的“时光倒流”体验。
最新版本:0.8
v0.8.1于2024年10月中旬发布。
项目主页:https://github.com/ghaerr/elks