当前位置:首页 > 每日看点 > 正文内容

Microsoft.Net和OpenJDK目前哪个开源程度更高?

卡卷网10个月前 (01-11)每日看点157

只从协议层面来说的话,OpenJDK使用的GPLv2协议更开源,而Microsoft.Net使用的MIT协议更开放。

MIT协议给了用户最大的自由权,用户几乎可以拿来干任何事——包括闭源;GPL了用户闭源的权力,因此它更开源,但没有那么开放。

不过在“开源程度”这个问题上,尤其是对于商业公司的开源项目,协议其实只是一个小方面,相对而言开源的形式会更重要,如以下几个常见的开源形式的“开源程度”显然有很大的不同:

    公司将自己的商业软件的一部分开源,但依然以商业软件的形式在内部,每隔一段时间从内部代码库同步到开源代码库;公司开源了项目,并把持着对项目的控制权,每个提交都由本公司员工,而本公司可以任意推送提交,内部决定无需和外部进行沟通;公司将项目控制权给一个由自己主导的开源组织。虽然公司依然能把持项目的发展方向,但将部分控制权给社区,所以公司无法做到一言堂,想推动什么都要遵循公开的社区规章,和社区沟通商议;公司想拒绝社区的决定也要有合理的理由;公司将项目捐赠给第三方开源组织,完全放弃特权,由开源社区主导项目发展。

具体的开源程度我对.Net这边了解有限,所以不太好做具体的较。

单纯说OpenJDK这边的话,Ja8时期OpenJDK和OracleJDK还有一些显著的功能差异,如JFR、JMC等都是OracleJDK享的商业功能,所以并没有那么开放。而到OpenJDK11的时候,OracleJDK几乎所有的商业占功能都开源并转交给了OpenJDK社区。

之后OpenJDK16代码从Mercial转移到GitHu,去年OpenJDK从openjdk.ja.net这个域名迁移到openjdk.org,这些都是OpenJDK社区更接近开源社区,降低Oracle影响力的表现。

目前的.Net和OpenJDK应该都是属于第三类,它们分别由.Net基金会和OpenJDK社区控制,但这两个组织又不是完全的开源组织,微软和Oracle依然保持着主导地位,间接控制项目发展方向。

当然只是这样说还是显得太抽象,我拿OpenJDK社区举例说明一下他们的“开源社区”体现在哪,“商业公司主导”又体现在哪。

OpenJDK社区作为开源社区,很多行动都是基于社区章程下的投票进行的。如在OpenJDK社区下属的项目(负责开发JDK的JDK项目,开发JaFX的OpenJFX项目,开发虚拟线程的Loom项目等等)里,通过审核者(Reviewer)的提名和投票就能让一个提交者成为审核者,成为审核者后就有资格批准一些小型PR能否被合并。

同样的,基于OpenJDK成员的提名和投票,贡献者也能成为OpenJDK成员。成为OpenJDK成员后就有资格提议创建新的项目,因此OpenJDK社区中很多项目都不是Oracle主导的,如Shenandoah项目(负责ShenandoahGC)是RedHat主导的,Lilliput项目(减小对象头)是RomanKennke个人主导的。

上面这些都是OpenJDK社区作为“开源社区”的性质,而OpenJDK社区是以“Oracle为主导”的体现是,OpenJDK社区中负责修订社区章程的五人理事会里,理事会和OpenJDK负责人这两个位置由Oracle直接指定,副由IM指定,剩下两个一般成员才是由社区选举,而且Oracle员工也能参加选举(今年这两个位置就是Oracle和RedHat各占一个,去年是RedHat和Amazon各占一个)。

可以看出,这个理事会中Oracle总是占据最大一份话语权,而且理事会除了修订社区章程外,创建组、罢免组负责人都需要他们内部投票同意。除此之外,社区章程中还有兜底条款允许理事会在“特殊情况”下通过内部投票直接解散组或项目。因此,Oracle可以在需要的时候通过理事会组织施加很大的影响。

刚刚说到的理事会中Oracle直接指定的“OpenJDK负责人(OpenJDKLead)”也是个极其重要的位置,负责很多关键事项,如JEP的流程(大部分较大的功能都要走这个流程)中好几步都要都必须经过OpenJDK负责人的同意才能进行。

JEP流程

Oracle把这些关键位置抓在手里,所以他们能确保在OpenJDK社区中有着主导地位,这是商业公司主导的主要体现。

我对.Net基金会的不太熟悉,但从微软在基金会章程中被指定为特殊的“创始成员”以及长期以来社区对基金会“性不足”等指控来看,那边的情况应该也是类似的。

当然,虽然.Net基金会和OpenJDK社区显然还是以微软和Oracle为主导,但由于这样一层中间组织的存在,微软和Oracle要做出任何决定都要和社区沟通,要将决定公开化透明化,因此让项目不会成为一言堂。

而且为了社区(至少表面上)的性,微软和Oracle也不会用太难看的方式干预社区。如Oracle虽然不喜欢ShenandoahGC,来自Oracle的OpenJDK负责人为了维持公正的原则也不会去卡相关的JEP。

