ログイン / 登録 アカウント

Linux

Linux カーネルとは

Linux® カーネルとは、Linux オペレーティングシステム (OS) の主要コンポーネントで、コンピュータのハードウェアとプロセスの間のコアインタフェースです。これら 2 つの間で通信し、可能な限り効率的にリソースを管理します。

カーネルとは、固い殻の中にある種のように、OS 内部に存在し、ハードウェアの主な機能のすべてを制御するという意味で名付けられています。携帯電話、ノートパソコン、サーバーなど、コンピュータの種類を問いません。


カーネルの動作

カーネルには 4 つの仕事があります。

  1. メモリー管理:どの程度のメモリーが、何をどこに保存するために使用されたか、追跡します。
  2. プロセス管理:どのプロセスがいつ、どれだけの期間、中央処理装置 (CPU) を使用できるかを決めます。
  3. デバイスドライバー:ハードウェアとプロセスの間の仲介者/通訳として機能します。
  4. システムコールとセキュリティ:プロセスからサービス要求を受け取ります。

正常に実装されているカーネルはユーザーからは認識されず、カーネル空間と呼ばれる専用の場所で動作します。この空間でメモリーを割り当て、あらゆるものが保存されている場所を追跡します。Web ブラウザーやファイルなど、ユーザーから認識できるものはユーザー空間と呼ばれています。これらのアプリケーションは、システムコール・インタフェース (SCI) を通じてカーネルとやり取りします。

次のように考えてみてください。カーネルは、責任ある重役 (ハードウェア) の多忙な個人秘書です。従業員や一般顧客 (ユーザー) からのメッセージや要求 (プロセス) を重役に転送し、何がどこに保管されているかを記憶し (メモリー)、所定の時間帯に誰がいつまで重役と話ができるかを決めるのは、秘書の仕事です。


カーネルが OS 内で占める位置

カーネルの位置付けを考えるには、Linux マシンを 3 層構造で考えてみます。

  1. ハードウェア:物理マシン。システムの下部または基盤となり、メモリー (RAM) およびプロセッサーと呼ばれる中央処理装置 (CPU)、およびストレージネットワーク、グラフィクスなどの入出力 (I/O) デバイスで構成されます。CPU は計算、メモリーからの読み取り、メモリーへの書き出しを実行します。
  2. Linux カーネル:OS のコア(つまり中心部)。 メモリーに常駐するソフトウェアで、CPU に動作を命令します。
  3. ユーザープロセス:カーネルが管理する実行プログラム。ユーザープロセスを全般的にまとめたものがユーザー空間です。ユーザープロセスは単にプロセスとも呼ばれます。カーネルによってこれらのプロセスとサーバーは互いに通信します。この通信のことをプロセス間通信 (IPC) と呼びます。

システムで実行されるコードは、カーネルモードとユーザーモードという 2 種類のモードのうちの片方で CPU 上で実行されます。カーネルモードで実行されるコードはハードウェアに無制限でアクセスできますが、ユーザーモードの場合は CPU とメモリーへのアクセスは SCI に制限されます。メモリーについても、同様の分離が存在します (カーネル空間とユーザー空間)。この 2 つのちょっとした細工が、セキュリティの特権分離、コンテナの構築仮想マシンなど、一部の複雑な処理の基盤となります。

これはつまり、プロセスがユーザーモードで失敗した場合に、その影響が限定的であり、カーネルで回復できるということでもあります。しかし、メモリーやプロセッサーにアクセスするカーネルのプロセスがクラッシュすると、システム全体がクラッシュする可能性があります。保護対策が講じられているうえに境界を越えるには権限が必要なので、ユーザープロセスがクラッシュしても、通常はそれほど多くの問題は発生しません。


Red Hat を選ぶ理由

Red Hat では、Linux があらゆる処理の基盤となっています。Red Hat は Linux カーネルへの 2 番目に大きな企業コントリビューターであり、25 年に及ぶ経験と知識を注ぎ、業界のパートナー、顧客、エキスパートからなる大規模なコミュニティを形成しています。25 年という年月は決して短くなく、そこで培われた歴史と経験は、簡単に得られるものではありません。

Linux カーネルはオープンソースであり、オープンソースは Red Hat の価値観の中核です。Red Hat® Enterprise Linux が最適であるという信念に基づいて Red Hat という会社を設立した理由をご覧ください。

Linux を使い始める

Red Hat Enterprise Linux logo

新しいアプリケーション、仮想マシン、ハイブリッドクラウドの基盤