0

私は両方の用語/技法を、その特性と用途に応じて明確に区別しようとしています。私は主にそれらの違いに興味があります。

システムコールを介在させることで、それらが同じように機能することを私は知っています。それとも私が間違っているかもしれません!

ただし、たとえば、System Wrapper が属するレイヤーとモード (ユーザー、カーネル)、およびリファレンス モニターが属するレイヤーとモードについては、まだ混乱しています。

できるだけ少ない言葉で。この 2 つの介入テクニックについて知っていることを教えてください。

どうもありがとうございました。

4

1 に答える 1

0

これが私が2つを解釈する方法です:

システム コール ラッパー システム コール ラッパーは、システム コールをラップするユーザー モードのコードです。つまり、特定のプロパティを確認するためのシステム コールの前後に実行されます。これの単純な例は、execve の周りにコードのレイヤーを追加して、権限を確認したり、このアクションを記録したりすることです。そのままで、libc やその他のライブラリは既にシステム コールをラップしています。通常、execve、clone、open、read、write を直接使用することはありません。代わりに、プログラマーの仕事を少し楽にするために、execv、fork、fopen、fread、fread などのバージョンがあります。

リファレンスモニター 一方、リファレンスモニターは少し異なる機能を果たしていると思います。リソースへのアクセスを仲介しようとしますが、これはユーザーとカーネルの両方で行うことができ、システム コールまたはそれ以下に割り込むことができます。

この 2 つを区別する最善の方法は、一方 (システム コール ラッパー) が実装であり、もう一方 (リファレンス モニター) が適用したいアイデアまたはポリシーであるということです。つまり、システム コールをプログラムにラップして、アクセス制御と適切なリソース割り当てを確保することはできますが、アイデアと実装は同じではありません。

注: 私は参照モニターについてあまり詳しくありません。http://en.wikipedia.org/wiki/Reference_monitorhttp://www.cse.psu.edu/~tjaeger/cse544-s10/papers/refmon.pdfを部分的なソースとして使用しました。

于 2012-04-11T01:27:03.067 に答える