首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >高级编程语言与操作系统的虚拟机

高级编程语言与操作系统的虚拟机
EN

Software Engineering用户
提问于 2014-03-08 00:47:23
回答 5查看 2.2K关注 0票数 5

最近,我突然意识到,用于高级编程语言的虚拟机非常类似于操作系统。它管理资源,例如堆栈、堆等,类似于操作系统管理资源的方式,如果编程语言支持线程,那么虚拟机也会进行时间共享和上下文切换,类似于操作系统的工作方式。

这个类比又能走多远呢?为什么我们没有JVM的简单实现呢?似乎所有的碎片都在那里,那么,为什么这些东西不更普遍呢?

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2014-03-08 05:18:40

这能走多远?

很远。您可能需要查看jnode () (github回购),它是JVM的一个完整的基本实现。只有大约500 K的组装,作为一个“纳米内核”,用于引导过程。一旦操作系统运行,所有运行的代码实际上都是java。

为什么我们没有JVM的简单实现呢?

JVM开发人员习惯于认为“就在那里”的许多东西实际上都得到底层OS的支持,JVM只是使用OS资源。例如:设备驱动程序。如果您查看上面的jnode代码,您将发现正在进行构建设备驱动程序的工作。它们需要用java编写,在其他地方您将永远看不到它。

票数 4
EN

Software Engineering用户

发布于 2014-03-08 04:11:16

裸金属JVMs做(做了?)存在,但规模不够的规模,以资助足够的开发研发,以跟上超大容量主流处理器的实现。一个x86 (在一个小的纳米进程中)或ARM最终运行一个JVM,速度更快、成本更低,并且使用的功率比多个摩尔斯定律代落后(因此,在大纳米或微米进程中)定制JVM。目前,它需要数千万到数十亿美元才能跟上。

同样的事情也发生在一些非消费者驱动的RISC体系结构和一些不那么专业的DSP上。

票数 3
EN

Software Engineering用户

发布于 2014-03-08 02:05:48

JVM 确实存在的硬件实现,有一个数字可供选择。然而,他们并不是没有一些缺点。首先,如果机器是用硅写的,你很难升级它。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/231659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档