【Linux】「カーネル」「シェル」ってなに?Linuxにおける役割を図解で紹介

20231001_Linux オペレーティングシステム

Linuxを使うとシェルやカーネルなど聞き馴染みないカタカナをよく聞きますよね.
なんとなく使えても説明するのは難しいかもしれません.

今回はLinux用語であるシェルとカーネルの意味について紹介します.

カーネルとは?

カーネル(karnel)とはOS(オペレーションシステム)の中心部分を指します.

OSはこのような役割があります.

  • CPUやメモリなどのハードウェアを管理する
  • コマンドの実行などプロセスを管理する

カーネルはOSの中でも中核的な役割を果たしていると分かりますね.

シェルとは?

シェルはユーザーとパソコンを取り持つインターフェースです.

シェルはユーザーの操作内容をカーネルに伝えるという役割があります.

なぜ橋渡し役が必要かというとカーネルはユーザーが直接操作できないからです.
ユーザーが編集・操作できないようになっているため代わりの操作してくれるのがシェルです.

カーネルとシェルの関係図

シェルはカーネルの外側にあるイメージです.
Linuxカーネルを包むような見た目から「殻」という意味の「SHELL」と名付けられました.

クリックして拡大できます

ユーザーが入力したコマンドを受け取るのはシェルです.

シェルはコマンドをLinuxカーネルに伝えます.
Linuxカーネルはコマンドを実行し,その結果をシェルに返します.

結果を受け取ったシェルがコマンドに表示するという流れで処理されています.

コマンドを実行してみよう!

Linuxでdateコマンドを実行してみました.

  • ユーザーが入力したコマンド date をシェルが受け取りました.
  • シェルは /usr/bin から date というファイルを探し,usr/bin/date を実行するようにLinuxカーネルに依頼します
  • Linuxカーネルはコマンドを実行した結果をシェルに渡します.
  • シェルはその結果を画面に出力します.

このような流れで処理を実行していました.

まとめ

今回は「カーネル」と「シェル」の意味とその処理フローについて紹介しました.

図に起こして理解すると分かりやすいですね!
カタカナ用語はなんとなく理解している単語が多いので,調べたりまとめてみると理解が深まると思いました.