发布时间:2024-08-24
浏览次数:0
这是一位伟大程序员拥抱开源的“神奇”经历,写出来几个小时就在社交网站上收获了数千个赞。
“拥抱开源”并不是说说那么简单,如今很多科技公司也时常挂在嘴边,把开源当成重要战略,希望自己的工程师加入开源社区,在领域内营造良好的氛围,推动技术进步,获得更多开发者的支持和关注。
但有时,分享你赖以生存的新技术并不容易。它们可能会被用在各种意想不到的地方,有时别人甚至会借用你的开源代码来对付你。
如果你是一个人,而对方是一家大公司,这会让你怀疑人生。在最近的一篇博客文章中,来自澳大利亚的开发人员 Gregg 指责 IT 公司 Sun 窃取了他的开源项目“”的代码。
全称动态跟踪,是Sun公司开发的一种在生产和实验生产系统上查找系统瓶颈的工具,可以动态跟踪内核和用户应用程序,而不会对系统运行造成任何危险。
这是很久以前的故事了。如今,Sun 已经很少露面。它最后一次出现在公众视野中,是谷歌与甲骨文长达十年的版权纠纷最终尘埃落定之时。
1995 年,Sun 推出 Java。那一年,谷歌使用了 Sun 的一万多行代码来构建 操作系统。2009 年,甲骨文以 74 亿美元收购了 Sun 和 Java 软件。2010 年,甲骨文以“谷歌未经授权将 Java API 作为操作系统的一部分侵犯了专利和版权”为由提起诉讼。十年后,2021 年 4 月,美国最高法院判决谷歌胜诉。
Sun曾经是一家创新能力超强的IT巨头,但后来逐渐被其他竞争对手取代。接下来,Gregg详细回忆了那一年的故事。
一个流行的开源项目是如何被窃取的
这是我在开源世界中经历过的一次不可思议的经历,这绝对不是我编造的。
2005 年,我被卷入了一场风暴中心。当时我是一名独立的性能咨询师,而 Sun 公司刚刚发布了一款可以测试所有软件的工具。在忙于编写和发布高性能工具的过程中,我发现了一个问题:我之前发布的开源和其他工具比 Sun 发布的更全面。会不会是一些内部项目消耗了他们的技术能力?
v0.96 工具(2006 年)。
由于我不是 Sun 的员工,因此对他们的内部项目一无所知。当时,我住在澳大利亚悉尼,为 Sun 从事培训和咨询工作,帮助其客户改善系统管理和性能。Sun 偶尔会邀请我参加他们的客户会议和其他可能引起我兴趣的活动,因为我是当地的专家。
有一次,有人告诉我,一位非常重要的人物将从美国来,我不知道他的名字,但我听说他是 Sun 的专家和开发人员,正在进行全球巡回演讲,展示 Sun 基于 的新产品。
我见过 Sun 公司推出的一些最佳技术,但我从未在路上见过开发人员。这位大人物将在悉尼停留几天,然后前往下一个澳大利亚城市,所以我同意在 Sun 的悉尼办事处与他会面。
两名澳大利亚Sun的员工向我介绍了这位大人物:“给我们教一些课程,一直从事相关工作。”低调的介绍在澳大利亚很常见(尤其是对澳大利亚人来说)。
我试图通过说这是我写的来打开话题,但他并不感兴趣。他不知道我的名字,也没听说过。对他来说,我只是一个陌生人。
无论如何,他还是很好心地做了一个简短的演示。他的产品是一个我非常熟悉的大型 Sun GUI 的附加组件。加载后,他演示了如何通过双击图标来运行多个工具。原始输出在单独的窗口中,或将结果显示为线图,看起来相当平庸。我希望有一个新的 GUI 功能。
唯一新鲜的是工具本身。他进行了推销,这种推销方式他以前已经说过很多次了,目的是给客户留下深刻印象。我感觉他不想让我真正了解它们的价值。
但我对他谈论的工具了如指掌,而且我也为自己编写了类似的功能。所以我说:“我以前做过这个,我编写了自己的工具来做这个!”
“当然。”他没有再说什么,但听上去他似乎还不太相信我。毕竟,这对 Sun 这家市值数十亿美元的跨国公司来说是一项重要的创新,而我只是一个普通的澳大利亚人。
然后,我查看了一些新的 GUI 图标,其中包括一个用于跟踪套接字 I/O 的工具。我在 2004 年尝试了这个 (.d)intellij idea产品学习手册,并将其作为开源项目发布,但当时我编写的工具并不完整:它无法访问内核源代码,因此必须使用黑盒分析来弄清楚一切;它适用于大多数 TCP 流量类型,但对某些类型无效,我在脚本注释中指出了这一点;它没有包含在文档中,因为我认为它不完整。
这就是为什么在所有工具中,我最感兴趣的是这个。Sun 应该做得更好,真正实现这个工具。
“我可以看看套接字 I/O 脚本吗?”我启动了一个终端。他看起来很惊慌,好像我不应该看后端,然后他似乎意识到了另一个卖点:“当然,你甚至可以向 GUI 添加更多工具!”停顿了一下后,他补充道“如果你有的话。”
经过一番搜索,我找到了一个目录,其中包含他之前演示的所有工具。
这些工具的名字都很熟悉,其中一个甚至叫“.d”。这让我想到了一个新的可能性,难道……
于是我导出了 .d 文件,屏幕上全是我编写的脚本,这是我一年前做的一个未完成的尝试,并作为开源项目发布。它包含一些奇怪的代码,并且是用我早期的编码风格编写的。我导出了其他工具并看到了同样的结果 - 这些脚本都是我编写的。
这个 Sun 公司的小伙子向全世界炫耀的新产品实际上是我自己的开源工具。
我的所有工具中都有我的名字,所以我从他们的工具中搜索我的名字,以证明这原本是我的项目。但我什么也没找到,我的名字被删除了。
我编写的一些工具甚至包括:
现在,在澳大利亚悉尼,他们正试图将格雷格的工具卖给格雷格。
一位澳大利亚 Sun 公司的员工打断道:“那些人说版权是 Sun 的。我的大多数工具都有自己的版权和 GPLv2 或 CDDL 许可证。但现在它们只有 Sun 的标准版权信息,开源许可证已被剥离。”
“你删除了我的名字!还有版权和许可证!”
另一名澳大利亚人也对这位大人物说:“你不能这么做。”
房间里一片寂静,人们都为眼前发生的事感到震惊。虽然 Sun 的一些人鼓励开源贡献并建立社区,但其他人却从同一个社区窃取:窃取他们的成果,更改许可证和版权,然后出售。
大个子对此毫无准备,一脸茫然。他没有多说什么,可能他不知道发生了什么,只是从别人那里拿到了有版权的工具,意思是“这不是他的错”,他似乎对我们说的话半信半疑。
会议很快结束。我建议他直接从 获取我工具的更新副本intellij idea产品学习手册,因为我主页上的旧版本已经过时,并且有一些我已修复的错误。我还提醒他保留我的名字、版权和许可证。
我至今都不敢相信,我所有的开源项目中竟然引用了 .d。因为我认为这个项目不是最优的,所以我后来写了一个更好的 () 工具。
几年后,苹果也在 OS X 中加入了几十个我的工具,但他们保留了我的名字、版权和完整的 CDDL 开源许可,甚至还改进了部分代码。后来, 对 11 也做了同样的事情,BSD 社区对 也做了同样的事情。我由衷感谢这些尊重版权的行为。
有些人可能会说这不是 Sun 的本意,而是一些粗心员工的所作所为,但我认为这可能受到 Sun 公司企业文化的影响。我和我周围的一些同事都认为,Sun 认为只有 Sun 才能充分利用其技术,在 Sun 之外创造的任何东西都是垃圾。当 Sun 员工发现一些优秀的项目时,他们往往会认为这些项目来自 Sun,因此可以放心地重新使用和重命名(甚至重新授权),因为他们认为这些项目已经拥有了版权。
Sun 确实有一些人试图为我和我的工作做正确的事情。我的工作至少四次被纳入可观察性产品,许可证保持不变。有一次他们想回到 GPL 许可证,他们和我讨论过这个问题,但那是另一个故事。
这不是第一次有人无意中向我推销我自己开发的项目。后来我学会了不要告诉销售人员他们给我看的东西是我发明的,因为他们认为我是个疯子,只会说“我对这项技术很有经验”,仅此而已。
我的 BPF 工具现在位于可观察性产品中,并且会变得比我的工具大得多。但我对开发人员的直接建议是:不要重写我的 BPF 工具和 bcc 库;按原样构建它们(bcc 或 bcc 工具版本)。重写会分散工程资源,并让您的客户使用过时的版本。
我想开源开发者发现自己的代码被改名并不罕见。但这可能是这样:一位美国开发者带着他没有编写的软件进行了一次世界巡回演出,包括在澳大利亚不小心给作者做了推销。他甚至没有说“谢谢”。
这是作者 Gregg 讲述的故事。Sun 如今已成为历史。但不可否认的是,开源社区的每一位开发者都为当今的计算机行业做出了自己的贡献,正如该文章的热门评论所说:
当苹果准备为 OS X 提供“较小尺寸更新”的时候,由于我的博士研究涉及到这个课题,所以我对其实现细节感到好奇,于是便询问了苹果相关研究团队的成员,几个月后我得到了答复:“我们正在使用一种叫做,你熟悉它吗?”的工具。我确实很熟悉,因为我是这个工具的作者。
在这个计算机驱动技术革命的时代,每一位开源贡献者都值得被尊重。
BAT等大厂Java面试经验总结
想获取 Java大厂面试题学习资料
扫下方二维码回复「BAT」就好了
回复 【加群】获取github掘金交流群
回复 【电子书】获取2020电子书教程
回复 【C】获取全套C语言学习知识手册
回复 【Java】获取java相关的视频教程和资料
回复 【爬虫】获取SpringCloud相关多的学习资料
回复 【Python】即可获得Python基础到进阶的学习教程
回复 【idea破解】即可获得intellij idea相关的破解教程 关注我gitHub掘金,每天发掘一篇好项目,学习技术不迷路!
回复[idea激活]获取idea的激活方法
回复[Java]获取Java相关视频教程及资料
回复【】获取更多相关学习资料
回复【】获取全套0基础知识手册
回复【2020】获取相关面试题教程
回复【入群】加入终端研发部相关技术交流群
如有侵权请联系删除!
TAGS:
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码