最近这段时间,随着中美关系的持续恶化,比如华为芯片断供、哈工大Matlab断供等事件的发生,让我们意识到国产化软硬件系统的重要性。
只有我们国家掌握了基础芯片和系统的核心技术,走自主研发路线,才能在发展中不受制于人。
我们欣喜的看到,国产的软硬件系统也已经在路上了,2019年11月统信推出基于开源Linux的UOS统一操作系统,加上之前中科院推出的基于MIPS64指令集的国产芯片龙芯,中国的信创体系已经初步建立。
但是,我们也要意识到目前阶段国产软件的生态体系仍旧很匮乏,国产操作系统的市场占有率、软件数量和生态,都相对Windows生态圈来说都是远远落后的。
因此光有操作系统和芯片还是远远不够,丰富的软件生态才是蓬勃发展的关键。
由于Linux的桌面环境和软件生态一直发展缓慢,大部分我们熟悉的软件都是基于Windows开发的,这部分软件无法直接在Linux桌面使用,与各个国产软硬件系统适配的工作量较大,而且存在很多不确定性,Linux平台桌面分裂比较严重,且变化迅速,适配后持续投入的研发能力也是需要考虑的。
对于有度即时通来说,适配国产化操作系统,一方面的考虑是为国家的基础信息建设添砖加瓦,另外一方面我们很多的政府和央企客户也有这方面的强烈需求。对于我们来说,客户端采用C++开发,服务器采用Go语言开发,这些语言在不同的芯片和系统平台都要做编译和兼容性的修改。
对我们来说,当时最重要的任务是完成客户端在国产操作系统上零到一的跨越。
比如:国产的操作系统就很多,包括深度Deepin、优麒麟、中标麒麟、UOS以及银河麒麟等。这么多操作系统选定一个适配目标在初期显得很重要。
在国产化CPU架构主要分为X86的兆芯,海光,ARM64的鲲鹏和飞鹏以及海思麒麟,以及MIPS的龙芯。
根据自身的情况以及适配的难易程度,在初期我们选定了X86架构下的Deepin操作系统,先后完成了中标麒麟龙芯,兆芯中标龙芯,鲲鹏UOS操作系统以及麒麟UOS操作系统的兼容性认证。
在开发的初期,遇到的挑战就是有度即时通现有的桌面端开发技术并非跨平台开发技术,Windows端采用的duilib原生框架进行开发,而Mac OS则是苹果自家的Objective-C。
很不巧,这意味着单纯的移植是不可能完成这项任务的,需要重写大部分代码以完成国产化的适配。
这时候选择什么新的开发框架呢?Linux上开发的图形框架有GTK3,Qt以及基于Web技术栈的Electron。
在考量不同技术栈的区别以及今后产品的演进。最终选择了基于C++的Qt开发框架进行国产化Linux桌面端软件开发。
主要原因是在Linux平台桌面程序开发框架中,Qt的普及度较高以及社区资源较为丰富。同时Qt为跨平台框架,可以将来将Mac、Windows、Linux 的用户体验进行统一,达到资源利用效率最高的目的。
初期团队对Qt的熟悉程度还不够,导致开发进展并不顺利。后面团队也不断通过学习来提升对Qt的掌握程度。
Linux客户端在UI设计上没有沿用Windows客户端的消息列表和会话窗口分开的双主窗口设计(类似QQ),而是采用全新的设计将消息列表与会话窗口融为一个大窗口进行迭代演进,陆续完成了登录,消息列表,会话列表,搜索,以及企业应用的大部分功能等。
实现跨操作系统和兼容不同的CPU架构的Linux应用,意味着必须通过交叉编译的方式为不同平台进行编译打包,项目初期就开始构建的持续集成构建工具就发挥了重大的作用。充分保障了LInux版本的客户端持续迭代以及功能演进。
另外在开发过程中,我们的小伙伴也强烈建议和操作系统的厂商进行多方沟通,这样有时才能更好的定位适配过程的问题,并及时解决不同情况下的问题。
除了兼容不同CPU架构下的国产Linux操作系统,接下来也会持续丰富有度即时通Linux客户端的功能,将Linux客户端从“能用”到“好用易用”发展,也希望能得到大家的支持和使用。
从芯片,操作系统到软件,应该欣喜的看到,国产的软件正在崛起。涌现越来越多的国产化平台基础软件。相信陆续会有更多软件厂商加入,丰富国产化软件生态。希望国产化操作系统真正走入人们的工作生活,不需要再看别人“脸色”。