一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于容器技术的跨平台软件适配方法与流程

2023-01-15 06:43:01 来源:中国专利 TAG:
1.本发明涉及软件适配
技术领域
:,具体涉及一种基于容器技术的跨平台软件适配方法。
背景技术
::2.计算机核心软硬件技术的国产化对于我国的信息安全领域具有重要意义,为了应对当前日益复杂的国际形势,我国大力推广自主研发的国产处理器、国产操作系统,龙芯、鲲鹏、飞腾、银河麒麟、统信等一众国产软硬件产品应运而生。但是,大部分的国产处理器采用了以低耗节能为特点的arm架构,相较于传统的x86架构与windows系统相结合的环境,arm平台下的软件生态发展尚处于初级阶段,大量的热门软件无法在arm平台下拥有良好的运行时支持。匮乏的软件生态环境、现有的阶段性软件成果无法满足用户的日常工作需求等缺陷极大的限制了我国自主研发的芯片与操作系统的推广,因此,优化国产系统的软件生态环境,针对国产arm架构处理器与国产操作系统相结合的环境进行软件适配的研究势在必行。3.容器是一种操作系统级的虚拟技术,它可以在一个系统中创建多个独立的运行环境。容器不使用专门的操作系统,也不需要使用特定的系统库来提供功能模块,仅通过共享宿主机操作系统的系统内核即可运行。容器为开发人员提供了在一个松散隔离的环境中打包和运行个人应用的良好选择。容器是轻巧的,它们不需要其他额外的管理程序就可以直接运行在宿主机的内核上,同时环境的隔离性和安全性允许在一个给定的主机上可以运行多个容器,而且多个容器相互独立,互不干扰。docker作为一个开源的应用容器引擎,近些年来被开发人员广泛使用,开发者可以将自己的应用以及依赖包打包成为一个全新的镜像,供用户在大部分的linux或windows环境下拉取使用。技术实现要素:4.本发明旨在针对目前优化国产操作系统软件生态环境的迫切性,结合容器技术,将x86架构与windows系统环境下的常用软件适配到arm架构的国产处理器与国产操作系统环境中,在降低软件适配成本的同时,增强了用户的使用体验。5.为了达到上述目的,本发明提供的技术方案为:所述基于容器技术的跨平台软件适配方法包括如下步骤:(1)在国产操作系统中安装docker容器;(2)配置docker的环境,并开启运行docker;(3)在docker中安装指令集翻译软件;(4)在docker中安装应用程序接口转换软件及其运行时依赖;(5)封装docker为镜像;(6)配置x11服务;(7)在docker中配置应用程序接口转换软件;(8)在docker中安装windows应用程序;(9)封装应用程序,程序打包完成后,即可在国产平台下安装,得到与windows环境下相同的应用程序。6.优选地,步骤(2)所述配置docker的环境,并开启运行docker是利用docker官方提供的仓库,拉取arm架构下指定版本的ubuntu镜像ubuntu:16.04,镜像下载完毕后,创建使用ubuntu:16.04镜像的docker容器,并启动该容器。7.优选地,步骤(6)所述配置x11服务是在宿主机中安装x11-xserver-utils,并使用xhost 命令使得所有用户都可以访问xserver,接着运行经步骤(5)封装的docker镜像。8.优选地,步骤(8)所述在docker中安装windows应用程序是启动docker中的exagear,在支持32位的x86_64环境中使用应用程序接口转换软件安装windows下的应用,安装完毕后用户可以正常使用。9.下面对本发明作进一步说明:本发明实际是一种能够使x86 windows环境下的应用软件可以直接运行在arm 国产操作系统环境下的方法,主要包含以下几个步骤:(1)在国产操作系统中安装docker容器。docker是一个开源的应用程序引擎,具有强大的可移植性与跨平台性,开发人员可以将自己的应用程序及其依赖软件打包在docker容器中,然后使用在任何流行的linux或者windows操作系统上。国产操作系统如统信、银河麒麟等均为linux操作系统,因此二者可以通过docker官方提供的安装源简便安装docker。10.(2)配置docker的环境,并开启运行docker。docker为用户提供了镜像,该镜像不包含完整的linux系统内核,只包括了docker容器所需要的文件系统结构。利用docker官方提供的仓库,拉取arm架构下指定版本的ubuntu镜像——ubuntu:16.04。镜像下载完毕后,创建使用ubuntu:16.04镜像的docker容器,并启动该容器。11.(3)docker中安装指令集翻译软件。启动docker容器后,在docker中安装指令集翻译软件。以exagear为例,在宿主机中(容器之外)从华为官方下载exagear的安装包,并将exagear_server_for_ubuntu20下的releases目录复制到docker容器的指定位置。在docker环境中找到releases目录,使用dpkgꢀ‑i命令将releases目录中的所有deb安装包安装。安装完毕后,在容器中使用exagear命令启动该软件,在启动完毕后,使用arch命令查看当前架构,若显示x86_64,则exagear安装启动成功,此时exagear中包含一个ubuntu环境。12.(4)docker中安装应用程序接口转换软件及其运行时依赖。相同架构的应用程序是为不同操作系统而设计,由于应用编程的接口不同,通常无法交叉编译,为了解决编程接口不同的问题,使用应用程序接口转换软件将windowsapi调用动态翻译成posix调用,在windows系统与linux系统之间架起“沟通”的桥梁。以wine(wineisnotanemulator)为例,成功启动exagear后,在exagear内部开启32位架构支持,并添加wine的官方源,通过aptinstall命令安装stable(稳定)分支安装包,同时官方源会将wine运行时所需的全部依赖一并安装。安装完成后,可以使用wineꢀ‑‑version命令查看wine的版本。13.(5)封装docker为镜像。在当前docker容器中完成上述过程后,为了更加方便使用,同时便于开发人员不断进行测试、开发,需要将现有的容封装成为新的镜像。14.(6)配置x11服务。x11也被称为xwindows系统,是一种位图显示的视窗系统。它是在unix和类unix操作系统,以及openvms上建立图形用户界面的标准工具包和协议,并可用于几乎所有已有的现代操作系统。在宿主机中安装x11-xserver-utils,并使用xhost 命令使得所有用户都可以访问xserver。接着运行刚刚封装的docker镜像,需要注意的是在docker中使用x11服务需要在启动命令中加入特殊参数。15.(7)在docker中配置应用程序接口转换软件。在同一个docker容器中可能安装多个应用程序,不同的应用程序在运行时所需的windows环境可能有较大的差别,因此为了更好的满足用户需求,需要对应用程序接口转换软件进行配置。在应用程序接口转换软件中设置不同的应用安装在不同目录中,同时针对不同的应用目录配置不同的windows版本以及其中的动态库。16.(8)在docker中安装windows应用程序。启动docker中的exagear,在支持32位的x86_64环境中使用应用程序接口转换软件安装windows下的应用,安装完毕后用户可以正常使用。17.(9)封装应用程序。在docker中将所需的windows应用安装测试成功后,即可将当前的docker容器打包成为运行在arm架构的国产cpu 国产操作系统的平台下的适配软件。程序打包完成后,即可在国产平台下安装,得到与windows环境下相同的应用程序。18.本发明中包括了docker容器层、指令集翻译层、应用程序接口转换层、应用程序层。docker容器层负责提供完整的运行支持,包括运行环境以及运行时依赖,指令集翻译层负责将x86架构对应的复杂指令集翻译为arm架构对应的精简指令集并执行,应用程序接口转换层负责将windowsapi调用动态翻译成posix调用,应用程序层负责为用户提供完整的windows原生应用程序。19.与现有的软件适配技术相比,本发明具有以下优点:(1)操作简便,方法较为简单,对开发人员的要求较低。开发人员只需熟悉容器用法,即可完成整个软件适配过程,同时指令集转换、应用程序接口转换两层在不理解原理的情况下也能够顺利完成。20.(2)能够方便解决软件运行时所需的大部份依赖。由于国产平台基于arm架构,导致一些软件运行时依赖无法在国产操作系统当中找到,从而造成软件运行异常、功能支持不完全等情况。本发明利用docker技术以及指令集翻译软件,使得当前系统环境转换为x86_64的ubuntu,从而解决了大部分运行时依赖问题。21.(3)支持多种国产操作系统,具有较好的独立性。由于本发明是在docker容器中进行配置,因此只需要国产操作系统支持docker容器即可,国产操作系统本身对于docker容器中的内容并无太多影响。因此,适配软件打包完成后,具有较好的软件独立性,并不过度依赖当前运行的操作系统环境,能够大幅度减轻开发人员的负担。22.总之,本发明利用docker容器技术进行跨平台的软件适配可以有效地解决应用程序的运行时依赖问题,同时docker对宿主机本身的操作系统依赖较小,操作系统本身仅需支持docker容器的配置即可运行适配成功的软件,与传统的修改软件源代码的方式相比大大减少了开发人员的工作量。具体实施方式23.为了使本发明的目的、技术方案及优点更加清晰,下面通过具体实施例对本发明进行进一步详细阐述:开发环境:国产cpu:ft-2000/4,国产操作系统:统信专业版1050一、docker容器配置开发人员在国产系统上安装docker容器,接着从docker官拉取ubuntu:16.04版本的镜像。镜像下载完毕后,启动docker容器。24.二、指令集翻译软件安装开发人员在宿主机中下载指令集翻译软件exagear,然后将exagear_server_for_u-buntu20下的releases目录复制到docker容器的指定位置。进入docker,找到releas-es目录,使用dpkgꢀ‑i命令将releases目录中的所有deb安装包安装。安装完毕后,使用exagear命令启动翻译软件,然后查看当前架构,显示x86_64,则指令集翻译软件安装成功。此时docker中运行的环境为模拟的x86_64架构ubuntu16.04系统。25.三、应用程序接口转换软件及其运行时依赖安装在exagear模拟的x86_64架构的环境中,添加应用程序接口转换软件——wine的官方提供的安装源,同时开启32位架构支持,然后即可使用aptinstall命令安装wine和其运行时依赖软件。全部安装完成后,使用wineꢀ–version查看输出确认安装是否成功。26.四、封装基础开发镜像并配置x11服务在宿主机环境中将之前使用的docker封装成为基础开发镜像,后续开发在该镜像中进行,开发人员不用再重复安装指令集翻译软件以及应用程序接口转换软件,可以直接进行后续操作。同时,开发人员在宿主机中安装x11-xserver-utils,并使用xhost 命令使得所有用户都可以访问xserver。27.五、在容器中安装、配置windows应用x11服务配置完成后,开发人员通过在启动命令中添加-v/tmp/.x11-unix:/tmp/.x11-unixꢀ‑edisplay=unix$displayꢀ‑egdk_scaleꢀ‑egdk_dpi_scale参数启动docker容器,并使用之前封装的基础开发镜像,此时启动的docker容器支持图形化界面。开发人员在docker中创建windows软件对应的开发容器,并配置该软件的运行环境以及运行时依赖库,接着安装、调试该windows软件即可。28.六、适配软件打包开发人员在docker中将windows软件适配成功后,将该docker打成deb包,即可在全新的国产平台下安装、运行windows软件,为用户提供与windows环境下相同的功能。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献