因为这些因素,相纯粹商业公司把控的开源项目来说,这样由不太的第三方的开源项目开源程度无疑还是要高得多。

最后我纠正一下@hez2010的说法:

修改协议或者闭源/开源的行为需要获得所有给仓库贡献过代码的作者的准许,然后需要从仓库代码中删除掉未获得准许作者提交过的代码之后才能进行。

他说的这个是正开源社区主导的项目(如Linux)才会出现的情况,不适用于大部分商业公司或者基金会主导的项目。

公司/基金会组织主导的项目基本上会要求贡献者贡献代码之前签署一份CLA(贡献者许可协议),不签署协议的开发者会直接被拒绝向上游提交任何代码。

CLA协议中通常会授予组织一部分权力。如.Net基金会的CLA就授予了.Net基金会版权和专利许可,因此.Net基金会有资格代表全部贡献者修改协议或者直接转向闭源。OpenJDK社区、Apache等组织也有类似的CLA协议。


@油面筋塞肉的回答那就是完全不知所云的乱扯一通了。

而是否开放,最重要的还是对贡献的接受开放程度,net接受了龙芯对其上游大刀阔斧的改动,以后的版本会继承下去,完成了分支到合并的过程,以后就方便了,这不才是开放的体现么?而openjdk的分支,有多少合并回去的?还不是得出一个版本开一个分支改,能开个分支改改又没啥稀奇的。

OpenJDK主线支持不支持LoongArch完全取决于龙芯,龙芯交补丁的时候OpenJDK没给过任何阻力。JDK18龙芯就把对LoongArch64的ZeroSupport推到主线了,华为主导的RC-VPort也已经进了主线了,龙芯现在不想把LoongArch的JIT支持推给主线也能怪社区不开放?

最后一个逻辑,openjdk这么完美了,那为啥还有oraclejdk的存在?甲骨文吃饱了撑的做一个闭源一个开源,开源版本你们拿来吹各种开放,然后闭源版本?

OpenJDK当然不完美,没法提供给用户Oracle工程师团队全天候27种语言的服务支持。

现在OracleJDK就是Oracle全套JaSEUniversalSuscription订阅服务的时候附带的一个OpenJDK发行版,的就是后面打包的商业服务,也不知道提这个是想证明啥,证明微软的为.Net准备的商业支持团队是免费的吗?

至于GPL可以被违反所以不算更开源云云的,懒得回了。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8711.html

分享给朋友:

相关文章

现在手里有一万闲钱,买什么币好?

今天是2024年7月29日,看看我的持仓吧。只有几百刀的那些微持仓就不说了,以下持仓都在几千刀~几万刀不等。不构成任何投资建议,成本是多次买入的大致均摊成本$TIA 成本0$DYM 成本0 $SAGA 成本0$STRK 成本0$ETHFI...

学了两个月网络安全,一直未入门怎么办,知乎大佬们给些建议吧?

学了两个月网络安全,一直未入门怎么办,知乎大佬们给些建议吧?

你才学两个月,就想入门,笑不活了,我学了8年了,还被人说是个菜鸟。我学了这么多的渗透,依然挖不到自己的漏洞。ailx10:学习CSRF漏洞ailx10:学习PHP XXE漏洞ailx10:学习CORS漏洞ailx10:学习ClickJack...

为什么这次 Mac mini 的 M4 版本价格这么低?

为什么这次 Mac mini 的 M4 版本价格这么低?

扫了一眼这里的回答,目测没几个人真买过 Macbook、Mac mini且真正当主力工作机用过。这个初始(丐版)版本的机器实际谈不上多便宜,备受热捧有几个原因。它这代产品整体做了重新设计,大幅缩减了尺寸,真正称得上 Mini 了。对比前代,...

有没有能够兼顾便携并且流畅运行各种AI应用的笔记本?求推荐?

有没有能够兼顾便携并且流畅运行各种AI应用的笔记本?求推荐?

看了下题主的描述,可以考虑「联想YOGA Air 15 Aura AI元启版」,今年9月底出的一款轻薄本,也通过了英特尔Evo严苛认证。处理器用了英特尔最新的「酷睿 Ultra 7 258V」,主要亮点就是AI性能、图形处理能力和能效,很适...

想入个键盘,想买机械的但是太贵,求知友推荐一款手感比较好的薄膜键盘?

想入个键盘,想买机械的但是太贵,求知友推荐一款手感比较好的薄膜键盘?

相信很多接触过286的90后朋友都和我有一样的体会,以前的机械键盘真的是让人头皮发麻,不仅敲击要非常用力,而且很吵。所以后面随着大家的生活消费水平的上升,家家户户都有电脑了,自然也不想再用打字来宣扬自己有电脑的优越感,基本上大家都换成了又轻...

鸿蒙系统到底是不是安卓系统?

你好,是的。接下来我给不懂技术的人简单的说一下哄蒙系统的来龙去脉。首先你要知道什么是开源。‌‌开源(Open Source)全称为开放源代码‌,意味着任何人都可以获取和使用软件的源代码,并在遵守版权协议的前提下进行修改和再发布。‌12开源软...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。