ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java-今天在JVM中最接近真实(资源受限)隔离的是什么?

2019-12-09 03:02:24  阅读:593  来源: 互联网

标签:jvm distributed java bytecode


处于以下情况:

>您有一个庞大而复杂的系统(分布式,并发,庞大的数据集),该系统支持许多用户.代码被发送到数据.
>您想允许系统中的移动代码-即将与系统其余部分在同一JVM中运行的不受信任的代码,以利用数据的本地性,避免反序列化等.

您可以将代码放在有趣的类加载器中,并像applet运行程序一样使用自定义的安全策略.但是仍然存在问题:

整个系统应该受到保护,免受恶意代码的侵害-例如,产生大量的线程,耗尽所有cpu,分配过多的内存.

千年之初的想法是JSR-121.隔离旨在带来进程隔离的大多数好处-限制cpu使用,线程生成,堆使用:通常是资源分配.

考虑到Sun似乎放弃了这项工作,我们目前能得到的最接近的是什么?

到目前为止,我的想法是:

>字节码转换代码以插入分配跟踪. Google似乎做了类似的事情:http://code.google.com/p/java-allocation-instrumenter/.就像Google(Joshua)将自己推到一个角落并将各种东西打包成私有的一样,它需要一些工作…
>还禁止调用安全管理器无法执行的操作,例如创建线程.
>将(很少)中断检查插入到循环和递归函数中,以便监视线程可以监视(使用ThreadMXBean),如果花费的时间太长,则中断有问题的线程.仅对重入进行限制可能更简单-在对用户代码的任何调用中,基本块只能在中止之前输入n次.

有没有更好的或现有的方法来做到这一点?

解决方法:

这是一个复杂的问题.我的第一个想法是创建一种特定于域的语言,该语言可以满足“移动”用户的需求. DSL无法执行危险的操作.

谁将上传不受信任的代码?听起来像是一个可疑的想法.我们花了很多精力来确保人们不能运行不受信任的代码;-)

标签:jvm,distributed,java,bytecode
来源: https://codeday.me/bug/20191209/2095971.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有