jkj*_*jkj 7 unix virtualization jvm cil llvm
我想将现有软件编译成演示文稿,以后可以在不同的体系结构(和操作系统)上运行.
为此,我需要一个(字节)代码,可以在另一个arch/OS上轻松运行/模拟(LLVM IR?一些RISC组件?)
一些随意的想法:
然后是系统调用映射的东西,但是例如BSD具有系统调用转换层.
是否有任何已经有效的系统可以将C/C++编译成以后可以在另一个架构上使用解释器运行的东西?
我可以将现有的unix软件编译成不那么低级的二进制文件,这可以比运行完整的x86模拟器更容易"模拟"吗?更像是JVM而不是XEN HVM.
维基百科的JVM页面上列出了几个C到JVM编译器.我从未尝试过任何一种,但它们听起来像是一项有趣的练习.
由于JVM与Java语言密切相关,因此JVM执行Java规范要求的严格运行时检查.这要求C对字节码编译器提供自己的"松散机器抽象",例如生成使用Java数组表示主存储器的编译代码(因此指针可以编译为整数),并将C库链接到集中式Java类模拟系统调用.下面列出的大多数或所有编译器都使用类似的方法.