メインコンテンツへスキップ

カーネルとは?

·
学習・作業ログ
目次

カーネルとは?
#

ハードウェアとソフトウェアの間の仲介役を担うOSの中心部

カーネルの主な役割
#

役割説明
プロセス管理プロセスの作成・スケジューリング・終了を管理
メモリ管理システムメモリの割り当てと回収
デバイスドライバ管理キーボード、マウス、ストレージ等との通信を管理
システムコールアプリケーションがシステムリソースを安全に使用するためのインターフェース提供
セキュリティ不正アクセスやマルウェアからシステムを保護

カーネルの種類
#

  • モノリシックカーネル
    • 全てのシステムサービスとドライバが単一の大きなプロセスとして実行
    • 例: Linux, Unix
  • マイクロカーネル
    • カーネル自体は最小限の機能のみ
    • 残りのサービスはユーザースペースで別プロセスとして実行
    • 例: MINIX, QNX)
  • ハイブリッドカーネル
    • モノリシックとマイクロの中間に位置する設計
    • 例: Windows NT, macOS
  • エクソカーネル
    • アプリケーションにより多くの制御を提供・非常に抽象化されたカーネル設計

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

OSの階層構造
#

ユーザー → シェル → カーネル → ハードウェア
  • シェル(shell = 殻): カーネルを包む外側の層
  • カーネル(kernel = 核): OSの中心部

シェルの役割
#

  • ユーザーのコマンドを解釈してカーネルに伝える「窓口」
  • カーネルに直接触れることなく、システムを操作可能にする

コマンド実行の流れ
#

例: ls コマンド実行時
1. ユーザーが「ls」と入力
2. シェルがコマンドを解釈
3. シェルがカーネルにシステムコール(readdir等)を発行
4. カーネルがハードウェア(ストレージ)にアクセス
5. 結果がシェル経由でユーザーに表示

振り返りポイント
#

  • カーネルとは?
  • カーネルの5つの役割は?
  • モノリシックカーネルとマイクロカーネルの違いは?
  • シェルとカーネルの関係を階層構造で説明できるか?
  • lsコマンド実行時の流れを追えるか?