CN112486512A - 基于容器和堆叠文件系统的Linux通用软件适配方法及系统 - Google Patents
基于容器和堆叠文件系统的Linux通用软件适配方法及系统 Download PDFInfo
- Publication number
- CN112486512A CN112486512A CN202011343227.8A CN202011343227A CN112486512A CN 112486512 A CN112486512 A CN 112486512A CN 202011343227 A CN202011343227 A CN 202011343227A CN 112486512 A CN112486512 A CN 112486512A
- Authority
- CN
- China
- Prior art keywords
- file system
- software
- package
- linux
- container
- 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 abstract description 45
- 230000006978 adaptation Effects 0.000 title claims abstract description 22
- 244000035744 Hura crepitans Species 0.000 claims abstract description 27
- 238000005516 engineering process Methods 0.000 claims abstract description 21
- 238000004806 packaging method and process Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 6
- 238000012856 packing Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 claims description 4
- 238000009826 distribution Methods 0.000 abstract description 15
- 238000011161 development Methods 0.000 abstract description 6
- 238000012423 maintenance Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000002054 transplantation Methods 0.000 description 2
- 238000010367 cloning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition 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/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于容器和堆叠文件系统的Linux通用软件适配方法及系统,本发明包括下述加载软件的步骤:基于容器技术将目标软件的基础包Basepkg、应用包Apppkg部署在一个隔离的沙箱环境内,且所述沙箱环境内的独立根文件系统采用堆叠文件系统,该堆叠文件系统的最下层是基础包Basepkg、上一层是应用包Apppkg、最上层是可写目录,其中基础包Basepkg包含目标软件依赖到的库和程序,应用包Apppkg包含目标软件本体及其配置。本发明既可将各个Linux发行版上的应用软件迁移到其它的Linux发行版上运行,也可将各个Linux发行版上的应用软件以统一的方式打包,复用应用软件,节省开发维护成本。
Description
技术领域
本发明涉及Linux应用软件适配技术,具体涉及一种基于容器和堆叠文件系统的Linux通用软件适配方法及系统,用于在不同的Linux发行版之间移植、适配应用软件,可用于各种类型Linux发行版,包括嵌入式Linux系统、桌面Linux系统、工控Linux系统等。
背景技术
在现有的Linux软件包管理技术下,一个软件经常会依赖到特定的其它软件和库,在各个Linux发行版之间,以及同一个发行版的不同版本之间,经常会出现因为依赖到的软件和库的版本过高或者过低而导致软件无法运行的情况,有时也会因为系统基础库的升级而导致现有已经安装的软件无法运行的情况。软件开发、测试人员需要进行额外的工作来进行不同系统平台的适配,增加了开发、测试和维护的成本。针对这种现状,开源社区有一些解决方案,比如flatpak和snap等。但是这类方案都是侧重于针对新开发的软件打包,自身有诸多的限制条件,对于已经存在的软件包,可能仍然需要做一些代码级别的修改才能使用这些开源方案来处理软件移植和适配的需求。
Linux容器技术(Linux containers,简称LXC)是一种基于容器的操作系统层级的虚拟化技术。LXC可以在操作系统层次上为进程提供的虚拟的执行环境,一个虚拟的执行环境就是一个容器。可以为容器绑定特定的cpu和memory节点,分配特定比例的cpu时间、IO时间,限制可以使用的内存大小(包括内存和swap空间),提供device访问控制,提供独立的命名空间(namespace,包括网络、pid、ipc、mnt、uts)。LXC提供了一些用户空间的工具集,用来使用和管理LXC容器。LXC真正的实现则是靠Linux内核的相关特性。基于容器的虚拟化技术起源于所谓的资源容器和安全容器。LXC在资源管理方面依赖与Linux内核的cgroups子系统,cgroups子系统是Linux内核提供的一个基于进程组的资源管理的框架,可以为特定的进程组限定可以使用的资源。LXC在隔离控制方面依赖于Linux内核的namespace特性,具体而言就是在克隆时加入相应的标识(NEWNS NEWPID等等)。LXC是所谓的操作系统层次的虚拟化技术,与传统的HAL(硬件抽象层)层次的虚拟化技术相比有一些优势,它有更小的虚拟化开销(LXC的诸多特性基本由内核特供,而内核实现这些特性只有极少的花费),它能够快速部署。利用LXC来隔离特定应用,只需要安装LXC,即可使用LXC相关命令来创建并启动容器来为应用提供虚拟执行环境。传统的虚拟化技术则需要先创建虚拟机,然后安装系统,再部署应用。LXC跟其他操作系统层次的虚拟化技术相比,最大的优势在于LXC被整合进内核,不用单独为内核打补丁。
堆叠文件系统,依赖并建立在其它的文件系统之上,例如ext4fs和xfs等,并不直接参与磁盘空间结构的划分,仅仅将原来底层文件系统中不同的目录进行“合并”,然后向用户呈现。因此对于用户来说,它所见到的堆叠文件系统根目录下的内容就来自挂载时所指定的不同目录的“合集”。堆叠文件系统包含两个层面,上层是一个upper文件系统(上层文件系统),底层是一个lower文件系统(下层文件系统),堆叠文件系统把两个文件系统“merge”(合并)成一个文件系统供应用使用。通常下层文件系统只读,上层文件系统可写,改动都保存在上层文件系统。但是,如何用低成本、高可靠的方式实现掉电保护的功能,仍然是现有技术中有待解决的关键性技术问题。
利用Linux LXC和堆叠文件系统的现有特性,可以将应用及其依赖的库组织在一个隔离的环境里运行,但是如何兼容现有的应用软件,便于应用软件的打包、发布、部署安装仍然是现有技术中有待解决的关键性技术问题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于容器和堆叠文件系统的Linux通用软件适配方法及系统,本发明可打包现有的和开发中的各类Linux应用软件,且基于Linux的容器和堆叠文件系统技术将打包的软件运行在其它的Linux发行版上,既可以将各个Linux发行版上的应用软件迁移到其它的Linux发行版上运行,也可以将各个Linux发行版上的应用软件以统一的方式打包,复用应用软件,节省开发维护成本。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于容器和堆叠文件系统的Linux通用软件适配方法,包括下述加载软件的步骤:基于容器技术将目标软件的基础包Basepkg、应用包Apppkg部署在一个隔离的沙箱环境内,且所述沙箱环境内的独立根文件系统采用堆叠文件系统,该堆叠文件系统的最下层是基础包Basepkg、上一层是应用包Apppkg、最上层是可写目录,其中基础包Basepkg包含目标软件依赖到的库和程序,应用包Apppkg包含目标软件本体及其配置。
可选地,所述加载软件的步骤之前还包括将目标软件打包得到基础包Basepkg、应用包Apppkg的步骤。
可选地,所述将目标软件打包得到基础包Basepkg、应用包Apppkg的步骤包括:将目标软件本体及其配置打包为应用包Apppkg;通过文件系统制作工具获取包含系统基础库的基础包Basepkg0,将基础包Basepkg0、目标软件的应用包Apppkg部署在一起,并采用依赖分析工具分析得到目标软件需要特定的程序库Basepkg1;将包含系统基础库的基础包Basepkg0、目标软件需要特定的程序库Basepkg1合并打包在一起得到最终的基础包Basepkg。
可选地,所述文件系统制作工具为busybox或buildstream。
此外,本发明还提供一种基于容器和堆叠文件系统的Linux通用软件适配系统,包括软件加载程序单元,用于基于容器技术将目标软件的基础包Basepkg、应用包Apppkg部署在一个隔离的沙箱环境内,且所述沙箱环境内的独立根文件系统采用堆叠文件系统,该堆叠文件系统的最下层是基础包Basepkg、上一层是应用包Apppkg、最上层是可写目录,其中基础包Basepkg包含目标软件依赖到的库和程序,应用包Apppkg包含目标软件本体及其配置。
可选地,还包括用于将目标软件打包得到基础包Basepkg、应用包Apppkg的程序单元。
此外,本发明还提供一种基于容器和堆叠文件系统的Linux通用软件适配系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于容器和堆叠文件系统的Linux通用软件适配方法的步骤。
此外,本发明还提供一种基于容器和堆叠文件系统的Linux通用软件适配系统,包括相互连接的微处理器和存储器,所述存储器中存储有被编程或配置以执行所述基于容器和堆叠文件系统的Linux通用软件适配方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于容器和堆叠文件系统的Linux通用软件适配方法的计算机程序。
和现有技术相比,本发明基于容器技术将目标软件的基础包Basepkg、应用包Apppkg部署在一个隔离的沙箱环境内,且所述沙箱环境内的独立根文件系统采用堆叠文件系统,该堆叠文件系统的最下层是基础包Basepkg、上一层是应用包Apppkg、最上层是可写目录,其中基础包Basepkg包含目标软件依赖到的库和程序,应用包Apppkg包含目标软件本体及其配置,具有下述优点:1、使用本发明能够将现有的Linux应用软件低成本的移植到其它的Linux发行版,降低开发成本。2、使用本发明可以对新开发的Linux应用软件打包,发布到各个发行版上运行。3、使用本发明将应用和依赖库打包,可以脱离对系统库的依赖,方便测试和维护,提高效率。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例系统的应用运行过程示意图。
图3为本发明实施例中沙箱内文件系统结构示意图。
具体实施方式
如图1和图2所示,本实施例基于容器和堆叠文件系统的Linux通用软件适配方法包括下述加载软件的步骤:基于容器技术将目标软件的基础包Basepkg、应用包Apppkg部署在一个隔离的沙箱环境内,且所述沙箱环境内的独立根文件系统采用堆叠文件系统,该堆叠文件系统的最下层是基础包Basepkg、上一层是应用包Apppkg、最上层是可写目录,其中基础包Basepkg包含目标软件依赖到的库和程序,应用包Apppkg包含目标软件本体及其配置。本实施例方法将应用软件和其依赖的库单独打包成独立的软件包,应用和应用的配置打包成应用包Apppkg,依赖到的库和程序打包成基础包Basepkg。通过这两个包就可以使应用脱离了具体的运行系统的版本,基础包Basepkg还可以给多个应用复用。在任意的Linux发行版系统上,都可以根据基础包Basepkg和应用包Apppkg,重新运行起来,运行效果和在初始的系统上的运行效果一致,应用软件不需要做特定的适配和修改。采用了Linux的LXC技术,将基础包Basepkg和应用包Apppkg部署在一个隔离的沙箱环境内,而且该沙箱环境权限可配置,该环境拥有独立的命名空间、独立的主机名称、独立的进程空间,应用程序运行中使用自己的根文件系统和程序库,沙箱环境与外部环境以及其他沙箱环境都出于隔离的状态,保证了应用运行的安全性。应用运行时候的沙盒隔离环境里的独立根文件系统采用了堆叠文件系统,堆叠文件系统的最下层是基础包Basepkg,上一层是应用包Apppkg、最上层是可写目录,这这样的文件系统布局下,应用可以使用到基础包Basepkg和应用包Apppkg里的程序库和数据,运行过程中产生的数据和改动也可以写到可写目录保存下来。
参见图2,本实施例中加载软件的步骤之前还包括将目标软件打包得到基础包Basepkg、应用包Apppkg的步骤。
作为一种可选的实施方式,本实施例中将目标软件打包得到基础包Basepkg、应用包Apppkg的步骤包括:将目标软件本体及其配置打包为应用包Apppkg;通过文件系统制作工具获取包含系统基础库的基础包Basepkg0,将基础包Basepkg0、目标软件的应用包Apppkg部署在一起,并采用依赖分析工具分析得到目标软件需要特定的程序库Basepkg1;将包含系统基础库的基础包Basepkg0、目标软件需要特定的程序库Basepkg1合并打包在一起得到最终的基础包Basepkg。对于基础包Basepkg,除了要包含最常用的系统库,保证一般的应用软件能够运行起来,也要能包含需要移植适配的特定应用软件需要到的依赖库,通过依赖分析工具,自动分析出应用软件依赖到的库,将其打到基础包Baseapp里。作为一种可选的实施方式,本实施例中的应用包Apppkg采用专有的打包方式和文件格式,本实施例中包含一个包转换工具,可以将现有的Linux的rpm格式包和deb格式包以及其它类型的压缩包转化为Apppkg,做到和现有的应用软件完全兼容。对于需要打包成应用包Apppkg的软件和数据,可以是现有的主流的各种形式的软件包,包括rpm包、deb包等,将目标软件打包得到基础包Basepkg时,转换工具能够自动识别软件格式并且转换为Apppkg包的格式。
作为一种可选的实施方式,本实施例中的文件系统制作工具为busybox,此外也可以根据需要采用buildstream或其他文件系统制作工具。
作为一种可选的实施方式,本实施例中还进一步提供一种应用软件调试工具,调试工具会生成应用软件临时运行的调试环境,该环境和应用软件真正运行时的环境一致,并且额外包含若干用于调试的工具,在移植和适配的过程中,对应用打包之前,要保证应用软件要能够在调试环境里正常运行。作为一种可选的实施方式,本实施例中还进一步提供应用软件运行工具,在应用软件运行的时候,通过基于容器技术构建一个拥有独立的命名空间的沙箱环境,该环境拥有独立的根文件系统、独立主机名、独立进程空间,将应用包Apppkg和基础包Basepkg部署在这个独立的根文件系统里。配置进程拥有的权限等。
本实施例中,在对应用包Apppkg打包的步骤中,还支持配置应用的权限,比如是否有网络访问权限,是否有图形系统访问权限,是否有主机文件系统的访问权限等。通过权限控制的机制,可以使应用运行的更灵活,兼顾安全和功能。
如图2所示,应用在运行的时候,由运行工具来加载和运行应用包,运行工具首先使用Linux的容器机制来创建一个隔离的沙箱进程,然后加载基础包Basepkg和应用包Apppkg,然后将该隔离的沙箱环境的根文件系统加载为一个堆叠文件系统,该堆叠文件系统的最下层是基础包中的内容,然后上一层是应用包中的内容,最上层是一个可写的磁盘分区,用来保存应用运行过程中的改动,在这样的运行环境下,应用完全使用自己的应用库,不受外部主机的干扰,并且处在隔离的环境里,拥有足够的安全性。
如图3所示,是应用在运行过程中的文件系统结构图,该图具体描述了应用内文件系统的组成方式,数据保存方式,该堆叠文件系统的最下层(LOWER1)是基础包Basepkg、上一层(LOWER2)是应用包Apppkg、最上层(UPPER)是可写目录。使用堆叠文件系统的方式,应用既可以对整个文件系统拥有完全的读写权限,又可以做到不破坏底层的基础包Basepkg和应用包Apppkg。通过以上的相关技术,可以基本保证,应用在沙盒里的运行环境里和在常规的Linux系统运行环境相比,具有相同的系统权限,相同的系统资源,相同的运行流程,从而达到了跨发行版之间应用适配和移植的目的。
综上所述,本实施例基于容器和堆叠文件系统的Linux通用软件适配方法将应用软件和应用软件依赖到的库分别打包成应用包和基础包,在应用软件运行的时候,通过LXC技术将基础包和应用包部署在独立的命名空间里运行,应用软件的进程运行在一个沙盒环境,拥有独立的根文件系统、独立的主机名、独立的进程空间,其中根文件系统为一个堆叠文件系统。由于应用包含了所有的依赖,因而可以直接在各个Linux发行版上运行。应用在运行的时候位于自己独立的根文件系统和命名空间,各个应用在运行过程中可以做到互不影响,相互隔离。使用本发明能够在将现有的Linux应用软件通过一次打包,直接运行在不同的发行版系统上,方便应用软件的移植和适配,复用软件,节省开发成本,提高软件运行安全性。
此外,本实施例还提供一种基于容器和堆叠文件系统的Linux通用软件适配系统,包括软件加载程序单元,用于基于容器技术将目标软件的基础包Basepkg、应用包Apppkg部署在一个隔离的沙箱环境内,且所述沙箱环境内的独立根文件系统采用堆叠文件系统,该堆叠文件系统的最下层是基础包Basepkg、上一层是应用包Apppkg、最上层是可写目录,其中基础包Basepkg包含目标软件依赖到的库和程序,应用包Apppkg包含目标软件本体及其配置。
可选地,还包括用于将目标软件打包得到基础包Basepkg、应用包Apppkg的程序单元。
此外,本实施例还提供一种基于容器和堆叠文件系统的Linux通用软件适配系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行前述基于容器和堆叠文件系统的Linux通用软件适配方法的步骤。
此外,本实施例还提供一种基于容器和堆叠文件系统的Linux通用软件适配系统,包括相互连接的微处理器和存储器,所述存储器中存储有被编程或配置以执行前述基于容器和堆叠文件系统的Linux通用软件适配方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于容器和堆叠文件系统的Linux通用软件适配方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种基于容器和堆叠文件系统的Linux通用软件适配方法,其特征在于,包括下述加载软件的步骤:基于容器技术将目标软件的基础包Basepkg、应用包Apppkg部署在一个隔离的沙箱环境内,且所述沙箱环境内的独立根文件系统采用堆叠文件系统,该堆叠文件系统的最下层是基础包Basepkg、上一层是应用包Apppkg、最上层是可写目录,其中基础包Basepkg包含目标软件依赖到的库和程序,应用包Apppkg包含目标软件本体及其配置。
2.根据权利要求1所述的基于容器和堆叠文件系统的Linux通用软件适配方法,其特征在于,所述加载软件的步骤之前还包括将目标软件打包得到基础包Basepkg、应用包Apppkg的步骤。
3.根据权利要求2所述的基于容器和堆叠文件系统的Linux通用软件适配方法,其特征在于,所述将目标软件打包得到基础包Basepkg、应用包Apppkg的步骤包括:将目标软件本体及其配置打包为应用包Apppkg;通过文件系统制作工具获取包含系统基础库的基础包Basepkg0,将基础包Basepkg0、目标软件的应用包Apppkg部署在一起,并采用依赖分析工具分析得到目标软件需要特定的程序库Basepkg1;将包含系统基础库的基础包Basepkg0、目标软件需要特定的程序库Basepkg1合并打包在一起得到最终的基础包Basepkg。
4.根据权利要求3所述的基于容器和堆叠文件系统的Linux通用软件适配方法,其特征在于,所述文件系统制作工具为busybox或buildstream。
5.一种基于容器和堆叠文件系统的Linux通用软件适配系统,其特征在于,包括软件加载程序单元,用于基于容器技术将目标软件的基础包Basepkg、应用包Apppkg部署在一个隔离的沙箱环境内,且所述沙箱环境内的独立根文件系统采用堆叠文件系统,该堆叠文件系统的最下层是基础包Basepkg、上一层是应用包Apppkg、最上层是可写目录,其中基础包Basepkg包含目标软件依赖到的库和程序,应用包Apppkg包含目标软件本体及其配置。
6.根据权利要求5所述的基于容器和堆叠文件系统的Linux通用软件适配系统,其特征在于,还包括用于将目标软件打包得到基础包Basepkg、应用包Apppkg的程序单元。
7.一种基于容器和堆叠文件系统的Linux通用软件适配系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~4中任意一项所述基于容器和堆叠文件系统的Linux通用软件适配方法的步骤。
8.一种基于容器和堆叠文件系统的Linux通用软件适配系统,包括相互连接的微处理器和存储器,其特征在于,所述存储器中存储有被编程或配置以执行权利要求1~4中任意一项所述基于容器和堆叠文件系统的Linux通用软件适配方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~4中任意一项所述基于容器和堆叠文件系统的Linux通用软件适配方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011343227.8A CN112486512A (zh) | 2020-11-25 | 2020-11-25 | 基于容器和堆叠文件系统的Linux通用软件适配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011343227.8A CN112486512A (zh) | 2020-11-25 | 2020-11-25 | 基于容器和堆叠文件系统的Linux通用软件适配方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112486512A true CN112486512A (zh) | 2021-03-12 |
Family
ID=74934650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011343227.8A Pending CN112486512A (zh) | 2020-11-25 | 2020-11-25 | 基于容器和堆叠文件系统的Linux通用软件适配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486512A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988464A (zh) * | 2021-03-23 | 2021-06-18 | 武汉深之度科技有限公司 | 一种断电保护方法及计算设备 |
CN113076170A (zh) * | 2021-06-03 | 2021-07-06 | 统信软件技术有限公司 | 一种远程协助方法、系统、装置、计算设备及存储介质 |
CN114780950A (zh) * | 2022-06-20 | 2022-07-22 | 中国人民解放军国防科技大学 | 应用软件跨版本兼容运行的方法、系统、装置及存储介质 |
WO2023016151A1 (zh) * | 2021-08-12 | 2023-02-16 | 北京字节跳动网络技术有限公司 | Linux系统安全应用的软件框架及创建方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406960A (zh) * | 2016-09-28 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种linux环境中快速部署软件的方法 |
CN107145353A (zh) * | 2017-05-05 | 2017-09-08 | 武汉斗鱼网络科技有限公司 | 软件框架及软件框架设计方法 |
CN109032602A (zh) * | 2018-06-07 | 2018-12-18 | 山东超越数控电子股份有限公司 | 一种软件自动适配操作系统的方法 |
CN109144526A (zh) * | 2018-06-28 | 2019-01-04 | 国网山东省电力公司菏泽供电公司 | 一种变电站自动化软件的快速部署系统及方法 |
CN109284112A (zh) * | 2018-09-28 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种用于运行应用程序的方法和装置 |
CN109634657A (zh) * | 2018-12-14 | 2019-04-16 | 武汉烽火信息集成技术有限公司 | 一种微服务打包部署方法及系统 |
CN110109701A (zh) * | 2019-05-14 | 2019-08-09 | 重庆商勤科技有限公司 | 应用部署时的文件配置方法、装置及应用发布方法、装置 |
CN110531993A (zh) * | 2019-08-21 | 2019-12-03 | 苏州浪潮智能科技有限公司 | 软件安装方法、装置、设备及介质 |
CN110968340A (zh) * | 2018-09-29 | 2020-04-07 | 京东数字科技控股有限公司 | 一种实现多版本依赖隔离的方法和装置 |
CN111427579A (zh) * | 2019-01-09 | 2020-07-17 | 北京京东尚科信息技术有限公司 | 插件、应用程序实现方法及系统和计算机系统及存储介质 |
CN111790146A (zh) * | 2019-12-06 | 2020-10-20 | 厦门雅基软件有限公司 | 资源管理的方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-11-25 CN CN202011343227.8A patent/CN112486512A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406960A (zh) * | 2016-09-28 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种linux环境中快速部署软件的方法 |
CN107145353A (zh) * | 2017-05-05 | 2017-09-08 | 武汉斗鱼网络科技有限公司 | 软件框架及软件框架设计方法 |
CN109032602A (zh) * | 2018-06-07 | 2018-12-18 | 山东超越数控电子股份有限公司 | 一种软件自动适配操作系统的方法 |
CN109144526A (zh) * | 2018-06-28 | 2019-01-04 | 国网山东省电力公司菏泽供电公司 | 一种变电站自动化软件的快速部署系统及方法 |
CN109284112A (zh) * | 2018-09-28 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种用于运行应用程序的方法和装置 |
CN110968340A (zh) * | 2018-09-29 | 2020-04-07 | 京东数字科技控股有限公司 | 一种实现多版本依赖隔离的方法和装置 |
CN109634657A (zh) * | 2018-12-14 | 2019-04-16 | 武汉烽火信息集成技术有限公司 | 一种微服务打包部署方法及系统 |
CN111427579A (zh) * | 2019-01-09 | 2020-07-17 | 北京京东尚科信息技术有限公司 | 插件、应用程序实现方法及系统和计算机系统及存储介质 |
CN110109701A (zh) * | 2019-05-14 | 2019-08-09 | 重庆商勤科技有限公司 | 应用部署时的文件配置方法、装置及应用发布方法、装置 |
CN110531993A (zh) * | 2019-08-21 | 2019-12-03 | 苏州浪潮智能科技有限公司 | 软件安装方法、装置、设备及介质 |
CN111790146A (zh) * | 2019-12-06 | 2020-10-20 | 厦门雅基软件有限公司 | 资源管理的方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
ISOLATES: "深入理解overlayfs(一)", 《HTTPS://WWW.CNBLOGS.COM/LIUJUNJUN/P/12119513.HTML》 * |
WUMINGX: "docker进阶教程三_rootfs之联合文件系统", 《HTTPS://WWW.WUMINGX.COM/K8S/DOCKER-ROOTFS.HTML》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988464A (zh) * | 2021-03-23 | 2021-06-18 | 武汉深之度科技有限公司 | 一种断电保护方法及计算设备 |
CN113076170A (zh) * | 2021-06-03 | 2021-07-06 | 统信软件技术有限公司 | 一种远程协助方法、系统、装置、计算设备及存储介质 |
CN113076170B (zh) * | 2021-06-03 | 2021-09-17 | 统信软件技术有限公司 | 一种远程协助方法、系统、装置、计算设备及存储介质 |
WO2023016151A1 (zh) * | 2021-08-12 | 2023-02-16 | 北京字节跳动网络技术有限公司 | Linux系统安全应用的软件框架及创建方法 |
CN114780950A (zh) * | 2022-06-20 | 2022-07-22 | 中国人民解放军国防科技大学 | 应用软件跨版本兼容运行的方法、系统、装置及存储介质 |
CN114780950B (zh) * | 2022-06-20 | 2022-09-06 | 中国人民解放军国防科技大学 | 应用软件跨版本兼容运行的方法、系统、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112486512A (zh) | 基于容器和堆叠文件系统的Linux通用软件适配方法及系统 | |
US20090070752A1 (en) | Method and system for optimization of an application | |
US20180196654A1 (en) | Docker Container Operating Method and Apparatus | |
US20140196022A1 (en) | Cloud Based Application Packaging | |
CN110727440B (zh) | 一种软件封装方法 | |
CN103795759B (zh) | 一种虚拟机镜像文件的调度方法和系统 | |
WO2023124967A1 (zh) | 软件操作系统调用Android HIDL接口的方法、设备及介质 | |
CN102541619B (zh) | 虚拟机管理装置和方法 | |
CN103077043B (zh) | 一种快速启动及运行Linux的方法 | |
US20080307414A1 (en) | Creating a virtual machine image with a software deployment system | |
US8843921B1 (en) | System and method for controlling installed third party software components | |
CN101002174B (zh) | 在便携式装置中加载具有面向对象的中间语言的软件的方法 | |
CN111831396A (zh) | 基于Docker软硬一体化的交付方法及装置 | |
CN113703926B (zh) | Android容器创建方法与装置 | |
US20200257569A1 (en) | Methods for operating storage driver in container environment and storage driver apparatuses | |
CN113986449A (zh) | 一种面向容器的Linux内核虚拟化系统及方法 | |
CN116954831B (zh) | 基于装配文件生成容器镜像包的方法及系统 | |
CN114706564B (zh) | 软件包制作方法、装置、电子设备及存储介质 | |
US10929525B2 (en) | Sandboxing of software plug-ins | |
CN104040498A (zh) | 用于在具有或不具有写入权限的不同的存储区域中更新程序和数据的计算机系统 | |
CN111399855A (zh) | 一种基于容器技术的自动化应用实例发布方法 | |
CN115599398A (zh) | 一种基于容器的镜像分离整合及加载方法 | |
CN117215723A (zh) | 一种基于工业应用的安全容器实现方法、设备及介质 | |
CN113918274A (zh) | 一种基于Docker容器的迁移KVM虚拟机的方法 | |
CN118276884A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210312 |
|
RJ01 | Rejection of invention patent application after publication |