連載
.NETの動作原理を基礎から理解する!

第1回 .NETアプリケーションを動かす土台

デジタルアドバンテージ 一色 政彦
2005/06/04
Page1 Page2

パソコンの歴史と動作原理

 Windows OSは、基本的に、「パソコン」と呼ばれる家電品の上で動作する。パソコンは、いまでは多くの電器店に陳列されて販売されているので、誰でもいつでも手軽に入手して、すぐに使うことができる。しかしパソコンが、現在のように一般消費者の手元に届くようになるまでには、コンピュータの長い進化の歴史がある。コンピュータがパソコンへと発展していった歴史を、ここで簡単に振り返ってみることにしよう。

●コンピュータの発展とパソコンの登場

 1950〜1960年ごろの初期のコンピュータは非常に巨大で、それだけでコンピュータ室全体を占拠しまうほどのサイズだった(筆者は実際に見たことはないが、読んだところによると、最も大きいものでは高さが3メートル、幅が15メートルもあったというのだから、その幅を縦向きにするとビル5〜6階建てくらいほどはあるだろうか……)。それほどまでに大きかったため、当然ながら、個人で所有することなどはとても考えられなかった。またその値段も個人ではとても買える水準ではなかった。

 しかし1970年代に入ると「マイクロ・コンピュータ」(略して、マイコン)と呼ばれる「小型コンピュータ」が作られるようになり、1977年4月にはアップル社によって開発された「アップルII」という「個人向けコンピュータ」が市場に登場した(Apple社は、現在はMac OSを提供している)。このとき、アップル社を率いるスティーブ・ジョブズによって初めて使われた名称が「パーソナル・コンピュータ」(前出のように「パソコン」とも略される。以降、「PC」と表記)といわれている。その後、IBMが開発したPC(IBM PC)が登場し、これと互換性のある「PC/AT互換機」がさまざまなメーカーから発売された。現在“PC”といえば、多くの場合このIBM PCの流れをくむものを指す。

 PCの性能は時代とともに飛躍的に向上していき、さらには複数のPCをネットワークでつなげて利用することが一般化していった。そして現在の企業システムでは、Windows登場以前では主流だった大型コンピュータ(=メインフレーム)や、メーカー固有の仕様によるコンピュータ(=オフコン)に取って代わり、小型で汎用的な仕様であるPCを使うことが一般的になっている。

巨大なメインフレームから個人で所有できるPCへ

●PCの基本的な構成内容

 それではPCは、一体どのようにして動作しているのだろうか。それを知るためには、PCの基本的な構成要素を知っておく必要がある。これについて、次のイラストと表にまとめた。一通りざっと確認してほしい。

ハードウェア名 機能名 説明
CPU(中央演算処理装置:Central Processing Unit) 演算・制御装置 PC上で演算処理を行ったり、ほかのすべての装置を制御したりするための装置。この装置こそがPCのコアとなる頭脳部分である
メイン・メモリ 主記憶装置 PC上で何らかの処理作業を行う場合に、一時的なデータを記憶するために使用される装置。ここに置かれたデータは電源が切れると消失する。なお、単に「メモリ」と呼ぶ場合、通常はこの「メイン・メモリ」を指す
ハード・ディスクCD-ROMDVD-ROMなど 補助記憶装置 PC上で動作するプログラムが使用する記録用データを保存したり、取得したり(=読み出したり)するための装置。またWindows OSやプログラム自体のプログラム・データ(=ソフトウェア)もここに格納される。ここに置かれたデータは電源が切れてもなくならない
キーボード、マウスなど 入力装置 コンピュータへの入力を行うための装置。これにより、ユーザーがコンピュータの処理・動作を自由に操作できる
ディスプレイ(画面出力)、プリンタ(印刷)など 出力装置 コンピュータからの出力を行うための装置。これにより、ユーザーはコンピュータの処理結果を参照したり、活用したりできるようになる
PCの基本的な構成内容
本表で示しているのは、PCを動作させるために、最低限必要なPCの構成要素である。なお、これらの装置のように物理的で有形なものは、「ハードウェア」と呼ばれる。一方、アプリケーション(プログラム)やデータなど目に見えないものは、「ソフトウェア」と呼ばれる。

 以上のPCの構成内容・構造を頭の中に入れたうえで、それをイメージしながら以下の解説を読んでほしい。

●Windows OSが起動するための前提条件

 最初に意識しなければならないのは、次の事実・前提条件である。

  • PCを動かすためのソフトウェア「Windows OS」そのものは、補助記憶装置である「ハード・ディスク」内に格納(=インストール)されている

 この前提条件からスタートして、OSが起動するまでの流れを考えてみよう(なお以下の説明は、厳密な動作内容を表すものではなく、あくまで処理の流れを簡略化して表現したものなので、実際の処理の流れとは完全に一致しない。注意すること)。

●Windows OSが立ち上がるまでの処理の流れ

 PCの電源を入れると、次の流れで処理が進行する。

演算・制御装置である「CPU」が、Windows OSのプログラム・データ(=ソフトウェア)を、「ハード・ディスク」から取得して、作業用の「メイン・メモリ」の上にロード(=展開)する

CPUが「メイン・メモリ」からWindowsのプログラム・データの処理命令を<フェッチ>して(=取り出して)、その命令内容を<デコード>(=解釈)する*6

CPUがデコードした命令内容を<実行>していくことで、プログラム(=Windows OS)が開始される

PCの電源を入れた後のWindowsが立ち上がるまでの処理の流れ

 この作業が完了すれば、Windows OSが立ち上がることになる。

*6 Windowsのプログラム・データの処理命令はCPUが解釈できる「マシン語(機械語)」で記述されている。このマシン語の命令セット(=処理命令の言語体系)は、CPUのアーキテクチャによって異なる。なお、Windowsで使われているCPUのアーキテクチャは「x86」と呼ばれる。

 この処理の流れは、OSの起動時だけでなく、次に記すようにアプリケーションを実行する場合でも同様だ。

●Windows上でプログラムが実行されるまでの処理の流れ

 実際にWindows上でプログラムを実行すると、次のような流れになる。

プログラムの実行に必要なプログラム・データを「メイン・メモリ」の上にロードする

CPUが「メイン・メモリ」からプログラム・データの処理命令を<フェッチ>して、その命令内容を<デコード>する

CPUがデコードされた命令内容を<実行>していくことで、プログラムが開始される

プログラムが立ち上がるまでの処理の流れ

 次回では、このプログラムの実行処理の流れを、Windows OSから実行されるという視点で、より詳しく解説していくつもりだ。

 以上で今回は終了である。次回は「Windows上でアプリケーションが実行される仕組み」を解説する。これは.NETアプリケーションが.NETで動作し始める前段階の処理過程の説明である。次回は若干難しい話になってくるのである程度覚悟しておいてほしい。End of Article


 INDEX
  .NETの動作原理を基礎から理解する!
  第1回 .NETアプリケーションを動かす土台
    1.Windowsプログラミングの歴史的変化
  2.パソコンの歴史と動作原理
 
更新履歴
【2005/7/6】本記事の一部に以下のような誤りがありました。お詫びして訂正させていただきます。

 CPUが「メイン・メモリ」からWindowsのプログラム・データの処理命令を<フェッチ>して、その命令内容を<デコード>する
 CPUが「メイン・メモリ」からプログラム・データの処理命令を<フェッチ>して、その命令内容を<デコード>する

インデックス・ページヘ  「.NETの動作原理を基礎から理解する!」



Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間