阿里、华为和微软等多家国内外厂商组团搞OpenJDK,还问Oracle为啥不参加?

编码之外

共 4184字,需浏览 9分钟

 · 2022-05-31

阿里、华为和微软等多家国内外厂商组团搞OpenJDK,还问Oracle为啥不参加?


近日,Eclipse 基金会和 Adoptium 工作组宣布搞了一件大事情,这件事情应该是Oracle不喜欢的,就是推出了一个叫做Adoptium Marketplace的项目,简单翻译就是Adoptium 市场!


这是干嘛的?市场嘛,肯定是展示或者销售一些东西,而这个Adoptium Marketplace则是给大家提供经过严格测试的符合标准的高质量Java二进制文件,简单点,就是给你提供JDK和JRE供你下载,全部都是基于OpenJDK!


目前Adoptium Marketplace已正式开放,可以下载了:



不过我发现这个Adoptium Marketplace目前只提供JDK的长期支持版本下载,也就是如下三个LTS版本:



那说到这里,有些人肯定不太明白,有点云里雾里,那必须给你普及一些知识了!


LTS


首先就是Java的LTS的版本,目前主要有如下这几个:


  1. Java SE 8(LTS)

  2. Java SE 11(LTS)

  3. Java SE 17(LTS)


那这个是啥意思呢?这还不简单,这是Java的长期支持版本,没错,LTS代表长期支持版本,目前Java中已经发布的Java8,11和17是长期支持版本,那么,你可知道长期支持版本的发布周期呢?


我们来看,目前三个出现的长期支持版本的发布时间:


  1. Java 8 是2014年发布

  2. Java 11是2018年发布

  3. Java 17是2021年发布


那么你说Java长期支持版本的发布周期是多少呢?四年还是三年?我告诉你吧,是三年,何以证明,我们可以从官方网站上找到说明:看图



以上描述出现在oracle官网中的“oracle Java SE支持路线图”中,也就是这里:


地址是:https://www.oracle.com/java/technologies/java-se-support-roadmap.html


ok,那么现在我们了解到Java的长期支持版本是每三年发布一次,但是下一个长期版本21将在2023年9月发布,有消息称长期支持版本将改为两年一次,我就想说,这个Oracle办事……


OpenJDK和Oracle JDK


首先,你要知道,我们平常说的JDK,大多数指的是Oracle JDK,也可以说,Oracle JDK是最正宗的JDK,这意思就是说还有其他的JDK!


我们知道,Java源于Sun公司,但是后来经营不善,被收购了,看一张图:



也就是说在1998年到2006年之间吗,这是属于Sun公司的时代,在2006年的时候,Sun公司选择开源JDK的源代码,当然去除了一些闭源特性,这就是现在我们常说的OpenJDK(是不是感觉自己大限将至,赶紧开源出去?)


那在2009年的时候,Sun公司就被Oracle给收购了,此时这个Java就是Oracle说的算了!


Sun被oracle收购之后,在2011年发布了Java7,这一年,Oracle承诺回到以前每两年发布一次的发布周期。但是,就要到了2013年的时候,oracle却宣布Java延期发布,说是有漏洞,在修复,于是最终Java8是在2014年发布的。


也就是Java7到Java8是隔了三年,那到了发布Java9的时候也是隔了三年,是在2017年发布的,这是不是意味着oracle不再遵循sun之前的每两年发布一次,而是三年发布一次呢?


事情有了转机,在2017年Java9发布之后,Java平台的主架构师 Mark Reinhold 发出提议,要求将Java的功能更新周期从之前的每两年一个新版本缩减到每六个月一个新版本。该提议获得了通过,并在提出后不久生效。


于是从Java9开始就是每6个月发布一次新版本了,但是此前oracle想要每三年发布一次版本的念头还没有打消,于是乎,你猜的没错,就是LTS版本的发布周期……


2006年Sun公司开源出去的Java源码形成了至关重要的社区组织,也就是OpenJDK,在Oracle收购Sun公司之后,这个OpenJDK也被Oracle接管了!


两者区别


我们一般说的JDK自从sun被oracle收购之后,指的就是oracle JDK了,那这个与OpenJDK有啥区别呢?


Java Development Kit(JDK)是sun公司搞出来的,在2006年sun公司决定将其开源,但是在JDK中的源码有一部分是商业源码,就是JDK中的源码不全是sun公司的,那这块代码sun公司是无权将其开源的,这些代码被称为闭源的一些特性,但是sun还是讲这部分闭源特性给去掉将JDK源码开源了。


但是由于开源后的代码少了一些闭源特性,也就是少了一些商业代码所提供的功能怎么办呢?采取的办法则是找寻具有相同功能的开源代码做了替代,于是就成就了OpenJDK。


