レトロ革命:あるハッカーがWindows Subsystem for LinuxをWindows 95にもたらした方法

Windows Subsystem for  Linux (WSL)は長い間、現代的なWindowsオペレーティングシステムの反復と同義語として使用されてきました。したがって、Windows 95または98内でこのような相乗効果を実現するという概念は風刺的です。しかし、自称計算機愛好家および達人であるHayleyは、この奇想天外な概念を具体的な現実に変え、WSL9x(Windows 9x Subsystem for Linux)を発表しました。

HayleyはMastodonでの努力を記録し、このプロジェクトを彼女のキャリアの中で最も深い「ハック」の1つと特徴づけました。CodebergのWSL9xリポジトリによると、アーキテクチャはWindows 9x環境内でLinux 6.19カーネルを協調モードで実行します。これにより、ユーザーは現代的なWSL体験を彷彿とさせる方法でLinuxと対話できますが、グラフィカルユーザーインターフェイスはありません。代わりに、愛好家はターミナルインターフェイスを通じてシステムと通信する必要があります。

このようなプロジェクトの実存的必要性は即座の調査を招きますが、Hayleyはその仕組みについて徹底的な技術的説明を提供しました。システムは3つの異なる柱で構成されています。従来のPOSIXインターフェイスではなくWindows 9x APIと相互作用する慎重にパッチされたLinuxカーネル。操作上の中核として機能する仮想デバイスドライバ(VxD)。および中間レイヤーとして機能するWSLクライアント。

VxDドライバは最も厳しい計算タスクを実行し、サブシステムを初期化し、ページフォルトおよびシステムコールを含むユーザー空間イベントをカーネルに中継します。Windows 9xのアーキテクチャ上の制約により、Hayleyは高度な回避策を設計する必要がありました。Windows 9xには、i386 Linuxシステムコール割り込みの本質であるint 0x80の標準ハンドラーをホストするのに十分な拡張割り込み記述子テーブルがありません。

これを回避するために、WSL9xは汎用保護障害ハンドラーを活用します。システムは障害を引き起こした命令を精査します。int 0x80インスタンスを検出すると、割り込みが成功したかのように命令ポインターをインクリメントし、呼び出しを正当なシステム要求としてLinuxカーネルにリダイレクトします。この方法論はレガシープラットフォームでは非常に異例ですが、プロジェクトが時代遅れの制限を超越することを可能にする要です。

クライアント側のコンポーネントはかなり初歩的です。Hayleyはそれをスタンドアロンアプリケーションではなく、主にDOSコマンドラインプロンプトをLinuxカーネルにTTYとして流すために設計された、洗練された16ビットDOSクライアントとして説明しています。

プロジェクトの技術的な輝きにもかかわらず、WSL9xは本来の不安定性を抱えています。ハッカーニュースでの議論の中で、Hayleyはこの構成内で、LinuxカーネルはWindowsカーネルと同じRing 0特権で動作することに注意しました。このレベルの抑制されないアクセスは重大なセキュリティリスクと潜在的な不安定性をもたらします。この協力的な構成では、WindowsとLinuxは完璧に調和して機能する必要があります。どちらかが失敗した場合、システム全体は必然的に崩壊します。

スマートデバイスセキュリティ

WSL9xが主流の普及を達成する可能性は低いですが、Windows 95、98、またはMEを実行するヴィンテージハードウェアを保持している人々にとって、特に古い機械がレガシー ソフトウェアのために必須である産業またはサーバー環境では、魅力的な好奇心のままです。WSL9xで実験する大胆な人々のために、Hayleyはプロジェクトのリポジトリに包括的なデプロイメント命令を提供しました。

翻訳元: https://meterpreter.org/retro-revolution-how-one-hacker-brought-the-windows-subsystem-for-linux-to-windows-95/

ソース: meterpreter.org