3

ユーザー空間とカーネル空間で null ポインターを逆参照するとどうなりますか?

私の理解では、動作はコンパイラ、アーキテクチャなどに基づいています。

ただし、一般に、仮想メモリが割り当てられたすべてのユーザー空間プログラムに対して、ページテーブルを使用して仮想アドレスを物理アドレスに変換するためにページングが使用されます。

したがって、ユーザー空間でヌルポインターを逆参照している場合、そのアドレスは無効であるため、コンテキストスイッチが発生し、カーネルでは、このヌルポインター逆参照の割り込みに基づいて「セグメンテーション違反が発生するか、ページ障害エラーが発生します」。

カーネル空間:

NULL ポインターを逆参照すると、システムがクラッシュしたり、カーネルがその呼び出しから戻れなくなる可能性があります。

私の理解は正しいですか?またはその他の情報が不足している場合は、説明してください。

参考:「CでNULLポインタを逆参照するとOSはどうなるの?」ということで理解できました。

4

1 に答える 1