Menu Close

中国程序员的噩梦:全球最大的开源代码托管平台GitHub将禁止中国人下载其文件

一份美国的出口管制通知就震惊了全国的程序员,以后我们的代码还能放在Github上吗?它真的安全吗?

Github
Github

我们在去年就知道Github被微软高价格以7,500,000,000美元收购,价值人民币48,750,000,000

这是多少个0,小编反正没数清楚,你看清了吗?

才刚刚不到一年的时间,美国就开始像当初制裁中国的著名中兴集团一样,限制Github,因此还发布了Github的出口管制法律的约束。

最近,美国也限制了华为5G在美国的发展

虽然Github刚刚不久,就为大家提供了免费的Github私有库,但是这真的是私有吗?还有待大家讨论

接下来就为大家全文翻译这篇Github的出口管制法律的约束文:

—————————————————————————————

Github出口管制

GitHub.com,GitHub Enterprise Server以及您上传到任一产品的信息可能受美国出口管制法律的约束,包括美国出口管理条例(EAR)。

虽然为方便起见,我们提供了以下信息,但您最终有责任确保您使用GitHub的产品和服务符合所有适用的法律和法规,包括美国出口管制法律。

Github.com

根据我们的服务条款,用户只能按照适用法律访问和使用GitHub.com,包括美国出口管制和制裁法律。

用户有责任确保他们在GitHub.com上开发和共享的内容符合美国出口管制法律,包括EAR和美国国际武器贸易条例(ITAR)。 Github.com上提供的云托管服务产品尚未经过审核以符合ITAR或其他出口控制,目前无法按国家/地区限制存储库访问。如果您希望就ITAR或其他出口控制数据进行协作,我们建议您考虑使用GitHub的本地产品GitHub Enterprise Server。

GitHub.com不得用于相关出口管制法律禁止的目的,包括与开发,生产或使用核武器,生物武器或化学武器或远程导弹或无人驾驶飞行器有关的目的。

GitHub可允许受美国制裁的司法管辖区内或通常居住的用户根据外国资产控制办公室(OFAC)颁发的授权访问某些GitHub.com服务。禁止在这些管辖区域内的人员和居民使用IP代理,VPN或其他方法在访问GitHub服务时伪装其位置,并且仅可以使用GitHub进行非商业性的个人通信。

根据美国和其他适用法律,特别指定国民(SDN)和其他被拒绝或被封锁的人士禁止访问或使用GitHub.com。用户不得代表此类各方使用GitHub.com,包括受制裁国家/地区的政府。

Github 企业 Server

GitHub Enterprise Server是一个自托管的虚拟设备,可以在您自己的数据中心或虚拟私有云中运行。 因此,GitHub Enterprise Server可用于存储ITAR或其他出口控制信息,但最终用户有责任确保此类合规性。

GitHub Enterprise Server是一种商业大众市场产品,已被分配了5D992.c的加密控制注册号(ECCN),并且可能无需许可证(NLR)即可导出到大多数目的地。

GitHub Enterprise Server不得出售,出口或再出口到EAR第740部分补充文件或乌克兰克里米亚地区的国家组E:1中列出的任何国家。 该清单目前包含古巴,伊朗,朝鲜,苏丹和叙利亚,但可能会有所变化。

学习人工智能、Python、机器学习、深度学习

Github 对程序员职业生涯的影响

Github
Github

在未来的 12 到 24个月,即 2018 年到 2019 年,程序员的聘用方式将会彻底地发生改变。

2004 到 2014年之间,我任职于世界上最大的开源软件公司红帽公司。2004年的7月,当我在红帽公司开始第一天工作时,我的上司 Marty Messer 对我说:“你在这里所做的一切工作都是开源的。在将来,你不再需要简历,人们可以直接通过谷歌来了解你。”

在当时,这是在红帽公司工作的其中一个独特之处:我们可以在开源社区里创立自己的个人品牌和声誉。我们通过邮件列表、bug 跟踪表单(bug trackers)以及提交到 Mercurial、Subversion 和 CVS 仓库的源代码与其他软件工程师进行交流。所有的这些交流,都是公开的,并且可以被谷歌进行索引。

到了2017年,我们已经生活在开源的世界里了,进入了软件开源的时代。

下面两件事,可以让你真切地感受到开源时代的到来:

  1. 微软曾经是闭源私有软件的典型代表、反对开源的圣斗士,如今已经全心全意地拥抱开源软件,成立了 .Net 基金会(红帽是其中的一员) 并且加入 Linux 基金会。.Net 现在已经作为开源项目进行开发。
  2. GitHub 已经成为了一个奇特的社交网络,它把问题跟踪(issue tracking)和分布式代码控制捆绑在一起。

