NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

虚拟机接口比较

  • 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:10633
用户头像

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

关注

评论

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

如何做代币分析:以 BNB 币为例

Footprint Analytics

Token 代币 bnb

正式发布后的一年,我们都做了什么? | Sermant 2023年度总结

华为云开源

开源 微服务 服务治理 sermant

APISIX 可观测性最佳实践

观测云

APISIX

旁门左道:借助 HttpClientHandler 拦截请求,体验 Semantic Kernel 插件

不在线第一只蜗牛

Java c++ 开发语言

提升网络灵活性,SD-WAN助您快速应对备用线路需求

Ogcloud

网络 SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商

软件测试学习笔记丨ES(Elasticsearch)介绍

测试人

软件测试 自动化测试 测试开发

平台+低代码:中小企业数字化转型普惠之路

EquatorCoco

低代码 数字化

京东商品详情数据采集方法代码展示

tbapi

京东API接口 京东商品详情接口

低代码开发:学校低成本数字化转型的新引擎

不在线第一只蜗牛

低代码 数字化

比特币原生 L2 解决方案 Merlin Chain梅林链科普(bitget wallet)

股市老人

关于代码性能优化的总结

快乐非自愿限量之名

深度学习 代码 代码优化

跨国制造商部署SD-WAN提升全球业务案例分析

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

2024年赚钱新风口,源码搭建属于自己的体育赛事直播平台

软件开发-梦幻运营部

专业期刊邀请,天谋科技围绕 IoTDB 及 TsFile 刊文《Java aktuell》并将于 JavaLand 峰会作报告

Apache IoTDB

适用于预算少企业的网络组网方案

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

.NET 9 首个预览版发布:瞄准云原生和智能应用开发

EquatorCoco

.net 架构 云原生

微帧为央视大年初二《2024春节戏曲晚会》提供AI画质增强服务

微帧Visionular

画质增强 超高清处理

户外全彩LED显示屏的验收标准

Dylan

全彩LED显示屏 户外LED显示屏 led显示屏厂家

7个必会的数据可视化库

高端章鱼哥

数据可视化

鸿蒙Next怎么升级更便捷

FinFish

纯血鸿蒙 鸿蒙化改造 鸿蒙app 鸿蒙app升级 混合app开发

数字化,网络化和未来的AI

agnostic

人工智能 信息化

除了Sora,还有哪些AI软件工具值得推荐?这30个一定要知道!

彭宏豪95

AI软件 AIGC AI工具

区块链游戏解说:什么是 Nine Chronicles

Footprint Analytics

区块链游戏

一条Linux命令打败99%的运维

伤感汤姆布利柏

ETL、ELT区别以及如何正确运用

RestCloud

ETL 数据集成 ELT

程序员必会的6个数据可视化库

伤感汤姆布利柏

监管人工智能——未来之路

孤傲小二~阿沐

比特币原生 L2 解决方案 Merlin Chain梅林链科普(bitget wallet)

股市老人

浅析软件开发技术的发展历程与展望:从过去到现在,探索未来趋势

快乐非自愿限量之名

软件开发 项目开发

一座“超级工厂”:让中国没有流不通的数据

脑极体

数据

Java并发编程基础(下)

FunTester

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