カーネルとシェルについて
こんにちは。今日はカーネルとシェルについて解説します。
カーネルとは
カーネルとはどういうものでしょうか。まずは辞書的な意味を確認しましょう。
カーネル(英:kernel)は、階層型に設計されたオペレーティングシステム(OS)の中核となる部分で、アプリケーションとハードウェアの架け橋である。具体的には、システムのリソースや、ハードウェアとソフトウェアの連携を管理する。
ちょっと難しいですね。私も学び始めの時にこの文章を読んで頭の上に「?」がいくつも浮かびました。一つずつ紐解いていきましょう。
OS
まずはOSについて。オペレーティングシステム(OperationSystem:略称OS)は普段私たちがパソコンを使ううえで当たり前だと思っている機能を提供してくれるものです。
例えば、パソコンでYoutubeの動画を見たいと思った時の行動を思い出してみてください。パソコンでブラウザのアプリをマウスでクリックして、選択と起動ができます。ブラウザが立ち上がり、「Youtube」という文字をキーボードで打ち込みます。開いたYoutubeのページで気になる動画を選択して再生すると、映像がモニターに表示されて、スピーカーから音が流れてきます。
これらすべての機能をOSが提供してくれています。
もう少し詳しく説明すると、パソコン(周辺機器を含む)の全てをOSが管理しいて、それらに対して指示を出し制御をしているからできているということです。
このようなOSは以下のような内容で構成されています。
カーネル
それでは改めて、カーネルとはどのようなものなのでしょうか。
カーネルはソフトウェアであり、OSの中核に存在しているものです。(上図参照)
先の説明のとおり、カーネルはソフトウェアとハードウェアの連携を管理しています。ハードウェアにはCPUやメモリ、記憶容量であるハードディスクなどが該当します。
ではなぜ、カーネルがソフトウェアとハードウェアの連携を管理する必要があるのでしょうか。それは、ソフトウェアが好きなだけ指示を出してしまうとハードウェアがパンクしてしまうからです。
そこで、カーネルは様々な観点からソフトウェアの要求を管理しているのです。主なカーネルの役割には以下のようなものがあります。
・プログラムのプロセス管理
・ファイルシステム管理
・ネットワーク管理
・デバイス管理
・時間の管理
・メモリ管理
シェルとは
OSの中にはカーネルともう一つ大切なシステムがあります。それが「シェル」です。
シェル(英語:shell)はオペレーティングシステム(OS)があるような高機能なコンピュータにおいて、ユーザーのためにインタフェースを提供するコンピュータプログラムであり、オペレーティングシステムが提供する機能へのアクセスを提供する
コンピュータシステムとユーザの間にある「殻」であることから、このように呼ばれる。
以前に、GUIについてコンピュータが伝えたいことをユーザに分かる形で表現するインタフェースであると説明しました。シェルはこの逆にあたるインタフェースであるといえます。
つまり、人が人の言葉でコンピュータへコミュニケーションを図れないということについて、人の依頼を機械の言語に変換をして伝えてくれるという役割をするということになります。この通訳をするような役割からインタープリターであるとも言われています。
さて、いかがだったでしょうか。次回はシェルについてもう少し掘り下げてみたいと思います。
それでは今日はこの辺で。