UNIX の基本構造概略
OS
OSとは、様々なアプリケーションを作ったり動かしたりするために、
計算機の様々な資源(CPU、メモリ、記憶装置、ネットワーク装置等)を管理し、
ハードウェアとアプリケーションとの間を取りもつソフトウェアです。
ユーザに対するサービス機能
- プログラムの実行機能
プログラムの実行、開発、デバック、マルチタスク機能、マルチユーザ機能等
- 入出力動作機能
各入出力装置をユーザが利用できるようにする
- ファイル操作機能
ファイルの生成、更新、消去、検索等
- エラー検出機能
未定義のコマンドやファイル名の検出とエラーメッセージの表示など
- セキュリティ機能
システムへのアクセス、ファイルシステムへのアクセスなど
システムに対するサービス機能
- 資源の割り当て機能
プロセス、メモリ、外部記憶装置、入出力装置の管理
- アカウンティング機能
ユーザ毎のCPU利用時間、メモリ消費量、I/O 動作状況の把握、記録
- プロテクト機能
- I/O プロテクト
入出力動作をオペレーティングシステムが管理し、入出力動作の保護を行う機能
- メモリプロテクト
ユーザプログラムがオペレーティングシステムの常駐領域や他のユーザのプログラム領域に侵入しないように保護する機能
- CPUプロテクト
CPUが何らかの理由で無限ループに陥るのを防ぐために、定期的な割り込みを実行する事によってCPUの動作を保護する機能
OSとしての UNIX は、計算機のハードウェアに近い核心部分のカーネル、
ライブラリ、ユーティリティ、
ユーザインターフェイスのシェル(外殻)のプログラム群からなります。
ユーティリティ、ライブラリルーチンは、シェルコマンドによって起動され、
コマンドの内容を実行する処理プログラム群です。
カーネル(kernel)
カーネルとは UNIX システムの核であり、システムが起動する時に読み込まれ、
システムの全ての資源を管理し,一貫した形で利用者に提供します。
カーネルが提供する機能
- プロセスの管理
- プロセスの生成、終了、保留、プロセス間通信によるプロセスの実行管理。
- ある時点でどれだけのプロセスを主記憶(メモリ)上にロードするかの調整。
- どのような順番でプロセスを実行させるかのスケジューリング。
- 必要に応じて磁気ディスクと主記憶の間でプロセスの入れ替え調整。
- あるプロセスの実行結果が成功か失敗かの判定
- ファイル・システムの運用管理
- 磁気ディスク上に各種のデータをファイルとして収納すべき場所の設定
- 各種ファイルの識別
- ファイルへの書き込み、ファイルの読み出し
- 各種ファイルに固有の情報の掌握
- ファイル間の関連付け
等があり、デバイスドライバによってハードウェアシステムと結び付けられています。
また、第2のシェルのようなものでもあり、
システムコール(新しいプロセスの開始と実行、実行中プロセスの停止や凍結、
ファイルのオープンとクローズ、ファイルモードの変更、など)
の受け付け窓口としての役割をもっています。
シェル(shell)
シェルは1つのプロセスとして実行されます。
UNIX のコマンドインタプリタ
(ユーザからの命令を表す文字列を受けとり、
それに対応する動作を起動するプログラム)で、
UNIX システムのカーネルとユーザーとのインターフェイス的な役割
(ユーザからのコマンド実行要求を UNIX システムに伝達する役割)
を果たしています。シェルコマンドを組み合わせることによって、
プログラミング言語としても利用できます。
シェルには種類があり、Bourne シェル(sh)、c シェル(csh)、
korn シェル(ksh)、tcsh、bash、zsh 等があります。
基本的なシェルはBourneシェルで、その他はそれの改良・機能追加版です。
ネットワーク
UNIX の通信サービスには
- 1つの UNIX システムでのユーザ間通信(メールなど)
直接結線や電話線などを利用した
- 遠隔 UNIX システムとの通信
ユーザ間での電子メール、遠隔 UNIX システム上でのコマンド実行、
遠隔 UNIX システムとのファイル転送などがあります。