我试图根据其属性和用途清楚地区分这两个术语/技术。 我最感兴趣的是它们之间的区别。
我知道他们通过插入系统调用以相同的方式工作。或者我可能错了!
但是,我仍然对System Wrapper所属的层和模式(用户,内核)以及Reference Monitor所属的层和模式感到困惑。
用尽可能少的单词。 请告诉我你对这两种插入技术的所有了解。
非常感谢。
答案 0 :(得分:0)
这就是我解释这两个的方法:
系统调用包装 系统调用包装器是用户模式中包含系统调用的代码。也就是说,它在系统调用之前和/或之后执行以验证某些属性。一个简单的例子是在execve周围添加一层代码来检查权限或记录此操作。因此,libc和其他库已经包装系统调用。你通常不直接使用execve,clone,open,read或write - 而是有像execv,fork,fopen,fread和fread这样的版本来使程序员的工作变得容易一点。
参考监视器 另一方面,我认为参考监视器的功能有所不同。它试图调解对资源的访问,这可以在用户和内核中完成,并且可以插入系统调用甚至更低。
我认为区分这两者的最佳方法是一个(系统调用包装器)是一个实现,而另一个(参考监视器)是您想要实施的想法或策略。也就是说,您可以在程序中包装系统调用以确保访问控制和适当的资源分配,但是这个想法和实现不是一回事。
注意:我对参考监视器不太熟悉。我使用http://en.wikipedia.org/wiki/Reference_monitor和http://www.cse.psu.edu/~tjaeger/cse544-s10/papers/refmon.pdf作为部分来源。