kernel単語

カーネル
1.3千文字の記事
  • 5
  • 0pt
掲示板へ

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ハイブリッドカーネルを採用している。

関連商品

関連項目

【スポンサーリンク】

  • 5
  • 0pt
スマホ版URL:
https://dic.nicovideo.jp/t/a/kernel

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

kernel

1 ななしのよっしん
2011/04/23(土) 00:09:36 ID: lrUabHfegt
>>アカデミックの分野では色々提案されているが、まともに使えるものはい。
それは間違い。QNXなどの立な実用例がある。

ミッションクリティカルで安全性最重視の場合、
コアの堅性が高いマイクロカーネルは悪くない選択。
2 ななしのよっしん
2013/05/26(日) 05:48:59 ID: 3blLY/EsNT
QNXは組み込み用OSとしてそれなりに高い地位にあるわけじゃないな。
もしマイクロカーネルが本当に「まともに使える」のであれば、メモリの乏しいスマホで使われてもおかしくないのだが、実際にはそうなっていない。
3 ななしのよっしん
2013/06/05(水) 00:34:53 ID: lrUabHfegt
>>2
QNXに産業系のカーネルだから、スマホ辺りはちょっと守備範囲が違うと思う。
もっともBlackBerryのTablet OSがQNXベースらしいから採用がないわけじゃないが。

コアの堅性が本気で必要なのは、自動車制御とか医療機器みたいな人の生き死にが掛かるレベルの話な。もちろんこういう世界でも組み込みLinuxとかはあるけど、マイクロカーネル系のシステムはちゃんと健闘してるよ。
4 ななしのよっしん
2013/11/03(日) 01:50:03 ID: mfO7f5SDQT
自動車制御でカーネルパニックしたら1大事だからなwwww
5 ななしのよっしん
2013/11/30(土) 11:09:58 ID: lrUabHfegt
ちなみに英語だけど、こんなドキュメントもあります。
http://nptel.iitm.ac.in/courses/Webcourse-contents/IISc-BANG/Operating%20Systems/pdf/PPTs/Mod_8.pdfexit

マイクロカーネル部分の要約:
ハードリアルタイムを実現したいRTOSの場合、カーネルは小さい方がいい。マイクロカーネルはそういうのに合ってる。

と。

メジャーPC OS等でマイクロカーネルれたのは、マイクロカーネルの「メリット」とされるものがPC的には大して重要でなかったこと、
また初期Windows NTが示すように、グラフィックドライバのような性第一の要を満たすには不向きだったことが原因かな。
もしNTがそのままマイクロカーネル実装されていたら、性は出なかっただろうが、代わりにWindows名物BSODの頻度はずっと下がっていたはず。結局こういうのはトレードオフなのよ。
6 ななしのよっしん
2020/11/03(火) 09:08:19 ID: n4p5jpu4aV
>>5
つまり、Windows NTBSoDが出ない代わりに、覇権OSは別の不安定なOSだった可性が高いな
7 ななしのよっしん
2021/08/30(月) 22:20:48 ID: JxV4LQG4K7
頻出だけどさっぱりわからない単