このページの本文へ

前へ 1 2 次へ

基礎から覚える 最新OSのアーキテクチャー 第1回

「OS」はどうやってプログラムを動かしているのか?

2011年07月28日 12時00分更新

文● 塩田紳二

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

マルチタスクの実現が
OSによるリソース管理を生んだ

 なぜOSが資源を管理する必要があるのか? それは現在のOSが、すべて「マルチタスク」、つまり複数のプログラムを同時に動かせるからだ。ひとつのプログラムがハードウェアを占有してしまうと、ほかのプログラムが処理を進められなくなってしまう。あるいは、2つのプログラムが同時にひとつのデバイスにアクセスすると、正しく動かなくなる。

 OSは、これらの資源を管理しており、アプリケーションの要求に従って機能としてこれを提供するのである。機能を提供するとはどういうことかというと、ハードウェアなどを直接使わせないかわりに、OS自体が要求を聞いて仕事をすることだ。つまり、管理といっても貸し借りの管理をするのではなく、要求がきたら現在の状況を考えて、要求を満たすように処理するわけだ。

 アプリケーションはOSに仕事を依頼する。その手続きを決めたものが「API」(Application Program Interface)だ。アプリケーションはAPIを使い、OSに仕事を頼むのである。

 ここまで読むと、あたかも「アプリケーション」と「OS」という2つの異なる状態があるように読める。だが実際には同じCPUが、あるときはアプリケーションを動かし、あるときはOSを動かしているだけだ。APIには「ABI」(Application Binary Interface)というものが定義されていて、CPUがここを通ることで、アプリケーションからOSに生まれ変わるのである。

 「生まれ変わる」と言うのは、ABIを通った瞬間にCPUはアプリケーションのプログラムではなく、OS側のプログラムを実行し始めるからだ。「ピン芸人が店員と客の1人2役のコントを演じる」ようなものである。

 ABIは同時に、アプリケーションを構成するプログラムが、どのような形でファイルの中にしまわれているかも定義する。この約束事に従った「1」と「0」からなるファイルだけを、OSはプログラムとして認識して実行する。ということは、ABIはプログラムを「どうやって作るのか」も決めているわけだ。あるOSで動くアプリケーションプログラムを作るには、このルールに従うしかない。

 OSが提供する機能は複雑だが、基本的な原理は「プログラムをメモリーに読み込んで実行する」だけだ。OSはプログラムが大量にあって複雑なだけで、原理自体はそんなに難しいものでもない。プログラムはメモリーに入れないと実行できないし、CPUはメモリーにあるプログラムを、OSの指示に従ってひたすら実行しているだけである。OSの多くの部分はAPIという「決めごと」からできていて、それにしたがっているプログラムだけを実行できる。もちろん、この「決めごと」にはそれぞれちゃんとした存在理由がある。

 プログラム自体はなんらかの「論理」(ロジック)に従うものだが、大小様々な多数のプログラムが集めて作られているOS全体は、なにか非常に複雑で雑多なもののように見える。建物は物理法則に従い建築の理論で造られるのに対して、建物が集まった「町」は雑多なものになるのに似ている、とも言えようか。

 次回は、OSの中心部分にあたる「カーネル」について解説したい。

Windows XP以前とVista以降でのOS起動の違い

 Windows XPまでの「Windows NT」を受け継いだOSは、OS起動の仕組みも引き継いでいる。XPでは「MBR」(Master Boot Record)と呼ばれる領域にある「ブートストラップローダー」が、「NTLDR」と呼ばれるOSローダーを起動する。そしてハードウェアのチェックなどを経て、NTのカーネルである「ntoskrnl.exe」を起動していた。

 Vista以後はさらにもう一段階増えている。ブートストラップローダーが起動するのは、「Windows Boot manager」(bootmgr)というシステム起動を管理するプログラムで、ここで起動するOSなどを選択できるようになっている。Windows 7の場合は、「winload.exe」というシステム起動プログラムが起動される。ブートマネージャーが間に入ったのは、BIOSからの起動だけでなく、新しい世代の基本プログラムである「EFI」からの起動も可能にするためだ。またWindows側でも、Windows Server 2008 R2の仮想環境「HyperVisor」が起動するなど、起動が複雑になってきたからでもある。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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