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

基于Docker工具构建虚拟机磁盘镜像的方法及系统与流程

2022-12-10 09:56:00 来源:中国专利 TAG:

基于docker工具构建虚拟机磁盘镜像的方法及系统
技术领域
1.本发明涉及虚拟机技术领域,特别是涉及一种基于docker工具构建虚拟机磁盘镜像的方法及系统。


背景技术:

2.docker是一个开源的引擎,可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本电脑上编译测试通过的容器可以批量地在生产环境中部署,包括vms(虚拟机)、bare metal、openstack集群和其他基础应用平台。
3.在kubernetes集群运用虚拟化技术目前主要有两个主要技术方向:其中一个方向是利用虚拟化技术来替换底层的容器运行时,例如替换docker、containerd等,来提升运行时的安全性和隔离性。这个方向上的项目以kata containers为代表。它的主要特点是,容器运行时的替换对用户是透明的,用户依然使用例如docker工具链来构建容器镜像,并且以pod形式在kubernetes上运行,该方案用户并不感知虚拟机的存在,也无法直接操作底层的虚拟机,并不符合虚拟化的需求。
4.另一个方向是将虚拟机作为pod外的补充,该方向上的项目以kubevirt为代表,kubevirt的主要特点是不改变容器或者pod的任何方面,而是直接将虚拟机以扩展的形式引入到kubernetes集群中,用户可以直接创建和操作虚拟机,但是用户无法像构建容器镜像那样使用docker工具链来构建虚拟机磁盘镜像,而必须使用虚拟机镜像的构建工具例如packer才能实现虚拟机磁盘镜像的构建,使得虚拟机磁盘镜像的构建过程耗时往往长达数十分钟,镜像占用的存储空间也往往在几百兆字节以上,相比容器镜像存在构建速度、存储尺寸上的劣势。


技术实现要素:

