报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

虚拟机接口比较

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

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

关注

评论

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

新能源电池行业MES系统解决方案

万界星空科技

mes 锂电池 万界星空科技 电池mes 新能源电池

FlowJo 10:流式细胞数据分析的巅峰之作,解锁生命科学的无限可能!

Rose

Mac文件同步对比工具Beyond Compare 5最新密钥及安装教程

Rose

一文教你如何本地部署玩转DeepSeek-V3,免费体验100度算力包跑通!

九章云极DataCanvas

开发 #编程 DeepSeek v3

HttpRunner 接口测试框架

测试人

软件测试

Bigasoft Video Downloader Pro:支持全球视频平台,下载无障碍!

Rose

理工人的假期带娃搭子,和孩子一起动手建水塔,筑大坝……

博文视点Broadview

Vector Magic for Mac:一键将图片转为矢量图,设计更高效!

Rose

Babylon.js 开发框架的主要特点

北京木奇移动技术有限公司

软件外包公司 webgl开发 babylon.js

敏捷不是拖延借口,如何把控准时交付?

禅道项目管理

敏捷开发 项目管理软件 优先级 准时交付 sprint计划

通过数据驱动的方式实现自动化测试框架封装

测试人

软件测试

Royal TSX for Mac:一站式远程管理利器,效率与安全并存的终极选择!

Rose

人与AI协作的未来:共存还是竞争?

天津汇柏科技有限公司

AI 人工智能

Topaz Video AI:一键提升视频画质,让回忆更清晰!

Rose

软件工程3.0时代,AI落地研效成熟时

思码逸研发效能

研发效能 AIGC 研发效能度量 研发效能管理

AIP智能体平台:解锁未来软件开发的新篇章

大东(AIP内容运营专员)

人工智能

AIP智能体平台:开启教育与科技的新篇章

大东(AIP内容运营专员)

数字先锋 | “点击就成片”,中国电商人是懂做生意的!

天翼云开发者社区

云计算 存储 智能算力

Three.js 的优缺点分析

北京木奇移动技术有限公司

three.js 软件外包公司 webgl开发

【极致观影】Movist Pro:重新定义你的家庭影院体验!

Rose

爆肝整理!一文带你吃透软件测试

测试人

软件测试

Downie 4 for Mac v4.8.13最新中文版 苹果电脑专业youtube视频下载器

Rose

Rhinoceros 8 for Mac(犀牛8mac中文版)专业三维建模工具

Rose

Babylon.js 开发框架的优缺点分析

北京木奇移动技术有限公司

软件外包公司 webgl开发 babylon.js

Byteman 使用指南(一)

FunTester

Commander One Mac:双窗口管理,文件操作新纪元!

Rose

《HAP信创生态白皮书》正式发布

明道云

信息安全小课堂开讲啦!大伙看这里!

行云管家

网络安全 信息安全 数据安全

首批!云高性能计算平台CHPC通过云超算资质测评,百度智能云引领算力服务新高度!

Baidu AICLOUD

高性能 高性能计算

鸿蒙原生游戏上新!《王者荣耀》鸿蒙版上线华为游戏中心

最新动态

腾讯一面:那些数据库的高频问题

王中阳Go

数据库 腾讯 MySQL 高可用 面试问题

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