软件时代|开源,希望还是噩梦?

对开发者社区和开源模式的不重视,正在成为阻碍传统车企加速软件化、智能化转型的障碍之一。

燕文钱伯颜

抱歉,此网页无法访问

代理访问被拒绝,错误代码403

您访问的页面不在信任列表中,请与您的系统管理员联系

随着软件定义汽车概念的大火,无论是汽车厂商的高层、汽车行业的决策者,还是资本市场的投资基金经理,都对这一概念充满期待,它代表了汽车行业未来发展的新希望。但至少对于传统汽车企业的IT部门来说,这是一场噩梦。

在这个汽车软件工程师在汽车企业越来越重要的新时代,员工最常访问的网页列表上出现了许多新名字:除了传统机械工程师必备的工业标准网和市场部需要的各种经济数据网站,包括GitHub、CSDN、StackOverflow和DockerHub在内的开发者社区已经成为汽车企业工程师不可或缺的R&D参考工具。

但在目前传统车企及其IT部门将开发者社区代码视为潜在技术泄露漏洞的框架下,这些开发者社区无一例外都在IT黑名单上。任何想要访问开发者社区寻求帮助的软件工程师都只能在浏览器中得到一个错误页面。具有讽刺意味的是,即使在大众汽车集团专门为汽车软件转型而成立的软件子公司Car.Software.Org,也不例外。

世界各行业代码中使用开源项目的比例表明

位于Car.Software.Org英施塔特总部的IT部门支持工程师告诉智库君,目前,该部门约三分之一的日常工作与各种外部开发者社区的开放有关,该部门回答的建议总是千篇一律:原则上拒绝,建议软件工程师使用个人电脑参与开发者社区的活动。

最熟悉的陌生人:开源社区

事实上,传统汽车公司对开源模式和开发者社区兴趣不大并不奇怪。

一方面,从大工业时代开始,各大传统汽车巨头就已经制定了详细的知识产权保护制度。无论是在公司的电脑硬件中禁用USB等外部存储设备的接口,还是在电子邮件中设置敏感词和代码过滤机制,在过去的几十年里,制造业最重要的核心资产一直是集中了工程师心血的设计图纸和精密的生产技术。出于对后发国家复制设计方案的警惕,技术和专利的享有或开放在汽车企业中从来没有发挥过重要作用。

另一方面,作为大众集团CEO赫伯特迪斯(Herbert?Diess)表示,传统汽车企业掌握的车载软件代码比例仅为10%。长期以来,传统车企出于成本控制和稳定供应链合作伙伴的考虑,更习惯于直接采购各种电子控制单元,软件代码由一级供应商编写。然而,在过去的几十年里,汽车厂软件部门的重点一直是事务性的,例如为一流供应商制定软件架构标准和通信标准,以及在车辆级别上适配和集成来自不同供应商的电子设备。越来越多的整车企业甚至将软硬件的整体匹配外包给工程咨询公司。

陈旧的硬件思维和车载软件的大量外包,使得传统车企的工程师真的不需要在开发者社区享受自己的技术经验或者基础软件包,也缺乏足够的动力通过开发者社区和开源社区继续学习。

如今,随着车载软件在车辆研发中的比重越来越大,对开发者社区和开源模式的不重视,正在成为阻碍传统车企加速软件化、智能化转型的障碍之一。

总部位于慕尼黑的宝马集团一流软件服务解决方案提供商itk的软件工程师告诉智库君,为了加快软件研发和标准化测试,软件工程师发挥主观能动性越来越重要,灵活使用开发者社区中的各种现有代码和工具是捷径之一。遗憾的是,公司法务部门对GPL、LGPL、MPL、MIT等各种开源项目的许可类型缺乏了解,对开源项目在什么条件下可以商业化和盈利缺乏相关的法律知识。这最终导致很多汽车行业的参与企业不得不在重复开发中浪费时间和精力。

开发者群体思维缺失的弊端不仅体现在传统整车企业对外部开源项目的态度上,在企业内部,碎片化、分散化的部门属地意识导致了大型汽车公司不同部门大量的重复软件开发。

据智库君了解,奥迪、大众等平行子品牌之间不仅缺乏类似GitHub的软件托管平台,博世集团不同业务单元之间也缺乏泛集团统一的社区平台。

“表演终结者”特斯拉

然而,就像特斯拉的马斯克几乎是凭一己之力重新定义了电动汽车一样,第一次将开源模式和开发者社区思维注入保守的传统汽车行业的“表演终结者”依然是来自硅谷的特斯拉。

