互換性の話が先行してしまいましたが、本来はOSの話を先にすべきでしたでしょうか。
OSと言えば Operating System の略で、絶対に Operation Show の事ではありません。
中高年男性の方々は後者をイメージしがちですが。
日本語では【基本ソフト】とも呼ばれ、ハードウェアの差異を吸収し、
操作の共通性を持たせるためのソフトウェアという理解でよろしいかと思います。
具体的には以下のような概念で説明されます。

初歩的な説明図ですが、OSの位置付けと役割を知るには
これで十分です。
ここで言うハードウェアというのはコンピュータとしての最低限の
仕様を意味します。
それはCPU、メモリに始まって記憶装置(HDD)や入力装置
(キーボードやマウス)、出力装置(モニタ)などが含まれます。
そして拡張ハードウェアはグラフィックボードであったり
音源ボードであったりします。
一般にハードウェアは製造メーカーや、部品によって微妙な差があり
それぞれを制御するためには独自のプログラムが必要となります。
OSは拡張ハードウェアも含めた物理的な違いを吸収して、アプリケーション側から見た場合のハードウェアの
個体差を無くす環境を提供します。 また新たに拡張ハードを追加しても、専用ドライバを組み込めば、
情報受け渡しの形式を定型化できるので、それを利用するアプリケーションには何も手を加えなくても
その機能を提供できるようになります。
簡単に説明しましたが、OSの機能はご理解頂けたと思います。
では 具体的な部分について考察を加えます。
1.論理層と物理層
OSには論理層と物理層があります。
物理層はハードウェアと密着した部分を指し、その特徴はデバイスドライバで構成されている事です。
このデバイスドライバは、標準的なものであればOSにライブラリがあり、自動的に選択されますが、
拡張ハードウェアに付きましては そのままでは対応できません。
そういう場合には、拡張ハードウェアのメーカーが供給するデバイスドライバを組み込まなければなりません。
たいていの場合、拡張ハードであってもOSのドライバライブラリにドライバがあるので自動的にセットアップされますが、無い場合には従来どおりドライバをインストールします。
これらのドライバはハードウェアに対する物理的アクセスを論理的アクセスに置き換えるために使われます。
そして これらを制御するのが論理層の役割なのです。
2.ファンクションコール
この章では【ファンクションコール】と呼んでいますが、この呼称はOSによって異なります。
また、その呼び出し方も同様なのですが、呼び出しやすい形に定型化されているのが普通です。
Windows ではこれを API (Apprication Program Interface)と呼びます。
その他の呼称では DOS-CALL や BIOS-CALL 、IOCS-CALL などと呼ばれています。
呼称はともかく、定型化された呼び出し方法で実行される一連のサービスルーチンが
総称して【ファンクションコール】と呼ばれるものです。
OSには標準的で汎用的な機能(サービスルーチン)が一連の番号で装備されています。
例えばマウス座標取得、キーボードで押されたキーの取得、ファイルの読書き などの機能が用意
されています。 それらの機能はアプリケーションをアシストして、アプリ毎の処理機能の実装を省き
コンパクト化するのに役立ちます。
この機能を使うには、特定の形式でデータを与え、機能番号(関数名)で呼び出します。
そして、その機能を実行した結果を呼び出し元に返し、アプリ側で判断する事になります。
例として、ファイルにデータを書き込む場合を見ると…。
- ファイル番号 = FileOpen("ファイルパス名", 書込み方法)
どこの何というファイルにどう書き込むかを指定すれば、ファイルを開き管理番号を戻します。
- 書き込んだデータ長 = FileWrite( *データポインタ, 書き込みデータ長, ファイル番号)
開いたファイルに、どこから どれだけ 書き込むのかを指定すると 書き込んだ長さを返します。
- FileClose( ファイル番号 )
書き込んだファイルを閉じ、ファイルをOS管理下から外します。 結果を返さないのは返す必要が無いからです。
関数の形で表現されていますが、実際はコール番号に名を付け、可読性を上げているに過ぎません。
人間が読めるレベルでは名称で管理していますが、実態は呼び出し番号なのです。
このような汎用性のある処理ルーチンがOS側で用意されているため、
アプリ側では直接ハードウェアにアクセスするコードを記述せずに汎用性が保てるのです。
3.コマンド
OSの特徴として、コマンドも見逃せません。
現実にはコマンドではなく、小規模ながら立派なアプリケーションなのです。
かつて MS-DOS などCUI(キャラクター ユーザー インターフェイス)が全盛だったころ、
最低限の操作環境だけはOSが保証していました。
例えば、ファイル一覧を表示する DIR (LS) というものや テキストファイルの中身を表示させる
TYPE などという一連のコマンド群がありました。
MS-DOS はディスク上のファイルの扱いに特化したOSで 添付されたコマンドは最低限の機能しか
持ち合わせていませんでした。
Windows というGUI(グラフィカル ユーザー インターフェイス)が一般化してからも コマンドの伝統を
引き継ぎ、最低限の機能だけはアプリという形で供給されています。
それが「メモ帳」であったり「サウンドレコーダー」であったりというわけです。
MS-DOS の時代には 扱うファイルと言えば、バイナリファイルを除くと テキストファイルしかありません。
昨今では、テキストに加え、映像や音声もファイルとして扱います。
それに合わせ、最低限の操作アプリをOSに添付したのがコマンドのなれの果てです。
この章ではあえて【コマンド】と呼んではいますが それは間違いなくOS添付アプリのことです。
ですが、その歴史的経緯から あえて「コマンド」と呼んでいるわけです。
細かい話をすれば、もっと長くなりますので、この辺で切り上げます。
これで何となく、OSとは何か を掴めたかと思います。
OSとは…
- ハードウェアの差異を吸収し、データやアプリの汎用性を保証するもの
- 普遍的な共通機能を提供し、ハードとソフトの機能を分離するもの
- 最低限のデータ操作機能を提供するもの
と言えると思います。
細かい話は そのうちに…。
|