2
OSがメモリアクセス違反を検出する方法
オペレーティングシステム(Linuxが望ましい)は、許可されていないメモリロケーションにアクセスしたことをどのように認識しますか? この質問は、それらのいまいましいポインターに触発されました!私の考えでは、コンピューターのすべては、速度、セキュリティ、整合性などの妥協点に関するものです。 Linuxのメモリマップはよく知っていますが、アクセスしようとしている場所がアクセスするたびにカーネルが有効な範囲内にあるかどうかをカーネルがチェックするのは少しばかげています。それは非常に多くの時間を無駄にし、より生産的な何かをすることに費やすことができるように聞こえます(しかし、おそらくチェックなしでは安全性は低下します!)。それとも、最近のすべてのアクセスを記憶し、すべてのハードウェアタイマーティックでチェックしますか?(しかし、それは安全ではないように思えますが、それでもまた遅いです。) 私はこの質問がどこでも答えられていないように見えることに驚いた。それは私がいつも疑問に思っていたものです。OSに代わってこれを行うハードウェアのセクションがあり、便利で便利な抽象化レベルにあると思うようになります。しかし、それでも、すべてのコンテキストスイッチで次のプロセスのメモリマップをロードする必要があり、これもまた遅いように聞こえます。 そう、とにかく、私は少し続けています:OSはどのようにメモリ違反を検出しますか? ありがとう