【入門】Linux カーネルとは?ハードウェアとソフトウェアの関係

Linux

カーネルとは

カーネルとは、カーネルモードで動作するソフトウェアのことです。
カーネルモードとは、ソフトウェアがハードウェアを操作するために利用する CPU の動作モードのことです。

以降では、以下の順番で説明を行います。

  1. ハードウェアとは(カーネルモード、ユーザーモードとは)
  2. ソフトウェアとは
  3. カーネルの機能とは

ハードウェアとは

ハードウェアとは、コンピュータで利用する物理的な処理を行うもの(機械)のことです。

ハードウェアは以下の要素から構成されます。

ハードウェアの構成

ソフトウェアとは

コンピュータで利用する論理的な意味を持つデータのことです。

ソフトウェアは以下の要素から構成されます。

ソフトウェア構成要素
  • プログラム:ソフトウェアのうち、実際に処理を行うソフトウェア
  • プロセス:実行中のプログラム
    • アプリケーション:やりたいことを実現するソフトウェア
      (ソフトウェアアプリケーションソフトウェア、アプリとも呼ばれる)
      • メールアプリ
      • ブラウザアプリ
      • Youtube アプリ
    • ミドルウェア:アプリケーションがよく利用するOSの機能をまとめたもの
      • ストレージデバイス関連の操作をまとめた:データベース
      • ネットワークデバイス関連の操作をまとめた:Web サーバー
    • OS:ハードウェアを操作するための基本ソフトウェアの集合
      (システムソフトウェアとも呼ばれる)
      • ユーザーモードで動作するソフトウェア:シェルなど
      • カーネルモードで動作するソフトウェア:カーネル

※厳密な定義は諸説あるのでざっくりそんなもんだと理解してください

カーネルの機能とは

カーネルには様々な機能がありますが、一例を挙げます。

以上のようにカーネルは、ハードウェア(CPU, メモリ, 外部デバイス)を操作するためのソフトウェアです。アプリケーションはカーネルを利用することで、自分でハードウェアを操作するソフトウェアを毎回作成しなくて済みます。

カーネルを利用してソフトウェアからハードウェアへのアクセス

ユーザーモードで動作するプロセスがシステムコールを利用してカーネルを呼び出すことでハードウェアにアクセスします。(ファイルを読み込んだり、ディスプレイに文字を表示したり)

カーネルの具体例は以下のとおりです。

0

コメント

タイトルとURLをコピーしました