Lotus 1-2-3、Linux に移植される 39
存在を忘れてた 部門より
Google Project Zero のバグハンター、Tavis Ormandy 氏が Lotus 1-2-3 を Linux に移植したそうだ (Ormandy 氏のブログ記事、 GitHub リポジトリ、 The Register の記事、 動画)。
Lotus 1-2-3 が大好きだという Ormandy 氏は DOS 版の Lotus 1-2-3 R4D を DOSEMU2 上で実行するためのディスプレイドライバーも開発している。さらに数年前から Lotus 1-2-3 の機能を拡張できるアドインについて調査を進め、今回の Linux への移植につながったという。
Lotus 1-2-3 のアドインは LPL と呼ばれる専用の言語で書かれているが、SDK は 395 ドルで販売されていたことからユーザー数は少なく、SDK もコンパイラーも失われている。Ormandy 氏はアドイン開発の解説本をなんとか見つけたものの、SDK を手にすることができなかった。それから 1 ~ 2 年が過ぎ、Ormandy 氏は 90 年代の BBS シーンでシスオペだったという人物に出会う。彼は古い BBS システムのテープバックアップを保存しており、その中から不正コピー版の SDK を発見し、復元できたとのこと。
それだけでも大きな進展だが、BBS からはさらに Lotus 1-2-3 for UNIX が発見される。インストールディスクから見つかった「123.o」は UNIX の実行形式ファイル COFF であり、GNU objcopy により Linux の ELF 形式にできるが、システムコールや関数の互換性、リロケーションの問題などを解決する必要がある。そのため、Ormandy 氏は coffsyrup と呼ばれる小さなツールも作成している。
数多くのハックの結果、Lotus 1-2-3 は でクラッシュすることなく Linux 上で実行できるようになった。ライセンスファイル 「LICENSE.000」が見つからなければ起動を拒否する機能も搭載されているとのことだ。