2章Linuxカーネル

「1.3 なぜオペレーティングシステムなのか?」では、OSの主な機能は、さまざまなハードウェアを抽象化してAPIを提供することだと説明しました。このAPIを使ってプログラミングすることで、アプリケーションがどのようなハードウェア上で物理的にどのように実行されるかを気にせずに済みます。簡単に言うと、カーネルはこのようなAPIをプログラムに提供しているのです。

この章では、Linuxカーネルとは何か、カーネル全体とその構成要素についての考え方を説明します。Linuxアーキテクチャの全体と、Linuxカーネルが果たす本質的な役割について学びます。この章では、カーネルがすべてのコア機能を提供する一方で、それ自体はOSではなく、その中心部分に過ぎないということを説明します。

まず、カーネルがどのように下層のハードウェアとやり取りするかを確認します。次に、CPUについて、異なるCPUアーキテクチャとそれらがどのようにカーネルに関係するかを説明します。その次に、カーネル内の個々のコンポーネントに注目し、カーネルが実行可能なプログラムに対して提供するAPIについて説明します。最後に、Linuxカーネルをカスタマイズする方法について見ていきます。

この章の目的は、必要な用語を理解し、プログラムとカーネルとの間のインタフェースを認識してもらい、その役割における基本を理解してもらうことです。カーネル開発者や、カーネルを設定しコンパイルするシステム管理者に向けたものではありませんが、この章の最後にいくつかのリンクをまとめました。

それでは、Linuxアーキテクチャとカーネルの中心的な役割について説明します。

2.1 Linuxアーキテクチャ

Linuxアーキテクチャの概略を図2-1 ...

Get 入門 モダンLinux ―オンプレミスからクラウドまで、幅広い知識を会得する now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.