一般来说,库没有理由不能在某些环境中启动存根,并使用它来访问该环境中的资源,包括远程主机上的资源。我对此有一个建设性的证明:rsyscall。分布式语言(包括将现有语言变成分布式语言的库)让您可以编写访问远程资源的库。有权访问程序的其余部分不允许访问的资源。例如:在浏览器中运行的 Javascript 可以访问浏览器作为库提供的功能;浏览器和 Javascript 以不同的权限级别运行。类型安全语言中的对象可以包含用于实现其方法的资源的功能,而这些功能对于调用这些方法的代码不可用。 Java 风格的堆栈检查可以限制用户或库代码在运行时拒绝未经授权的方法访问。诸如 CHERI 之类的功能安全架构会阻止代码访问它没有明确功能的内存。软件故障隔离可以允许 Multics 风格的“调用门”,其中库与其他代码具有不同的特权级别。您可能会担心使用这些花哨的技术。有时,它们不是必需的,因为可以安全地授予整个程序访问所谓特权资源的权限,也许是因为该资源是以下之一:快速创建(因此我们可以在库中即时创建它们)创建成本低(因此我们可以为每个用户提供他们自己的)已经多路复用并且可以安全共享(令人惊讶的是,如果您没有明确考虑的话,很容易错过这一点)很容易调整为可共享(例如,资源可以租给用户,然后在完成后重置)