見出し画像

そもそも「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」も代表的なディストリビューションだ。

画像1


あなたのサポートは、ぼくの文字を踊らせ、アイディアを飛躍させます🚀🚀🚀