后来oracle不是收购了sun嘛,这个OpenJDK自然也就属于oracle的了,于是oracle在OpenJDK的基础之上,又增加了一些额外的功能特性,于是就成就了oracle JDK,也就是我们今天普遍说的JDK,实际上oracle JDK和OpenJDK没啥重大的技术差别,只不过oracle JDK针对性的增加了一些功能,但是OpenJDK是包含sun公司之前创造的JDK的全部核心功能的,而且由于oracle的这一操作,oracle JDK就成了商业版本,在生产环境使用,最好是要规避一些风险的,而OpenJDK则是免费试用,源码开放!


那说到这里,你知道oracle JDK(简称JDK)和OpenJDK之间的差别了吗?


OpenJDK只包含JDK中最核心的功能,JDK中的一些非核心功能OpenJDK是不包含的,比如oracle自行添加的一些商用功能以及额外特性。


可以说,OpenJDK是JDK的极简版本,另外还有一个重要知识点:


我们一般说的JDK指的就是oracle的JDK,每次JDK的新版本发布,都是把OpenJDK中的更新拿过来加上自己的私有部分,也就形成了最终的新版本JDK。


JDK的不同厂商


通过上述描述,我们知道OpenJDK就是包含大部分原有JDK的核心,而现在说的JDK指的是oracle在OpenJDK之上加上私有特性形成的oracle JDK,因为现在OpenJDK是被oracle主导的,那么oracle JDK也就享有特权直接叫JDK。


可是不管怎么说,OpenJDK是开源的,不仅你oracle可以拿过来加上私有特性形成你的oracle JDK,其他厂商也可以这么做,比如有如下这些:


  1. AdoptOpenJDK:算是半官方,这个是由OpenJDK社群维护的

  2. Amazon(亚马逊) Corretto JDK

  3. 阿里 Dragonwell JDK

  4. 腾讯 Kona JDK

  5. 华为毕昇 JDK


等等……其本质就是拿OpenJDK加上私有特性构建而成!


但是,你一定要记住的一个就是,Oracle Java现在是商用的,它搞出来的要收费的,要钱的!


Adoptium


那Adoptium又是啥?通过上面的介绍,我们知道了JDK是有不同的厂商的,都是在OpenJDK的基础上构建而来,这其中有一个比较特殊,就是AdoptOpenJDK,因为它算是半个官方,为啥?


因为AdoptOpenJDK是直接由OpenJDK社群维护的,也就是说,你们都根据我OpenJDK去进行新特性增加改造搞新的出来,我自己不也可以搞,岂不是更加方便,于是就有了AdoptOpenJDK!


而这个AdoptOpenJDK在2020年的时候就以Adoptium这个名字转移到了Eclipse Foundation项目中去,你就可以理解成Adoptium以前叫做AdoptOpenJDK!


现在的Adoptium是一个工作组,主要成员包括阿里云、华为、IBM、iJUG、 Karakun AG、微软、New Relic和Red Hat于 2021 年 3 月发起。


Adoptium Marketplace


这次的Adoptium Marketplace就是由eclipse基金会牵头联合Adoptium工作组发起的一个项目,目的就是大家伙团结起来,一起贡献力量,去构建更好的OpenJDK!


正如Eclipse 基金会执行董事 Mike Milinkovich 所说“在 Java 生态系统中,第一次有一群供应商团结在一起,不仅是一个兼容性标准,而且是一个质量标准,这是一个重要的里程碑,对于行业来说,这是一个机会,可以在高质量的 OpenJDK 运行时的样子方面立足。


此前,给个厂商在OpenJDK基础之上构建属于自己的独特的JDK,都有他们自己的一个名称,比如OpenJDK官方的叫做AdoptOpenJDK,阿里的叫做Dragonwell JDK,华为就是毕昇 JDK,而这次大家共同成立的这个Adoptium Marketplace发行的JDK也有自己的名称,叫做“Eclipse Temurin”简称就是“Temurin”了!


我们从Adoptium Marketplace的官方网站也可以看到:



Oracle拒绝加入


那对于这样的一个项目,大家最容易想到的就是Oracle了,毕竟人家算得上是正主,所以此项目一定会邀请Oracle的加入,但是结果呢?


Oracle选择拒绝加入,你们知道为啥吗?评论区可以聊一聊!


参考链接:

1.https://www.infoworld.com/article/3662048/eclipse-opens-java-binaries-marketplace.html

2.https://adtmag.com/articles/2022/05/26/eclipse-adoptium-marketplace-launches.aspx

3.https://adoptium.net/marketplace/


end


精品资源,超多福利加微信免费领取


长安添加下方·二维码

领取庆哥的编程自学秘籍PDF电子书),朋友圈每天更新

常驻小尾巴


往期精彩推荐


白瞎了,我竟然不知道Java为什么叫Java


涨姿势啦!Java程序员装X必备词汇之Mark Word!


“入侵火狐只花了8秒”

浏览 280
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报