モノリシックカーネルとマイクロカーネル
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/16 14:38 UTC 版)
「カーネル」の記事における「モノリシックカーネルとマイクロカーネル」の解説
カーネルが巨大化するにつれて、様々な問題が明らかになってきた。最も明らかな問題はカーネルの大きさ(メモリ使用量)の増大である。これは仮想記憶をカーネル空間にも適用することである程度まで和らげられるが、全てのコンピュータ・アーキテクチャが仮想記憶をサポートできるわけではない。カーネルのサイズを削減するため、不要なコードを削除するなどの改善が必要となるが、これはカーネルの各モジュール間の明らかにされていない依存関係があるために非常に困難である。 マイクロカーネルと比較したときのモノリシックカーネルの様々な欠点から、1990年代の初期までにモノリシックカーネルは時代遅れと考えられるに至った。結果としてLinuxがモノリシックカーネルを採用したことでリーナス・トーバルズとアンドリュー・タネンバウムの間で有名な論争が発生した(アンドリュー・タネンバウムとリーナス・トーバルズの議論)。この議論では、両者の言い分にそれぞれメリットがある。 モノリシックカーネルは設計が容易で、マイクロカーネルよりも迅速に成長することが期待できる。しかし、モノリシックカーネル内のバグは一般にシステムクラッシュを引き起こすのに対して、マイクロカーネルでは一部のサーバに問題が限定される。モノリシックカーネルの支持者は、不正なコードがカーネルに無ければマイクロカーネルの利点はほとんどないと論じる。どちらの側にも成功例がある。マイクロカーネルはロボットや医療用システムで使われており、各コンポーネントが別々の保護されたメモリ空間で動作する。これは最新のモジュールロード方式であってもモノリシックカーネルには不可能であろう。モノリシックカーネルは共有型カーネルメモリを使用するよう最適化されていて、マイクロカーネルのような低速なメッセージ渡しとは異なる。
※この「モノリシックカーネルとマイクロカーネル」の解説は、「カーネル」の解説の一部です。
「モノリシックカーネルとマイクロカーネル」を含む「カーネル」の記事については、「カーネル」の概要を参照ください。
モノリシックカーネルとマイクロカーネル
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/06 04:22 UTC 版)
「モノリシックカーネル」の記事における「モノリシックカーネルとマイクロカーネル」の解説
OSの構成要素を単一のメモリ空間で実行するモノリシックカーネルに対し、OSを構成する幾つかの要素・機能をカーネル空間から切り離し、外部モジュール化するなどで実装する手法をマイクロカーネルと呼ぶ。 モノリシックカーネルの設計思想および概念それ自体は旧来より存在するが、モノリシックカーネルというタームの成立は、このマイクロカーネルという概念・実装の登場(による対概念として要請され、命名されたこと)による(レトロニム)。
※この「モノリシックカーネルとマイクロカーネル」の解説は、「モノリシックカーネル」の解説の一部です。
「モノリシックカーネルとマイクロカーネル」を含む「モノリシックカーネル」の記事については、「モノリシックカーネル」の概要を参照ください。
- モノリシックカーネルとマイクロカーネルのページへのリンク