对那些主要是拥有闭源软件背景的软件开发者来说,他们还没真正了解到开源时代的到来。开源对他们来说就,等同于“用你的空闲时间来进行免费工作”。

但是,对我们这些使用十年时间来建立一个价值10亿美元开源软件公司的人来说,我们并不是使用空余时间来免费为开源软件工作。而且,为开源工作的好处和结果是显而易见的:你建立的声誉是你自己的,而且你可以在换工作时把它带到新的公司里。GitHub 是一个社交网络,你所有的提交和对任何技术的研究、交流这些资产都是属于你自己的,它和你正在工作的公司没任何关系。

聪明人会利用 GitHub 的这个优点来建立自己的资产:向他们日常使用的语言和框架进行提交补丁、问题(issue)、评论。比如,TypeScript、.NET、Redux。

他们同样会尽可能地提倡并安排他们的工作以开源的形式来完成,即使他们的提交显示都是私有的提交。

GitHub 是一个很好的均衡器。你虽然不能从印度找到一份澳大利亚的工作,但你能够在印度利用 GitHub 与澳大利亚人进行工作。

在过去的十年里,从红帽公司获取一个工作机会的方式已经显而易见了:你只需与红帽公司的工程师一起合作开发他们的一些开源项目,然后只提交一些有价值的提交并且得到他们的认可,你就会得到这份工作。否则不会提供工作机会给你。

现在红帽公司依然提供同样的求职方式给求职者,不过仅限于技术职位。如今是开源的时代,这种求职方式在世界各地开始流行起来了。

在 2 月中旬的一次访谈中,Linux 和 git 的发明者 Linus Torvalds (他在 Github 中拥有将近 5 万粉丝)说到:

你需要为开源项目提交大量的小补丁,直到项目的维护者信任你,到了那时你就会成为一个在这个项目中值得信赖的人,而不仅仅是一个提交补丁的人。

在信任网络中,你的声誉代表这你的地位。当你换公司时,你之前的声誉就会有所丢失并且减弱。如果你生活在一个小镇里并且在那待了很久,那么那里的人都会对你有所了解。但如果你去了其他国家生活,无论你去哪个国家,你之前的声誉都已经归零了。你最终会到一个没人了解你的地方,更糟糕的是,那里没人知道谁了解你。

你可能是第一次、第二次,或者更糟糕的是你已经是第三次这样丢失了与你的信任网络的联系。除非你已经通过在研讨会或者大型会议进行演讲建立个人品牌,否则你与其他人共事时建立的信任,以及提交到企业内部仓库的代码都会不复存在。

但是,如果你的工作是在 GitHub 上完成的,它就不会消失。它是可以看得见的。你之前与别人建立的信任网络的联系是可以从 GitHub 里直接看的到的。

在 GitHub 开源社区中将要发生的一件事就是,学生、刚毕业的学以及移民者这些相对弱势的群体可以利用 GitHub 这个优势到澳大利亚找份工作。

并且 GitHub 会改变开发者社区现有的样貌。一些之前比较有权威的开发者将会突然地发现他们的信任网络被破坏了。因为在开源中有个原则叫精英领导(meritocracy )——拥有最好想法的人胜出、拥有提多提交的人胜出、拥有最多通过测试的人胜出、拥有最佳实现的人胜出,等等。

这不是一个完美的原则(没有任何东西是完美的)。并且会让你很难成为一个可以一起共事的好同事。在红帽公司里,我们解雇过一些明星工程师(rock star engineers ),仅仅因为他们不能和其他同事和睦相处。而那些“其他工程师”会经常在 GitHub 里与其他代码提交者进行交流。

GitHub 不是简单地作为一个代码仓库和原始提交者的成员列表, 一些人把这看成是稻草人谬误( strawman arguments)。GitHub 是一个社交网络。我觉得:

重要的不是你提交到 GitHub 上的代码,是其他人对你 GitHub 上的代码的评论

那是你可以随身携带的声誉。并且在之后的12到24个月里,是否在 GitHub 里为开源项目贡献代码会有明显的区别。就好像有邮件和没有邮件(现在所有人都有邮件了)、有手机与没手机(现在任何人都有手机)的区别。到最后,大多数人将会以开源的方式来进行工作,并且会基于各种因素提供相对公平的竞争环境。

但如今,程序员的职业发展空间已经被 GitHub 打乱了。

为什么程序员们愿意在GitHub上开源自己的成果?

