Windows オペレーティング システムのカーネル モードとユーザー モードの違い

Windows Speedup Tool をダウンロードしてエラーを修正し、PC の動作を高速化します。

Windows オペレーティング システムにはカーネル モードとユーザー モードの両方が備わっていますが、両方の違いを誰もが知っているわけではありません。実際、ほとんどのユーザーはこれらのモードの存在を知りませんが、以前に使用したことはあります。さて、あなたもその多くのうちの 1 人であれば、必要な知識を得るために読み続けてください。

ユーザーモードとカーネルモードの概要

Windows を実行しているコンピュータには 2 つの異なるモードがあります。ユーザーモードそしてカーネルモード。コンピュータ内のマイクロプロセッサは、実行されているコードの種類に応じて、どちらかのモードを自動的に切り替えることができます。アプリケーションとプログラムはユーザー モードで実行されるように設計されていますが、コア オペレーティング システムにリンクされているコンポーネントは代わりにカーネル モードで実行されます。ほとんどのドライバーはカーネル モードで実行されますが、ユーザー モードで実行されるドライバーもあります。

Windows オペレーティング システムのカーネル モードとユーザー モード

上級コンピュータ ユーザーにとって、ユーザー モードとカーネル モードの重要な側面を理解することは重要な課題です。この投稿では次のことについて説明します。

  1. カーネルモードはどのように機能しますか?
  2. ユーザーモードはどのように機能しますか?
  3. カーネルモードとユーザーモードの違いは何ですか?
  4. Windows はシステム リソースをユーザー アプリケーションからどのように分離しますか?

1] Windows 11/10 ではカーネル モードはどのように動作しますか?

マイクロソフトは次のように述べています。

カーネル モードで実行されるすべてのコードは、単一の仮想アドレス空間を共有します。これは、カーネル モード ドライバーが他のドライバーやオペレーティング システム自体から分離されていないことを意味します。カーネル モード ドライバーが誤って間違った仮想アドレスに書き込んだ場合、オペレーティング システムまたは別のドライバーに属するデータが危険にさらされる可能性があります。カーネル モード ドライバーがクラッシュすると、オペレーティング システム全体がクラッシュします。

カーネル モードで実行されるすべてのコードは、同じ仮想アドレス空間を共有する傾向があります。これはどういう意味ですか?そうですね、カーネル モード ドライバーは他のドライバーから分離されておらず、同じことがオペレーティング システムにも言えます。

カーネル モード ドライバーが誤って間違った仮想アドレスに書き込むことができた場合、オペレーティング システムにリンクされているデータが危険にさらされる可能性があることに注意してください。また、他のドライバーもこの方法で構成できることも理解しています。

さらに、カーネル モード ドライバーでクラッシュが発生すると、Windows 11/10 オペレーティング システム全体がクラッシュします。

読む:OSのカーネルとは何ですか?カーネルの種類には何がありますか?

2] Windows 11/10 ではユーザー モードはどのように機能しますか?

マイクロソフトは次のように述べています。

ユーザーモード アプリケーションを起動すると、Windows はアプリケーションのプロセスを作成します。このプロセスにより、アプリケーションにプライベート仮想アドレス空間とプライベート ハンドル テーブルが提供されます。アプリケーションの仮想アドレス空間はプライベートであるため、あるアプリケーションが別のアプリケーションに属するデータを変更することはできません。各アプリケーションは独立して実行され、アプリケーションがクラッシュしても、クラッシュはその 1 つのアプリケーションに限定されます。他のアプリケーションやオペレーティング システムはクラッシュの影響を受けません。

コンピューター ユーザーがユーザー モード アプリケーションを起動するたびに、Windows 11/10 OS はそのアプリケーションのプロセスを作成します。これで、プロセスは仮想アドレス空間とともにプライベート ハンドル テーブルをアプリケーションに提供するように動作します。

これを確認してください。あるアプリケーションは、他のアプリケーションに属するデータを変更することはできません。これは、アプリケーションの仮想アドレス空間は常にプライベートであり、変更できないためです。ここにあるすべてのアプリケーションは独立して実行されるため、1 つのアプリがクラッシュした場合、そのアプリのみが影響を受けます。オペレーティング システム上で実行されている他のアプリは、引き続き期待どおりに実行されます。

3] Windows 11/10のカーネルモードとユーザーモードの違いは何ですか?

実際、両方のモードの最大の違いは、提供される特権のレベルです。ユーザー モードの場合、アプリケーションには多くの権限がありません。つまり、ハードウェア リソースに直接アクセスできません。

ただし、カーネル モードでは権限が強化されるため、単純なクラッシュでオペレーティング システム全体がダウンする可能性がありますが、これはユーザー モードでは不可能です。

4] Windows はシステム リソースをユーザー アプリケーションからどのように分離しますか?

Microsoft は、プロセスの現在の特権レベルを確認するために階層化モデルを使用するように Windows オペレーティング システムを設計しました。通常、外側の層にあるアプリケーションはアクセスできる権限が少ないのに対し、コアに位置するカーネルはより多くの権限にアクセスできます。

読む:Windows カーネル モード パワー マネージャーとは?

カーネル空間とユーザー空間の違いは何ですか?

カーネル領域は、ドライバーを含む特権のあるオペレーティング システムのカーネル プロセスを実行するために予約されています。ユーザー空間は、プログラムやソフトウェアを実行するために予約されているメモリ領域です。

デバイスドライバーはカーネルモードで動作しますか?

ドライバーはソフトウェアであるため、はい、デバイス ドライバーはカーネル モードで実行できます。ただし、デバイス ドライバーは保護されたデータにアクセスする必要がないため、カーネル モードで実行する必要はほとんどなく、ユーザー モードでも問題なく実行できます。

次に読む:Linux カーネルの対話型マップ