マイクロカーネルとモノリシックカーネルの違い

著者: Laura McKinney
作成日: 1 4月 2021
更新日: 9 5月 2024
Anonim
基本情報技術者試験ワンポイント講座「カーネルって何?」
ビデオ: 基本情報技術者試験ワンポイント講座「カーネルって何?」

コンテンツ


カーネルはオペレーティングシステムの中核部分です。システムリソースを管理します。カーネルは、アプリケーションとコンピューターのハードウェアの間の橋のようなものです。カーネルは、マイクロカーネルとモノリシックカーネルの2つのカテゴリにさらに分類できます。マイクロカーネルは、ユーザーサービスとカーネルサービスが別々のアドレス空間に保持されるものです。ただし、モノリシックカーネルでは、ユーザーサービスとカーネルサービスの両方が同じアドレス空間に保持されます。以下に示す比較チャートを使用して、MicrokernelとMonolithicカーネルのいくつかの違いについて説明します。

  1. 比較表
  2. 定義
  3. 主な違い
  4. 結論

比較表

比較の根拠マイクロカーネルモノリシックカーネル
ベーシックマイクロカーネルユーザーサービスとカーネルでは、サービスは個別のアドレススペースに保持されます。モノリシックカーネルでは、ユーザーサービスとカーネルサービスの両方が同じアドレス空間に保持されます。
サイズマイクロカーネルはサイズが小さくなります。モノリシックカーネルは、マイクロカーネルよりも大きくなっています。
実行実行が遅い。高速実行。
拡張可能マイクロカーネルは簡単に拡張できます。モノリシックカーネルは拡張が困難です。
セキュリティサービスがクラッシュした場合、マイクロカーネルの動作に影響します。サービスがクラッシュすると、システム全体がモノリシックカーネルでクラッシュします。
コードマイクロカーネルを作成するには、より多くのコードが必要です。モノリシックカーネルを記述するために必要なコードは少なくなります。
QNX、Symbian、L4Linux、特異点、K42、Mac OS X、Integrity、PikeOS、HURD、Minix、およびCoyotos。 Linux、BSD(FreeBSD、OpenBSD、NetBSD)、Microsoft Windows(95、98、Me)、Solaris、OS-9、AIX、HP-UX、DOS、OpenVMS、XTS-400など


マイクロカーネルの定義

カーネルであるマイクロカーネルは、すべてのシステムリソースを管理します。しかし、マイクロカーネルでは、 ユーザーサービス そしてその カーネルサービス 異なるアドレス空間に実装されます。ユーザーサービスは ユーザーアドレス空間、およびカーネルサービスは カーネルアドレス空間。この 減らす カーネルのサイズ、およびオペレーティングシステムのサイズをさらに削減します。

アプリケーションとシステムのハードウェア間の通信に加えて、マイクロカーネルはプロセスとメモリ管理の最小限のサービスを提供します。クライアントプログラム/アプリケーションとユーザーアドレス空間で実行されているサービスとの間の通信は、通過によって確立されます。彼らは直接相互作用することはありません。これにより、マイクロカーネルの実行速度が低下します。

マイクロカーネルでは、ユーザーサービスはカーネルサービスから分離されているため、ユーザーサービスに障害が発生しても、カーネルサービス、つまりオペレーティングシステムには影響しません。 影響を受けないまま。これは、マイクロカーネルの利点の1つです。マイクロカーネルは簡単です 拡張可能。新しいサービスを追加する場合、それらはユーザーのアドレススペースに追加されるため、カーネルスペースを変更する必要はありません。また、マイクロカーネルは簡単に持ち運びでき、安全で信頼性があります。

モノリシックカーネルの定義

モノリシックカーネルは、アプリケーションとシステムのハードウェア間のシステムリソースを管理します。ただし、マイクロカーネルとは異なり、ユーザーサービスとカーネルサービスは同じアドレス空間で実装されます。これにより、カーネルのサイズが増加し、オペレーティングシステムのサイズがさらに増加し​​ます。

モノリシックカーネルは、システムコールを通じてCPUスケジューリング、メモリ管理、ファイル管理、その他のオペレーティングシステム機能を提供します。ユーザーサービスとカーネルサービスの両方が同じアドレス空間に存在するため、これによりオペレーティングシステムが高速に実行されます。


モノリシックカーネルの欠点の1つは、1つのサービスが失敗するとシステム全体がクラッシュすることです。モノリシックカーネルに新しいサービスを追加する場合は、オペレーティングシステム全体を変更します。

マイクロカーネルとモノリシックカーネルの主な違い

  1. マイクロカーネルとモノリシックカーネルが区別される基本的なポイントは、 マイクロカーネル ユーザーサービスとカーネルサービスを実装する 異なるアドレス空間 そして モノリシックカーネル ユーザーサービスとカーネルサービスの両方を実装します 同じアドレス空間.
  2. マイクロカーネルのサイズは 小さい カーネルサービスのみがカーネルアドレス空間に存在するためです。ただし、モノリシックカーネルのサイズは比較的 大きい カーネルサービスとユーザーサービスの両方が同じアドレス空間に存在するためです。
  3. モノリシックカーネルの実行は もっと早く アプリケーションとハードウェア間の通信は、 システムコール。一方、マイクロカーネルの実行は スロー システムのアプリケーションとハードウェア間の通信が 通過.
  4. 新しいサービスはカーネルスペースから分離されたユーザーアドレススペースに追加されるため、カーネルを変更する必要がないため、マイクロカーネルを簡単に拡張できます。モノリシックカーネルの場合、モノリシックカーネルに新しいサービスを追加する場合、カーネル全体を変更する必要があります。
  5. マイクロカーネルはもっと 安全な サービスがマイクロカーネルで失敗したかのように、モノリシックカーネルよりも、オペレーティングシステムは影響を受けません。一方、モノリシックカーネルでサービスが失敗すると、システム全体が失敗します。
  6. モノリシックカーネルの設計には 少ないコード、さらに少ないバグにつながります。一方、マイクロカーネルの設計にはより多くのコードが必要であり、より多くのバグにつながります。

結論:

マイクロカーネルは、モノリシックカーネルよりも低速ですが、より安全で信頼性があります。モノリシックカーネルは高速ですが、サービスの障害がシステムクラッシュにつながる可能性があるため、安全性は低くなります。