从2008年4月10日正式上线到今天,GitHub已经完成了它的第一个十年,正式进入下一个十年。Chris DiBona(Google的开源代码经理)认为“Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐!抛开“代码闭源是否就能赚很多钱”这个话题先不谈,我们直接总结一下程序员愿意在GitHub公开自己的源代码的几点主要原因:

1、通过代码的展示,提升自己的知名度

先来讲一个闻名全球的案例吧。有一家很著名的公司叫37signals,是一间非常小的公司,员工很少,但是在业内却非常出名。它的出名,很大程度上得益于一次机缘:员工大卫·海纳梅尔·韩森在工作的时候,用Ruby写了一个划时代的web快速开发框架——Ruby on Rails,其革命性的设计理念,大大的提升了WEB网站的开发效率。37signals选择了将此项目以开源的方式发布,在业内引发了轰动效应。

随着Ruby on Rails的快速蹿红,作为ROR诞生的产房——37signals公司也进入了大众的视线,并于2008年被《连线》评为十大最值得关注的创业公司,继而该公司的几款产品都取得了非常好的销售业绩。在37signals出版的畅销书《Rework》里,有一段这样的文字:最好的大厨都乐于在公共频道上教授自己的厨艺,这不仅无损大厨的商业利益,反而大大增加了大厨的知名度,对大厨来说这是非常棒的举措。

我们处在一个技术更新迭代越来越快的行业里,最可怕的并不是你高超的技术外泄,而是没有足够多的人透过你的技术了解你,拼技术的同时还要拼知名度,才能双丰收。

以目前的GitHub而言,它不只是一个简单的代码仓库,更是程序员的社交平台和炫技舞台。在这个平台上展示自己的代码,可以让程序员们更快地在行业圈子内提升自己的知名度。当然,如果能够像大卫·海纳梅尔·韩森那样足够幸运的话,还可以在业内创造一个属于自己的传奇。

2、展示作品,获得好的工作机会

展示自己的作品,是获取优秀工作机会的最佳手段之一。在“Talk is cheap,show me the code!”的程序员行业里,尤为如此。

GitHub同时为程序员与企业双方提供了非常便利的平台。

作为企业雇主,可以通过这个平台了解应聘者的作品,评估其技术实力,判断是否符合公司的要求。这种把一个程序员在GitHub的表现视为人才评估标准的操作,在程序员面试中越来越普遍。

作为程序员,GitHub上的关注数、星数、fork数量等数据,在一定程度上证明了你的编程能力是否出色,你的技术理念是否为更多的人所理解、赞同。越是在GitHub上受欢迎的程序员,越会被优秀的雇主青睐。

因此,这种现象,也进一步激励了程序员在GitHub上努力展示自己,使得开源氛围更加浓厚。

3、开源代码,利己利人

Adobe公布了Photoshop 1.0的源代码,这些代码对Adobe已经没有太多价值了,不如公开出来,供其他程序员们观瞻学习,同时还能为自己带来一点新闻性和关注度;Linux之父林纳斯为了一个非常“自私”的目的——能够有一个适合自用的免费操作系统,便把Linux的内核开源了,让全世界的感兴趣的人一起来对Linux进行维护。

所有的程序员在学习编程、解决BUG、交流心得的过程中,无可避免的会用到别人的劳动成果,同时也会帮别人去解决问题,这就形成了一个利己利人的生态。在这个生态中,所有的程序员都无需重复的造轮子,大家在一个开源共享的氛围中付出,在付出中享用所有的产出成果,在享用成果中不断的再创造,从而形成一个良性循环的利己利人生态,所有人都能在这个生态中收益。

4、练习技能的同时结交业内朋友

前面我们说过,GitHub可以是程序员的社交平台和炫技舞台。在这里,会有众多的技术大牛出没。也许平时很难有机会与他们接触,但通过GitHub这个平台,自己的作品将有可能得到技术大牛的点评及建议,帮助自己快速提升技能;同时,还可以与其他程序员交流BUG解决经经验以及需求实现等专业问题,从而产生联系,建立起属于程序员的社交圈。

在程序员的世界里炫技简单粗暴,每当他们写出自认为很牛的程序,他们就迫切需要一个渠道来展示自己的才华,博客、论坛都可以成为他们的阵地,而Github等开源论坛则渐渐成为主战场。在程序员看来只有优秀的完整的代码才是有灵魂的,不懂程序的人都是麻瓜,这可能也是GitHub如此成功的一个重要原因。对于程序员极客来说,代码比言语更能让对方产生共鸣。

5、如果你愿意,也能赚一点钱

吹个牛,虽说我们程序员不差钱(正确读音:qian er),但是有钱可收,总不是一件坏事。如果是非常好的开源项目,在GitHub能引来相当好的流量,并且是与项目相关的精准流量,所以你懂的,适当做些广告是可以额外带来一些收入的。

