公开/公告号CN113076115A
专利类型发明专利
公开/公告日2021-07-06
原文格式PDF
申请/专利权人 扬州万方电子技术有限责任公司;
申请/专利号CN202110428688.3
申请日2021-04-21
分类号G06F8/61(20180101);G06F8/71(20180101);G06F8/76(20180101);
代理机构32283 扬州市苏为知识产权代理事务所(普通合伙);
代理人周全
地址 225006 江苏省扬州市安林路96号
入库时间 2023-06-19 11:44:10
技术领域
本发明涉及计算机技术领域,尤其涉及对国产计算机进行基础软件的封装方法。
背景技术
在国产平台自主可控信息系统研制建设中,技术人员积极研究国产基础软硬件兼容适配、集成优化等关键技术,以实现类X86+Wintel平台上的exe样式的快捷安装程序,而国产平台基于Linux生态的限制,无法形成较好得打包封装工具,目前仍存在着生态体系不完备、技术方向碎片化、集成适配封装缺乏有效的机制等诸多问题。
具体表现为基础软件(如驱动程序、基础开发库、运行环境等)在同一国产处理器平台上,跨不同版本操作系统时出现无法使用的问题。
发明内容
本发明针对以上问题,提供了一种能够进行适配验证和建设多架构软件仓库,进而实现软件运行库和基础软件跨平台封装机制,进一步满足信息系统领域技术自主可控的迫切需求和发展趋势的基于国产平台的基础软件封装方法。
本发明的技术方案是:运行架构包括服务端,至少包含龙芯、飞腾和申威国产平台组成的编译端,以及若干客户端,
按以下步骤进行基础软件封装:
1)、自动编译环境的构建,对所述运行架构的自动编译环境进行调试,并针对编译器优化编译配置项参数;
所述服务端为:负责接收客户端提供的源码并自动提交给编译端,同时通过ListenTCP监听客户端的链接和命令进行统一分发,集中构建;
所述客户端为:负责上传所需编译的源码包以及下载编译好的二进制包;
所述编译端为:负责进行编译并打包,与客户端相连,在编译过程中监控状态,当出现错误时,将错误信息返回给客户端供开发人员进行查看;
2)、多格式包封装,
针对不同格式的软件,通过提供国产平台上通用格式封装、统一运行格式封装和/或沙盒格式封装;
3)、建立多架构软件仓库,
设计国产平台权值,有序进行软件分类存放,多架构软件仓库按照龙芯、飞腾和申威进行分类,
其中龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
飞腾平台仅有“飞腾+银河麒麟”仓库,
申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库。
所述步骤2)中的通用格式封装,包括RPM、DEB、TAR和BIN包格式封装。
所述步骤2)中统一运行格式封装为基于AppImage技术,支持开箱即用、使用便捷,终端用户只需要赋予包可执行权限,实现在终端环境下直接运行或者在桌面环境下双击,借助于运行加载器即可打开应用包,快速启动应用程序。
所述步骤2)中,当基础软件安装包需要具备资源隔离作用时,采用沙盒格式封装技术,即Flatpak技术,实现将应用程序与依赖库进行集成打包,能够屏蔽了国产系统之间的版本差异,以统一包的形式对外提供运行环境。
在龙芯和申威平台,基础软件可以用rpm进行打包,首先配置SPEC文件,使用“rpmbuild -bb 软件名-版本.spec”命令进行打包,最终生成的.rpm格式软件包就生成在RPMS目录下。
在飞腾平台,基础软件可以制作deb包,使用“dpkg -b dirname xxx_new.deb”命令,生成.deb格式的软件包。
在龙芯、飞腾和申威平台平台上,使用appimagetools工具进行打包,用“appimagetools ‘包路径’”命令对基础软件进行打包封装,生成统一格式包.Appimage格式包,实现在不同操作系统上运行。
在龙芯、飞腾和申威平台平台上,均采用“build-init”命令构建目录,然后用“flatpak build”对基础软件进行构建,生成统一格式.flatpak包,在不同操作系统上运行,实现资源的隔离。
所述步骤3)中,对
所述龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
所述飞腾平台仅有“飞腾+银河麒麟”仓库,以及
所述申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库,
进一步按照桌面和服务器进行版本区分。
还包括测试验证步骤,所述测试验证步骤为:选择移植三维地理信息组件OSG、OsgEarth进行测试验证。
技术效果:由于种种原因,国产平台在CPU指令集、底层驱动等方面,与X86平台有着不小的区别,不同国产平台之间也有着各自的命令和使用方法。本发明所提出的封装方法基于向导式的设计,根据开发人员填写的软件基础信息、配置信息和软件实体,封装装置即可通过自动编译、构建,最终生成不同国产平台架构的软件包,有效促进目前国产平台软件生态发展。本发明实现了在国产平台上开展对软件运行库和基础软件跨平台自动编译构建、封装打包的适配验证。在龙芯、飞腾和申威三个国产平台上分别建立多架构软件仓库,进行多种格式包的统一管理。本发明包括自动编译构建、多格式包封装、多架构软件仓库、集成测试验证等关键步骤,各阶段均可实现服务化和界面的功能,形成一个图形化的封装系统,方便各类基础软件开发技术人员的打包封装使用。
附图说明
图1是本发明的原理框图,
图2是本发明的系统架构框图,
图3是本发明的多架构软件仓库组成示意框图。
具体实施方式
本发明基于国产平台的基础软件封装方法,如图1-3所示,运行架构包括服务端,至少包含龙芯、飞腾和申威国产平台组成的编译端,以及若干客户端,
按以下步骤进行基础软件封装:
1)、自动编译环境的构建,对所述运行架构的自动编译环境进行调试,并针对编译器优化编译配置项参数;
所述服务端为:负责接收客户端提供的源码并自动提交给编译端,同时通过ListenTCP监听客户端的链接和命令进行统一分发,集中构建;
所述客户端为:负责上传所需编译的源码包以及下载编译好的二进制包;
所述编译端为:负责进行编译并打包,与客户端相连,在编译过程中监控状态,当出现错误时,将错误信息返回给客户端供开发人员进行查看;
2)、多格式包封装,
针对不同格式的软件,通过提供国产平台上通用格式封装、统一运行格式封装和/或沙盒格式封装;
3)、建立多架构软件仓库,
设计国产平台权值,有序进行软件分类存放,多架构软件仓库按照龙芯、飞腾和申威进行分类,
其中龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
飞腾平台仅有“飞腾+银河麒麟”仓库,
申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库。
根据不同平台、不同版本,有以下封装形式:
所述步骤2)中的通用格式封装,包括RPM、DEB、TAR和BIN包格式封装。
所述步骤2)中统一运行格式封装为基于AppImage技术,支持开箱即用、使用便捷,终端用户只需要赋予包可执行权限,实现在终端环境下直接运行或者在桌面环境下双击,借助于运行加载器即可打开应用包,快速启动应用程序。
所述步骤2)中,当基础软件安装包需要具备资源隔离作用时,采用沙盒格式封装技术,即Flatpak技术,实现将应用程序与依赖库进行集成打包,能够屏蔽了国产系统之间的版本差异,以统一包的形式对外提供运行环境。
具体地:
在龙芯和申威平台,基础软件可以用rpm进行打包,首先配置SPEC文件,使用“rpmbuild -bb 软件名-版本.spec”命令进行打包,最终生成的.rpm格式软件包就生成在RPMS目录下。
在飞腾平台,基础软件可以制作deb包,使用“dpkg -b dirname xxx_new.deb”命令,生成.deb格式的软件包。
在龙芯、飞腾和申威平台平台上,使用appimagetools工具进行打包,用“appimagetools ‘包路径’”命令对基础软件进行打包封装,生成统一格式包.Appimage格式包,可以在不同操作系统上运行。
在龙芯、飞腾和申威平台平台上,均采用“build-init”命令构建目录,然后用“flatpak build”对基础软件进行构建,生成统一格式.flatpak包,可以在不同操作系统上运行,可以实现资源的隔离。
所述步骤3)中,对
所述龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
所述飞腾平台仅有“飞腾+银河麒麟”仓库,
所述申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库;
进一步按照桌面和服务器进行版本区分。
采用链式管理技术将各式软件包按权值有序存放,保证集成过程标准规范,在集成过程中,定制标签判别国产平台硬件的架构类型、操作系统类型,最终根据基础软件的标签查找到相应的库,其中基础软件的存在形式可以是RPM、DEB、TAR、BIN、Flatpak、AppImage包等。
进一步地,本发明基于国产平台的基础软件封装方法,还包括测试验证步骤,所述测试验证步骤为:选择移植三维地理信息组件OSG、OsgEarth进行测试验证。
选择移植三维地理信息组件OSG、OsgEarth进行上述方法测试验证,根据国产CPU架构特性,结合国产特定编译器优化技术,优化标准库的国产化实现,对其以及依赖的底层图形库进行深度优化,依赖库的优化手段包括编译器参数优化、源码分析改造、接口调试、编译参数自适应调整等。同时结合不同国产CPU特点,采用以下技术手段进行性能优化,主要包括统一内存页大小、内存对齐和充分利用多核。
在编译构建时,通过指定其构建类型、构建目录、添加QT5支持等参数进行详细配置,在构建其二级依赖库GDAL时需加入--with-openjpeg参数才能支持JPEG格式的瓦片化数据被OsgEarth读取,否则在运行OsgEarth将会出现JPEG文件读取错误。
机译: 使用智能终端和计算机可读介质控制具有机器人平台的应用程序执行终端的方法,该介质具有用于控制基于机器人平台的应用程序执行终端的计算机程序,该程序用于利用智能终端记录的机器人来控制基于机器人平台的应用程序执行终端
机译: 基于组件模型的虚拟软件平台生成方法和装置,并基于该平台验证软件平台架构
机译: 基于组件模型的虚拟软件平台生成方法和装置,并基于该平台验证软件平台架构