拥抱开源:软件时代的车企新挑战

图片来源:摄图网图片来源:摄图网

  “抱歉,该网页无法访问。”

  “Proxy访问被拒绝,错误码403。”

  “您访问的页面不在信任名单内,请联系您的系统管理员。”

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

  在这个汽车软件工程师在车企中变得越来越重要的新时代,员工最常访问的网页名单上也出现了诸多新名字:除了传统机械工程师必备的工标网以及市场部需要的各类经济数据网站之外,包括GitHub、CSDN、Stack Overflow、DockerHub在内的开发者社区都已经变成了车企工程师不可或缺的研发参考工具。

  不过,在视开发者社区代码共享为潜在技术外泄漏洞的传统车企和其IT部门现行框架中,这些开发者社区无一例外地都在IT黑名单上。任何想要访问开发者社区以寻求帮助的软件工程师在浏览器中能够得到的,只有报错页面。讽刺的是,即便是在大众集团特意为汽车软件化转型而设立的软件子公司Car.Software.Org内部也不例外。

  Car.Software.Org德国因戈施塔特总部的IT部门支持工程师就向21世纪经济报道记者透露,目前部门日常工作中的大约三分之一内容都与开通各种外部开发者社区有关,而部门答复的建议也始终如出一辙:原则上予以拒绝,并建议软件工程师使用私人电脑在开发者社区参与活动。

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

  事实上,传统汽车企业对于开源模式和开发者社区的兴趣寥寥并不令人意外。

  一方面,在大工业时代成长以来的各大传统汽车巨头内部早已制定了详细的知识产权保护体系。无论是在公司电脑硬件端禁用USB等外接储存设备接口,还是在电子邮箱中设置敏感词和代码过滤机制,在过去数十年里,制造业最重要的核心资产始终是浓缩了工程师心血的设计图纸以及精密的生产工艺。出于对后发国家复刻设计方案的提防,对技术和专利的共享或开放从未在车企内部扮演过重要角色。

  另一方面,正如大众集团首席执行官赫伯特·迪斯(Herbert Diess)所言,传统汽车企业自身掌握的整车软件代码比例仅有10%。一直以来,出于控制成本以及对稳定供应链伙伴的考量,传统车企更习惯于从一级供应商手中直接采购已经烧写好软件代码的各类电控单元。而整车厂软件部门在过去数十年内的工作重点反而是事务性的,例如为一级供应商制定软件架构标准和通信标准,以及在整车层面上对来自不同供应商电子设备的适配和整合。越来越多的整车企业甚至将软硬件的整合适配工作也外包给工程咨询公司。

  陈旧的硬件思维以及对车载软件的大量外包都使得传统车企的工程师确实无需在开发者社区中共享其技术经验或基础软件包,也缺乏足够动力透过开发者社区和开源社区进行持续学习。

  如今,随着车载软件在整车研发中占据越来越大的比重,对于开发者社区以及开源模式的缺乏重视,正在成为阻碍传统车企加速软件化和智能化转型的拦路虎之一。

  总部位于慕尼黑的宝马集团一级软件服务解决方案提供商itk的软件工程师就告诉21世纪经济报道记者,为了加速进行软件研发和标准化测试,软件工程师们发挥主观能动性变得越来越重要,而灵活使用开发者社区中的各类现有代码和工具就是捷径之一。遗憾的是,公司法务部却对GPL、LGPL、MPL、MIT等各种开源项目的许可证类型缺乏了解,对于开源项目在何种条件下能够进行商用和盈利也欠缺相关法律知识。这最终都导致许多汽车行业参与企业不得不耗时耗力地进行浪费时间的重复开发。

  缺乏开发者社区共享思维的劣势,还不仅仅体现在传统整车企业对待外部开源项目的态度上,即便是在企业内部,碎片化分散式的部门领地意识也导致了大型车企不同部门存在着大量的软件重复开发。根据21世纪经济报道记者了解,不仅在例如奥迪和大众品牌这种平行子品牌之间缺少类似GitHub的软件托管平台,即便是在博世集团的不同业务单元之间也缺乏泛集团的统一社区平台。

  “搅局者”特斯拉

  不过,就如同特斯拉的马斯克几乎以一己之力重新定义了电动汽车一样,将开源模式和开发者社区思维首次大规模注入保守的传统汽车产业的“搅局者”依然是来自硅谷的特斯拉。

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

  虽然说马斯克六年前的表态多少有些“哗众取宠”之嫌,毕竟当时特斯拉仅开放了车身技术相关的专利,而包括电池管理系统和Autopilot在内的代码并不在开源范围内,关于马斯克希望通过开源模式做大电动汽车蛋糕、甚至形成技术标准垄断“阳谋”的质疑也一直不绝于耳。但是自此以后特斯拉逐步将部分Autopilot以及内部开发工具进行开源化的努力却实实在在地被推进着。2017年春季以后,特斯拉就开始在全球最大的软件托管平台GitHub上设立了官方账号并开始逐步放开了超过40个软件项目的权限。

  2018年,特斯拉甚至还在GitHub上共享了Autopilot的系统镜像以及Coreboot代码库。虽然这些核心代码库之后被特斯拉官方大幅精简过,但是至今特斯拉仍持续不断地维护着GitHub账号。

  除了不吝啬于共享自家公司部分软件代码之外,打着科技企业名头的特斯拉也极其擅长利用各类开源项目以压缩项目开发时间。无论是buildroot、busybox等操作系统相关工具,还是类似QT的实用开发工具都在特斯拉内部得到了广泛应用。为此,特斯拉与这些开源项目的开发者就是否遵守了许可证协议而屡次爆发矛盾冲突。

  传统车企拥抱开源

  特斯拉对于开源项目运用得炉火纯青的案例无疑便是基于开源Linux系统内核开发而成的特斯拉Version车载操作系统。

  车载操作系统作为整车企业与科技企业争夺未来产业链附加价值和用户数据的主要战场,一直以来大致可以分为三大阵营:传统、安全性最佳、也是最为封闭的黑莓QNX系统;开源且生态系统完善、安全性有待提升、谷歌与造车新势力主打的安卓汽车操作系统(Android Automotive OS);以及同为开源项目、特斯拉Version系统使用的Linux内核。

  相比于正在垂垂老矣的QNX系统以及目前仅有以极星(Polestar)为代表的小众厂商使用的安卓汽车操作系统,特斯拉选择的开源Linux内核路线已经吸引了几乎所有全球车企巨头的加入。

  2014年,由Linux基金会管理的开源项目AGL(Automotive Grade Linux)成立,设立的初衷便是加速开放式的网联化汽车软件堆栈。2019年4月,决心设立独立软件子公司Car.Software.Org的大众集团正式加入AGL。如果加上AGL的发起企业之一的丰田集团,年产量超过2000万辆的全球最大的两家汽车集团都已经开始主动地选择了开源项目模式加速车载操作系统的研发。Linux基金会给出的数据显示,AGL联盟成员根据Linux内核定制的车载操作系统中大约30%的代码为车企独有的排他性代码,剩余部分均为开源框架下的通用代码。

  除了时间紧、任务重的车载操作系统研发之外,开源模式也开始在传统车企的各个研发项目中扮演重要角色。丰田集团此前就于2018年由丰田研究院牵头投资1亿美元开发开源的自动驾驶模拟器,2019年丰田又对外开放了2.4万项包括电机、燃料电池在内的技术专利。而大众集团早在加入AGL之前就已经于2008年开始尝试在CAN网关中使用Linux内核(即日后的SocketCAN),该开源项目的成果如今依然在例如欧洲核子研究中心CERN等科研机构中得到应用。根据大众集团开源项目专家奥利佛·哈特科普(Oliver Hartkopp)给出的数据,使用开源SocketCAN之后的工作配比是2500万行开源代码加上2000行大众工程师自己书写的代码。

  不过,硬币永远存在着另一面。

  开源项目困扰汽车企业最大的问题依然是安全。根据新思科技(Synopsys)发布的《2020年开源安全和风险报告》显示,超过60%的开源代码库存在漏洞。相比于付费的专有软件开发商会定期发布补丁并进行修复,开源项目对使用者的软件技术能力提出了更高的要求。其中最著名的案例莫过于2014年网景公司旗下的OpenSSL开源库安全漏洞事件,其最终影响了全球超过50万台网络服务器。

  此外,使用即用性的开源软件,在享受着互联网共享文化便利的同时,也意味着略显古板的传统整车制造商也必须接受与源代码捆绑的许可证协议。除了较为严苛、难以商用化的GPL协议以及慷慨大方的MIT协议之外,开源的世界中还存在着至少千余种许可证协议。这其中甚至还包括诡异的“鸭子舞”许可证协议,即如果整车企业在车载软件中使用过该开源项目的成果,那么车企的首席执行官必须将自己跳鸭子舞的视频上传至社交媒体——对于马斯克而言,尬舞或许早已经轻车熟路,但是人们或许很难想象赫伯特·迪斯或者丰田章男的鸭子舞舞姿。

发表评论

电子邮件地址不会被公开。 必填项已用*标注