所以,在GitHub上展示自己的作品,已经是一个优秀程序员的标准操作,这或许能带来很多比赚钱更重要的东西。当然关乎项目发展最核心、最关键的技术和机密,应该还是很少会有人在GitHub上进行展示的。

安卓遭禁GitHub会闭源?

安卓遭禁风波未平,Apache许可证分发的软件也将受美国出口管制?

昨日,安卓遭禁的新闻引发轩然大波。随后,开源中国在其博客中指出:Apache 许可证分发的软件也受美国出口管制。

此消息一出,众多网友呼吁程序员们:请尽快将代码在国内备份!

Apache 软件基金会这个全球最大的开源软件基金会官网上有这样的内容:

大概意思是除非经美国政府正式授权,否则 ASF 软件或技术不得直接或间接出口或再出口到受美国禁运或贸易制裁的任何地方。

除此之外,GitHub 这个全球最大的开源代码托管平台官网上也赫然写着:

GitHub.com、GitHub Enterprise Server 以及您上传到任一产品的信息可能受美国出口管制法律的约束,包括美国出口管理条例(EAR)。

该条款指出,GitHub Enterprise Server 不得出售、出口或再出口到清单中的国家,清单目前已经包含古巴、伊朗、朝鲜、苏丹与叙利亚,并且随时可能会发生变化。

细思极恐,开源软件何去何从

除了GitHub之外,知名公众号博主魏永明指出还有一个至关重要的开源软件也值得关注 :Linux 内核。Linux 内核是由来自世界各地的开发者一同协作完成的,知识产权所有者遍布全球。然而,Linux 基金会是在美国注册的,且 Linux 内核的分发服务器(www.kernel.org)、git 仓库服务器也都在美国的,所以美国如果说 Linux 内核也受美国的出口法律法规管辖,我们也无法反驳。

其实还远不止这些!

人工智能领域的同学应该对当前最火的开源框架TensorFlow并不陌生,但余凯(原百度研究院副院长、深度学习实验室主任)早前就曾在朋友圈发表呼吁大家用 caffe、mxnet 等框架,避免使用 TensorFlow。

他表示:“任TensorFlow成为世界上占统治地位的人工智能开发平台对世界是危险的。尽管这个平台目前是开源的,但是随着时间的推移,人工智能变得越来越强大,这个系统会变得极端复杂到失去透明性,而且会很可怕的变成全世界数据,计算,硬件,编译器等的标准制定者。这样会导致一个不健康的生态,阻碍年轻人掌握技术的自由,让个人,公司甚至国家在人工智能领域的自主发展,最终被一家商业公司所控制。这不是危言耸听。可惜现在绝大部分人都还意识不到这点。“

现在看来,确实不无道理。

开源软件不涉及加解密技术,就不会被管制?

根据林诚夏先生(台湾开放文化基金会法制顾问,开源社法律咨询委员会成员)的分析与说明,“开源软件,只要不涉加解密技术,不会被美国 EAR ( Export Administration Regulation , EAR ) 管制,但涉及加解密者则会被管制。“

以下为详细说明:

依美国 EAR (Export Administration Regulation, EAR),美国人、美国公司将软件出口至美国境外,或在美国境内提供给外国人作为出口的预备行为,必须申请取得许可。

但符合「公开可及(Publicly available)」定义的软件,不在 EAR 管制范围,亦即不需要申请许可;也就是说,多数的开源软件,皆为公开可及并能后续散布,符合这条但书,出口上不需要申请许可。(EAR 734.7 (a))

但 EAR 734.7 (b) 同时说明,公开可及软件虽不需许可,但若涉及加解密技术,仍然必须申请许可。

除非是这个加解密技术,除了代码本身公开可及外,其加密方式原则上也是公开可及的,那就可以再主张它在 ECCN 5D002 的列表里,可以采 EAR 742.15(b) 款提供源代码或揭露源代码来源的方式,来登录备查。

或是更简要的说,在美国:软件出口必须申请许可。

除非该软件是公开可及的,那就不需要申请许可。

但公开可及的软件,若涉及信息加密技术仍然要申请许可。

除非该公开可及的软件,除了代码公开可及外,连加密技术本身也公开可及,那就再进入例外不需要申请许可。

虽然不需要申请许可,但这样的代码公开可及、加密技术公开可及的软件仍然要向美国 BIS 汇报备查,并提供相关讯息供其事前事后查验。

像 Red Hat 及 Mozilla 是有定期提供备查清单出来给美国政府的。亦即有列备查清单者的,原则不能被管制出口。

