Linuxカーネル | OS、カーネルとは
Linux、OSとは
OS(Operating System)は、主にハードウェアを管理し、ソフトウェアがハードウェアへアクセスできるようにするソフトウェアである。LinuxはOSであり、主にカーネル、システムライブラリ、システムユーティリティで構成される。
Linuxカーネルとは
LinuxカーネルとはOSの中核となる部分である。メモリ管理、ファイルシステム、プロセス管理、デバイス制御など、OSとしてハードウェアやアプリケーションソフトウェアを制御するための基本機能を持つ。AndroidはLinuxカーネル上に構築されている。

カーネルはCPU、メモリ、ストレージなどのハードウェアリソースを管理し、ソフトウェアからハードウェアやリソースへのアクセスを抽象化する。
ハードウェア
ハードウェアは、コンピューターで物理的に処理を行う装置である。CPU、レジスタ、キャッシュメモリ、メインメモリ、ストレージ、NIC、マウス、キーボード、ディスプレイなどが代表例である。
CPU動作モード
CPUの動作モードにはカーネルモードとユーザーモードがある。

出典: https://ja.wikipedia.org/wiki/CPU%E3%83%A2%E3%83%BC%E3%83%89
カーネルモードはハードウェアアクセス制限がなく、カーネルが利用する。ユーザーモードには制限があり、カーネル以外のソフトウェアが利用する。
ソフトウェア
ソフトウェアはコンピューターの処理とデータの集合であり、物理的なハードウェアに対して論理的な意味を持たせるものと言える。プログラム、プロセス、スレッド、アプリケーション、モジュール、ライブラリ、パッケージ、ミドルウェア、カーネル、システムライブラリ、システムユーティリティ、OSなどがある。
システムコール
システムコールは、プロセスがカーネル機能を呼び出す仕組みである。ユーザーモードのプロセスはハードウェアリソースへ直接アクセスできないため、CPU、メモリ、ストレージなどへアクセスするときに使用される。
$ strace echo hello
ハードウェアリソースの抽象化
ハードウェアリソースの抽象化とは、ハードウェアの違いをOSが吸収することである。プログラムはSSDやUSBメモリの違いを意識せず、write()システムコールで書き込みできる。
カーネル機能
代表的なカーネル機能には、CPUを割り当てるプロセス管理、メインメモリを割り当てるメモリ管理、ストレージへの読み書きを扱うファイルシステム、I/Oデバイス管理がある。