早在2014年6月,马斯克就在其个人社交媒体账号上宣布,特斯拉的所有专利都将免费公开:“特斯拉不会对那些善意使用我们技术的人提起诉讼,特斯拉的专利都是开源的。”

虽然6年前马斯克的说法有些“哗众取宠”,但毕竟当时特斯拉只开放了车身技术相关的专利,包括电池管理系统、自动驾驶仪等代码都不在开源范围内。对于马斯克希望通过开源模式做大电动汽车蛋糕,甚至形成技术标准垄断的质疑声一直不绝于耳。但此后,特斯拉逐步开源一些自动驾驶和内部开发工具的努力才真正得到推动。2017年春天之后,特斯拉开始在全球最大的软件托管平台GitHub上设立官方账号,并逐步释放了40多个软件项目的权限。

特斯拉在GitHub上的官方账号。

2018年,特斯拉甚至在GitHub上享用了Autopilot的系统镜像和Coreboot代码库。尽管这些核心代码库已经被特斯拉官方大幅精简,但特斯拉仍继续维护GitHub账户。

著名科技公司特斯拉除了不吝啬自己公司的一些软件代码,还非常善于利用各种开源项目来减少项目开发时间。无论是buildroot、busybox等操作系统相关工具,还是类似QT的实用开发工具,在特斯拉都得到了广泛应用。为此,特斯拉与这些开源项目的开发者就是否遵守了许可协议多次爆发冲突。

传统车企拥抱开源。

特斯拉完美应用开源项目的案例无疑是基于开源Linux系统内核开发的特斯拉版汽车操作系统。

作为整车企业和科技公司争夺未来产业链附加值和用户数据的主战场,车载操作系统已经大致分为三大阵营:传统的、最安全的、最封闭的黑莓QNX系统;开源和完善的生态系统,安全性有待提高,而Android车载操作系统(AndroidAutomotive?OS);以及开源项目和Tesla版本系统都使用的Linux内核。

相对于老化的QNX系统和目前只有以Polestar为代表的小众厂商使用的Android车载操作系统,特斯拉选择的开源Linux内核路线吸引了几乎所有全球汽车巨头的加入。

Linux 2014,开源项目AGL(AutomotiveGrade?Linux)成立的初衷是加速开放联网汽车软件栈。2065438+2009年4月,决心成立独立软件子公司Car.Software.Org的大众汽车集团正式加入AGL。如果加上AGL的发起者之一丰田集团,这两个年产量超过2000万辆的全球最大汽车集团已经开始积极选择开源项目模式,加速车载操作系统的研发。根据Linux基金会给出的数据,AGL联盟成员根据Linux内核定制的车载操作系统中,约30%的代码是车企独有的专属代码,其余为开源框架下的通用代码。

除了时间紧、任务重的车载操作系统研发,开源模式也开始在传统车企的各种研发项目中发挥重要作用。

丰田集团在2018年投资了1亿美元,由丰田研究所牵头开发了一个开源的自动驾驶模拟器。2019年,丰田开放了包括电机、燃料电池在内的2.4万项技术专利。在加入AGL之前,大众集团在2008年就开始尝试在CAN gateway中使用Linux内核,这一开源项目的成果至今仍在CERN等科研机构中应用。

根据大众集团开源项目专家OliverHartkopp给出的数据,使用开源SocketCAN后的工作比是2500万行开源代码加上大众工程师自己写的2000行代码。

然而,硬币总有另一面。

开源项目困扰汽车企业最大的问题还是安全。根据Synopsys发布的《2020年开源安全与风险报告》,超过60%的开源代码库存都存在漏洞。相比付费专有软件开发者定期发布补丁并修复,开源项目对用户的软件技术能力提出了更高的要求。其中最著名的案例是2014网景旗下OpenSSL开源库的安全漏洞,最终影响了全球50多万台网络服务器。

49%的开源项目存在漏洞,33%的开源项目用户没有遵循许可协议。

此外,使用现成的开源软件,在享受互联网文化便利的同时,也意味着略显古板的传统整车厂商也必须接受与源代码捆绑的许可协议。除了苛刻且难以商业化的GPL协议和慷慨的MIT协议,开源世界中至少有一千个许可协议。这甚至包括了离奇的“鸭子跳舞”许可协议,即如果车辆制造商已经在车载软件中使用了这一开源项目的成果,那么车辆制造商的CEO必须将自己跳鸭子跳舞的视频上传到社交媒体上。对于马斯克来说,这种舞蹈可能很熟悉,但人们可能很难想象赫伯特·迪斯或丰田章男的鸭子舞。

本文来自车家作者汽车之家,不代表汽车之家立场。