計算機のハードウエアの中心的な存在は、 CPU です。 CPU が何かをしなければ、計算機は何もしません。 そのCPU をどのように動かすか、 それを決めるのがソフトウエア(プログラム)です。 ソフトウエアが無ければ、CPU は、するべき仕事を指示されないので、 何もしてくれません。 CPU が、こなしていく仕事の脚本は、全てプログラムに書かれているからなんです。 繰り返しますが、計算機は、プログラムが無ければただの箱です。
CPU にとって、プログラムとは何でしょう。 自分がするべき仕事を指示してもらうものなのですが、 もう少し解り易く説明してみます。 学芸会で、最初は校長先生の挨拶。その次は、校歌斉唱。 その次は... という進行を伝える表の事をプログラムって言いますね。 CPU にとってのプログラムは、正にこれです。 こなしていく仕事の一つ一つが、整然と並んでいるんです。
とても簡単ですが、プログラムに付いても説明してみます。 もし、2×3+4×5 という計算を CPU にさせたい場合は、以下のようなプログラムを作ります。
CPU がこなしていく仕事のワンステップは、 意外なほど小さいでしょう? しかし、これをものすごいスピードで CPU はこなしているんです。 あくまでも例題として書いたプログラムですが、 これは現実的なものではありません。 少なくとも答えを利用者に見せることをしてませんよね。 答えの数字をプリンターで出すなり、ディスプレイに表示したほうが良いでしょう。
もう少し書くと、プログラムを作る際に掲げる、解決すべき問題(仕事)は、 もっと複雑で、もっと汎用的になります。 例えば、一ヶ月の収支の数字を入力させて、家計簿を作るとか... もう少し、実際の生活に近いことを考えます。
ただ漫然と、ソフトウエアと言っても、良く分からないと思います。 CPU が搭載されているハードウエアであれば、 計算機でなくとも、ソフトウエアが存在します。 テレビにも、ビデオにも、コンポにも、電気湯沸しポットにも、炊飯器にも、 電話にも、ファックスにも、エレクトーンや、電子ピアノでさえ、CPU が搭載されています。 そして、それぞれの機器の用途向けに、ソフトウエアも搭載されています。
つまり、CPU が搭載されているハードウエアであれば、 必ずソフトウエアを搭載しないと、何も動かない、ということです。
ここでは、PC での話に限定して、 ソフトウエアというものに付いて説明していきます。 PC の世界では、 利用者から近い順で考えると、アプリケーション、サービス、 デバイスドライバ、 OS 、BIOS という、 論理的なソフトウエアの階層に分かれています。 これらの階層ごとに、そして、それらの階層がどう連携して、 ソフトウエアの世界を創っているかを説明していきます。