カーネルって? シェルって?
kernelとshellについて簡単に解説してみます.
こんにちは,のんです
今回はパソコンのある程度深層にあるカーネルと便利なシェルについて記事にしていこうと思います.
カーネルって?
そもそもカーネルを語るにはOSについての知識が必要です.
じゃあOSって何なんでしょうか.
OS = operation system の略であることはわかりますよね??
具体的にはWindows, Mac, Linux, Unix, iosなどいろいろあります.なんなら自作している方も存在します.すごい(小並感)
OSとはコンピュータを管理・制御する基本機能を提供するソフトウェアです.よくコンピュータとユーザーを仲介するものとして説明されますがあまり良い表現ではないような気もします.というのもほとんどの場合シェルが人間と仲介コンピュータをしてるだけだからです.OS自体は勝手に動いてる場合も多いです.
また,広義的に考えると,OSの要素の例として次のようなものがあります.
| シェル |
| アプリ・コマンド |
| ミドルウェア |
| カーネル |
下に行くにつれてOSというソフトウェアの中心になっています.
また,このミドルウェアというのは簡単に言うと,OSの拡張機能です.
(例えばDBMSがあります)
さて,ここでカーネルとシェルが出てきました.
もうカーネルが何かわかりそうですね.そうですOSの核です(名前通りだね)
カーネルはコンピュータのメモリ,CPUの動作状況,などあらゆる資源を管理しています.
シェルはなんなの
上のOSの構成要素で出てきたシェルですが,シェルとはユーザーの入力を解釈するものです.言語プロセッサのようなものです.これはカーネルと違ってOSに必要不可欠というものでもないんですよね.
ユーザーが何か操作をしたいというとき必要なものなんですね.
シェルには幾つか種類があります
| bash |
| zsh |
| sh |
| fish |
| CMD.exe |
| PowerShell |
bash,cmdやpowershellはよく見る奴ですね.
個人的にmacOSを扱わないのでzshについては全く知らないですが現在のmacOSの標準だそうです.
おまけ1
ここであったミドルウェアというものについて少しだけ付け加えようと思います.
ミドルウェアの代表例としてGUIがあります.我々がよく使っているWindowsやmacの画面ですね.1990年代に標準化されたもので,以前だと例えばファイルを1つ開くのにシェルに
cd なんたら
と書かなければならなかったのが,カーソルを用いて視覚的に操作できるようになったものです.
現在のOSには標準搭載されていますがOSを構成する上で必ずしも必要なものというわけではありません.
おまけ2
そもそもOSは人間がパソコンを感覚的に便利に動かすためのソフトウェアなので極論必要ではないです.
終わりに
今回カーネルとシェルについてまとめてみました.これは以前の私なんですが,OSの構成について,カーネルとシェルから成り立っていると勘違いしていました.今回記事を書いてよかったと思っています.ちなみにこの記事を書こうと思った理由はシェルコマンドで遊んでみたかったからなんですよね.なのでシェルコマンドについて近々記事にしようと考えています.
最後に,もし何かしら間違った説明や解釈があればgithubにて教えていただけると嬉しいです.