ReactOS、初のNT6システムコールを実装。Vista互換へ前進

ReactOS、初のNT6システムコールを実装。Vista互換へ前進
ReactOS

Windowsとのバイナリ互換を目指すオープンソースOS「ReactOS」が、2026年7月1日、初めてNT6世代のシステムコールをカーネルに取り込んだ。30年間、Windows XPとWindows Server 2003のアーキテクチャであるNT5.2に留まり続けてきたReactOSが、Vista以降の互換に向けて動き出した。


何が実装されたか

ReactOSの開発ツリーにマージされたPR #9184は、NtGetCurrentProcessorNumberExとそれに関連するNT6プロセッサ関数を実装した。ティモ・クロイツァー(Timo Kreuzer)氏が6月19日に提出したもので、4つのコミットから成る。

NtGetCurrentProcessorNumberExは、呼び出し元のスレッドがどの論理プロセッサ上で動作しているかを返す関数だ。Windows VistaでNT5世代のNtGetCurrentProcessorNumberを拡張する形で導入され、プロセッサグループをまたぐ環境に対応した。マルチコアが前提の環境で、スケジューリングやCPUトポロジの把握に使われる。

地味な関数ではある。ReactOS自身もマイルストーンを報告した投稿で、NT6のシステムコール単体では何も変わらないと認めつつ、Vista以降への互換移行において注目すべき瞬間だとしている。

今回の実装で見逃せないのは、NTDLLの扱いだ。NTDLLはNTカーネルへのユーザモード側の入口であり、低レベルのシステムコールやランタイム関数がアプリケーションとカーネルの境界を成す。

ReactOSは今回、NTDLL_VISTAとしてVista向けのNTDLLコードを分離し、NT6のプロセッサ関数とシステムコールをここに収めた。NT5.2との共存を維持しながら、NT6のシステムコールを段階的に追加できる構造になっている。

NT5.2からNT6へ踏み出す意味

ReactOSがこれまで再現してきたNT5.2は、Windows XPとWindows Server 2003のカーネルバージョンだ。NT6はWindows Vista(6.0)に始まり、Windows 7(6.1)、Windows 8(6.2)、Windows 8.1(6.3)に至る。Windowsの製品名がどれほど変わろうと、Vista以降のカーネルはNT6という共通の基盤上にある。

Windows NTバージョン体系とReactOSの互換ターゲット
NTバージョンWindows製品名ReactOS
NT5世代(従来の互換ターゲット)
NT 5.1Windows XP対応済み
NT 5.2Windows Server 2003対応済み
NT6世代(今回から対応開始)
NT 6.0Windows Vista初対応
NT 6.1Windows 7未対応
NT 6.2Windows 8未対応
NT 6.3Windows 8.1未対応
※ReactOSのNT6対応は初のシステムコール実装(2026年7月1日マージ)の段階であり、Vista互換はアプリケーション動作には至っていない

NT5.2からNT6への移行は、単にバージョン番号が上がるだけの話ではない。VistaはWindowsのセキュリティモデル、ドライバモデル、グラフィックスサブシステムを根本から刷新した世代だ。NTDLLのエクスポートテーブルからカーネルのシステムサービスディスパッチまで、NT6に依存するAPIは膨大にある。

Vista以降を対象にビルドされたアプリケーションやドライバは、起動時にNT6固有のAPIを探し、見つからなければ動作しないものが少なくない。ReactOSがいくらXP互換を極めても、NT6のAPIが存在しない限り、そうしたソフトウェアは動かない。

2026年のReactOSは、NT6対応の前段となる互換性の整備を急いでいる。年初にはマイクロソフトCランタイムライブラリ(MSVCRT)のWine 10.0同期を完了し、APIテストの失敗件数を約30%削減した。5月にはARM64アーキテクチャでの実験的な起動に成功している。

6月にはValveのHalf-LifeがDell OptiPlexの実機で初めてゲームプレイまで到達し、NTカーネルのクリーンルーム再実装がリアルタイム3DのOpenGLワークロードを処理できることを証明した。

2026年 ReactOS互換性マイルストーン
2026.1
MSVCRT Wine 10.0同期
APIテスト失敗件数を約30%削減
2026.5
ARM64実験的起動
x86以外で初の起動に成功
2026.6
Half-Life実機動作
Dell OptiPlexで初のゲームプレイ到達
2026.7
NT6初のシステムコール
NtGetCurrentProcessorNumberExをマージ

NT6システムコールの実装は、こうした流れの延長にある。30年間NT5.2互換の構築に費やしてきたReactOSが、初めてNT6のAPIをカーネルに載せた。Vista互換が実用的な水準に達するまでには、おそらくさらに長い時間がかかる。

関連記事

この記事を共有する