• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

プログラマが知っておくべきWindows 7の仕組み

Windows 7の内部構造を理解しよう

2010/10/13 日経ソフトウエア
出典:日経ソフトウエア 2010年6月号pp.50-54
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

 ユーザーインタフェースの裏側で、Windows 7はどのように動作しているのでしょうか。ここからは、プログラミングをする上で知っておきたいWindows 7の内部構造を見ていきましょう。これから説明する内部構造により、Windows 7の特徴である「新しいユーザーインタフェース」や「動作の軽快さ」などが実現されています。

 Windows 7に限りませんが、現在のOSは様々な機能を備えています(表1)。プログラマの皆さんに身近なのは、アプリケーション・プログラミングインタフェース(API)でしょう。Windowsの場合は、.NET FrameworkやWin32 APIが相当し、Visual Studioなどの統合開発環境を用いて開発します。プログラミングインタフェースを通じて、OSが備える数多くの機能をアプリケーションから利用するわけです。そのため、OSの機能を提供している内部構造については一通り理解しておいた方がよいでしょう。

表1●Windowsをはじめとする現在のOSが提供する主な機能
[画像のクリックで拡大表示]

3層に分かれるカーネルモード

 図6にWindows 7の全体像を示します。Windowsでは、カーネルモード(図6の下側)とユーザーモード(図6の上側)という2種類の動作モードを使い分けながら、各種処理が行われます。

図6●Windows 7の全体像
[画像のクリックで拡大表示]

 アプリケーションはすべてユーザーモードで動作し、それぞれが独自のアドレス空間や資源(ファイルやデバイスへの参照など)を保持しています。そのため、あるアプリケーションが異常な状態になったとしても、そのほかのアプリケーションやWindows 7の動作に影響が及ぶことはありません。

 一方、OSとしての基本機能が動作しているのが、カーネルモードです。このカーネルモードで動作するプログラムは、大きく三つの層に分類できます。

・HAL

 ハードウエアに最も近い層に位置するのが、ハードウエア抽象化レイヤー(Hardware Abstraction Layer、HAL)です。現在販売されているPCのほとんどがACPI(Advanced Configuration and Power Interface)というPCの電力管理などに関する規格に準拠しているため、PCごとにHALが変更されることは少なくなりました。それでも、拡張ボードなどが接続されているバスへのアクセスを抽象化するためにHALが設けられています。

・カーネル

 HALの上には、プロセスやスレッド、仮想メモリー、デバイスドライバなどを管理するカーネルが位置しています。Windows 7ではよりスケーラブルかつ堅牢なカーネルを目指して全体が見直されました。しかし、後述するシステムコールの抽象化により、従来のアプリケーションもカーネルの変更点を意識する必要はありません。

・System Service Dispatcher

 カーネルモードで動作するプログラムの最上位には、各システムコールの窓口となるSystem Service Dispatcherが置かれています。例えば、ユーザーモードで動作するアプリケーションからkernel32.dllで定義されているCreateFile()などの関数を呼び出すとしましょう。その場合は、ユーザーモード側の窓口であるntdll.dllを通して呼び出しがシステムコールに変換され、カーネルモードの窓口であるSystem Service Dispatcherが呼び出されます

 このように、システム(ハードウエアおよびその上で動くOS)の細かい部分へのアクセスが階層的に抽象化されているため、プログラマの皆さんはカーネルの細かな動作やハードウエアを意識せずに、OSの機能を利用したアプリケーションを作成できるのです。

ここから先はITpro会員(無料)の登録が必要です。

次ページ グラフィックスやメモリー管理も改良
  • 1
  • 2
  • 3
  • 4

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

  • 【夏休みスペシャル 2017】

    IT業界でいまだにあるある?プロジェクト迷走記

     中堅F:この春にうちの部署に配属になってもう3カ月たったけど、仕事は順調かい? 新人O:はい、何とかやっています。でももうすぐ夏期休暇でホッとしています。でも先輩は元気がないですね。 中堅F:取引先といろいろあってね。「なんでこんなに理不尽な目に遭うんだ!」って思うことがときどきあるんだ。

ITpro SPECIALPR

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

ネットワーク/通信サービス

セキュリティ

もっと見る