写点什么

虚拟机接口比较

  • 2008-08-11
  • 本文字数:1219 字

    阅读完需:约 4 分钟

Andrew John Hughes 最近在其博客 首页上比较了OpenJDK 与GNU Classpath 两者的差异。Hughes 一直从事于OpenJDK 虚拟机接口的构建工作,该接口使得OpenJDK 通过这个接口与不同的VM 实现相结合。这项工作是 OpenJDK 创新的一部分,而 Hughes 则是这项创新的八个参与者之一。Hughes 今年年初的时候发布了相关的最终提议,而另外一些参与者的提议有:

在开发虚拟机接口的解决方案的同时,Andrew 还编写了文档来说明 OpenJDK 与 GNU Classpath 采用不同的方式。 JamVM CACAO Kaffe 等)。另一方面,OpenJDK 在过去几年中一直围绕同一个 JVM(Hotspot)进行构建。Hughes 那样,虚拟机和类库的边界是存在的,但是由于不断的发展,该界限已经变得不那么明显了:

这两个方案都提供了库和 VM 的分离。尽管 HotSpot 和 JDK 被置于同样的地方,但对于 OpenJDK 来说,这已经与最初的假设截然相反。 OpenJDK 协议上说,这使得不同版本 HotSpot 的替换成为可能。也就是说,由于 GNU Classpath 和任何的 VM 之间有众多不同的搭配,OpenJDK 中的 JDK 和 HotSpot 的联系可能会比 GNU Classpath 和任何的 VM 之间的联系显得更加紧密些。

Andrew 在比较过程中发现了这样一些差异:

  • 预加载的本地库——libjava.so 是一个定制 Java 库,必须由 OpenJDK 预加载,这与通过类库加载刚好相反。Hughes 以 CACAO 为例,详细分析了 CACAO 是(一个开源的 JVM,已经支持 OpenJDK 了)如何处理这一切的:

CACAO 中, src/native/vm/nativevm.c 提供了处理一个特别的 OpenJDK 用例。这需要在 VM 初始化过程的早期进行处理,而且要在核心类尚未进行任何本地调用之前进行处理。

  • VM 代理类——OpenJDK 中的很多核心类库直接由本地接口进行代理(Andrew 使用了一个本地声明的方法 Object.wait 作为例子)。与此相反,GNU Classpath 在大多数情况下会引入一个中间 VM 类,比如 Object.java 的中间 VM 类的则是 VMObject.java——这个类处理所有的本地代理,而且可以由其他 JVM 来替代。
  • 由 VM 代码引发类库调用——在两个 VM 中都存在这样一种情况——从 VM 调用类库。因此,类库的内部结构对于 VM 的实现有着非常直接的影响。Hughes 提到了下面一些区别:JVM 启动、NIO 字节缓冲区的创建、线程和线程组的处理等。

我们可以根据不同不同的认证来获取 Sun JDK 的源码已经有很长一段时间了,但出于法律原因,GNU Classpath 并没有开放源码;而且 Sun JDK 的协议与开源并不兼容。但自从 Sun 将 JVM 和 JDK 的协议重新声明为 GPL 后,开发者就开始比较这两个平台了。OpenJDK 的创新结果将于 2008 年 8 月 18 日正式公布,敬请关注。

查看英文原文: Comparing Virtual Machine Interfaces

2008-08-11 17:10730
用户头像

发布了 88 篇内容, 共 263.2 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Python异常处理:基础到进阶的实用指南

我再BUG界嘎嘎乱杀

Python 编程语言 软件开发 异常处理

老去在温暖的空间中,老去在智能的光芒里

脑极体

AI

“她”来了,陪伴赛道巨变!为GPT-4o加上你的一个数字分身

京东科技开发者

win版WinCatalog 2024(磁盘管理)特别版

iMac小白

VueScan Pro(专业扫描工具) v9.8.33 特别版下载

iMac小白

VueScan下载

京东秒送售后系统退款业务重构心得| 京东零售技术团队

京东科技开发者

英特尔推进面向未来节点的技术创新,在2025年后巩固制程领先性

E科讯

win版VovSoft Batch URL Downloader(批量网址下载器)激活版

iMac小白

INFINI Labs 产品更新 | Console 1.24.0 操作日志审计功能发布

极限实验室

console Gateway 极限科技 产品更新发布

软件适应性定义以及作用简单讲解-行云管家

行云管家

软件 行云管家 软件适应性

Flink的状态原语详述

木南曌

实时计算

通过MVEL表达式和Apache Chain职责链模式解耦MQ消息处理节点的实践应用

京东科技开发者

win版Windows System Control Center(WSCC)v7.0.9.1 注册版

iMac小白

从内存泄露聊聊python内存管理

我再BUG界嘎嘎乱杀

Python 编程语言 内存管理 开发语言

win版SketchUp Pro 2024 (草图大师2024)特别版下载

iMac小白

SketchUp2024下载 SketchUp2024激活版 SketchUp2024破解版

win版IDimager Photo Supreme 2024(图片管理软件)激活版

iMac小白

软件测试学习笔记丨黑盒测试方法论-场景法

测试人

软件测试

Office Installer Plus(一键部署微软 Office) v1.15 特别版

iMac小白

win版Directory Opus(文件管理器) 专业版下载

iMac小白

Directory Opus下载 Directory Opus破解版 Directory Opus激活版

Oracle到PostgreSQL的不停机数据库迁移!

NineData

oracle postgresql NineData 无停机迁移 异常告警

win版Stardock Start11(Win11开始菜单工具) v2.08直装版

iMac小白

暗水印——空域:音频水印(看不见我吧 啦啦啦~)

京东科技开发者

低成本、高稳定性 | 满帮集团 Eureka 和 ZooKeeper 的上云实践

阿里巴巴云原生

阿里云 微服务 云原生 nacos

门保真度达99.9%,英特尔展示领先自旋量子比特器件性能

E科讯

谈谈 JVM 垃圾回收机制

快乐非自愿限量之名

JVM 虚拟机 垃圾回收

DevOps 进阶实践课,连续 4 期,看看有你想听的吗?

阿里云云效

阿里云 DevOps 云原生

解锁高效创新:IPD策略如何重塑产品开发流程

不在线第一只蜗牛

大数据 产品开发

京东JD商品sku信息API返回值解读:数据驱动的商品属性研究

技术冰糖葫芦

API boy API 接口 API 文档

win版Microsoft Office 2016免激活专业增强版

iMac小白

Office 2016 下载 Office 2016激活版

虚拟机接口比较_Java_R.J. Lorimer_InfoQ精选文章