このページの本文へ

前へ 1 2 次へ

あなたの知らないWindows 第23回

なぜWindows 7のカーネルはVistaより軽量化できたのか?

2010年03月04日 16時29分更新

文● 山本雅史

  • この記事をはてなブックマークに追加
  • 本文印刷

 一般的には、「Windows 7はWindows Vistaのカーネルをそのまま利用している」と説明されていた。だが実際には、Windows 7に対応した新しいカーネルが開発されている。そこで今回は、Windows 7のカーネルに関して解説しよう。

実はカーネルも大きく手を入れられているWindows 7

 マイクロソフトでは「Windows 7はVistaと同じカーネルが使用されている」と説明しているが、厳密に言えば同じものが使用されているわけではない。Windows 7では、まったく新しいアーキテクチャーのカーネルを開発したのではなく、Vistaカーネルをベースとして、チューンナップしたものと言える。そのため、Windows 7のカーネルが公開しているAPIなどは、Vistaカーネルとまったく同じAPIとなっている。

Windows 7とWindows Server 2008 R2のカーネルは同じもの

Windows 7とWindows Server 2008 R2のカーネルは、同じものが使用されている。また、OSのバージョン番号は6.1にして、Vistaからは.1のマイナー番号の変更にとどめた(マイクロソフト講演資料より引用)

 Windows 7のOSバージョン番号は「6.1」。Vistaでは「6.0」となっているため、カーネルに関してはそれほど手が入っていないという印象が持たれている。だが実際には、カーネルも相当に改良されている。

 バージョン番号について改めて説明しておこう。OSのバージョン番号は、Windows XPからVistaへの移行時に、メジャー番号を変更(5→6)したために、多くのアプリケーションがOSのバージョンチェックで動作しなくなった。だがXP用のアプリケーションでも、OSのバージョンチェックさえ通ればVistaで動作するアプリケーションは数多くあった。

 マイクロソフトではこういった時のために、アプリケーションの互換性機能を用意している。だが、ユーザー自身の手でアプリケーションを「XPのバージョン番号で動かすのか、Vistaのバージョン番号を動かすのか」を設定しなければならなかった。そのため、多くのユーザーはVistaの互換性機能を使わないまま、単に「XPのアプリケーションはVistaでは動作しないことが多い」と思うという結果になった。

 そこでWindows 7は、OSのメジャー番号は変更せずに、マイナー番号だけを変更した。これにより、Vista用アプリケーションでOSのメジャーバージョン番号だけをチェックしている場合は、OSのバージョンチェックは通過するわけだ。また、VistaにはないWindows 7独自の機能を利用しているアプリケーションは、マイナー番号をチェックすることで、VistaとWindows 7どちらの環境が動作しているのかがわかる。

 つまり、XPからVistaへの移行時にあったトラブルから学習して、Windows 7ではOSのメジャバージョン番号を変更しなかったということだ。


Windows 7のためにMinWinを開発

 Windows 7のカーネル開発では、パフォーマンス向上とOSが必要とするメモリー容量を少なくすることが大きなミッションとなっていた。そのため、Vistaカーネルを一度ばらして、整理して最小限の機能にまとめ上げた「MinWin」というカーネルが開発された。

MinWinはWindows 7のカーネルとして開発されている

MinWinはWindows 7のカーネルとして開発されている。動作に使うメモリーは40MB、MinWinのディスク使用量は30MBと非常にコンパクト

MinWinのブロック図

MinWinのブロック図。カーネル、ファイルシステム、TCP/IPスタック、デバイスドライバー、コアシステムサービスなどのデビット・カトラーが作ったNTの基本部分と同じものだ

 MinWinはVistaをきちんとコンポーネント化して再構築されている。ただしMinWinは、Windows 7のカーネルやネットワーク、ファイルシステム、デバイスドライバー、コアシステムサービスなど、最低限のシステムで構成されている(初代Windows NTを開発した、デビット・カトラー氏が作り上げようとした純粋なカーネルシステムに近い)。

 実際に開発されたMinWinは、DOSのようにコンソールでテキスト表示しかできなかったほど。WindowsのGUI部分などは、カーネルではなくユーザーモード側にあるためだ。MinWin自体はメモリー使用量約40MB、カーネルのファイル数としては約150個と、非常に小さなフットプリントで動作している。

MinWinの起動画面

TechED2009でデモされた、MinWinの起動画面

MinWinのコンソール画面

同じくMinWinのコンソール画面

 これらの理由で、Windows 7のβ版が発表される前には、MinWinを新しいモジュラー型OSと勘違いし、「Windows 7はWindows Server 2008で提供されている『Server Core』のようなモジュール型OSになっている」と報道したニュースサイトもあった。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン