次へWindowsの何たるかWindowsとはそれではまず、最も基本となるWindowsそのものについて説明していきましょう。System:オペレーティングシステム)と呼ばれるものの1つです。(よくOSのことを「オペレーションシステム」なんて言う人がいますが、間違いですよ。)OSというのは、コンピュータにおけるファイルシステムの管理やファイルへのアクセス、およびアプリケーションプログラムの起動と実行管理などといった最も基本的な操作を行なう基本ソフトウェアのことを言います。ユーザー(あるいはアプリケーションプログラム)とハードウェアとの間にあって、コンピュータのシステムをできるだけ簡単に使うことができるような仲介役の役目も果たしています。Windowsの大きな特徴であるグラフィカル(視覚的)なインターフェースというものもOSの機能として提供します。WindowsはOSとしてさまざまな機能を提供しているのですけど、それについては後で述べていくことにしましょう。プラットフォームとしてのWindows今言ったように、WindowsはOSなのですが、見方を変えると、プラットフォーム(Platform)としての側面を持つソフトウェアであると言うことができるのです。プラットフォームというのは、ハードウェアおよびOSによって構成されている、プログラムの実行環境のことを言います。場合によっては、ハードウェアだけの環境(CPU、メモリサイズ、ハードディスク容量など)とか、OSだけの環境(使っているOSが何か)とか、あるいはアプリケーション開発(プログラミング)のための環境などを指すこともありますが、普通は、プログラムを実行させる環境のことをプラットフォームと呼びます。Windowsアプリケーションプログラムは、プラットフォームであるWindowsの上で実行されているとみなすことができます。Windowsが提供してくれるいろいろな機能に囲まれた環境のもとで、アプリケーションが実行されているのだと考えるのです。ここでは、「OS」と「プラットフォーム」がまったく別のものであると言っているわけではありません。OSであるという見方もできるし、プラットフォームであるという見方もできる、ということです。「OSとして」というのは、マシンのシステム全体を絶対的な視点で見たときに、Windowsがユーザー(あるいはアプリケーション)とハードウェアの間にあって、その2つをつなぐインターフェース(仲介役、というか、窓口みたいなもの)の役割を果たしている1つのシステムとみなせる、ということです。「プラットフォームとして」というのは、ユーザー(あるいはアプリケーション)に視点を置いて見たときに、Windowsという環境の中で、ユーザーが操作したり、アプリケーションプログラムが実行されたりするということを表しているのです。結局は、全体的に見れば、OSというのは実行環境であるプラットフォームを決定する要素の1つであるに過ぎないのです。Explorerをインストールしているかどうか、さらには、ディスプレイのサイズ・ドット数や表示可能色がどのくらいか、MIDI音源を持っているか、などといったことによってもプラットフォームは変わることになってしまいます。Windowsの特徴と提供する機能Windowsは、ユーザーが簡単にコンピュータを使えるように、そしてWindowsアプリケーションを作成するプログラマが簡単にプログラミングを行なえるように、さまざまな特徴を持っていて、それを実現する数多くの機能も提供しています。インターフェース)のことで、操作を視覚的に行なえるようにして、誰にでも容易にコンピュータを操作できるようにしたものです。「って、いったい何を言っているのかわからないっ」なんて言う人は、Windowsプログラミングをしている人の中にはもういないと思いますけど、一応説明しておくと、このようなGUIが導入される以前、MS-DOSなどの時代には、すべての操作は文字入力、つまりコマンドなどをキーボードで打ち込んで......という面倒なことをしていたのです。実行結果も文字で出力されていました。プロンプト」)を実行させてみたときに表示されるやつです。今のように、ウィンドウの中に表示されていたのではなくて、画面全体がそれを覆っていました。インターフェース)と呼びます。そのようなCUIによる操作は大変で不便だというので、より便利なGUIへと移行したというわけです。アプリケーションごとにウィンドウがあって、アイコンやらボタンやらメニューやらがあって、マウス操作で簡単操作。タスクバーの「スタート」メニューからアプリケーション簡単起動。いったように、挙げればきりがありませんが、そんなさまざまなGUIの機能がWindowsから提供されているのです。プラットフォームの統一Windowsの持つもう1つの特徴として、どのコンピュータにおいても、できるだけ統一されたプラットフォームを提供するということが挙げられます。Windowsアプリケーションとして作成されたプログラムならば、Windowsがインストールされているどのコンピュータでも動作し、同じ結果をもたらすようにすることです。基本的には、Windows用に作成された実行ファイルなら、Windowsがインストールされているどのコンピュータでも実行させることができるようになっているのです。マルチタスクWindowsには、複数のプログラムを同時に実行できる機能があって、マルチタスクと呼ばれています。これによって、複雑なタスク(作業)をそれぞれ別のプロセスに分けたり、同じプログラムを複数起動したりすることもできるようになります。以前のMS-DOSの時代には、ある1つのプログラムが実行されていると、その間は他のプログラムを実行させることができませんでした。16ビットWindowsでは、現在の32ビットWindowsとは違った方法でマルチタスクを実現していたのですが、どれか1つのプログラムが(バグなどで)フリーズした場合はマシン全体がフリーズする、という非常に不安定なものだったのです。32ビットWindowsでは、OSであるWindowsが中心となって、それぞれのプログラムを順番に実行していくような仕組みになっていて、それまでのような不安定さは取り除かれています。系はやや不安定さがありますが......。)マルチタスクを実現させるための仕組みとして、「プロセス」や「スレッド」などの用語が出てくることになりますが、それはまたの機会ということで。アプリケーションに伝えるためのものです。アプリケーションに送る、いわば「お知らせ」のようなものです。実際にはアプリケーションが持っているウィンドウに送られるので、このような名前がついています。具体的には、ユーザーがキーボードのキーを押したとか、マウスを動かしたとか、クリックしたとか、ウィンドウサイズを変更したとか、ウィンドウ上のボタンを押したとか、メニュー項目を選択したとか、......、......、とにかく、いろいろなことをイベントとしてウィンドウに伝えてくるのです。アプリケーションは、ウィンドウに送られてきたメッセージに対して、さまざまな処理を行ないます。右クリックされたらどうするとか、ボタンが押されたらどうするとか、イベントに対してどんな処理をするのかは、アプリケーションが決めなくてはなりません。このような処理をメッセージ処理などと呼ぶことがあります。メッセージ処理は、GUIを実現するために必要となる重要なものです。このように、イベントが送られてくるまではプログラムが停止していて、メッセージが送られてきたらそれに対して処理を行なうという、Windowsでは一般的な形式のことをメッセージ駆動方式あるいはイベント駆動方式、イベントドリブンなどと呼んだりもします。メッセージについての詳しいことはまた後で。略で、アプリケーションプログラムがOSやデバイスから提供されている機能にアクセスするためのインターフェースのこと。APIはアプリケーションから呼び出すことのできる関数のセットという形でOSから提供されています。APIは、Windowsが進化(バージョンアップ)するとともに、どんどんと変更・拡張が続けられてきています。APIと呼んでいます。APIをサポートするプラットフォーム(つまり、32ビットWindowsがインストールされた環境)をWin32プラットフォームと呼んだりもします。API」のことだと思ってください。APIについての説明も、また後の機会にしましょう。APIは、先ほど述べたプラットフォームの統一を目的として提供されている重要な機能です。間)でも互換性が保たれるように、それぞれのWindowsで同じAPIを提供しています。アプリケーションは、APIを使用することで、どのWindowsでも動作することができるようになるのです。いくつもの種類があることはご存知ですよね。ソフトウェアであるWindowsが年月を経るごとに次々とバージョンアップされてきているために多くの種類があるわけですけど、現在の32ビットマシン環境で使用されるWindowsは、大きく次の2つに分けられます。カーネルなどと呼ばれます。これらはどちらも32ビットWindowsということになっていますが、この2つには実は大きな違いがあるのです。コンシューマ向け、つまり、家庭で使われるようなパソコンで使用されることを目的として作られたOSです。それらとの互換性が重視されています。システムは、それまでの16ビットWindowsのプログラムコードがそのまま使用されている部分が多くあります。中核部分)も古い16ビットコードが使用されている部分が多く、そのために16ビットWindowsの欠点がいくつか引き継がれてしまったりもしています。それを許しているため、しばしばマシンをクラッシュさせてしまうこともあります。OSが持っているべきセキュリティなどの機能もありません。16ビット時代との互換性を保つ代わりに、堅牢性や機密性などを犠牲にしている、といったところです。カーネルが引き継がれているため、これらの欠点も引き継いでいるのです。最後で、これ以降は、もう出てくることはありません。ワークステーションやサーバなどといったシステムのOSとして作られたもので、その目的ゆえに、頑丈で、機密性にも優れたものである必要がありました。そのため、それまでの貧弱な16ビットコードは一切使わず、すべて32ビットプログラムコードで一から作り直されたのです。比べるととても安定していて、マシンがクラッシュすることも非常に少なくなっています。系にはない機能が多く含まれます。逆に、いくつかの面で互換性が失われてしまうということもあります。Xを必要とするアプリケーションも実行できません。以降では可能になっていますが。用に作られているアプリケーションでも、NT系で動かすことができなかったりするものも多く存在します。なってだいぶ減ってきてはいますが、デバイスを直接操作するタイプのものなどは、やはり使用できないものもあるようです。一般家庭のパソコンに普及してきて、ソフトウェアの方もほとんどがそれに対応してきているので、あまり問題にはなりませんけど。