CN113835683A - 一种目标程序的镜像制作方法和装置 - Google Patents
一种目标程序的镜像制作方法和装置 Download PDFInfo
- Publication number
- CN113835683A CN113835683A CN202111093526.5A CN202111093526A CN113835683A CN 113835683 A CN113835683 A CN 113835683A CN 202111093526 A CN202111093526 A CN 202111093526A CN 113835683 A CN113835683 A CN 113835683A
- Authority
- CN
- China
- Prior art keywords
- program
- target
- container
- labview
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 46
- 238000004519 manufacturing process Methods 0.000 claims abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000009423 ventilation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种Labview目标程序的镜像制作方法和装置。一种Labview目标程序的镜像制作方法,Labview目标程序通过目标编程平台编程得到,镜像制作方法包括:在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统;将目标操作系统制作成容器引擎镜像;根据容器引擎镜像创建目标操作系统对应的系统容器;利用系统容器为Labview目标程序制作程序镜像。本实施例的技术方案,解决了现有容器化技术中可创建的镜像的种类有限,Labview技术与容器化技术的普适性较差的问题,提供了Labview程序镜像制作方法,提升了Labview技术与容器化技术的普适性。
Description
技术领域
本发明实施例涉及设备集群化控制所用到的程序容器化技术,尤其涉及一种目标程序的镜像制作方法和装置。
背景技术
当前物联网和集群化技术日益普及,通常根据不同的设备协议分别对应用程序进行封装调用,使得应用程序可以直接在集群化设备的边缘侧上运行。现有技术中通过应用容器化技术来改善针对不同设备协议封装调用复杂的问题。
然而,现有技术存在如下技术缺陷:由于现有容器化技术中可创建的镜像的种类有限,因此并非所有编程语言编写的应用程序都可以进行容器化,容器化技术的普适性较差。
发明内容
本发明提供一种目标程序的镜像制作方法和装置,以实现扩展镜像种类,使容器化技术普适性更强的效果。
第一方面,本发明实施例提供了一种目标程序的镜像制作方法,目标程序通过目标编程平台编程得到,镜像制作方法包括:
在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统;
将目标操作系统制作成容器引擎镜像;
根据容器引擎镜像创建目标操作系统对应的系统容器;
利用系统容器为目标程序制作程序镜像。
第二方面,本发明实施例还提供了一种目标程序的镜像制作装置,包括:
操作系统设置模块,用于在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统;
容器引擎镜像制作模块,用于将目标操作系统制作成容器引擎镜像;
系统容器创建模块,用于根据容器引擎镜像创建目标操作系统对应的系统容器;
程序镜像制作模块,用于利用系统容器为目标程序制作程序镜像。
第三方面,本发明实施例还提供了一种电子设备,电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如实施例中任一的一种目标程序的镜像制作方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如实施例中任一的一种目标程序的镜像制作方法。
本实施例的技术方案,在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统;将目标操作系统制作成容器引擎镜像;根据容器引擎镜像创建目标操作系统对应的系统容器;利用系统容器为目标程序制作程序镜像。本发明实施例中,目标程序可以是通过各种编程语言编写的程序,当需要为通过某种编程语言编写的程序制作镜像时,可以根据该编程语言的编程平台的相关运行环境、动态库创建适于该编程平台的操作系统,利用该操作系统对应的系统容器为该编程语言编写的程序创建程序镜像,解决了现有容器化技术中可创建的镜像的种类有限,并非所有编程语言编写的应用程序都可以进行容器化,容器化技术的普适性较差的问题,提供了一种通用的程序镜像制作方法,可以为各种编程语言编写的程序制作镜像,各种编程语言编写的应用程序都可以进行容器化,提升了容器化技术的普适性。
附图说明
图1为本发明实施例一提供的一种目标程序的镜像制作方法的流程图;
图2为本发明实施例二提供的一种目标程序的镜像制作方法的流程图;
图3为本发明实施例三提供的一种具体的运用Labview容器进行设备控制的方法的流程图;
图4为在Kubernetes的Master节点上实现对各个设备进行控制的示意图;
图5为本发明实施例四提供的一种目标程序的镜像制作装置的结构图;
图6为本发明实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种目标程序的镜像制作方法的流程图,本实施例可适用于制作适合于各种编程语言的镜像,以将镜像应用于容器软件的情况,该方法可以由一种目标程序的镜像制作装置来执行,具体包括如下步骤:
S110、在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统。
可选的,目标编程平台是Labview,容器引擎镜像为Labview容器引擎镜像,系统容器为Labview容器。
需要注意的是,以下为了说明清楚,主要以目标编程平台为Labview为例进行阐述,即重点阐述制作用于Labview的镜像的方法,但本发明的镜像制作方法不局限于Labview,还可以用于其他目标编程平台,具有良好的可拓展性。例如,同样的思路还可以应用于制作Python程序的程序镜像或者C语言程序的程序镜像。
在原始操作系统中构建目标编程平台的基础运行环境。可选的,原始操作系统为Linux操作系统、Linux内核或Mac OS操作系统。
需要注意的是,Linux内核属于Linux操作系统的核心部分,因此,虽然本发明中主要以Linux操作系统作为示例进行论述,但是直接在Linux内核中构建目标编程平台也是可行的。这里的基础运行环境是指目标编程平台及其相关程序得以正常运行所依赖的计算机上的软件配置。例如,在安装有Linux Ubuntu20.04的计算机上执行如下指令,构建适用于Labview的基础运行环境,保证与Labview相关的运行环境能够在该计算机上正常安装运行。
.sudo apt-get update
更新/etc/apt/sources.list和/etc/apt/sources.list.d中列出的源的地址
sudo apt-get upgrade 升级已安装的所有软件包
sudo apt-get install alien 安装以下软件包:alien
sudo apt-get install lib32z1 lib32ncurses5 libbz2-1.0:i386 lib32stdc++6
安装以下软件包:lib32z1 lib32ncurses5 libbz2-1.0:i386 lib32stdc++6
sudo apt-get install python3 python python-minimal
安装以下软件包:python3 python python-minimal
需要注意的是,这里只给出了构建适用于Labview的基础运行环境的一种指令形式,还可以使用其他指令语句达到相同的效果。
将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中。
可选的,目标编程平台的各个编程阶段对应的运行环境包括:目标编程平台的编译前程序的运行环境、编译环境和目标编程平台的编译后程序的运行环境。这三种运行环境能够完整全面地支持Labview在计算机上正常运行,但是在某些条件下,也可以省略其中的某种环境,例如,不安装目标编程平台的编译后程序的运行环境亦可以实现Labview的主要功能的正常运行。
接上例,在计算机上安装Labview编译前程序的运行环境、编译环境以及Labview编译后程序的运行环境,其中,Labview编译后程序的运行环境即Labview runtime环境。
将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统。
动态库又称为动态链接库,可供目标编程平台在需要的时候调用其中的函数。接上例,将labview动态库加入到计算机的系统环境变量中。可选的,可以通过以下指令添加labview动态库,进而完成对原始操作系统中与Labview相关的环境的设置,从而得到适用于Labview的目标操作系统。
echo'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/natinst/LabVIEW-2020-64/cintools'>>~/.bashrc
S120、将目标操作系统制作成容器引擎镜像。
由于容器引擎镜像需要适用于容器软件,因此需要考虑容器软件的类型来使用不同的指令来制作不同的容器引擎镜像。例如,通过以下指令将适用于Labview的目标操作系统制作成适用于Docker的容器引擎镜像。
tar-cvpf/tmp/system.tar--directory=/--exclude=proc--exclude=sys--exclude=dev--exclude=run--exclude=boot.
S130、根据容器引擎镜像创建目标操作系统对应的系统容器。
其中,形成系统容器的过程需要借助于现有的容器软件,可选的,容器软件为Docker。接上例,根据容器引擎镜像创建目标操作系统对应的系统容器包括:将Labview容器引擎镜像放入容器软件中形成Labview容器并启动。
将制作好的容器引擎镜像放入Docker中,也就是说,在Docker中形成Labview容器。示例性的,可以通过如下指令在Docker中实现Labiew容器。
docker run-it--rm--name mycentoslabview-h ubuntudocker--net=host-eDISPLAY=$DISPLAY-v/tmp/.X11-unix:/tmp/.X11-unix-v/home/ubuntu/labview:/mnt-v/etc/localtime:/etc/localtime:ro--device/dev/snd centos/labview/usr/local/natinst/LabVIEW-2020-64/labviewcommunity
S140、利用系统容器为目标程序制作程序镜像。
其中,目标程序通过目标编程平台编程得到。接上例,目标程序可以是使用Labview编写得到的应用程序,将Labview应用程序通过Docker软件移植入上述Labview容器中,即完成了对该目标程序的容器化,得到了该应用程序的程序镜像。
本实施例的技术方案,在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统;将目标操作系统制作成容器引擎镜像;根据容器引擎镜像创建目标操作系统对应的系统容器;利用系统容器为目标程序制作程序镜像。本发明实施例中,目标程序可以是通过各种编程语言编写的程序,当需要为通过某种编程语言编写的程序制作镜像时,可以根据该编程语言的编程平台的相关运行环境、动态库创建适于该编程平台的操作系统,利用该操作系统对应的系统容器为该编程语言编写的程序创建程序镜像,解决了现有容器化技术中可创建的镜像的种类有限,并非所有编程语言编写的应用程序都可以进行容器化,容器化技术的普适性较差的问题,提供了一种通用的程序镜像制作方法,可以为各种编程语言编写的程序制作镜像,各种编程语言编写的应用程序都可以进行容器化,提升了容器化技术的普适性。
实施例二
图2为本发明实施例二提供的一种目标程序的镜像制作方法的流程图。本实施例以实施例一为基础,对实施例一中的S140进行进一步细化。为了描述精简,对于与实施例一中相同的部分将进行省略。本实施例的一种目标程序的镜像制作方法,在目标程序为控制目标设备的Labview程序的情况下,具体包括如下步骤:
S210、在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统。
S220、将目标操作系统制作成容器引擎镜像。
S230、根据容器引擎镜像创建目标操作系统对应的系统容器。
S240、获取编写的控制目标设备的Labview程序,运行Labview程序得到LabviewRuntime。
其中,目标设备可以是某个仪器,例如具有操作系统和存储器的电机,Labview程序需要在该电机上运行,因此,目标程序是能够满足该电机功能的使用Labview编写的应用程序。
S250、将Labview程序、Labview程序运行所需的外部依赖以及Labview Runtime集成并放入Labview容器中,以制作目标程序的程序镜像。
Labview程序在编译时需要与外部依赖进行关联,从而生成可执行文件。LabviewRuntime是指Labview程序在运行时的状态。由于S210中将三种运行环境均安装在操作系统中,即S230中创建得到的Labview容器可以支持Labview Runtime在其中运行,因此,这里除了将Labview程序和Labview程序运行所需的外部依赖集成放入Labview容器中,还将Labview Runtime集成放入至Labview容器中,如果S210中没有将目标编程平台的编译后程序的运行环境安装在原始操作系统中,则本实施例中可以对应地不将Labview Runtime集成放入至Labview容器中。
可选的,目标程序的镜像制作方法还可以包括:通过容器管理应用对目标程序的程序镜像进行下载、安装、运行和管理。例如,容器管理应用为Kubernetes。
这样设置的好处在于,提供了将制作得到的Labview程序镜像分发给多个目标设备的方案,方便在一台设备上集中控制多个目标设备上应用程序的统一运行。
本实施例的技术方案,通过获取编写的控制目标设备的Labview程序,运行Labview程序得到Labview Runtime;将Labview程序、Labview程序运行所需的外部依赖以及Labview Runtime集成并放入Labview容器中,以制作目标程序的程序镜像,解决了如何在制成Labview容器之后使用该Labview容器形成Labview程序镜像的问题,达到了将目标程序的镜像制作方法具体化,增强Labview技术普适性的效果。
实施例三
下面给出本发明实施例制作的程序镜像的一个具体应用场景,比如国际高能物理学使用的设备大型强子对撞机(Large Hadron Collider,LHC)是一个在圆周为27公里的圆形隧道内,包括许多地面设备的集合。地面设备包括冷却压缩机、通风设备、控制电机设备和冷冻槽等,各个设备之间距离较远。本实施例即利用Labview程序镜像、Docker和Kubernetes来对大型强子对撞机中的各个设备进行统一的控制和管理。
图3为本发明实施例三提供的一种具体的运用Labview容器进行设备控制的方法的流程图,本实施例可适用于对国际高能物理学使用的大型强子对撞机进行集中控制,具体包括如下步骤:
S310、获取利用Labview编写的每个设备的目标程序。
其中,每个设备一个目标程序,每个设备的目标程序用于控制该设备。接续上面的例子,即可以获取冷却压缩机、通风设备、控制电机设备、冷冻槽等的Labview控制程序。
S320、将目标程序编译成可执行的动态链接库。
S330、将链接库打包放入Docker中的Labview容器内得到Labview程序镜像。
S340、将Labview程序镜像发布到Docker镜像库里。
S350、通过Kubernetes中的Master节点把Labview程序镜像安装到Node节点上。
在Kubernetes集群中,Master节点主要负责集群的控制,通过访问Node节点的IP地址,将Labview程序镜像安装到各个Node节点上;Node节点主要负责具体的工作,Node负责启动Labview程序镜像并且利用其中的Labview程序进行具体的工作。
S360、在Kubernetes中的Master节点上实现对各个设备进行控制。
Master节点通过访问各个设备所对应的Node节点的IP地址,来实现对各个Node节点上的Labview程序的控制,从而控制各个设备。
图4为在Kubernetes的Master节点上实现对各个设备进行控制的示意图。其中设备的数量不做限制,n表示设备的数量,n为自然数。
本实施例的技术方案,通过利用Labview程序镜像、Docker和Kubernetes的结合,在Master节点这一个节点可以对所有设备进行控制,解决了如何对大型强子对撞机中的各个设备进行统一的控制和管理的问题,达到了降低工程师工作量、实现对设备的精准控制的效果。
需要注意的是,实施例三中的Labview程序镜像是通过实施例一或实施例二中的技术方案得到的,从而实现了将Labview程序移植到各个设备上的效果,而Labview程序可以依靠Linux开源平台,因此摆脱了对微软操作系统的依赖。
实施例四
图5为本发明实施例四提供的一种目标程序的镜像制作装置的结构图。本发明实施例所提供的一种目标程序的镜像制作装置可执行本发明任意实施例所提供的目标程序的镜像制作方法,具备执行方法相应的功能模块和有益效果。
一种目标程序的镜像制作装置,包括:
操作系统设置模块510,用于在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统;
容器引擎镜像制作模块520,用于将目标操作系统制作成容器引擎镜像;
系统容器创建模块530,用于根据容器引擎镜像创建目标操作系统对应的系统容器;
程序镜像制作模块540,用于利用系统容器为目标程序制作程序镜像。
可选的,目标编程平台的各个编程阶段对应的运行环境包括:
目标编程平台的编译前程序的运行环境、编译环境和目标编程平台的编译后程序的运行环境。
可选的,目标编程平台是Labview,容器引擎镜像为Labview容器引擎镜像,系统容器为Labview容器。
可选的,系统容器创建模块530,包括:
容器软件控制子模块,用于将Labview容器引擎镜像放入容器软件中形成Labview容器并启动。
可选的,容器软件为Docker。
可选的,原始操作系统为Linux操作系统、Linux内核或Mac OS操作系统。
可选的,目标程序为控制目标设备的Labview程序,程序镜像制作模块540,包括:
Labview Runtime获取子模块模块,用于获取编写的控制目标设备的Labview程序,运行Labview程序得到Labview Runtime。
程序镜像集成子模块,用于将Labview程序、Labview程序运行所需的外部依赖以及Labview Runtime集成并放入Labview容器中,以制作目标程序的程序镜像。
可选的,目标程序的镜像制作装置还包括:
容器管理应用模块,用于通过容器管理应用对目标程序的程序镜像进行下载、安装、运行和管理。
可选的,容器管理应用为Kubernetes。
本实施例的技术方案,在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统;将目标操作系统制作成容器引擎镜像;根据容器引擎镜像创建目标操作系统对应的系统容器;利用系统容器为目标程序制作程序镜像。本发明实施例中,目标程序可以是通过各种编程语言编写的程序,当需要为通过某种编程语言编写的程序制作镜像时,可以根据该编程语言的编程平台的相关运行环境、动态库创建适于该编程平台的操作系统,利用该操作系统对应的系统容器为该编程语言编写的程序创建程序镜像,解决了现有容器化技术中可创建的镜像的种类有限,并非所有编程语言编写的应用程序都可以进行容器化,容器化技术的普适性较差的问题,提供了一种通用的程序镜像制作方法,可以为各种编程语言编写的程序制作镜像,各种编程语言编写的应用程序都可以进行容器化,提升了容器化技术的普适性。
实施例五
图6为本发明实施例五提供的一种电子设备的结构示意图,如图6所示,该设备包括处理器620、存储器610、输入装置630和输出装置640;设备中处理器620的数量可以是一个或多个,图6中以一个处理器620为例;设备中的处理器620、存储器610、输入装置630和输出装置640可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器610作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种目标程序的镜像制作方法对应的程序指令/模块(例如,一种目标程序的镜像制作装置中的操作系统设置模块510、容器引擎镜像制作模块520、系统容器创建模块530和程序镜像制作模块540)。处理器620通过运行存储在存储器610中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的一种目标程序的镜像制作方法。
存储器610可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器610可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器610可进一步包括相对于处理器620远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置630可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示设备。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种目标程序的镜像制作方法,该方法包括:
在原始操作系统中构建目标编程平台的基础运行环境,将目标编程平台的各个编程阶段对应的运行环境安装在原始操作系统中,并将目标编程平台的动态库加入至原始操作系统的系统环境变量中,得到目标操作系统;
将目标操作系统制作成容器引擎镜像;
根据容器引擎镜像创建目标操作系统对应的系统容器;
利用系统容器为目标程序制作程序镜像。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的一种目标程序的镜像制作方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种目标程序的镜像制作方法,其特征在于,所述目标程序通过目标编程平台编程得到,所述镜像制作方法包括:
在原始操作系统中构建所述目标编程平台的基础运行环境,将所述目标编程平台的各个编程阶段对应的运行环境安装在所述原始操作系统中,并将所述目标编程平台的动态库加入至所述原始操作系统的系统环境变量中,得到目标操作系统;
将所述目标操作系统制作成容器引擎镜像;
根据所述容器引擎镜像创建所述目标操作系统对应的系统容器;
利用所述系统容器为所述目标程序制作程序镜像。
2.根据权利要求1所述的目标程序的镜像制作方法,其特征在于,所述目标编程平台的各个编程阶段对应的运行环境包括:
所述目标编程平台的编译前程序的运行环境、编译环境和所述目标编程平台的编译后程序的运行环境。
3.根据权利要求1所述的目标程序的镜像制作方法,其特征在于,所述目标编程平台是Labview,所述容器引擎镜像为Labview容器引擎镜像,所述系统容器为Labview容器。
4.根据权利要求3所述的目标程序的镜像制作方法,其特征在于,所述根据所述容器引擎镜像创建所述目标操作系统对应的系统容器,包括:
将所述Labview容器引擎镜像放入容器软件中形成所述Labview容器并启动。
5.根据权利要求4所述的目标程序的镜像制作方法,其特征在于,所述容器软件为Docker。
6.根据权利要求1所述的目标程序的镜像制作方法,其特征在于,所述原始操作系统为Linux操作系统、Linux内核或Mac OS操作系统。
7.根据权利要求4所述的目标程序的镜像制作方法,其特征在于,所述目标程序为控制目标设备的Labview程序,所述利用所述系统容器为所述目标程序制作程序镜像,包括:
获取编写的控制目标设备的Labview程序,运行所述Labview程序得到LabviewRuntime;
将所述Labview程序、所述Labview程序运行所需的外部依赖以及所述LabviewRuntime集成并放入所述Labview容器中,以制作所述目标程序的程序镜像。
8.根据权利要求7所述的目标程序的镜像制作方法,其特征在于,所述方法还包括:
通过容器管理应用对所述目标程序的程序镜像进行下载、安装、运行和管理。
9.根据权利要求8所述的目标程序的镜像制作方法,其特征在于,所述容器管理应用为Kubernetes。
10.一种目标程序的镜像制作装置,其特征在于,包括:
操作系统设置模块,用于在原始操作系统中构建所述目标编程平台的基础运行环境,将所述目标编程平台的各个编程阶段对应的运行环境安装在所述所述原始操作系统中,并将所述目标编程平台的动态库加入至所述原始操作系统的系统环境变量中,得到目标操作系统;
容器引擎镜像制作模块,用于将所述目标操作系统制作成容器引擎镜像;
系统容器创建模块,用于根据所述容器引擎镜像创建所述目标操作系统对应的系统容器;
程序镜像制作模块,用于利用所述系统容器为所述目标程序制作程序镜像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093526.5A CN113835683A (zh) | 2021-09-17 | 2021-09-17 | 一种目标程序的镜像制作方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093526.5A CN113835683A (zh) | 2021-09-17 | 2021-09-17 | 一种目标程序的镜像制作方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113835683A true CN113835683A (zh) | 2021-12-24 |
Family
ID=78959895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111093526.5A Pending CN113835683A (zh) | 2021-09-17 | 2021-09-17 | 一种目标程序的镜像制作方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113835683A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000292416A (ja) * | 1999-04-06 | 2000-10-20 | Japan Science & Technology Corp | 光音響顕微鏡装置及びその映像方法 |
CN106648741A (zh) * | 2016-10-18 | 2017-05-10 | 广州视睿电子科技有限公司 | 一种应用系统部署方法及装置 |
CN109032602A (zh) * | 2018-06-07 | 2018-12-18 | 山东超越数控电子股份有限公司 | 一种软件自动适配操作系统的方法 |
CN110955431A (zh) * | 2018-09-27 | 2020-04-03 | 北京国双科技有限公司 | 编译环境的处理方法及装置 |
CN111198744A (zh) * | 2018-11-16 | 2020-05-26 | 中标软件有限公司 | 自动化应用程序容器化和镜像备份发布的方法 |
CN111221541A (zh) * | 2019-12-26 | 2020-06-02 | 曙光信息产业(北京)有限公司 | 集群并行程序部署方法以及装置 |
CN113127136A (zh) * | 2019-12-30 | 2021-07-16 | 北京懿医云科技有限公司 | Docker镜像生成方法及装置、存储介质、电子设备 |
-
2021
- 2021-09-17 CN CN202111093526.5A patent/CN113835683A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000292416A (ja) * | 1999-04-06 | 2000-10-20 | Japan Science & Technology Corp | 光音響顕微鏡装置及びその映像方法 |
CN106648741A (zh) * | 2016-10-18 | 2017-05-10 | 广州视睿电子科技有限公司 | 一种应用系统部署方法及装置 |
CN109032602A (zh) * | 2018-06-07 | 2018-12-18 | 山东超越数控电子股份有限公司 | 一种软件自动适配操作系统的方法 |
CN110955431A (zh) * | 2018-09-27 | 2020-04-03 | 北京国双科技有限公司 | 编译环境的处理方法及装置 |
CN111198744A (zh) * | 2018-11-16 | 2020-05-26 | 中标软件有限公司 | 自动化应用程序容器化和镜像备份发布的方法 |
CN111221541A (zh) * | 2019-12-26 | 2020-06-02 | 曙光信息产业(北京)有限公司 | 集群并行程序部署方法以及装置 |
CN113127136A (zh) * | 2019-12-30 | 2021-07-16 | 北京懿医云科技有限公司 | Docker镜像生成方法及装置、存储介质、电子设备 |
Non-Patent Citations (1)
Title |
---|
林志煌: "《多人在线游戏架构实战 基于C++的分布式游戏编程》", 31 January 2020, 电子科技大学出版社, pages: 175 - 55 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764901B (zh) | 基于gpu资源的数据处理方法、电子设备及系统 | |
CN111745651B (zh) | 一种智能机器人操作系统结构及其运作方法 | |
CN109032706B (zh) | 智能合约执行方法、装置、设备和存储介质 | |
US8914785B2 (en) | Providing virtual appliance system firmware images | |
US20140130021A1 (en) | System and method for translating program functions for correct handling of local-scope variables and computing system incorporating the same | |
KR20200146006A (ko) | 애플리케이션 업그레이드 방법, 장치, 기기 및 저장 매체 | |
RU2658190C2 (ru) | Управление доступом во время выполнения к интерфейсам прикладного программирования | |
CN108920566B (zh) | 一种对SQLite数据库的操作方法、装置及设备 | |
CN111818194A (zh) | 基于域名的访问系统和方法 | |
CN113127150A (zh) | 云原生系统的快速部署方法、装置、电子设备和存储介质 | |
US20220374742A1 (en) | Method, device and storage medium for running inference service platform | |
CN115617456A (zh) | 混合运行虚拟机与容器的方法、装置、电子设备和可读存储介质 | |
CN112242920B (zh) | 一种云平台部署方法、装置及节点 | |
US9207956B2 (en) | Class loading device for a java runtime environment, cluster system and method of executing a function | |
CN113448650A (zh) | 直播功能插件加载方法、装置、设备及存储介质 | |
CN117112122A (zh) | 一种集群部署方法和装置 | |
CN113821226A (zh) | 一种onie系统安装方法、装置、设备及介质 | |
CN113821220A (zh) | 一种linux操作系统的安装方法和装置 | |
JP2017538237A (ja) | 仮想マシン名を表示するための方法、装置、およびシステム | |
CN113835683A (zh) | 一种目标程序的镜像制作方法和装置 | |
CN110955415A (zh) | 一种投影多平台服务适配的方法 | |
CN110413311A (zh) | 系统配置方法及服务器 | |
US11372627B2 (en) | System and method for providing integrated development environment (IDE) for programmable software system | |
CN113961232A (zh) | 提供集成开发环境的终端、方法和平台服务器 | |
CN112463299A (zh) | 一种界面显示服务部署方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |