ReactOS、初のNT6システムコールを実装。Vista互換へ前進
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という共通の基盤上にある。
| NTバージョン | Windows製品名 | ReactOS |
|---|---|---|
| NT5世代(従来の互換ターゲット) | ||
| NT 5.1 | Windows XP | 対応済み |
| NT 5.2 | Windows Server 2003 | 対応済み |
| NT6世代(今回から対応開始) | ||
| NT 6.0 | Windows Vista | 初対応 |
| NT 6.1 | Windows 7 | 未対応 |
| NT 6.2 | Windows 8 | 未対応 |
| NT 6.3 | Windows 8.1 | 未対応 |
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.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互換が実用的な水準に達するまでには、おそらくさらに長い時間がかかる。
関連記事
- ReactOSがARM64で初の起動に成功
- RustベースOS「Redox OS」に5月の大型進捗、Xfce移植とファイルシステム高速化が同時到達
- KDE Linux、5月の大掃除でZenカーネル廃止
- Linuxカーネルからx32 ABIの削除が始まる
- Wine 11.7リリース、libxml2依存を排除するMSXML再実装に着手
- Rust版cp、UbuntuのISOビルドを壊す。再びGNUへ
- Linuxカーネル、AI帰属タグの廃止を議論。マージから3ヶ月
- Fedora、AI Desktop議論を終了。制度自体も停止
- Windows 10延長サポート再延長、ユーザーが突きつけた問い
- ZLUDA v6公開。3度目の資金喪失と32bit PhysX対応