カーネルの概要
100%

Kernel · レッスン 1

カーネルの概要

Linux カーネルがハードウェア、リソース、分離、ユーザー空間からの要求を仲介する仕組みを学びます。

Linux は OS のカーネル、つまり processor、memory、device、process、共通の resource abstraction を管理する特権ソフトウェアです。完全な Linux システムには、user-space library、utility、service、shell、graphical software、distribution policy も含まれます。

ハードウェアリソース

processor は instruction を実行し、memory は動作中の state を保存し、controller は storage、network、display、input device などの peripheral を接続します。ハードウェアが公開するのは architecture・device 固有の仕組みであり、すべてのアプリケーションが安全に使える単一 interface ではありません。

カーネルは architecture code と device driver を通じて、これらのリソースを初期化・制御します。interrupt、DMA coordination、timer、power-management event を処理しながら、workload 間のアクセス境界を強制します。

Linux で device driver と hardware interrupt を通常調整する層はどれですか?

カーネルの責務

主要な責務には次のものがあります。

  • 実行可能な thread を CPU へ schedule する
  • virtual address space を作成・分離する
  • process credential、permission、security policy を強制する
  • filesystem、networking、IPC、device interface を提供する
  • signal、timer、process lifecycle を処理する
  • resource を割り当て、計上し、回収する

Linux は、core service と多くの driver が一つの特権 kernel address space で動くため、一般に monolithic kernel と呼ばれます。同時に modular でもあり、対応する component を kernel module として load・unload できます。特権 kernel code の bug はシステム全体を危険にさらすため、kernel update と module provenance はセキュリティ上重要です。

カーネル scheduler は何を管理しますか?

ユーザー空間

ユーザー空間には通常の process、つまり init と service、command-line tool、language runtime、database、shell、desktop application があります。hardware privilege により、これらの program は多くの機密 instruction を直接実行したり、任意の kernel memory へアクセスしたりできません。

process は system call を通じてカーネルへ処理を要求し、file descriptor、socket、device node、procfs、sysfs、netlink、memory mapping などの公開 interface とやり取りします。library がこれらを高水準 API で包むこともよくあります。

user-space root は policy 上大きな権限を持ちますが、通常は processor の user mode で実行されます。user identity と CPU privilege mode は別の概念です。

通常の root 所有アプリケーションは、すべての instruction を kernel mode で実行しますか?

境界と抽象化

カーネルは生の物理機構を直接公開せず、virtual process、file、socket、address space を提示します。これらの abstraction は分離と移植性を支えますが、それだけで完全な security boundary になるわけではありません。namespace、cgroup、capability、security module、seccomp、virtualization が専用の制御を加えます。

トラブルシューティングでは、どの層が動作を所有するかを考えてください。application、library、system-call interface、filesystem、driver、kernel subsystem、firmware、hardware のいずれでしょうか。誤った層の証拠は、不適切な修正につながります。

system call とは何ですか?

レッスン完了

カーネルの概要 を完了しました

これで、物理リソースと分離された user-space process の間にカーネルを位置付けられます。

  • driver と architecture code を hardware control と関連付ける。

  • scheduling、memory、security、filesystem、network の責務を識別する。

  • root credential と processor kernel mode を別の概念として扱う。

  • user-kernel interaction を管理された runtime interface に位置付ける。

学習進捗を保存

無料アカウントを作成してこのレッスンを保存し、どのデバイスからでも学習を続けられます。

無料アカウントを作成
次のレッスン
Kernel に戻る