Linux生日快乐。自Linux首次发布以来已有25年了。它从非常卑微开工,Linus Torvalds的将其描述为“只是一种爱好,[是]不会大,专业像GNU”,但它已经成长为是世界上最大的开源项目,最常用的操作系统内核(用于从Android手机到无线路由器,从超级计算机到Valve的游戏平台的所有内容)。
昨天在多伦多举行的LinuxCon北美大会上,Torvalds称GNU通用公共许可证(GPL)为Linux是根据“ Linux成功的决定性因素”获得许可的,他是绝对正确的。
莱纳斯·托瓦尔兹在GPLv2许可,其中Linux内核是专门的许可,要求开发者公开分享他们已到内核,它一直在回避许多的陷阱,相互竞争的操作系统已经陷入生命所做的任何修改。它鼓励开发人员使用该软件并向上游做出贡献,因为这可以确保开发人员确保没有人可以在没有上游贡献的情况下仅获取其代码并将其用于自己的产品中。它使他们的代码自由的限制(尽管并非总是免费的成本)。
它“迫使”公司发布支持使用Linux启动的任何设备所需的代码,并在防止平台碎片化和减轻与搭便车问题相关的问题上走了很长一段路。在XDA最喜欢的移动操作系统Android的演进中,病毒式传播也发挥了作用。
多年来,由于许可问题,许多大型项目已被淘汰。拥有非Copyleft许可的项目已经使公司承担了他人完成的工作,并且没有回馈。各种Unix类内核(包括Linux最初与之相似的MINIX内核),移动操作系统(例如,诺基亚,摩托罗拉,索尼爱立信,LG,三星使用的Symbian)和其他项目几乎都被遗忘了,因为开发人员做了不想(或不能)支持他们。即使对于开源软件,像Microsoft这样的许多主要公司也完全理解拥有开发人员支持对于平台成功的重要性。
通过迫使公司回馈,GPLv2为Linux内核创造了指数级增长,成千上万的开发人员贡献了零散的点滴滴滴,加起来,使1991年仅10,239行代码的Linux内核发展到更多超过了2016年的1700万行。这还导致创建了多个相关项目,包括DD-WRT,Tomato和OpenWRT路由器项目,这些项目的开始是因为Linksys在其路由器中使用了某些GPL编码的代码,并且从那时起,它们就可以在某些设备上作为官方固件交付(这要归功于开发人员的回馈)。
Android也是如此。Android之所以拥有如此强大的开发社区,很大一部分原因是由于OEM被“强制”发布其特定设备的内核源代码。这反过来创建了一个平台,在该平台上可以构建自定义ROM(利用Google的Android开放源代码计划中的代码),即使许多OEM仅发布了最低要求也是如此。
这个平台允许创建您知道并刷新的ROM,例如OmniROM,CyanogenMod,Paranoid Android等,以支持数百种设备并提供最新的安全补丁和新功能,XDA完全支持该过程。
不过,更重要的是,GPL创造了一种回馈的文化,即使是最精打细算的原始设备制造商(OEM)也会向上游Android Open Source Project(AOSP)本身推送一些代码,即使只是为了减少数量。他们的代码库所需的维护。这带来了一些您可能知道的关于上游合并的出色功能,例如大多数OEM都在使用Sony的RRO提供主题支持,向三星捐赠Knox的一部分以改善Android的企业支持,甚至在幕后。