最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

虚拟机接口比较

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

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

关注

评论

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

2023最新版互联网Java高级工程师面试八股文出炉!面面俱到,太全了

架构师之道

编程 java面试

HashMap 底层是如何实现的?

做梦都在改BUG

Java hashmap

深入理解 ThreadLocal:原理及源码解读

Java你猿哥

Java 源码 多线程 ssm ThreadLocal

熬了一个月肝出这份32W字Java面试手册,在Github标星31K+

程序知音

Java java面试 后端技术 Java八股文 Java面试题

美团二面:聊聊ConcurrentHashMap的存储流程

Java你猿哥

Java 源码 ssm ConcurrentHashMap 红黑树

JDK源码怎么学?看这篇文章就够了!

Java永远的神

Java 程序员 多线程 jdk源码 架构师

小白白也能学会的 PyQt 教程 —— 图像类及图像相关基础类介绍

繁依Fanyi

Python PyQt

硬核!阿里出品2023版Java架构师面试指南,涵盖Java所有核心技能

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

Mac强大音频采样器Kontakt 7 激活版

Rose

mac音频采样器 Kontakt 7激活版 Native Instruments Kontakt 7 mac下载

互联网广告全国精准投放合作 全媒体广告平台代理加盟 利润80%

互联网广告践行者

创业 互联网广告 互联网创业

阿里P8整理的《百亿级并发系统设计》实战手册,实在是太香了

程序知音

Java 高并发 java架构 Java进阶 后端技术

真香!阿里最新出品Java面试核心讲(终极版),Github已星标50K

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

太猛了!Github大佬那白嫖的分布式进阶宝典,啃完感觉能吊锤面试官

Java你猿哥

Java 架构 软件开发 ssm 架构设计

JVM调优神器,运用 Arthas 释放 Java应用性能的全部潜力

做梦都在改BUG

Java JVM 性能调优 Arthas

肝完阿里最新Java并发编程全优笔记,我成功晋升公司架构组

做梦都在改BUG

Java 并发编程

原生Mac视频下载器Downie4许可证下载v4.6.17

Rose

Mac 视频下载工具 Downie 4 下载 Downie4许可证 Downie 4 Mac版 Downie 4中文版

PoseiSwap以2500万美元估值,再获新一轮融资

西柚子

5个编写高效Makefile文件的最佳实践

小万哥

c++ Linux 程序员 面试 后端

从源码分析可重入锁(ReentrantLock)

做梦都在改BUG

Java 源码 多线程 ReentrantLock

吃透阿里2023版Java性能优化小册后,我让公司系统性能提升了200%

做梦都在改BUG

Java 性能优化 性能调优

卷起来了!阿里最新出品“微服务全阶笔记”,涵盖微服务全部操作

做梦都在改BUG

Java 架构 微服务 Spring Cloud spring cloud alibaba

内部消息!阿里首次10亿级并发系统设计文档,Github都为之低头?

Java你猿哥

架构 ssm 高并发 并发系统设计 并发系统

求爷爷告奶奶,阿里大佬才甩出这份Spark+Hadoop+中台实战pdf

程序知音

大数据 hadoop spark 后端技术

AIGC背后的技术分析 | 机器学习中的卷积神经网络

TiAmo

卷积神经网络 AIGC

Exposure X7 Bundle下载|专业的照片处理插件套装

Rose

滤镜插件 Exposure X7 Bundle下载 Exposure X7中文版

Mac平台上的条形码生成工具分享~

真大的脸盆

Mac Mac 软件 条形码生成工具 条形码软件

弯道超车!阿里高工新产Java面试速成指南,面试骚操作都在里面了

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

2024深圳电子信息展

AIOTE智博会

2023最新最全的Java面试八股文小抄开源!带你摸熟 20+ 互联网公司面试考点

采菊东篱下

Java 面试

太爆了!阿里最新出品2023版JDK源码学习指南,Github三天已万赞

Java你猿哥

Java 源码 jdk 多线程 jdk源码

Cloud Studio 高阶玩家:强大的 YAML 模板

CODING DevOps

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