そもそも「Linuxカーネル」ってなんだろう
昨日ようやく「Born2beRoot」という、仮想マシンの上にLinux(Debian)を立ち上げるという42 Tokyoの課題を終了した。
目安が40時間に対して、レビューの時間も含めると合計77.5時間費したので、目安の時間よりも、だいたい2倍の時間が必要だった。
Linuxを仮想マシンて立ち上げることができるようになったが、そもそも「Linuxカーネル」とはなんだろうという疑問が湧いたので調べてみた。
カーネルとは
カーネルとはLinuxの核となる部分で、ハードウェアとアプリケーションの架け橋とも言われる。
プログラムの実行状態や、ハードウェア資源を管理し、アプリケーションがハードウェアの機能を利用する手助けをする。
カーネル自体はハードウェアと密接に関係しているので、ユーザーの命令を理解することができない。
そこで登場するのがシェルで、シェルが窓口となって、ユーザーの命令をカーネルに伝えることができる。
シェルとは
シェルとはユーザーと接する部分で、ユーザーの命令をカーネルに伝える機能を持っている。
代表的なものだと「sh」や「bash」が挙げられる。
「sh」は「bシェル」とも呼ばれ、動作は高速だが、機能面では他のシェルに劣る。
そのため、主にシェルスクリプトの実行環境に使われる。
「bash」は「bシェル」を拡張したシェルで、Linuxでは標準シェルとして採用されているので、最も広く普及しているシェルだ。
その他にも「ksh」「csh」「tcsh」「zsh」などが存在する。
シェルによってはコマンドが違うこともあるので、注意が必要だ。
ディストリビューションとは
「カーネル」と「シェル」だけでは、ユーザーは別途必要となるソフトウェアを入手し、自分でOSを組み立てる必要があり、高度な専門知識と技術が必要となってくる。
これは多くの人にとって障害であった。
そこで登場したのが「ディストリビューション」で、必要なアプリケーション一式を集め、インストールすればすぐにLinuxのOSとして使用できる形にまとめられている。
ディストリビューションは、上記の「カーネル」と「シェル」、そして「アプリケーション」から成りたっている。
Linuxのディストリビューションは多数の種類があり、人気の「Ubuntu」も代表的なディストリビューションだ。
サポートいただけると、note発信の励みになります! いつもサポートしてくださっている皆様には大変感謝しています🙇 がんばっていきますので、何卒よろしくお願いいたします!