Windows 95で動くWSL、独立開発者が公開
Linuxを動かす手段は珍しくもない時代に、Windows 95の画面からモダンなLinux 6.19カーネルを叩き起こせると聞いたら、さすがに二度見するだろう。ヘイリーというハッカーが公開した「WSL9x」は、まさにそれをやってのける代物だ。
Linuxを動かす手段は珍しくもない時代に、Windows 95の画面からモダンなLinux 6.19カーネルを叩き起こせると聞いたら、さすがに二度見するだろう。ヘイリーというハッカーが公開した「WSL9x」は、まさにそれをやってのける代物だ。
30年越しのハック、WSLをWindows 95へ
Windows 9x上でLinuxカーネル 6.19を協調動作させる「WSL9x」が、2026年4月22日にCodebergで公開された。作者はMastodonで活動するヘイリー(Hailey)で、本人はこれを「自分の最高のハックの一つ」と評している。
GUIは存在しない。MS-DOSプロンプトからwslと打ち込んで開くttyの中で、Linuxのshellが立ち上がる。やっていることはモダンなWSLと同じ体感だが、土台が 1995年のOS というだけだ。
Codeberg上のREADMEでヘイリーが明記している一文が、いかにも今っぽい皮肉を帯びている。
Proudly written without AI.(誇りを持って、AIなしで書いた)
AI支援でコードが湧いて出るこの時代に、ring 0を舐め回すような低レイヤーのハックを一人で書き上げたという自負だろう。実際、Hacker Newsでは「これはAIの手には負えない領域だ」との反応が並んだ。
仕組みは三点セット、ただし中身は完全な変態
WSL9xは3つの部品で成り立っている。ユーザーモードLinux(UML)をベースに改造した Linuxカーネル、VxDドライバ、そして16ビットDOSプログラムのwsl.comクライアントだ。
Linuxカーネルは通常POSIX APIを呼ぶはずのところを、Windows 9xのカーネルAPIを叩くように書き換えられている。しかもring 3のユーザーモードではなく、ring 0で動く。WindowsカーネルとLinuxカーネルが同じ特権レベルで同居する構造だ。
問題はシステムコールの受け取り方で、ここからが本気の変態芸になる。Linuxのi386向けシステムコール割り込みint 0x80を、Win9xは正規のハンドラとして扱えない。
Win9xには int 0x80 用の正規ハンドラを仕込めるほど長い割り込み記述子テーブル(IDT)がない。だから一般保護違反(GPF)ハンドラ経由でシステムコールを処理する。つまり、Linuxがint 0x80を叩くたびにわざと例外を起こし、そのGPFハンドラが「あ、これシステムコールですね」と気づいて命令ポインタを進め、Linuxカーネルにディスパッチする。正攻法が塞がれた以上、 例外処理の隙間を通す しか手がなかった。
クライアントのwsl.comは16ビットDOSプログラムで、独自のターミナルを実装する代わりにMS-DOSプロンプトそのものをttyとして使い回す。ANSI色を出したければ、NNANSIのようなDOS用ドライバを先に読み込んでおけばいい。このあたり、当時のDOSユーザーなら体が覚えている世界だろう。
実用性を聞いてはいけない、でも実は刺さる現場もある
「なぜ作った?」という疑問は、誰の頭にも浮かぶ。The Registerはヘイリー本人に取材を試みたが、記事公開時点で返答はなかったという。ヘイリー自身はLobste.rsで「For fun. This is not a serious/commercial project.(趣味。真面目な商用プロジェクトじゃない)」と答えている。
実はこのハック、ヘイリーにとって完全な新作ではない。6年前、彼女は「doslinux」というプロジェクトを公開していた。DOSの中でLinuxが動いているように見せかける逆方向のトリックで、WSL9xは事実上その続編にあたる。Hacker Newsで「doslinuxより簡単だったのでは?」と揶揄されたヘイリーは、こう返している。
well it did take me 6 years to follow that up!(まあ、続編を出すのに6年かかったけどね)
一方、実用性の面でも思わぬ場所に刺さる可能性がある。Hacker Newsのコメント欄には、いまだに 無線送信設備や工業用制御 でWindows 95が現役稼働しているという報告が複数並んだ。サポート切れのOSに縛られた現場にとって、モダンなLinuxのツールチェーンを同じマシン上に持ち込める選択肢は、単なる悪ふざけでは済まないかもしれない。
代償は「片方が落ちれば両方落ちる」
もちろん、この構造には代償がついてくる。ヘイリーがHacker Newsスレッドで自ら警告している。
協調動作するはずだけど、どちらかがクラッシュしたらもう片方も道連れだ。
Linuxカーネルが壊れればWindowsも落ちる。Windowsが青画面になればLinuxも消える。両者がring 0で同じ特権を共有している以上、 メモリ保護は機能しない し、プロセス分離も互いには成立しない。セキュリティ的にも決してクリーンな構造ではなく、ヘイリーもその点は隠していない。
それでも、このプロジェクトが技術コミュニティで熱狂的に受け止められているのは、純粋な技術的好奇心と執念の塊だからだろう。仮想化ハードウェアに一切頼らず、486でも動く可能性がある設計。Windows 9xのカーネル構造を執拗に読み込んだ人間でなければ書けないコード。2026年のAI時代に、一人の人間が6年かけて積み上げた執念がそこにある。
ライセンスはGPL-3。ビルドにはi386-linux-musl向けクロスツールチェーンとOpen Watcom v2、そしてWindows 9xがインストール済みのHDDイメージが必要になる。試したい人はCodebergのリポジトリへどうぞ。ただし、壊れて困るWindows 95マシンでは走らせない方がいい。
参照元
他参照
関連記事
- Gentooのエイプリルフールがガチだった件──36年越しのカーネルが動く
- AI駆動の検査がLinuxから27,646行を削り始めた
- Firefox 150配信、分割ビューとPDF編集が本格化
- Radeon HD 7870 XT、14年目のLinux対応
- CachyOS、Linux 7.0に7.1の新機能を先取り搭載
- Linux 7.1で「蘇生」したNTFS、リーナスが刻む皮肉
- Linux 7.1に新NTFSドライバ、NTFS3と併存へ
- Linux 7.1、i486削除コードが正式マージ──反対ゼロ
- Linux v0.1の残骸を一掃:35年越しの「春の大掃除」
- フランス政府がWindowsを捨てLinuxへ移行、「デジタル主権」の本気度