0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Kernel vs User mode - Overview

Last updated at Posted at 2022-06-08

User/Kernel mode

Windowsが動作するコンピュータのプロセッサには、User-modeとKernel-modeという2つの異なるモードがあります。
processorは、processor上でどのような種類のコードが実行されているかによって、2つのモードを切り替えています。アプリケーションはユーザーモードで実行され、コアオペレーティングシステムはカーネルモードで実行されます。多くのドライバはカーネルモードで実行されますが、一部のドライバはユーザーモードで実行される場合があります。

目次

  1. User mode
  2. Kernel mode

User mode

ユーザーモードのアプリケーションを起動すると、Windowsはそのapplication processを作成します。このプロセスは、アプリケーションにprivate virtual address space とprivate handle tableを提供します。アプリケーションのvirtual address spaceはプライベートなので、あるアプリケーションが他のアプリケーションに属するデータを変更することはできません。各アプリケーションは分離して実行され、あるアプリケーションがクラッシュした場合、そのクラッシュはそのアプリケーションに限定されます。他のアプリケーションやオペレーティングシステムは、そのクラッシュの影響を受けません

プライベートであることに加え、user-mode applicationのvirtual address spaceは制限されています。ユーザーモードで動作しているprocessorは、operating system用に予約されているvirtual addressesにアクセスすることができませんユーザーモードアプリケーションの仮想アドレス空間を制限することで、アプリケーションが重要なオペレーティングシステムのデータを変更したり、場合によっては破損したりするのを防ぐことができます

Kernel mode

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

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?