kernel単語

カーネル

1.3千文字の記事
掲示板をみる(7)
  • twitter
  • facebook
  • はてな
  • LINE
  • ほめる(5)
  •  
  •  
  •  
  •  
  • その他

Kernel とは、オペレーティングシステム(OS)の中核を担うプログラムである。
OS と同様に、その定義には諸説あり、どこまでがKernelなのかは、時代や本や人や実装による。

機能

少なくとも次の機実装しているはずである。

カーネルの説明の例

一つの説明として、「CPUの特権モードで動くプログラム全体」という考えかたがある。

一般に CPU には、特権モードユーザモードが存在する。
ユーザモードでは、ハードウェアへのアクセスや、他のアドレス間へのアクセスは禁止されている。
特権モードでは、すべてのハードウェアへのアクセスが可である。
プロセスは、このユーザモードで動くことで、暴走したとしても他のプロセスへ悪影を防ぐことが可になる。

しかし、ユーザモードだけではハードウェアへのアクセスプロセス間の通信等ができず、特権モードが必要になる。
この時、特権モードで動き、適切なプロセスに正しいアクセスコントロールのみを許すのが、Kernel である。
例えば、一般のプロセスHDDアクセスする場合、システムコールを使ってカーネルを通してのみHDDアクセスできる。
このプロセスは、ファイルやディレクトリは変更できるかもしれないが、「ファイルシステムを破壊する」という間違った行為は不可能である。

カーネルの設計による分類

モノリシックカーネル

単一のアドレス間内で実装されている。階層が少ない分うまくチューンすると実行効率に優れる。

昔のOSは全てモノリシックカーネルだった。現在LinuxFreeBSD などのPC-UNIX系が有名である。

マイクロカーネル

必要最低限の機のみ、特権モード実装されている。
ユーザモードで動かせるものは、できるかぎりユーザモードで動かす。設計は単純化できるが、層が増える分効率はやや低め。

コアの機が小さく、かつ単純故に落ちにくいことから、高安定性が要される産業システムや、効率より応答性が最優先のRTOS実装などで使用される。

マイクロカーネル」という名前からはOSが小さくなるんじゃないかと期待しそうだが、あくまでも小さいのは特権モードで動くコアだけである。通常はこの周りにファイルシステムやら何やらの実用上必須機が載ってくるわけで、そのOS全体が大きいか小さいかは設計による。

有名どころではMINIXまだできてないけどGNUのHurdなど。

RTAIやRTLinuxのように、モノリシックの権化のようなLinuxも何気にマイクロカーネル移植されていたりする。

モノリシックカーネルとマイクロカーネルの中間

大抵はマイクロカーネルでは遅いので、適当な機を特権モードで動かして高速化したものである。構造的にはマイクロカーネルに近い。

長所短所共それなり。モノリシックよりは融通が利くが、マイクロカーネル程安定しない。

現在PCメジャーWindowsMac OS Xは共にハイブリッドカーネルである。PC-UNIX系ではDragonFly BSDハイブリッドカーネルを採用している。

関連商品

関連項目

この記事を編集する

掲示板

おすすめトレンド

急上昇ワード改

最終更新:2021/09/17(金) 00:00

ほめられた記事

最終更新:2021/09/17(金) 00:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP