今回は、「OS」についての説明です。
1.初めに
パソコンやスマートフォンを購入する際は、何か参考にしていることはありますか?
私はあまりこだわりが無いので、昔からWindowsのパソコンを使っていて、スマートフォンはAndroidになっています。
このように伝えると、『ああ、WindowsとAndroidなんだね。』と何となく理解しますよね?
では、WindowsとAndroidって何なのかわかりますでしょうか?
おそらくよくわかっていない人が多いかと思います。
これらはOSと言います。
OSという用語も耳にする機会はそこそこありそうですが、何を指しているのかよくわからない用語かと思います。
今回は、そんなOSについて簡単に解説していきます。
2.OSとは?
OSとは、英語で[Operating System]と書きます。
直訳すると[操作するシステム]になります。
何を操作するのかという話ですが、OSはそもそもソフトウェア(コンピュータを動作させるためのプログラム)の分類の一つです。
つまり、OSとはパソコンやスマートフォンなどのコンピュータを操作するための根幹を担うシステムを指しています。
コンピュータを構成する基礎中の基礎の部分がOSに当たるわけです。
人間で例えるなら“人格”が妥当ですかね?
日本人とアメリカ人と中国人のベースとなる人格(OS)があったとして、その人格を基に判断して体(コンピュータ)を動かすイメージです。
人格ごとに特徴がありますし、相容れない概念があるかもしれません。
だから、人格(OS)ごとに性能に差があったり、受け入れられる概念(ソフトウェア)があったり無かったりという差も生まれてきます。
なので、目的に応じてOSを最初に選ぶのです。
とは言え、特定の状況で得意不得意が分かれるだけなので、普通に使う分にはどのOSでも大差ありません。
だから、私のように脳死・惰性で同じOSを選び続けていても、別に何か害があるわけでは無いんですよ。
特定のことができないことに気付かないんですから。
ポ○モンの赤ver.と緑ver.があって、特定のポケ○ンがそのバージョンには登場しないということに気付けないようなものです。
ところで、パソコンだと以下のようなことができますよね?
- キーボードで文字を入力する。
- マウスやパッド操作でカーソルを動かす。
- 音がうるさいのでボリュームを調整する。
これらのことは当たり前に行っているかと思いますが、よくよく考えるとコンピュータはソフトウェアが無いと何も動いてくれないはずなので、これらの動作もソフトウェアが無ければ実行不可能なことなんですよね。
このようなコンピュータの基本機能もOSに組み込まれていたりします。
こうしてOSに組み込まれている内容は追加でソフトウェアを入れる必要が無くなるので、開発する側としてもOSの違いは大切なのでしょうね。
ちなみに、基本のソフトウェアはOSで、追加で足りない部分を補うために入れる応用のソフトウェアがアプリケーションだったりします。
3.OSを構成するモノについて
OSはコンピュータの根幹を担うシステムなわけですが、そのOSはカーネルとシェルというものによって構成されています。
カーネルとは?
カーネルとは、英語で[kernel]と書きます。
意味は[核]です。
IT業界では、OSの中核を担うソフトウェアを指しています。
OS自体がコンピュータの核なのですが、カーネルはその核を動かすための更に中核的な部分のソフトウェアなのです。
魔王軍のTOPである四天王の筆頭のような重要な中でも更に重要なヤツがカーネルだとでも思ってください。
ただ、中核的な存在とは言え、カーネルだけでは成り立たないので、後述のシェルと呼ばれるソフトウェアなども組み合わせることでOSというソフトウェアが出来上がります。
人体における脳をカーネルだとイメージしてください。
確かに体を動かすためには脳が必須ですが、他の臓器やら手足が無ければ満足に動けないでしょう?
それと同じで、体(ソフトウェア)を構成するには色々必要になるんです。
カーネルは具体的にどんなことをしているかというと、ハードウェアに一番関わる箇所を担当しています。
CPUやメモリと直接やり取りをしてコントロールしているのがカーネルです。
他には、アプリケーション(OSでは足りない部分を補うために入れる応用のソフトウェア)の実行許可をしてプロセス(プログラムが実行されている状態、その実行単位のこと)を管理しています。
デバイス管理・スケジュール管理なんかもカーネルの役割です。
シェルとは?
シェルとは、英語で[shell]と書きます。
意味は[貝・殻]です。
IT業界では、コンピュータの利用者が入力した内容を関係するソフトウェアに伝え、ソフトウェアからの出力(返答)を伝えてくれる橋渡し役を担っているソフトウェアのことを指しています。
取引先に伺うと受付のお姉さんやらおばちゃんがいて、担当者の名前を教えると取り次いでくれるのが普通です。
担当者に来客があったと伝えたり、担当者が取り込み中なら待合室に案内したりと間を取り持ってくれますよね?
この役割をしてくれているソフトウェアがシェルです。
広い意味では上記の通りなのですが、その中でもOSの中核を担うソフトウェアであるカーネルとの橋渡し役をしているソフトウェアを指してシェルと呼んでいることが多いです。
カーネルはシェル(殻)で覆われていて、カーネルに用があるならシェルを経由する必要があるのです。
各ソフトウェアに指示出しするにはシェルという受付・門番みたいなソフトウェアを通す必要があると覚えておけば問題ないです。
これなら本来の意味の[殻]にも通じるものがありますしね。
ちなみに、OSの種類の一つであるUNIXのシェルには色々な種類があります。
sh(Bourneシェル)・bash・ksh・csh・tcsh・zshなどが挙げられます。
これらの説明はまた次回に行いますので、割愛します。
まとめと例え
まとめると、カーネルと人では対話ができないので、シェルに頼んでカーネルに色々依頼してもらっているというイメージになります。
会社に例えるなら、カーネルは社内システム全般を担っている技術者で、シェルは外国人から仕事を受注する翻訳者です。
カーネルさんは社内(コンピュータ内部)の処理には特化しているけど、外国語(人間の指示内容)がわかりません。
なので、翻訳を仕事としてるシェルさんが外国人(人間)の言葉を翻訳して、カーネルさんに『こんな仕事を依頼されたよ!』と伝えているのです。
4.OSの種類
実際にOSとはどんなものを指しているかと言うと、以下のようなものがあります。
- Windows
- Mac
- Linux
- UNIX
- iOS
- Android
大体どこかしらで耳にしたことがあるのではないかと思われるラインナップですね。
それぞれ、簡単に補足説明しておきます。
もっと詳細な違いは調べればいくらでも出てきますので、気になったらググってみましょう。
以上、「OS」についての説明でした。