0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

カーネルとは、シェルとは、なぜカーネルとシェルが分かれているのか

Last updated at Posted at 2025-03-13

はじめに

カーネルとシェルについてまとめてみました。

カーネルとは

カーネルとは、OSの核になる部分、つまりOSそのもののことです。Linuxの場合、カーネルはKernel 4.18.0のように表記されます。Kernelの後に付いている番号が、カーネルのバージョンを表しています。
Linuxのようなオープンソースの世界では、異なるバージョンのカーネルが世界中に存在しています。Windowsのようにメーカーがサポートしてくれるわけではないので、システムの管理者が、自身の判断で最も安定しているカーネルを選択する必要があります。

シェルとは

シェルは、ユーザーの命令をカーネルに伝える機能を持っています。カーネルはハードウェアと密接に関係しており、ユーザーの命令を直接理解する能力がありません。そこで、シェルという窓口を通して、命令をカーネルに伝える必要があります。

シェルはユーザーとLinuxカーネルの橋渡しを行う

image.png

なぜカーネルとシェルが分かれているのか

「はじめからLinuxカーネルの中に、シェルのような、キーボードからコマンド操作できる機能を取り込んでおけばよいのに。そうすれば、わざわざシェルなんてものを別に用意する必要もないだろう」と思った方もいるでっしょう。なぜカーネルとシェルが別々に提供されているのでしょうか。これは、以下のようにLinuxカーネルとシェルを分離しておいた方がよい点が多々あるためです。

・Linuxカーネルいは手を入れずに、シェルだけを自分好みのものに変更することができる
・Linux以外のOS(FreeBSDやNetBSD、Solarisなど)を利用する際も、シェルが移植されていれば操作を同様に行うことができる
・シェルがエラーや高負荷状態になってクラッシュしたとしても、OS本体であるLinuxカーネルへの影響を最小限に抑えることができる

ここには、Linuxの「1つのプログラムには、1つのことをうまくやらせる」という考え方を見て取ることができます。1つのプログラムにあれもこれもと機能を詰め込まず、機能ごとにプログラムを分離しておくことが、ソフトウェア開発においては重要なことなのです。

おわりに

ここまで読んでいただきありがとうございます!

参考文献

・Linuxの絵本 サーバーOSが楽しくわかる9つの扉 単行本(ソフトカバー) – 2020/1/20
株式会社アンク (著) p.8-9
・新しいLinuxの教科書 三宅 英明 (著), 大角 祐介 (著)  p.27
・「パソコンを使う動物」のイラスト素材
https://www.ac-illust.com/main/search_result.php?word=%E8%89%B6%E7%BE%8E&search_word=%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%82%92%E4%BD%BF%E3%81%86%E5%8B%95%E7%89%A9&page=0

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?