🙌
Kernelへの感覚的アプローチ
カーネルを理解するのに苦労する
Linuxの勉強を始めると苦労する カーネル(Kernel) 。特に難しい事は言っていないはずなのに、何故か理解に苦しむ。カーネル理解に向けた一歩目のアプローチを提案してみる。
カーネルとは
カーネルはハードウェアを制御するプログラムです。
ハードウェアとは
コンピュータは沢山のハードウェアで構成されています。CPUを始め記憶デバイスや入出力デバイスその他諸々です。
これらのハードウェアが適切に動作し合うことでコンピュータは動作します。
ハードウェアの制御
適切に動作させるためには、適切な制御が必要です。しかし、これを人間が行うのは困難です。代わりに制御用のプログラムが実施します。
このプログラムがカーネルです。人間の代わりにハードウェアを制御します。
カーネルもまた人間には難解
カーネルはハードウェアを制御するために作られたプログラムです。しかし、カーネルもまた人間が触れるには難解なプログラムです。
ハードウェアに十分に寄ったプログラムです。
人間がコンピュータを利用する際の目的一つを実現するにも、多くハードウェアに対する制御が必要になります。
人間はハードウェアを制御することが目的ではなく、データを処理して結果を得ることを目的としています。
シェルとコマンドの必要
人間が目的を達成するために、一つ一つのハードウェアを制御するのはとても非効率です。
目的となる処理に応じたコマンドが用意されています。
しかし、コマンドは逆に人間に寄りすぎたツールになります。
人間に寄りすぎたプログラムであるコマンドとハードウェアに寄りすぎたプログラムであるカーネル。この両者の仲介となるのがシェルです。
シェルは提示されたコマンドをカーネルに伝え、その結果を返してくれます。
人間が触れることが難しいカーネルを包むようにシェルは存在し、ハードウェアと人間の対話を提供してくれます。
Discussion