YouTuberがマイクロソフトの墓場から「数千のアプリ」をWindows 95にノスタルジックに移植

知っておくべきこと
- 最近、ある YouTuber が、いかにして「何千ものアプリ」を Windows 95 に巧みにバックポートできたかを記録しました。
- このプロセスには、DLL ファイルの不足、.NET Framework の互換性の問題など、いくつかのボトルネックがありました。
- この YouTuber は、WinDebug を使用して、Windows 95 で .NET Framework がクラッシュする問題を特定しました。互換性の問題は手動で修正され、最終的に Lego Island Rebuilder とカスタム Snipping Tool が Windows 95 でシームレスに動作できるようになりました。
51分間の動画で、YouTuberのMattKC氏は「何千ものアプリ」をWindows 95に移植した経緯を解説しています。彼は、.NET FrameworkをWindows 95に移植するという、 ほとんどの人にとって不可能と思われる作業に着手しました。
.NET Frameworkは、アプリケーション構築のためのツール、プログラミング言語、ライブラリで構成される開発プラットフォームです。また、このツールがWindowsに初めて搭載されたのはWindows 98の時代であり、Windows 95ではサポートされていなかったことも注目に値します。そのため、このYouTuberにとって、まずこのツールをWindows 95にバックポートすることが不可欠でした。
関連:マイクロソフトは、大きな可能性を秘めていたものの、適切な実行が欠如した製品によって機会を逃した
.NET FrameworkをWindows 95にバックポートする彼の取り組みは成功しましたが、これは彼を待ち受ける巨大な事業への足がかりに過ぎませんでした。まず、Windows XPとWindows 2000に限定されたアプリケーションをWindows 98で実行できるように設計されたオープンソースの互換性レイヤーであるKernelExは、Windows 95では動作しませんでした。
DLLファイルが見つからない、.NET Frameworkがサポートされていない
この演習では、不足している DLL ファイルも多数見つかり、不足している DLL ファイルを特定して移植するためのダンプ ツールを使用したにもかかわらず、Windows 95 で .NET Framework を動作させようとするこの YouTuber の努力は無駄に終わりました。
続きを読む:私は2003年からのWindows XPアプリを使ってハードドライブをクリーンアップしていますが、今後も使い続けるつもりです。
問題の原因を突き止めるためにさらに深く調査を進めた結果、このYouTuberは「ndphlpr」と呼ばれるレガシーWindowsドライバが.NET Frameworkのクラッシュを引き起こしていることを発見しました。このレガシーWindowsドライバは、Windows 95で.NET Frameworkを実行するために不可欠なコンポーネントであり、これをバイパスする有効な方法はないようです。ある時点で、このYouTuberはこのコンポーネントが存在すると嘘をつこうとしましたが、これも失敗しました。興味深いことに、このレガシーWindowsドライバはWindows 98では使用されていませんでした。
Windows と Xbox の熱狂的なファンのための最新ニュース、レビュー、ガイド。
WinDebug は救いの手
このYouTuberは、Windows 95上の.NET Frameworkでクラッシュを引き起こした問題を調査するためにWinDebugを利用しました。最終的に、いくつかのクリック関数で不足しているWindows APIにリンクされたコードが出力されました(下図参照)。
F2 0F 10 44 24 08 F2 05 2C CO
当時WinDebugはサポートされていなかったため、MattKC氏はWinDebugを動作させるまでに複数の互換性の問題を回避しなければなりませんでした。さらに分析を進めたところ、問題はuser32.dllライブラリの「NotifyWinEvent」が利用できないことが原因で発生していることが判明しました。さらに事態を悪化させたのは、SSE2によってコード内の命令が難読化されていたことです。MattKC氏はSSE2を削除することでこの問題の修正を試みましたが、互換性の問題は解決しませんでした。
続きを読む: Windows Longhorn を振り返る: David Cutler 氏が「今まで見た中で最悪のコード」と嘆く
最終的に、このYouTuberはエラーメッセージをウィンドウに表示する独創的な方法を見つけ、DLLの互換性の問題を解決しました。その結果、LEGO Island RebuilderとカスタムSnipping ToolをWindows 95で動作させることに成功しました。
この記事ではビデオの重要な部分のみを取り上げましたが、YouTuber が優れた下位互換性スキルを披露しているので、プロセスをステップごとに実行することもできます。かなり印象的な偉業かもしれません。
ケビン・オケムワは、ケニアのナイロビを拠点とするベテランのテクノロジージャーナリストです。Windows Centralで業界の最新トレンドや動向を幅広く取材し、豊富な経験を有しています。イノベーションへの情熱と細部への鋭い洞察力を持つ彼は、OnMSFT、MakeUseOf、Windows Reportといった主要メディアに寄稿し、Microsoftエコシステムを取り巻くあらゆるトピックについて、洞察力に富んだ分析と最新ニュースを提供しています。常に変化するテクノロジーのトレンドを追っている暇な時は、世界を旅したり、音楽を聴いたりしています。