ニコニコ大百科モバイル

7/2(月)よりスマホまたはPCでアクセスした場合、各デバイス向けのサイトへ自動で転送致します


kernel


ヨミ: カーネル
掲示板をミル!
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ハイブリッドカーネルを採用している。


関連商品


■az0470233990
■az0130926418
■az4254127057
■az0596005652
■az0201702452
■az0735625301

関連項目



最終更新日: 17/12/13 20:23
タグ検索 パソコン版を見る


[0]TOP
ニコニコ動画モバイル
運営元:ドワンゴ