最「难搞」的英伟达也开源了,苹果会是下一个吗?

熵阱代码
• 阅读 1128

最「难搞」的英伟达也开源了,苹果会是下一个吗?

5 月 11 日,英伟达 NVIDIA 发文宣布,正式将其 Linux GPU 内核驱动模块开源,以 MIT 和 GPLv2 双许可的形式发布在 GitHub 上。短短 2 天,该项目已收获 8.6k Star(临发布前又涨了 200)。

最「难搞」的英伟达也开源了,苹果会是下一个吗?

开源的消息一出,有人评价说「这是近十年来开源操作系统硬件支持方面发生的最大事件之一」。但也有人认为,一次开源并不会改变什么,除非 NVIDIA 像 AMD 那样坚持开源 3 到 5 年,否则无法创造真正的价值。

一、所有硬件厂商中最难搞的一个

多年来, NVIDIA 在开源上的保守态度,被开发者和用户诟病已久,就连黑客都「看不下去」了。

今年 3 月,外媒曝 NVIDIA 受勒索软件攻击,黑客并未索取赎金,而是要求英伟达将 Windows、MacOS 和 Linux 系统的 GPU 驱动完全开源,否则就把机密数据公之于众。

更「经典」的名场面来自 Linux 之父 Linus Torvalds。2012 年,Linus 在一次公开访谈中直言,「NVIDIA 是所有硬件厂商中最难搞的一个!」然后面对镜头竖起中指并爆了粗口。

最「难搞」的英伟达也开源了,苹果会是下一个吗?

因为 NVIDIA 在 GPU 驱动上的长期闭源,有开发者专门打造了 Nouveau——一个旨在为 NVIDIA GPU 驱动建立的高质量的,免费自由的开源项目。据称,微软、谷歌和红帽都为项目提供了很大的帮助,甚至连 NVIDIA 自家的员工也在为 Nouveau 做贡献。

不仅是黑客、Linux 之父和开发者们,为 NVIDIA 的开源操碎了心,NVIDIA 的生态伙伴也一直盼它能早日开源。NVIDIA 宣布开源后,Canonical、SUSE、红帽等业内公司纷纷表示,对 NVIDIA 的决定表示赞赏,认为这对开源社区来说是一个真正的里程碑。

二、他们永远不会打开皇冠上的珠宝

据 NVIDIA 官方称,这次开源的版本是「朝着改善在 Linux 中使用英伟达 GPU 的体验迈出的重要一步」。但在 NVIDIA 的博客下,关于是否会发布 CUDA 等用户模式驱动程序的源代码,官方的回答是:

这些变化(开源)是针对内核模块的;而用户模式组件未被触及。因此,用户模式将保持封闭源代码,并在驱动程序和 CUDA 工具包中使用预构建的二进制文件发布。

也就是说,这次开源对广大的 NVIDIA 显卡的使用者来说,并没有太大的意义。不仅如此,还有开发者发现,在 NVIDIA 公开一部分内核源代码的同时,有相同数量的代码被转移到其闭源固件中,然后由开源驱动程序调用。

因此,在 NVIDIA 已开源的内核驱动中,仅用 34MB 的固件就实现了近 900 种功能,更多有价值的代码依然是闭源的。或者换句话说,英伟达 GPU 在 Linux 平台上使用,仍然需要用的闭源的代码。

对此,Asahi Linux 发行版的开发者之一 Hector Martin 称,开源只是表面的胜利,NVIDIA 收获了赞誉,而用户和开发者并没有获得真正的自由。

有外网用户也在下方评论:「他们永远不会打开皇冠上的珠宝」。

三、开源吞噬软件,苹果除外

即便 NVIDIA 的开源第一步,迈得有点小,起码还是做出了改变。而另一家知名的硬件厂商却依然没有开源的迹象,那就是刚从全球市值第一掉到第二的苹果。

诚然,苹果一直自称是软件公司,制造硬件只是为了给用户良好和一致的软硬件体验(这也是 NVIDIA 此前为闭源辩护的理由),但数据不会骗人。在苹果 2022 年 Q2 财报中,以 iPhone、Mac、iPad 为主的硬件收入占总营收近 80%,服务业务仅占 20%。

苹果并非没有开源,甚至还主导过 Swift、WebKit、FoundationDB 等优秀的开源项目,但开源更多是苹果的手段和工具,而不是文化和价值观。自乔布斯为 Apple II 盖上精美的塑料外壳,阻止用户打开机箱进行改装后,「封闭」就烙进了苹果的基因中。

最「难搞」的英伟达也开源了,苹果会是下一个吗?
电影《史蒂夫・乔布斯》中的乔布斯在阐述自己的「封闭」理念

带着「封闭」的基因,经历过自由软件运动与开源浪潮的苹果,在软件吞噬世界,开源吞噬软件的今天,成为地球上最大的科技公司,并坚持使用「大教堂模式」,打造出了顶级的软件生态系统,还利用软件优势在硬件上赚得盆满钵满。

如果说微软收购 Github,是软件公司走向开源的里程碑,NVIDIA 开源 GPU 内核,是硬件厂商拥抱开源的起点,那下一个开源里程碑,会是苹果吗?

腾源会(WeOpen)官方公众号,分享云、开源、社区相关的精彩资讯,技术及活动内容。欢迎关注!

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Stella981 Stella981
4年前
KaliTools说明书+BurpSuit实战指南+SQL注入知识库+国外渗透报告
!(https://oscimg.oschina.net/oscnet/d1c876a571bb41a7942dd9752f68632e.gif"15254461546.gif")0X00KaliLinux Tools中文说明书!(https://oscimg.oschina.net/oscnet/
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这