注:Part 734 章节里的 734.7 对于何谓「公开可及(§ 734.7 PUBLISHED )做了定义说明及例示,简要来说:「技术或软件已经是被一般公众可以接触,并不限及其后续散布者( when it has been made available to the public without restrictions upon its further dissemination )。

概念辨析

Apache License 与 Apache 基金会项目

有很多开源软件,都会选择使用 Apache License 2.0,但是这并不代表这个开源项目已经属于 Apache 基金会,只有当项目被明确的捐赠给 Apache 基金会,才是属于 Apache 基金会的项目,受到美国法律的监管。但是,只要这个项目不涉及加密,同样不在 EAR 管制范围。

开源软件不等于美国的软件

有很多人担心,美国一声令下,会禁止所有的开源软件被中国使用。这样的担忧是不必要的。有太多的自由软件/开源软件,不属于任何一个公司,也不属于任何一家开源基金会,或者属于美国之外的组织,这些都是美国管不到的地方。

Github.com,Github 上托管的开源项目,与 Github 企业版

针对开源中国上述的文章,我们担心存在一些混淆。Github 是一家美国公司,当然受美国法律的约束。Github.com 上托管的项目,却未必受美国法律的约束。Github 企业版是 Github 公司的一个产品,而且是一个闭源的产品,这个产品不属于「公开可及( Publicly available )」的范围,因此会受到 EAR 管制。确实可能存在无法出口的问题。但是,这个产品,大多数情况下是企业采购之后,在本公司内部部署并使用的产品,对于开源社区,几乎没有任何影响。

因此,我们认为除了 EAR 限制的加密技术之外,由于开源软件在网络公开下载传播的属性,ASF 软件基金会或是其他开源软件项目不会也很难被美国政府限制出口。您的看法如何呢?欢迎评论!

专家解读:不必过度恐慌

开源项目是否受美国出口管制?是否有可能全线“闭源“?知名科技博主@包云岗 进行了相关调查,并在微博上发表了调查结论,以下内容援引自其博文:

针对开源的几个基本要素:开源基金会、开源协议、开源项目、开源代码托管平台。我们对12个知名开源基金会、6个常用的开源协议、3个代码托管平台进行了调研与分析,得出以下初步结论:

1、开源基金会管理开源项目,但基金会的管理办法差异较大,而基金会旗下的开源项目也可以选择不同管理办法。例如:

Linux基金会自身的管理办法不受美国出口管制,所以旗下的项目包括Linux Kernel等默认遵循该管理办法,但虚拟化项目Xen明确说明遵循美国出口管制,就属于Linux基金会中的特例;

Apache基金会的管理办法明确说明遵循美国出口管制,所以它旗下所有项目如Hadoop、Spark都将受到出口管制。

Mozilla基金会明确声明遵守加州法律,出现各类纠纷将必须到Santa Clara的法庭裁决。

2、目前调研的开源许可协议族(GPL、LGPL、BSD、MIT、Mozilla、Apache 2.0)均未涉及与政府出口管制无关的声明。

3、目前调研的3个代码托管平台GitHub、SourceForge、Google Code均明确声明遵守美国出口管制条例,并按加州法律解决纠纷。

4、小结:

* 合理的开源基金会管理办法可以规避美国出口管制

* 开源协议与出口管制无关

* 代码托管平台是开源的最大风险

5、关于RISC-V

RISC-V基金会隶属于Linux基金会,没有特别声明受美国出口管制,因此RISC-V基金会拥有的RISC-V开放指令集标准并不会受美国出口管制。这一点上周和RISC-V基金会的现任CEO专门进行了讨论并得到确认。后续我们也会再进一步确认。

开源自立迫在眉睫

这次华为事件促使我们思考:当我们日常所使用的编程语言、操作系统、开发框架与工具、服务,被注入了国家政府或是商业集团的意志时,究竟该怎么办?

科技自立、开源自立是唯一的出路。

科技行业在政治和商业的压力下,也早已不是曾经的“乌托邦”。

近年来,高通收购案、Facebook“数据门”、去年的中兴事件、今年的华为事件,都可以看到,科技界并不是完全自由开放的,背后也同样有各个国家政府或是商业集团的意志。

这给国内的广大用户、厂商敲响了警钟:基础软件不能过分依赖开源,需要自主研发,开源自立已迫在眉睫!

正如包云岗在文中所说,“我们应尽快建立已有托管平台在美国以外的镜像平台,长远来看,中国必须建立起自己的开源项目托管平台,并以更开放的方式吸引全世界的开源爱好者。”

Posted in 科技新闻, 美中超限战

相关新闻

Leave a Reply

Your email address will not be published.