一位知名黑客完成了不可能完成的任务。他让一个精简版的 Linux 在上世纪 70 年代初的 4 位英特尔芯片上运行。当然,内核启动需要将近五天的时间,但无论如何,任务完成了。
德米特里-格林伯格在黑客界颇有名气。他为今年超酷的 DefCon 32 与会者徽章设计了固件,徽章上有一个 Game Boy Advance 模拟器。他还设法让 Doom 在由 Raspberry Pi 的新型 RP 2350 驱动的徽章上运行。由于格林伯格与徽章的硬件设计者 Entropic Engineering 有关联,DefCon 组织者与 Entropic Engineering 有过节,因此 DefCon 禁止格林伯格参加,并在他发言时将他赶出会场。
这位黑客高手的最新项目是自我挑战,让 Linux 在 1971 年的英特尔 4004 芯片上运行。这是英特尔的第一款商用芯片,比 Linux 早了二十年。如果不打破常规思维,这确实是一项不可能完成的任务。
英特尔 4004 是一个 740 kHz 的 4 位处理器,只有 2600 个晶体管和 16 个寄存器。英特尔公司专门为日本制造的 Busicom 141-PF 计算器设计了 4004 处理器,因此它的运算功能主要是加法和减法。它没有逻辑功能。它的 RAM 也只有 4KB 左右。因此,从字面上看,在 4004 上是无法运行 Linux 的。这就是格林伯格的发散思维和软硬件黑客技术发挥作用的地方。
首先,他在 4004 上创建了一个非常基本的 MIPS R3000 仿真器。前 TechSpot 研究员尼克-埃文森(Nick Evenson)在他的 PC Gamer 文章中指出,MIPS R3000 处理器诞生于 1988 年,正好是莱纳斯-托瓦尔兹(Linus Torvalds)编写 Linux 原始版本的时候。
埃文森说:"这种特殊的芯片与最初版本的 Linux 是同一时代的产品,因此它自然是仿真任务的不二之选,尽管实现起来绝非易事。"
确实"远非易事",因为我们现在讨论的是在 4 位芯片上模拟 32 位处理器。不过,这并没有阻止格林伯格。
格林伯格利用几个老式元件以及更多的硬件仿真和软件魔法,制作了一块带有简易显示屏的定制电路板,以显示裸机 Debian 发行版可以启动到命令提示符。不过,它不会打破任何速度纪录。
Ars Technica 指出:"格林伯格设计的定制电路板没有通孔(从电路板一侧到另一侧的路径),只有直角迹线,具有复古美感。它可以作为艺术品安装在墙上,在数天或数周内缓慢执行Linux命令。"
即使超频到高达 790 kHz,机器也需要 9 天才能启动。经过进一步调整,格林伯格将开机时间缩短到了 4.76 天。他大大加快了开机过程的视频速度,将时间压缩到更容易观看的程度(上图)。