世界初の商用マイクロプロセッサであるIntel 4004は、1971年にBusicom 141-PF電卓向けに設計された。2,300トランジスタ、4ビット、740 kHz、割り込みなし、ANDやORといった基本的な論理演算すら備えていない。ハードウェアハッカーDmitry Grinberg氏は、2012年に8ビットAVRマイクロコントローラという当時最も低性能なマシンで本物のLinuxを動かす記録を打ち立て、その後他の人に追い抜かれていたが、その記録を最初のマイクロプロセッサまで押し進めることにした。

仕掛けは、不可能なマシンの内部にエミュレータを置くことだ。4004が実行するのは、Linuxが最初に移植されたアーキテクチャであるDECstation 2100ワークステーションのMIPS R3000のエミュレータである。ルックアップテーブルなどの工夫で原始的なCPUから性能を絞り出し、最終ビルドでは4004を790 kHzにオーバークロックし、時代に合ったIntel MCS-4サポートチップで囲み、Linuxの出力をVFDディスプレイに表示し、シリアル入力を受け付ける。消費電力はすべて合わせて約6Wである。簡素化したDebian Linuxは4.76日でコマンドプロンプトまで起動し、コマンドの実行には数日から数週間かかる。

特注の回路基板はビアなし、直角配線のみで、壁掛けのアート作品としても成立するが、実用的な目的はない。しかし完全な回路図とソースはGrinberg氏のサイトで公開されており、同氏はLinuxを最も遅い状態で体験したい人向けにキットを提供することも検討している。

Linuxを下へ移植するのではなく、上へエミュレートする。つまり4004にMIPS R3000エミュレータを動かさせ、CPUにLinuxが最初に移植されたマシンをエミュレートさせるのだ。

問題はエミュレーションとして捉え直されている。Linuxを2,300トランジスタに押し込むのではなく、4004にLinuxを動かせるソフトウェアマシンを与えるのだ。

エミュレートする対象は系譜に基づいて選ばれている。Linuxが最初に移植されたまさにそのマシン、DECstation 2100のMIPS R3000である。

ルックアップテーブルが、シリコンが物理的に欠いている論理演算の代わりを務める。制約に突き動かされたこうした工夫が、この偉業をそもそも可能にしている。

細部に至るまで検証可能である。回路図とソースは公開されており、起動時間は測定できる。4.76日である。

プラットフォームがソフトウェアを動かせないときは、そのギャップを、ソフトウェアの元々の住処を狙ったエミュレーション層で包み込む。つまり、1台の遅いマシンが、コードが期待するマシンになりすますのだ。

Ars Technicaは2024年9月に、Linuxの柔軟性とエミュレーションの限界を示す実演としてこのプロジェクトを報じた。Grinberg氏はキットや組み立て済み基板の販売をほのめかしているが、情報源の中では何も確約されていない。同氏の2012年のAVRの記録は他の人に破られており、それがこのプロジェクトを始めるきっかけとなった。

出典をたどる

出典

  1. Linux boots in 4.76 days on the Intel 4004 Ars Technica · arstechnica.com ·