5.针对本发明中基于docker工具创建容器文件时无法实现虚拟机镜像文件的构建,而在虚拟机镜像构建上无法使用docker工具链的技术问题,使得虚拟机镜像文件无法在短时间内实现构建的技术问题,本技术提出了一种基于docker工具构建虚拟机磁盘镜像的方法及系统。
6.本技术的第一方面提供了一种基于docker工具构建虚拟机磁盘镜像的方法,包括:
7.获取用于创建容器镜像的镜像描述文件;
8.通过容器镜像指令将镜像描述文件构建为容器镜像;
9.基于容器镜像,添加预设配置文件,生成根文件系统;
10.将根文件系统拷贝至目标虚拟机镜像系统对应的目录镜像路径;
11.读取目录镜像路径下的根文件系统,调用目标虚拟机镜像系统的指定磁盘格式化指令,基于目录镜像路径下的根文件系统的内容构建虚拟机磁盘镜像;
12.对虚拟机磁盘镜像执行初始化逻辑,
13.在初始化逻辑执行完成的情况下,将虚拟机磁盘镜像存入虚拟机启动时访问的目标路径,目标路径下的虚拟机镜像文件被配置为在kubernetes上启动一个使用虚拟机磁盘镜像的虚拟机。
14.于本技术第一方面的一种可能实现方式中,获取用于创建容器镜像的镜像文件包括:
15.根据容器镜像的配置需求构建镜像描述文件;
16.其中,镜像描述文件包括每一层需要添加的配置需求,配置需求至少包括约定目标镜像路径。
17.于本技术第一方面的一种可能实现方式中,将根文件系统拷贝至目标虚拟机镜像系统对应的目录镜像路径包括:
18.基于镜像描述文件中预设的目录共享机制,将根文件系统拷贝至目录镜像路径;
19.其中,目录镜像路径下的根文件系统被配置为能够基于kubernetes的初始化逻辑调用。
20.于本技术第一方面的一种可能实现方式中,读取目录镜像路径下的根文件系统,调用目标虚拟机镜像系统的指定磁盘格式化指令,基于目录镜像路径下的根文件系统的内容构建虚拟机磁盘镜像包括:
21.读取目录镜像路径的根文件系统,对根文件系统进行解析获取预配置需求;
22.根据预配置需求,利用mkfs.ext4命令,目标虚拟机镜像系统下的根文件系统的内容写入空白虚拟机磁盘镜像中,创建用于启动虚拟机的虚拟机磁盘镜像。
23.于本技术第一方面的一种可能实现方式中,读取目录镜像路径下的根文件系统之前包括:
24.指定目标虚拟机镜像系统中存放虚拟机磁盘镜像的预设容量;
25.调用磁盘镜像文件创建命令,创建一个满足预设容量的空白虚拟机磁盘镜像,以存放虚拟机磁盘镜像。
26.于本技术第一方面的一种可能实现方式中,,对虚拟机磁盘镜像执行初始化逻辑包括:调用kubernetes中的init容器,通过初始化逻辑预创建一个在kubernetes上虚拟机启动时需要的虚拟机磁盘镜像。
27.于本技术第一方面的一种可能实现方式中,在虚拟机磁盘镜像为启动虚拟机所需的根目录的情况下,配置对应的预设内核和/或预设内核启动参数;
28.基于预设内核和/或预设内核启动参数,启动使用虚拟机磁盘镜像的虚拟机。
29.本技术的第二方面提供了一种基于docker工具构建虚拟机磁盘镜像的系统,执行如前述基于docker工具构建虚拟机磁盘镜像的方法,包括:
30.获取单元,用于获取用于创建容器镜像的镜像描述文件;
31.第一构建单元,用于通过容器镜像指令将镜像描述文件构建为容器镜像;
32.生成单元,用于基于容器镜像,添加预设配置文件,生成根文件系统;
33.系统拷贝单元,用于将根文件系统拷贝至目标虚拟机镜像系统对应的目录镜像路径;
34.第二构建单元,用于读取目录镜像路径下的根文件系统,用于在初始化逻辑执行完成的情况下,调用目标虚拟机镜像系统的指定磁盘格式化指令,基于目录镜像路径下的
根文件系统的内容构建虚拟机磁盘镜像。
35.初始化单元,用于对虚拟机磁盘镜像执行初始化逻辑,
36.目标生成单元,用于在初始化逻辑执行完成的情况下,将虚拟机磁盘镜像存入虚拟机启动时访问的目标路径,目标路径下的虚拟机镜像文件被配置为在kubernetes上启动一个使用虚拟机磁盘镜像的虚拟机。
37.本技术的第三方面提供了一种电子设备,包括:
38.通信连接的处理器以及存储器;其中,存储器中存储有计算机程序,当处理器执行计算机程序时,处理器执行如前述的方法。
39.本技术的第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,计算机指令被执行时,使计算机执行如前述的方法。
40.通过本技术的技术方案,至少具备以下有益技术效果:
41.本技术提出了一种基于docker工具构建虚拟机磁盘镜像的方法及系统,将容器镜像文件拷贝至目录镜像路径,使得容器镜像对应的根文件系统转换为可以用于创建虚拟机的虚拟机磁盘镜像,利用docker工具链来构建虚拟机根文件系统,使得在满足用户创建和操作虚拟机的需求的同时,能够借助docker工具链将虚拟机镜像构建的耗时从几十分钟降低到几分钟,并且将镜像尺寸从几百兆降低到几十兆。此外,由于容器镜像分层构建、分层上传、分层下载的特点,使得这样构建出来的虚拟机镜像也是分层,很大程度上提高了镜像分发的传输效率,如此构建的虚拟机镜像能够利用docker hub或者其他docker registry平台进行存储和分发,极大的方便了虚拟机镜像的存储、查找和分发。
附图说明
42.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明进行进一步详细说明。
43.图1根据本技术的实施例,示出了一种基于docker工具构建虚拟机磁盘镜像的方法的流程图;
44.图2根据本技术的实施例,示出了一种包括dockerfile对应的构建镜像描述文件的构建示意图;
45.图3根据本技术的实施例,出了一种基于docker工具构建虚拟机磁盘镜像的系统框图。
具体实施方式
46.下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本技术能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本技术相关的一些操作并没有在说明书中显示或者描述,这是为了避免本技术的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
47.另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各
种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
48.本发明提出了一种基于docker工具构建虚拟机磁盘镜像的方法,docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的linux机器、windows机器),也可以实现虚拟化,用户依然使用例如docker工具链来构建容器镜像,并且以pod形式在kubernetes上运行。用户并不感知虚拟机的存在,也无法直接操控虚拟机,在虚拟机磁盘镜像构建上无法使用docker工具链,例如,以kata containers为代表的安全docker容器方案,其用户无法直接操作底层的虚拟机,因此在虚拟机镜像构建在虚拟机磁盘镜像时,因为无法采用docker容器,虚拟机镜像中的分层与容器镜像的分层类似,容器镜像的分层,多是基于文件系统的分层,而虚拟机镜像的分层,一般基于存储块来实现,使得虚拟机磁盘镜像构建过程耗时往往长达数十分钟,镜像占用的存储空间也往往在几百兆字节以上,相比容器镜像存在构建速度、存储尺寸上的劣势,因此本技术基于docker工具链来构建容器镜像,在虚拟机需要创建时,将容器镜像转换符合作为启动虚拟机使用的虚拟机磁盘镜像,可以实现且在kubernetes上以虚拟机磁盘镜像作为虚拟机的根文件系统,来启动虚拟机。
49.参考图1,本实施例提供一种基于docker工具构建虚拟机磁盘镜像的方法的流程图,该构建方法包括:
50.步骤100:获取用于创建容器镜像的镜像描述文件。可以理解的是,为了实现容器镜像的构建,把每一层修改、安装、构建、操作的命令都写入一个脚本docker file,用docker file定义一个文本描述性的镜像描述文件来构建、定制容器镜像,通过dockfile定义的镜像描述文件使得最终构建出唯一与镜像描述文件的容器镜像,具体地,用户通过dockerfile的定义来描述虚拟机的根文件系统所需包含的内容。
51.步骤200:通过容器镜像指令将镜像描述文件构建为容器镜像,容器镜像包括根文件系统。可以理解的是,基于dockerfile定义一个镜像描述文件之后,docker能够读取dockerfile定义的镜像描述文件,docker build会进行指定容器的自动构建,产生一个docker镜像,指定构建镜像的基础镜像,构建为容器镜像。
52.可以理解的是,除了dockerfile这种自定义构建镜像的方式以外,还支持从公共仓库(dockerhub)拉取或者基于现有的镜像进行优化dockercommi等实现,在此不做限定。
53.步骤300:基于容器镜像,添加预设配置文件,生成根文件系统(rootfs)。可以理解的是,用户通常可以从某个linux发行版的容器镜像基础出发,添加一些合适软件包以及应用,以构成一个完整的根文件系统,根文件系统是linux内核启动以后挂载(mount)的第一个文件系统,从根文件系统中读取初始化脚本,比如rcs,inittab等,单独的linux内核必须要搭配根文件系统才能正常工作。
54.步骤:400:将根文件系统拷贝至目标虚拟机镜像系统对应的目录镜像路径。可以理解的是,一个完整的根文件系统(rootfs)包括一个操作系统应当所包含的文件、配置和目录,并不包括操作系统内核,将目标虚拟机镜像系统所需的rootfs在虚拟机启动时,需要将根系统文件进行挂载,联合挂载在一个统一的挂载点上,该挂载点可以位于虚拟机镜像
系统的根分区下作为根目录,于本技术的一些实施例中,根分区被配置为用户在dockfile定义镜像描述文件时预设的目录镜像路径,对应为可以被在kubernetes平台虚拟机创建时可以被宿主机访问的目录镜像路径下。
55.步骤500:读取目录镜像路径下的根文件系统,调用目标虚拟机镜像系统的指定磁盘格式化指令,基于目录镜像路径下的根文件系统的内容构建虚拟机磁盘镜像。可以理解的是,在预配置操作完成的情况下,通过根文件系统依然是一个标准的容器镜像,无法被直接用来启动虚拟机。要将容器镜像转化为虚拟机磁盘镜像格式才可以被用来启动虚拟机,需要调用目标虚拟机镜像系统的指定磁盘格式化指令实现构建虚拟机磁盘镜像。
56.步骤600:对虚拟机磁盘镜像执行初始化逻辑。可以理解的是,在通过基于环境变量可以在在kubernetes上启动一个使用虚拟机磁盘镜像前的虚拟机前,以便下载相关依赖包,或者对目标虚拟机镜像系统进行一些预配置操作。
57.步骤700:在初始化逻辑执行完成的情况下,将虚拟机磁盘镜像存入虚拟机启动时访问的目标路径,目标路径下的虚拟机镜像文件被配置为在kubernetes上启动一个使用虚拟机磁盘镜像的虚拟机。可以理解的是,通过虚拟机磁盘镜像在kubernetes上init container的功能实现初始化后,实现是在kubernetes上启动一个使用此虚拟机磁盘镜像的虚拟机的完全自动化集成。
58.可以理解的是,部署高可用kubernetes(k8s)集群,kubernetes可以使用任何容器化技术,搭建kubernetes虚拟机环境至少包括系统centos 7,虚拟机镜像(.io)等,将docker自动创建的容器镜像的对应的根文件系统可以配置实现在kubernetes上启动一个使用虚拟机磁盘镜像的系统。
59.于上述步骤100中,获取用于创建容器镜像的镜像文件包括:根据容器镜像的配置需求构建镜像描述文件;其中,镜像描述文件包括每一层需要添加的配置需求,配置需求至少包括约定目标镜像路径。可以理解的是,容器镜像的定制实际上需要根据容器镜像的配置需求通过镜像描述文件为就是定制每一层所添加的配置、文件,构建镜像描述文件对应生成的容器镜像为了可以被创建虚拟机时访问,需要在构建镜像描述文件事先约定容器镜像对应生成的根文件系统的目标镜像路径。
60.参考图2,根据本技术的实施例,示出了一种包括dockerfile对应的构建镜像描述文件的构建示意图。基于dockerfile作为镜像描述文件,可以为一个文本文件,其内包含了若干条的指令(instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建,通过dockerfile来描述虚拟机的根文件系统所需包含的内容,生成对应的image文件。
61.于本技术的一些实施例中,根据虚拟机的创建需求,当虚拟机磁盘镜像的内容发生变更时,用户只需基于dockerfile上添加或者修改指令生成对应的新的镜像描述文件即可。
62.具体地,基于docker工具构建的虚拟机镜像中包括的所有层数据具体分为两个部分,分别为docker容器对应的层数据,以及其它层数据。docker容器对应的层数据为用于运行待执行应用对应的docker容器所需要的层数据,也就是运行待执行应用所必须需要读出的层数据。可选地,docker容器对应的层数据包括:虚拟机镜像中的所有层数据中除内核文件、系统目录,以及根(boot)目录下的文件之外的层数据。其它层数据是运行待执行应用不
需要必须读出的层数据,比如,内核文件、系统目录,以及根(boot)目录下的文件等。
63.于上述步骤400中,将根文件系统拷贝至目标虚拟机镜像系统对应的目录镜像路径包括:基于镜像描述文件中预设的目录共享机制,将根文件系统拷贝至目录镜像路径;其中,目录镜像路径下的根文件系统被配置为能够基于kubernetes的初始化逻辑调用。可以理解的是,根文件系统的内容被存放在即dockerbulid工具创建的基础镜像a只有放在指定位置镜像b的目录镜像路径下,目录共享机制基于在dockerfile定义,并在镜像描述文件中预先约定该目录镜像路径,使得根文件系统能够在kubernetes平台上创建虚拟机时,为能够基于kubernetes的初始化逻辑调用。
64.于上述步骤500中,读取目录镜像路径下的根文件系统,调用目标虚拟机镜像系统的指定磁盘格式化指令,基于目录镜像路径下的根文件系统的内容构建虚拟机磁盘镜像包括:读取目录镜像路径的根文件系统,对根文件系统进行解析获取预配置需求;根据预配置需求,利用mkfs.ext4命令,目标虚拟机镜像系统下的根文件系统的内容写入空白虚拟机磁盘镜像中,创建用于启动虚拟机的虚拟机磁盘镜像。可以理解的是,调用目标虚拟机镜像系统的指定磁盘格式化指令,基于目录镜像路径下的根文件系统构建虚拟机磁盘镜像包括:利用mkfs.ext4命令,目标虚拟机镜像系统下的根文件系统的内容写入空白虚拟机磁盘镜像中,创建用于启动虚拟机的虚拟机磁盘镜像。
65.可以理解的是,通过mkfs.ext4指令对指定的空白虚拟机磁盘设备进行格式化操作,包括一个目录指定创建指令,添加标识,将目标虚拟机镜像系统下的根文件系统的内容写入空白虚拟机磁盘镜像中生成根目录,使得kubernetes上创建一个启动时使用对应为根文件系统的内容的虚拟机。
66.于上述步骤500之前,读取目录镜像路径下的根文件系统之前包括:指定目标虚拟机镜像系统中存放虚拟机磁盘镜像的预设容量;调用磁盘镜像文件创建命令,创建一个满足预设容量的空白虚拟机磁盘镜像,以存放虚拟机磁盘镜像。可以理解的是,要将容器镜像转化为虚拟机磁盘镜像格式才可以被用来启动虚拟机,在退出容器时,根据目标虚拟机镜像系统占用的磁盘空间大小,建立虚拟机磁盘镜像,以存放虚拟磁盘镜像文件。
67.于上述步骤600中,对虚拟机磁盘镜像执行初始化逻辑包括:调用kubernetes中的init容器,通过初始化逻辑预创建一个在kubernetes上启动时需要虚拟机磁盘镜像的虚拟机。可以理解的是,在kubernetes中,init容器是在同一个pod中的其他容器之前启动和执行的容器,实现应用程序即虚拟机启动前的一个初始化步骤,init容器可以包括一些应用镜像中不存在的实用工具和安装脚本。例如地,为虚拟即启动前创建必要的用户帐户、执行数据库迁移、创建数据库模式、前置条件校验等。
68.具体来说,于本技术的一些实施例中,为了在kubernetes中启动一个使用相应根文件系统内容虚拟机,需要在虚拟机启动之前基于容器镜像中的根文件系统的内容来构建对应的虚拟机磁盘镜像,用户构建的虚拟机磁盘镜像中包括的所有层数据为虚拟机镜像中真正存储的虚拟机数据信息,比如操作系统、库文件、可运行程序、配置等。
69.于本技术的一些实施例中,在虚拟机磁盘镜像为启动虚拟机所需的根目录的情况下,配置对应的预设内核和/或预设内核启动参数;基于预设内核和/或预设内核启动参数,创建并启动使用虚拟机磁盘镜像的虚拟机。可以理解的是,根文件系统和linux内核是分开的,单独的linux内核是没法正常工作的,必须要搭配对应的根文件系统,即虚拟机磁盘镜
像,避免linux内核在启动的时候就会提示内核崩溃(kernel panic)的提示,因此经过得到的虚拟机磁盘镜像已经是符合作为启动虚拟机使用的根目录,搭配一个linux内核和/或基于linux内核预设内核启动参数才能真正启动虚拟机。
70.如图3所示,根据本技术的实施例示,出了一种基于docker工具构建虚拟机磁盘镜像的系统框图,该系统包括:
71.获取单元1,用于获取用于创建容器镜像的镜像描述文件;
72.第一构建单元2,用于通过容器镜像指令将镜像描述文件构建为容器镜像;
73.生成单元3,用于基于容器镜像,添加预设配置文件,生成根文件系统;
74.系统拷贝单元4,用于将根文件系统拷贝至目标虚拟机镜像系统对应的目录镜像路径;
75.第二构建单元5,用于读取目录镜像路径下的根文件系统,用于在初始化逻辑执行完成的情况下,调用目标虚拟机镜像系统的指定磁盘格式化指令,基于目录镜像路径下的根文件系统的内容构建虚拟机磁盘镜像。
76.初始化单元6,用于对虚拟机磁盘镜像执行初始化逻辑,
77.目标生成单元7,用于在初始化逻辑执行完成的情况下,将虚拟机磁盘镜像存入虚拟机启动时访问的目标路径,目标路径下的虚拟机镜像文件被配置为在kubernetes上启动一个使用虚拟机磁盘镜像的虚拟机。
78.基于docker工具构建虚拟机磁盘镜像的系统执行如前述基于docker工具构建虚拟机磁盘镜像的方法,在此不再赘述。
79.于本技术的一些实施例中,提供了一种电子设备包括通信连接的处理器以及存储器;其中,存储器中存储有计算机程序,当处理器执行计算机程序时,处理器执行如前述基于docker工具构建虚拟机磁盘镜像的方法。
80.于本技术的一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机指令,计算机指令被执行时,使计算机执行如前述基于docker工具构建虚拟机磁盘镜像的方法。
81.其中,关于上述基于docker工具构建虚拟机磁盘镜像的方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
82.通过本技术提出的一种基于docker工具构建虚拟机磁盘镜像的方法及系统,将容器镜像文件拷贝至目录镜像路径,使得容器镜像对应的根文件系统转换为可以用于创建虚拟机的虚拟机磁盘镜像,使得在满足用户创建和操作虚拟机的需求的同时,能够借助docker工具链将虚拟机镜像构建的耗时从几十分钟降低到几分钟,并且将镜像尺寸从几百兆降低到几十兆。此外,由于容器镜像分层构建、分层上传、分层下载的特点,使得这样构建出来的虚拟机镜像也是分层,很大程度上提高了镜像分发的传输效率,如此构建的虚拟机镜像能够利用docker hub或者其他docker registry平台进行存储和分发,极大的方便了虚拟机镜像的存储、查找和分发。
83.本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形
式。
84.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器运行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
85.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
86.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上运行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上运行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
87.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
88.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献