56
最小限のLinux OSがChromeの6MBのPDFドキュメントで動作 — LinuxPDFはRISC-Vエミュレータを活用
LinuxPDF スクリーン(Ading2210 のプロジェクトより)
(画像提供:Future)

Linuxオペレーティングシステムのバージョンが、Chromiumベースのブラウザで開いたPDFファイル内で実行できるようになりました。この6MBのLinuxPDFプロジェクトのコーディングの腕前は、高校生のAding2210氏によるものです。もしこの名前に見覚えがあるとしたら、それは1月に私たちが報じたDoomPDFを作成した人物と同じ人物だからかもしれません。

Ading2210氏は、PDF内でLinuxがTinyEMU RISC-Vエミュレータの改良版を使って動作していると説明しています。開発者は、LinuxPDFは「以前のDoomPDFプロジェクトと非常によく似た動作をする」と述べています。DoomPDFと同様に、このLinux-in-a-docプロジェクトにもパフォーマンス上の問題があり、本来の速度よりも「100倍以上遅い」と言われています。

画像

1

2

LinuxPDF スクリーン(Ading2210 のプロジェクトより)
(画像提供:Future)

TinyEMU RISC-Vエミュレータは、コードを「WebAssemblyではなくasm.jsをターゲットとする古いバージョンのEmscriptenを使用して」コンパイルする手法により、PDF内で動作します。このコードはPDFに埋め込まれて読み込まれ、その後、そのアーキテクチャをターゲットとする最小限のLinuxカーネルが自動実行されます。この実装では、ブラウザで「エミュレータを起動」に同意すると、LinuxPDF UIが読み込まれ、Linuxビューポートにウェルカムメッセージが表示され、OSの起動を待つことになります。

DoomPDFリリースを少し触ったことがある人なら、LinuxPDFの低コントラストのグレー表示に馴染みがあるでしょう。LinuxPDFは、ゲーム用PDFと同じ行単位のASCII出力で画面に出力します。

PDFのLinuxビューポートの下には、PDFボタンの配列で作成されたソフトキーボードがあります。ただし、ある程度の物理キーボードをお持ちの方は、キーボードUI領域の右下にある「キーボード入力はこちらに入力」フィールドにコマンドを入力する方が早いでしょう。

速度と効率性について、Ading2210氏はLinuxPDFの最大の問題はパフォーマンスにあるかもしれないと謙虚に認めています。「PDF内でLinuxカーネルの起動に約30~60秒かかり、これは通常の100倍以上遅いです」と開発者は指摘しています。Chromeの現在のPDFエンジンではジャストインタイム(JIT)コンパイラが無効になっているため、Ading2210氏は現時点ではコードを高速化する方法がないと考えています。

LinuxPDFを試してみたい場合は、正常に動作させるにはChromiumベースのブラウザが必要です(PC版Firefoxでは動作を確認しましたが、動作しませんでした)。あるいは、Ading2210氏のLinuxPDFの起動、ブート、そしていくつかのコマンドへの応答動画を見るだけで満足できるかもしれません。Ading2210氏の以前のプロジェクトと同様に、ソースコードはすべてGitHubで公開されており、閲覧・操作が可能です。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

マーク・タイソンはトムズ・ハードウェアのニュース編集者です。ビジネスや半導体設計から、理性の限界に迫る製品まで、PCテクノロジーのあらゆる分野を網羅的にカバーすることを楽しんでいます。