摘" 要:针对船海行业应用软件技术自主可控与数据安全的需求,聚焦船海典型应用软件在国产CPU硬件上的适配、测试及评估研究,提出上层应用软件在底层国产CPU硬件上的适配、测试及评估方法,构建搭载国产操作系统的鲲鹏、飞腾、海光、兆芯、申威及龙芯6类国产CPU硬件样机。以船海典型自研应用软件为对象,在6类国产CPU硬件样机上开展软件的代码改造、编译及适配,确立典型应用软件的功能及性能评估指标,开展相关指标在6类国产CPU硬件样机及原有Intel X86 CPU硬件上的测试与评估。研究结果表明,适配版应用软件在6类国产CPU硬件样机上的技术性能存在差异,且与Intel X86 CPU硬件相比,现行国产CPU硬件的技术性能相对较低,在一定程度上制约软件的运行效能;上层应用软件在底层国产CPU硬件上的适配存在源代码改造、第三方函数库的自研替代及非跨平台语言的重写等技术难点。研究成果能够为船海及其他行业的应用软件在国产CPU硬件上的适配提供理论方法与技术实践参考。
关键词:船海;应用软件;国产化;适配;评估
中图分类号:TP312" " " 文献标志码:A" " " " " 文章编号:2095-2945(2025)04-0001-09
Abstract: Aiming at the demand for self-controlled technology and data security in terms of marine industry-related application software, the research on the adaptation, test, and evaluation of typical marine application software on domestic CPU has been carried out. The method of adapting, testing and evaluating upper-layer application software on the underlying domestic CPU has been proposed. Six categories of domestic CPU prototypes, including Kunpeng, Phytium, Hygon, Zhaoxin, Shenwei, and Loongson, which are equipped with domestic operating systems, have been constructed. With typical self-developed marine application software as the objects, the code modification, compilation, and adaptation of software were performed on the six types of domestic CPU prototypes. Functional and performance evaluation indexes of typical application software have been defined, and tests of relevant indexes have been carried out on six types of domestic CPU prototypes and the original Intel X86 CPU. The results indicate that there are differences in the technical performance of the adapted version of the application software on six types of domestic CPU prototypes, and the technical performance of the current domestic CPU is relatively inferior compared with that of Intel X86 CPU, which restricts the operation performance of the application software within a certain range; the adaptation of upper-layer application software on the underlying domestic CPU suffers from technical challenges such as code modification, self-research substitution of third-party function libraries, and rewriting of non-cross-platform languages. This paper can provide theoretical methods and technical practice for the adaptation of application software on the domestic CPU in marine and other industries.
Keywords: marine; application software; domestic; adaptation; evaluation
当今国际局势复杂动荡,“棱镜计划”、俄乌冲突、巴以冲突等重大事件的爆发,为我国信息安全与核心技术自主可控敲响了战略警钟。实现行业上层应用软件在国产底层“CPU+操作系统”基础软硬件体系中的适配,是保障我国信息安全与技术自主可控的关键环节[1-2]。我国对CPU的设计研发已有二十余年,产生了鲲鹏、飞腾、海光、兆芯、龙芯及申威为代表的6类国产CPU[3-4]。在操作系统的设计研发方面,从“七五”计划开始,经历了启蒙、发展、壮大和攻坚4个阶段,产生了银河麒麟、统信UOS及中科方德等为代表的国产操作系统[5-6]。目前,国产基础软硬件的性能逐年提高,正在由“可用”向“好用”的阶段发展。但各行业的上层应用软件高度依赖微软Windows操作系统和Intel X86 CPU硬件体系(简称“Wintel”体系)的固有状态几乎未发生改变。上层应用软件与国产基础软硬件尚未形成深度适配及融合滚动发展之势,严重制约了国产基础软硬件的生态建设及我国信息安全战略发展[7]。
目前,已有学者开展了相关行业上层应用软件在国产基础软硬件上的适配研究。胡志强[7]从网络设施层、基础软硬件支撑层、应用系统层提出了基于自主可控技术的国产化替代总体技术方案,能够为国产化替代工程实践提供理论方法。钱褚佳[8]针对广电行业的日常办公软件、业务生产软件及自主研发软件,在龙芯、兆芯及海光3种国产CPU上开展了适配及测试研究,获得了相关软件在不同类型国产CPU上的适配和测试结果,为广电行业的应用软件国产化适配提供了解决方案。但该研究中,仅对原有软件在国产CPU上直接进行了常规的安装、启动、使用及卸载,对无法直接安装成功的软件,未开展源代码的国产化改造。周雄伟等[9]针对4种工业软件类型,包含研发设计软件、生产控制软件、经营管理软件及嵌入式软件,梳理了国产化替代发展现状,提出了工业软件的国产化替代措施与相关建议。该研究仅聚焦于理论分析层面,并未开展软件国产化适配实践应用。姚志强[10]针对档案管理系统,在飞腾、龙芯和海光3种国产CPU上开展了档案管理系统的安装测试、功能测试、性能测试及安全性测试,测试结果均通过。王玉中[11]针对中国铁建房地产集团的2个试点信息系统,构建了由国产鲲鹏CPU、麒麟操作系统、东方通中间件和达梦数据库等构成的国产基础软硬件适配环境,开展了2个系统的国产化适配和测试。结果表明,经过适配调试,构建的国产化基础软硬件环境在功能和性能上具备替代原有X86环境的可行性。付晓丹等[12]、李越[13]及冯凯亮等[14]以中国铁路办公系统为国产化替代试点,开展了办公软件和数据库的国产化替代技术路线与数据迁移方案研究,为铁路信息系统国产化替代提供了技术支撑。李廷伟等[15]结合软件系统的开发语言、系统架构、厂商配合程度等因素,考虑适配难度、适配成本及适配周期的差异,提出了国产化适配策略,但缺少基于相关软件的实践改造应用案例。
综上,目前关于上层应用软件在底层国产基础软硬件上的适配相关研究存在以下不足:一是诸多研究聚焦于理论分析与方法研究层面,缺少针对上层应用软件在不同类型国产基础软硬件中的源代码适应性改造实践;二是目前的研究均只针对单一或少数类型国产CPU硬件开展了相关软件的适配探索,尚未全面覆盖6类国产CPU硬件,无法明确行业软件在不同国产CPU硬件上的技术性能差异;三是未形成上层应用软件在国产基础软硬件上的适配、测试及评估的系统性方法,缺乏基于数据要素的评估分析支撑,相关研究方法和结论的指导性不足。鉴于此,本文针对船海行业应用软件技术自主可控与数据安全的国产化适配需求,开展了船海典型应用软件在国产CPU硬件上的适配及评估研究,提出了上层应用软件在底层国产CPU硬件上的适配、测试及评估方法,构建了搭载国产操作系统的鲲鹏、飞腾、海光、兆芯、申威及龙芯6类国产CPU硬件样机,以55个船海典型自研应用软件为对象,在6类国产CPU硬件样机上开展了软件的代码改造、编译及适配,确立了典型应用软件的功能及性能评估指标,开展了相关指标在6类国产CPU硬件样机及原有Intel X86 CPU硬件上的测试,基于大量的测试数据,完成了相关指标在6类国产CPU硬件样机上的横向对比分析,以及6类国产CPU硬件样机与Intel X86 CPU硬件的纵向对比分析。研究成果能够为船海及其他行业的上层应用软件在底层国产CPU硬件上的适配提供理论方法与技术实践参考。
1nbsp; 国产化适配及评估研究方法
本文针对55个船海典型自研应用软件在国产CPU硬件上开展适配、测试及评估研究。55个应用软件按学科方向分类,可分为3类,即水动力学、结构安全及综合隐身。按照软件的功能分类,也可分为3类,即预报、评价及优化。每个应用软件均由2部分构成,即核心求解器与人机交互界面程序。其中,核心求解器是基于船海水动力学、结构安全或综合隐身学科相关的规范/经验公式/专家知识等方法开发的程序,人机交互界面是为用户提供界面化操作的程序,通过人机交互界面调用核心求解器,输入相关计算参数,即可实现应用软件的预报、评估或优化等计算功能。从开发语言的角度分析,人机交互界面程序统一采用C++编程语言开发,核心求解器的开发语言分为5类,包含C++、Fortran、Python、VB及C#,具体信息见表1。
针对本文拟适配的船海典型应用软件,提出了其在国产CPU硬件上的适配及评估研究方法,如图1所示,具体方法及流程如下。
首先,开展拟定适配的船海典型应用软件的现行“Wintel”底层软硬件运行环境技术解析,包括CPU参数、操作系统类型、第三方函数库类型、开发语言及开发工具类型等。在明确现有底层软硬件运行环境后,结合国产CPU及国产操作系统等,开展国产化底层软硬件的技术选型,构建船海典型应用软件的国产化基础软硬件适配测试环境。
其次,针对本文拟定适配的船海典型应用软件,开展代码改造、编译、测试及评估。需要说明的是,在本文适配的应用软件中,由于软件的核心求解器采用不同语言开发。其中,国产CPU能够支持采用C++、Fortran、Python语言开发的核心求解器的源代码编译,但无法直接支持C#及VB两类语言的编译。因此,针对国产CPU能够支持编译的语言,先对核心求解器源代码开发工具及相关依赖函数库进行安装与适配,然后对源代码进行编译,依据报错信息开展相应的代码改造,对改造完成后的代码重新编译,循环上述步骤直至编译和结果验证通过。针对国产CPU无法直接支持编译的语言,需要分析源代码特性并重写为国产CPU能够编译的语言,然后依据上述步骤进行适配。完成核心求解器的适配后,对人机交互界面源代码进行适配,方法与核心求解器适配相似,包含编译、改造、重编译及验证等步骤。完成核心求解器与人机交互界面的适配及验证,即代表应用软件在国产CPU上适配成功。
最后,开展适配成功的应用软件在不同类型国产CPU硬件上的评估分析,确立应用软件的功能和性能相关评估指标,并开展指标测试。基于测试数据,对比分析指标在不同类型国产CPU硬件上的功能及性能差异,形成评估结论,为船海领域应用软件的国产化适配落地提供依据。
2" 国产化软硬件适配环境构建
在构建国产CPU硬件样机前,对本文拟定适配的船海典型应用软件的现行基础软硬件环境进行解析,明确CPU硬件配置、操作系统类型、第三方函数库类型、开发语言及开发工具等,给出相应的国产化可行性替代方案,具体见表2。
目前,国产CPU厂商包含6家:飞腾、鲲鹏、海光、兆芯、龙芯及申威[16]。按照架构可分为3类:第一类是以龙芯为代表的MIPS指令集架构和以申威为代表的Alpha架构,自主研发处理器内核,并在此基础上,对相关架构指令集进行了拓展。申威已基本实现完全自主可控,龙芯部分关键技术需付专利费,创新可信能力最强,但使用群体小,应用生态缺乏;第二类是以飞腾和鲲鹏为代表的基于 ARM 指令集授权的ARM架构。鲲鹏和飞腾获得了ARM公司64位ARMv8指令集的架构授权,有权设计、生产、销售ARMv8兼容处理器产品。由于获得架构层级授权,有可能形成自主指令集,且应用生态不断成熟;第三类是以海光和兆芯为代表的X86架构,指令集仍掌握在海外厂商手中,未来扩充指令集形成自主可控指令集难度较大。各类国产CPU的信息对比分析见表3[17]。
本文整合国产CPU、操作系统等,组建国产软硬件适配环境。构建鲲鹏、飞腾、海光、兆芯、龙芯及申威6类国产CPU硬件样机,部署国产银河麒麟v10操作系统。具体国产软硬件适配环境参数配置及组建方案信息分别如表4和图2所示。
3" 国产化适配及评估分析
以船海典型应用软件为适配对象,在构建的6类国产CPU硬件样机上开展软件的代码改造、编译、测试。依据本文提出的适配方法,阐述应用软件的改造实践案例,针对适配完成的应用软件,确立功能与性能评估指标,并开展相关测试。基于测试数据,开展相关指标在6类国产CPU硬件样机上的评估分析。
3.1" 适配与改造案例分析
本文适配的应用软件数量较多,由于篇幅限制无法对全部软件的改造案例进行分析。因此,以其中的船体振动噪声快速预报软件为例,阐述该软件在鲲鹏CPU硬件样机上的具体改造及适配方法。软件的代码改造及适配分为2个方面:一是核心求解器的代码改造及适配;二是人机交互界面的代码改造及适配。具体改造方法如下。
3.1.1" 应用软件的核心求解器改造及适配
1)将原有“Wintel”系统上开发的应用软件迁移部署在国产CPU硬件样机上,对软件的核心求解器源码进行改造。安装好国产化版的GNU编译套件工具后,执行编译命令:gfortran -o main maceplate3ok.for(maceplate3ok.for为该核心求解器的Fortran源代码名称),生成可执行程序并运行,产生报错信息如图3(a)所示。依据报错信息对源代码进行修改。
2)检查源代码,发现源代码中存在诸多行前的缩进有误,如图3(b)所示。这是由于源代码在Windows上开发,其与国产操作系统存在语法缩进规则不同的差异。因此,采用dos2unix工具,执行命令:dos2unix maceplate3ok.for将源Fortran代码格式转换为适用国产操作系统的格式,再次检查源代码,缩进错误消失,表明格式转换成功。
3)进一步分析报错信息,显示无法打开“laminated STIFFENED PLANTE, 2007/5/22”,查询该串字符,发现其为第294行代码中打开文件“LXJ_VandS2_ok_gon
gkuang2_4.txt”的第一行内容。分析第294行代码,其作用是打开输入文件STR1,并赋于文件单元号为5。通过查询资料,在Fortran语言中,1、2、5、6具有特殊含义,尽量避免使用这些特殊字符。因此,锁定错误点出现在文件标单元号的定义上,将源代码第294行输入文件的标示符改为非特殊字符9,同时将所有READ函数中的文件单元号由5改为9(共计修改25处)。此外,考虑后续可执行程序被调用时,避免终端交互带来影响,将终端交互功能去掉,计算结果直接保存在txt文件中,修改示例如图3(c)所示。
4)对修改后的源代码重新编译,生成可执行程序并运行,如图3(d)所示,将国产化适配后的计算结果与原有结果进行对比,数据保持一致,满足正确性要求,表明核心求解器改造成功。
3.1.2" 应用软件的人机交互界面改造及适配
1)完成核心求解器的改造及适配后,对软件的人机交互界面程序进行改造。人机交互界面在原有“Wintel”体系上的开发工具是Visual Studio 2015,但由于国产操作系统不支持该工具。经调研分析,采用Qt Creator作为国产替代开发工具。在国产CPU样机上安装Qt Creator后,打开人机交互界面程序的工程文件(包含配置信息和编译器等),提示“找不到有效的设置文件”。这是由于在不同计算机或在不同开发环境下打开工程文件时,Qt Creator会根据当前计算机的配置选择合适的编译器,若与工程文件中指定的编译器不匹配,则需要手动选择。根据Qt Creator提示,选择桌面默认的编译器,编译模式选择Release模式,可正常构建项目并进行编译,如图4(a)所示。
2)完成工程文件配置后,对封装程序进行编译,出现报错信息qDebug: No such file or directory,表示无法找到qDebug文件。经对源代码进行分析,源代码中的#includelt;qDebuggt;显示异常,结合报错信息提示,锁定错误行代码。进一步分析该错误的原因,在原Windows中开发的程序对代码的大小写不敏感,而国产操作系统对代码的大小写有严格的控制要求。因此,将#includelt;qDebuggt;更改为#includelt;QDebuggt;,重新进行编译,该问题得以解决,如图4(b)所示。
3)在解决上述问题后,重新编译源码,出现另外的报错信息ActiveQt/QAxObject: No such file or directory,表明无法关联QAxObject的头文件。按照上述解决思路,对代码大小写进行修改后,仍然无法解决问题。对代码进一步分析,该行代码的功能是用于控制Office办公软件,并实现Word、Excel等文件的读取操作。由于国产操作系统无法支持上述Office办公软件,且考虑适配的应用软件输入输出文件格式均为纯文本文件,无须Word、Excel等处理功能,对该行代码进行注释或删除并不影响应用软件的功能。因此,对报错行代码进行注释后,重新进行编译,该问题得以解决,如图4(c)所示。
4)完成上述代码改造问题后,重新编译通过,生成可执行程序,打开该程序,人机交互界面自动弹出,各项功能正常,表明人机交互界面适配成功,如图4(d)所示。
5)利用改造完成的人机交互界面程序执行核心求解器的调用操作,并输入相关计算参数,能够正常执行计算,且计算结果与原有“Wintel”体系上的结果保持一致,表明该应用软件适配成功,如图4(e)所示。
3.2" 功能与性能指标测试
针对适配完成的船海典型应用软件,在6类国产CPU硬件样机上开展软件的功能与性能测试,测试包含5项:功能项、稳定性、可靠性、资源消耗(CPU资源消耗、内存资源消耗)和响应时间,各测试项的测试方法见表5。
3.3" 功能与性能评估分析
依据测试数据,开展船海典型应用软件在6类国产CPU硬件样机上的功能与性能横向对比分析,以及6类国产CPU硬件样机与Intel X86 CPU硬件的纵向对比分析,具体分析结果如下。
依据测试数据,从功能项、稳定性及可靠性3个指标进行对比分析:在6类国产CPU硬件样机上适配完成的国产化版应用软件的各项功能均正常且无明显差异;在6类国产CPU硬件样机上打开应用软件,连续运行8 h,并定期执行软件计算或其他操作,各类样机运行稳定;在6类国产CPU硬件样机上打开应用软件,执行非常规、非法数据输入等操作,均能接收和处理,软件未出现异常崩溃或闪退现象。综上分析,国产化版应用软件在6类国产CPU硬件样机上的功能项、稳定性及可靠性无明显差异。
依据测试数据,从运行响应时间和资源消耗的角度分析,在6类国产CPU硬件样机的横向对比分析中,针对应用软件的响应时间,鲲鹏CPU硬件样机最短(0.437 s),其次是飞腾、海光及龙芯,三者的响应时间存在微小差异,是鲲鹏的2倍左右,申威和兆芯的响应时间较长,是鲲鹏的3倍左右。针对应用软件的内存资源消耗,6类国产CPU硬件样机均未超过0.2%且无明显差异。针对应用软件的CPU资源消耗,海光和鲲鹏上的消耗率相对较低,其次是兆芯、飞腾和龙芯,申威的消耗率较高。在6类国产CPU硬件样机与Intel X86 CPU硬件的纵向对比分析中,Intel X86 CPU硬件的总体性能优于6类国产CPU硬件样机,如图5所示。
4" 结论
本文提出了船海典型应用软件的国产化适配方法,构建了鲲鹏、飞腾、海光、兆芯、龙芯及申威6类国产CPU硬件样机,开展了55个船海典型应用软件在6类国产CPU硬件样机上的适配、测试及评估,得出如下结论:
1)在本文构建的国产CPU样机适配测试环境中,适配成功的应用软件在6类国产CPU硬件样机上的功能正常,稳定性及可靠性较好,无明显差异。在运行响应时间方面,鲲鹏CPU硬件样机最短(0.437 s),其次是飞腾、海光及龙芯,三者的响应时间存在微小差异,是鲲鹏的2倍左右,申威和兆芯的响应时间较长,是鲲鹏的3倍左右。在内存资源消耗方面,6类国产CPU硬件样机均未超过0.2%且无明显差异。在CPU资源消耗方面,海光和鲲鹏的消耗率相对较低,其次是兆芯、飞腾和龙芯,申威的消耗率较高。
2)国产CPU硬件的总体技术性能相比于Intel X86 CPU硬件较低,会在一定程度上制约软件或系统的运行性能。但国产CPU的技术性能正在通过技术进步、政策支持及市场需求不断提升和优化。建议采用“试点先行、先易后难、逐步替代”的方式,实现上层应用软件与底层基础软硬件的融合滚动适配发展。
3)目前,国产基础软硬件的生态建设仍不完善。上层应用软件在国产基础软硬件上的适配存在诸多技术挑战,包括但不限于非跨平台语言的改造及适配、国外闭源函数库的自研替代、基于商软二进制软件的自研替代等。这些技术挑战需要下游的应用软件研发人员联合上游的CPU厂商及操作系统厂商等协同攻克解决。
4)本文研究能够为船海及其他行业的应用软件在国产CPU硬件上的适配提供理论方法与技术实践参考。但还存在以下局限性。一是本文的结论与适配测试软硬件选型、参数配置及适配软件强相关;二是本文适配的船海典型应用软件相对简单,在大型复杂应用软件的国产化适配中,涉及的环节众多,包含分布式存储系统、关系型数据库、中间件、支撑组件、第三方函数库、开发语言及开发工具等,各个环节都需要相应的国产化替代解决方案,才能保证适配成功。
参考文献:
[1] 倪光南.自主可控是网络安全的“基石”[J].中国科技奖励,2020(7):6-7.
[2] 倪光南.坚持信创科技自立自强建设网络强国和数字中国[J].信息安全研究,2021,7(1):2-3.
[3] 马威,姚静波,常永胜,等.国产CPU发展的现状与展望[J].集成电路应用,2019,36(4):5-8.
[4] 李韶光,刘雷,郎金鹏,等.CPU发展概述及国产化之路[J].网络空间安全,2020,11(4):114-117.
[5] 张京林.国产操作系统产业现状分析和发展探讨[J].科技与创新,2016(20):27-29.
[6] 韩乃平,李蕾.国产操作系统生态体系建设现状分析[J].信息安全研究,2020,6(10):887-889.
[7] 胡志强.基于自主可控技术的国产化替代综述[J].网络空间安全,2018,9(8):90-97.
[8] 钱褚佳.广播电视国产化软硬件办公系统适配浅析[J].电视技" "术,2022,46(10):177-181.
[9] 周雄伟,肖咏龙,杨鑫浩.工业软件国产化替代创新突破路径与激励机制[J].科技导报,2023,41(6):34-46.
[10] 姚志强.基于信创环境下的档案系统适配改造[J].兰台世界,2023(10):77-79.
[11] 王玉中.基于信创技术的JAVA应用国产化替代实践[J].铁道建筑技术,2023(6):109-112.
[12] 付晓丹,史韶旭,栗继房,等.铁路局集团公司办公系统国产化替代迁移方案研究[J].铁路计算机应用,2021,30(11):21-25.
[13] 李越.铁路列车确报信息系统数据库国产化替代及信创适配研究[J].中国铁路,2023(8):106-111.
[14] 冯凯亮,于洪刚,张德栋.铁路信息系统国产化适配改造研究[J].铁路计算机应用,2023,32(5):16-20.
[15] 李廷伟,李夏,宋真祥.应用系统国产化适配策略[J].电子技术与软件工程,2023(5):237-240.
[16] 谢春生,郭雅丽,郭梁良,等.华泰证券(华泰计算机):“信创”研究框架[EB/OL].https://www.vzkoo.com/document/338e17e9
906aae0ff6a265137fe999a0.html.
[17] 电子工程世界.六大国产CPU大比拼[EB/OL].https://www.eet-china.com/mp/a214987.html.