基于Linux内核的移动设备虚拟化系统及即时安装方法

文档序号:7814298阅读:201来源:国知局
基于Linux内核的移动设备虚拟化系统及即时安装方法
【专利摘要】本发明公开了一种基于Linux内核的移动设备虚拟化系统及即时安装方法,包括客户端和服务器端,客户端通过网络与服务器端连接通信;客户端包括用户管理与呈现模块、虚拟文件系统、即时安装代理模块、流式加载执行模块和虚拟硬件模块;服务器端包括用户管理模块、资源调度服务模块、若干软件资源模块和即时安装服务模块。用户通过即时安装代理模块向服务器端的即时安装服务模块发送请求,即时安装服务模块找到软件的文件存储地址并将网络地址返回给客户端,客户端随即创建链接指向该地址,完成该软件的安装;再通过流式加载执行模块将所需的程序块下载,该应用程序即可执行。本发明实现了移动终端轻量化,服务多样化,并且易于管理与维护。
【专利说明】基于Linux内核的移动设备虚拟化系统及即时安装方法

【技术领域】
[0001]本发明涉及一种基于Linux内核的移动设备虚拟化系统及即时安装方法。

【背景技术】
[0002]随着无线网络和移动计算的发展,移动设备目前正逐渐取代传统PC成为用户访问互联网的首要设备,其中,以Android智能手机为代表的Linux移动操作系统终端的市场份额日益扩大。面对市场上的各种系统和海量应用,用户希望能尽量减少自身移动设备内存占用的同时快速享用其所需的应用,然而对于固定内存和固定操作系统的移动设备来说,用户对应用程序的需求受到了这二者的限制,在使用上给用户带来极大的不便。
[0003]为了实现对不同操作系统的引导与管理,需要将虚拟机技术应用到终端上,但是虚拟机计算要求非常高性能的计算平台,因此不适合在小设备环境下实现,所以移动设备的性能瓶颈是实现类似虚拟机的一个障碍。


【发明内容】

[0004]本发明的目的是提供一种移动设备内存占用少且响应速度快的基于Linux内核的移动设备虚拟化系统及即时安装方法。
[0005]本发明提供的这种基于Linux内核的移动设备虚拟化系统,包括客户端和服务器端,客户端通过网络与服务器端连接通信;
客户端包括用户管理与呈现模块、虚拟文件系统、即时安装代理模块、流式加载执行模块和虚拟硬件模块;用户管理与呈现模块与虚拟文件系统进行数据交互,虚拟文件系统通过即时安装代理模块经由虚拟硬件模块与网络进行数据交互,虚拟文件系统通过流式加载执行模块经由虚拟硬件模块与网络进行数据交互,虚拟文件系统由即时安装代理模块和流式加载执行模块按需逐步建立;
服务器端包括用户管理模块、资源调度服务模块、若干软件资源模块和即时安装服务模块;用户管理模块分别与资源调度服务模块以及即时安装服务模块进行数据交互,各软件资源模块分别与资源调度服务模块以及即时安装服务模块进行数据交互;资源调度服务模块、各软件资源模块和即时安装服务模块均分别与网络连接通信,进行数据交互。
[0006]所述服务器端包括一台元数据服务器以及一台或者多台存储服务器;所述元数据服务器用于响应所述客户端的文件存储地址查询请求,并返回文件或目录在存储服务器的真实文件存储地址;元数据服务器包括元数据库,元数据库包括文件或目录名、使用权限与目录层次结构;所述存储服务器用于响应客户端的读写请求,以及元数据服务器发送的资源分配请求和资源释放请求;存储服务器包括可共享的程序文件库和不可共享的用户文件库;程序文件库包括多种操作系统和应用程序的可执行文件、库文件;用户文件库包括用户的私人文档与使用应用程序时生成的个人数据,用户文件库需为每个用户开辟独立的存储空间。
[0007]所述即时安装代理模块是根据客户端的软件安装请求向所述即时安装服务模块获取需要的元数据的模块。
[0008]所述流式加载执行模块是采用数据分块、按需加载数据块的方式将一个一个的数据块从网络上加载到本地的模块。
[0009]所述虚拟硬件模块包括Linux标准内核、通用驱动程序模块和专用驱动程序模块;虚拟硬件模块安装在基于Linux内核的移动设备中。
[0010]所述资源调度服务模块是将所述客户端的文件访问请求重定向到所述存储服务器上正确的存储文件存储地址、完成客户端地址到其对应的文件的映射并返回该文件访问请求的元数据的模块。
[0011]所述即时安装服务模块是为用户分配对应的用户数据并记录到元数据库中、同时将多个文件存储地址信息返回到所述即时安装代理模块的模块。
[0012]一种该基于Linux内核的移动设备虚拟化系统的即时安装方法,该方法包括如下步骤:
步骤一,用户在移动设备上选择需要的软件资源,并向即时安装代理模块发送请求;
步骤二,即时安装代理模块向即时安装服务模块获取该应用程序对应的元数据;步骤三,即时安装服务模块为用户分配对应的用户数据存储空间,并记录到元数据库中;同时,即时安装服务模块将所需的文件存储地址信息返回至客户端的即时安装代理模块;
步骤四,即时安装代理模块创建安装目录和快捷方式,并指向步骤三中的多个文件存储地址,从而完成该软件资源的即时安装;
步骤五,安装完成后,客户端通过流式加载执行模块从存储服务器上的一个或多个文件存储地址流式加载数据。
[0013]所述步骤三即时安装服务模块将多个文件存储地址信息以类似URL的形式返回到客户端的即时安装代理模块。
[0014]所述流式加载是通过网络文件系统NFS实现;首先从存储服务器上读取当前需要的程序块,再一块一块的把需要的程序通过网络加载到客户端上;且每一块程序块都能直接加载到移动设备的内存中并完成当前的执行任务。
[0015]相对于现有技术方案,本发明具有如下优点:
1、本发明采用分布式文件系统存储方式,将包括操作系统在内的所有的软件资源保存在服务器端;有需要时,客户端只需要以块流的形式从服务器端下载并执行。这样不仅把所有的管理与维护工作转移到了服务器端,使客户端做到轻载、易管理和易维护,而且还可以保证较小的网络延迟与带宽占用,实现了用户的按需获取服务需求,最大程度上保证了良好的用户体验;
2、本发明的软件“即时安装”方法,真正实现了按照用户需求即时提供服务的目的。用户不仅能够随时安装任意数量,任意大小的软件,而且所需的软件几乎不用等待就可以直接运行;
3、本发明采用了操作系统级虚拟化方案,不同于目前已经实现的硬件级虚拟化,在本发明中,由于不同的移动操作系统可以共享同一个内核,所以在虚拟化的过程中不需要模拟硬件,从而将虚拟化的开销降到最小。

【专利附图】

【附图说明】
[0016]图1是本发明的总体架构示意图。
[0017]图2是本发明的模块架构框图。
[0018]图3是本发明的网络化中断示意图。
[0019]图4是本发明的即时安装流程示意图。
[0020]图5是本发明的网络化资源调度示意图。
图6是本发明的系统运行流程图。

【具体实施方式】
[0021]面对市场上的各种系统和海量应用,用户希望能够专注于所需的服务,而不是附带的系统与应用的管理问题。从解决这一实际问题的角度出发,本发明通过一种虚拟化的方式使得在不同的操作系统下,各种应用可快速有效地从网络上加载,而无需占用自身移动设备的固有内存,很好的解决了移动用户面临的上述问题。本发明将系统的管理与维护工作都被转移到了服务器端,客户端可以很大程度上的轻量化,并能达到较高的性能。
[0022]操作系统级虚拟化最主要的特征就是不模拟硬件,多个客体操作系统(OperatingSystem,简称OS)共享同一个内核,故这些客体都可借助该内核来直接访问硬件。这样一方面能尽可能的减少虚拟化所带来的开销,另一方面也可较为简单的实现所有功能。本发明正是采用上述方案并结合透明计算思想而产生的。
[0023]如图1所示,本发明的总体架构是基于C/S的系统架构。客户端可以是任何支持Linux内核的轻量级移动设备。服务器端包括一台元数据服务器以及一台或者多台存储服务器。服务器端为了实现较高的I/O带宽与交互性能,将元数据和实际的文件数据分开存储,上述各个部分之间通过无线或有线网络连接通信。
[0024]1、元数据服务器。
[0025]本发明中的元数据服务器是管理元数据的服务器,其为所有软件资源与用户私人数据维护对应的目录结构、存放文件存储地址、使用权限,并保证客户端与服务器端的数据一致性。除此之外,元数据服务器最主要的任务就是响应客户端的文件位置查询请求,并返回文件或目录在存储服务器上的真实文件存储地址,随后进行读写操作时就可以直接访问存储服务器,从而减轻元数据服务器的压力。
[0026]如果有新的软件资源或用户数据被添加到系统中来,元数据服务器还需要向存储服务器发送资源分配请求。类似的,在数据的删除过程中,元数据服务器也需要向存储服务器发送资源释放请求。总之,元数据服务器主要被用来构建和维护存储服务器上的资源组织结构。
[0027]2、元数据库。
[0028]元数据服务器存放有元数据库,元数据库是存储元数据的数据库。元数据服务器就在该数据库的基础上进行操作和处理的。元数据是指文件或目录名、使用权限与目录层次结构等,而且大部分元数据还会记录其与特定用户的关系,比如一份文件的所有者,或者程序在客户端安装的文件存储地址等。
[0029]3、存储服务器。
[0030]本发明的元数据服务器只是存储和维护软件资源的组织结构,存储服务器才是存储实际文件的地方;其主要负责响应客户端的读写请求,以及元数据服务器发送的资源分配请求和资源释放请求。由于所有用户的应用程序与用户个人数据都存储在服务器端,这些资源的管理与维护工作都是在服务器端统一进行的,因此本发明可以很好的在此基础上实现数据共享。在本发明中,每个软件都被划分为两个部分:程序文件部分和数据文件部分。程序文件部分对于每个用户都是一样的,可以让多个用户共享;数据文件部分则因人而异,不能共享,需要为每个用户开辟独立的存储空间。
[0031 ] 存储服务器中存放有可共享的程序文件库和不可共享的用户文件库。
[0032]4、程序文件库。
[0033]本发明支持的所有软件的程序部分都存储在程序文件库内,包括各类OS和应用程序的可执行文件、库文件、以及其它数据文件等。这部分数据可以在多个用户之间共享,而且可以由系统管理员统一管理与维护。
[0034]5、用户文件库。
[0035]用户的私人文档与使用软件时生成的个人数据都保存在用户文件库内,用户文件不能共享,系统需要为每个用户维护这部分数据,保证私人数据在服务器端永不丢失。元数据库记录了这些数据与用户的关系。
[0036]基于上述总体构架思想,下面对本发明的具体实现作进一步的说明。
[0037]如图2所示,本发明包括客户端和服务器端,客户端通过网络与服务器端连接通?目。
[0038]客户端包括用户管理与呈现模块、虚拟文件系统、即时安装代理模块、流式加载执行模块和虚拟硬件模块;用户管理与呈现模块与虚拟文件系统进行数据交互,虚拟文件系统通过即时安装代理模块经由虚拟硬件模块与网络进行数据交互,虚拟文件系统通过流式加载执行模块经由虚拟硬件模块与网络进行数据交互,虚拟文件系统由即时安装代理模块和流式加载执行模块按需逐步建立。
[0039]服务器端包括用户管理模块、资源调度服务模块、若干软件资源模块和即时安装服务模块;用户管理模块分别与资源调度服务模块以及即时安装服务模块进行数据交互,各软件资源模块分别与资源调度服务模块以及即时安装服务模块进行数据交互;资源调度服务模块、各软件资源模块和即时安装服务模块均分别与网络连接通信,进行数据交互。
[0040]下面对客户端侧的相关功能模块进行说明。
[0041](I)虚拟硬件模块。
[0042]本发明的虚拟硬件模块直接运行在物理硬件之上,负责引导客体操作系统的启动。之所以称为虚拟硬件,是因为上层需要与硬件进行的通信都是间接地通过该模块进行。
[0043]从操作系统虚拟化的角度看,虚拟硬件模块也就是宿主操作系统的内核,内核的成分包括Linux标准内核、通用驱动程序和专用驱动程序。通用驱动程序,比如输入设备和网络驱动,由于本身是标准的,可以直接编译在内核当中。但是,为了保证内核的通用性,各种硬件架构专用的驱动程序只能编译成独立的内核模块,并与其他软件资源共同存放在网络服务器当中,然后再客体操作系统引导的过程中通过网络流式加载。这样做可以在一定程度上解除软件和硬件的耦合,从而实现跨硬件平台的目的。此外,驱动程序也是一种需要更新的软件资源,在此也需要存放在服务器端统一管理。
[0044]需要注意的是,虚拟硬件模块是唯一一个驻留在客户端本地存储器的模块,本发明的其他模块都是在运行期间动态从网络加载的。因为操作系统级虚拟化出来的客体操作系统都共用了同一个内核,所以客户端系统需要以一个可用的内核为基础,才有可能完成客体操作系统的启动。在本发明中,只有在客户端本地完成了对CPU、内存和网卡的驱动后,才能进一步的从网络加载客体操作系统的其他部分。
[0045](2 )流式加载执行模块。
[0046]本发明的客户端通过流式加载执行模块实现对所需软件资源的加载与使用。本发明的流式加载是通过网络文件系统NFS实现。
[0047]流式加载:每次只需要从网络上下载当前需要的程序块,操作系统在进行程序调度的过程中,会了解到当前需要哪个程序块,并把它从存储介质加载到移动设备的内存中。
[0048]一个程序块是一个最小的执行单位,它的大小不能太大,因为一个较大的程序块中会包含较多的当前并不需要的代码,从而造成内存的浪费。当然程序块也不能太小,太小意味着更多的程序块,会增加操作系统的管理花销。
[0049]流式加载执行模块就是这样一块一块的把程序从网络加载到客户端上,每一块都能直接加载到内存中并完成当前的执行任务,形成一种“块流”的形式。由于程序块的大小远远小于客户端接入网络的带宽,所以可以实现快速加载与执行。
[0050]在大多数现代操作系统的设计中,一个程序块也就是虚拟内存中的一个页,本发明正是利用操作系统的分页机制将程序与数据以一个个页的形式在网络上传输的。
[0051]传统操作系统加载一个程序的过程如下:
Step 1:程序开始运行时,OS为该程序分配一段连续的虚拟内存;
Step 2:一开始,虚拟内存没有映射到真正的物理内存,直到系统需要使用虚拟内存中某个页面的代码或数据,这时就会发生缺页中断;
Step 3:系统于是将该页面映射到物理内存,并将一个页面大小的代码或数据从存储介质加载到物理内存,然后就可以继续执行。
[0052]如果是运行在本地的系统,系统就会从磁盘或闪存等存储介质中读取数据,但基于网络加载的本发明需要从虚拟的网络存储中读取缺少的页面,所以在处理缺页中断的过程中,系统会进一步向服务器发送请求,如图3所示。这样每次都交给网络来处理的中断即为“网络化中断”。本发明的流式加载就是这样结合操作系统的调度加载需要的程序块的,而且由于本发明的操作系统使用同一种系统调用来访问不同的存储器(本地存储或网络存储),所以这整个过程都可以在较低的层次透明的完成。
[0053]为了减少应用程序的加载时间,实现软件的按需加载,本发明需要让软件在下载的过程中就能执行,让软件流式执行是最佳的解决方案。在进行流式执行之前,先要把软件划分成一个个的数据块才能让它在网络上传输。这样一来,客户端只要将第一个可执行单元装入内存就可以开始运行这个应用程序,相对于下载整个程序,流式执行可以很大程度上缩短应用程序的加载时间。在运行过程中,其它的可执行单元可以在后台持续下载或者按需下载,如果运行时需要的部分不在内存中,就必须马上下载下来以保证程序的持续运行。像这样一部分一部分地下载并执行,使得程序或代码以数据流的形式加载到客户端的过程,就是流式执行。
[0054](3)即时安装代理模块。
[0055]对于某个软件的安装:在传统方式下,本地安装需要下载整个安装包,并安装在移动设备的存储器上,受到了该设备存储空间的限制;而本发明中的“安装”的概念是指在客户端上创建该软件的安装目录与快捷方式,并指向服务器上该软件真正存放的地址。这个过程跟流式加载执行一样也是快速和有效的,所以称之为“即时安装”。本发明即时安装代理模块的执行过程仅仅只是创建必要的安装目录与快捷方式,并没有实际文件的传输或下载,最多也只是若干图标文件用于界面上的显示,其它的工作都会交给服务器端的即时安装服务模块来完成。这样一来,用户不仅能够安装任意数量,任意大小的软件,而且不用等待就可以直接运行。
[0056](4)虚拟文件系统。
[0057]本发明的虚拟文件系统体现为用户所见到的文件与目录组织形式,就像Windows里的资源管理器里面的内容一样,包含用户所有的操作系统文件、应用程序文件和个人数据文件等。整个文件系统是由即时安装代理模块和流式加载执行模块两个模块按照用户的需要一步步建立起来的。虽然文件与目录的组织形式在用户看来与本地存储没什么两样,但它们却是以完全不同的形式存储在服务器上的,同一个用户的文件甚至还有可能分布在多个物理服务器上,因此本发明配备了元数据服务器完成各种资源的映射。
[0058]本发明的虚拟文件系统中“虚拟”的意思是指用户不知道,也不用了解文件存在于哪种文件系统。该虚拟文件系统只要向上提供标准的接口,镜像文件可以以任意形式分布在任意的文件存储地址,透明地完成文件目录的分配与管理以及访问的重定向即可。
[0059](5)用户管理与呈现模块。
[0060]使用时,本发明的用户管理与呈现模块通过用户的ID,将分布在服务器上的各部分资源就能以一种标准的形式组织到客户端上来,这里面包括该用户选择的操作系统,该用户的私人数据,该用户已安装的应用程序与相关的生成数据等,由于以上的技术细节对用户而言都是不可见的,所以呈现在用户面前的是与本地运行没有差别的体验。最重要的是,同一用户可以通过相同的账号,在不同设备上获得相同的服务与体验;而不同的用户可以使用不同的账号,在同一个设备上获得属于自己的服务与体验。
[0061]下面对服务器端侧的相关功能模块进行说明。
[0062](I)用户管理模块。
[0063]本发明的用户管理模块主要是在服务器端构建元数据库,为每个用户维护已安装的软件列表,以及相关的用户个人数据,保证用户数据不丢失的同时,也保证客户端与服务器端的数据一致性。这些信息都是与用户的账号绑定的,用户在客户端进行的任何改动都会通过其账号同步到服务器端的响应文件存储地址,而且此账号还可以让用户在任意时亥IJ、任意地点接入自己的系统与服务。
[0064]服务器上维护的每个操作系统或者应用程序都有一个标识号AID,每个用户也都有一个标识号UID。一组AID和UID就可以标识一个属于用户UID的应用程序。本发明通常用这些ID来再程序文件库和用户文件库中定位需要的文件或数据。
[0065](2)即时安装服务模块。
[0066]用户需要安装新的软件时,会通过客户端上的即时安装代理模块向服务器端的即时安装服务模块发送请求,即时安装服务模块则结合用户管理模块,首先为该用户分配存储用户数据所需要的空间,生成该软件的用户数据部分,然后找到该软件的程序文件的文件存储地址,最后将这两部分的网络地址返回给客户端,客户端随即创建链接指向这两个地址,也就是一系列虚拟文件目录或者快捷方式,从而完成该软件的安装。
[0067]由此可见,安装的主要工作都是在服务器上完成的,客户端仅仅需要创建若干链接地址就可以马上运行新安装的软件了。
[0068]更新的主要工作是在服务器端完成的,客户端只需增加、修改或删除若干链接就可以了。
[0069](3)资源调度服务模块。
[0070]资源调度服务模块负责将客户端的文件访问请求重定向到服务器上正确的存储文件存储地址,其可以通过服务器上的用户管理模块获得相应的元数据,并完成客户端地址到其对应的各类文件的映射,提供用户文件的访问控制与搜索等功能。
[0071]下面对上述某些模块的配合使用作进一步的说明。
[0072]一、软件资源的即时安装。
[0073]如图4所示,本发明的即时安装方法包括如下步骤:
步骤1,用户在移动设备上选择需要的软件资源,并向即时安装代理模块发送请求;步骤2,即时安装代理模块向即时安装服务模块获取该软件资源的元数据,即该软件资源在存储服务器上的文件存储地址;
步骤3,即时安装服务模块为用户分配对应的用户数据存储空间,并记录到元数据库中;
步骤4,即时安装服务模块将所需的文件存储地址信息以类似URL的形式返回至客户端的即时安装代理模块;
步骤5,即时安装代理模块创建必要的安装目录和快捷方式,并指向步骤4中的多个资源地址,从而完成该应用程序的即时安装;
步骤6,安装完成后,客户端通过流式加载执行模块从存储服务器上的一个或多个文件存储地址流式加载数据。
[0074]软件资源在本发明中的“安装”是对用户透明的,透明性主要体现在以下三个方面:(I)用户已安装的应用程序总是有效的,而且能通过一系列快捷方式直接访问,不用考虑数据实际存储的文件存储地址;(2)在大多数情况下,用户都能够即时安装并使用一个应用程序;(3)已安装的应用程序在任何设备上都是有效的,用户切换到新的设备之后,整个应用环境与配置都与旧设备上的没有差别。
[0075]二、网络化资源调度。
[0076]如图5所示,服务器端的用户管理模块、网络化资源调度模块与即时安装服务模块共同组成了本发明的元数据服务,维护并管理所有的元数据。
[0077]用户管理模块主要是构建元数据库,为每个用户维护已安装的软件列表,以及相关的用户数据,保证用户数据不丢失的同时,也保证客户端与服务器端的数据一致性。资源调度服务模块响应客户端的查询请求,从元数据库中获取文件在服务器上的文件存储地址信息,并返回给客户端。即时安装服务模块响应客户端的安装请求,为用户分配存储空间并记录到元数据库,同时将处理结果返回给客户端,用于即时安装。
[0078]客户端文件系统的各个部分被分散存储到不同的存储节点上,部分存储节点可以共享给多个用户,如应用程序文件、用户自己分享的档案文件或媒体文件等。当客户端需要访问文件时,首先将需要的文件名或目录名发送给元数据服务器,然后元数据服务器从元数据库中查询出相关的元数据信息并反馈给客户端,进而客户端就可以建立起与实际文件的连接。
[0079]元数据服务器对存储节点的控制指令包括分配或释放存储空间、定期更新软件资源、或者是进行冗余备份和数据迁徙等与性能和安全有关的操作。
[0080]本发明存在于网络连接的环境下,客户端可以通过W1-Fi或3G访问服务器,月艮务器端负责以一定的形式维护所有的软件资源,并提供资源调度服务模块与即时安装服务模块来响应客户端的资源申请请求。用户管理模块主要是维护元数据库中的信息,本发明的各服务器在响应请求时都需要参考这些元数据。客户端则显现出一种层次性的结构:内核在最底层提供操作系统级的虚拟化,即时安装代理模块和流式加载执行模块共同构建出一个虚拟文件系统,三者共同组成客户端上的虚拟网络存储。最后,最上层的用户管理与呈现模块将账户信息与网络资源进行绑定,决定用户能够访问哪些资源,拥有哪些权限等。
[0081]在客户端,内核和驱动程序负责完成对物理硬件的驱动,形成一个虚拟硬件层,进而让上层的应用程序或操作系统与硬件打交道。因为操作系统的文件系统和应用程序都保存在服务器上,所以用户需要利用客户端上的流式加载执行模块与服务器端取得联系,月艮务器端随即返回被请求的数据流,然后该应用程序就可以在客户端执行了。这样就能够透明地通过网络完成用户所需的操作,在用户呈现上,整个过程与本地运行没有任何区别。除此之外,为了能让用户随时获取需要的服务,用户还可以通过即时安装代理模块来获得更多其他的应用或服务,服务器上的即时安装服务模块会响应此类请求,为用户完成首次安装所需要的资源分配与配置。整个“安装”过程涉及到的操作大部分都发生在服务器端,客户端的“安装”仅仅是在本地建立若干虚拟的目录和快捷方式,指向软件资源在服务器上的存储文件存储地址,“安装”完成之后,新的软件就可以直接通过流式加载执行模块来运行了。
[0082]在服务器端,用户管理模块维护了所有的元数据信息,包括各类资源的实际存储文件存储地址,以及这些资源与用户之间的绑定关系等;资源调度服务模块主要将用户的文件访问请求重定向到实际的存储文件存储地址,并改对各类资源进行统一的维护;即时安装服务模块可以让用户快读的安装需要的软件,只需在服务器端分配一定的资源并将其与用户绑定就可让客户端开始流式加载执行。通常情况下,客户端通过资源调度服务模块和即时安装服务模块建立起与实际文件的连接之后,就能直接对文件进行读写访问,不再需要进行文件重定向,从而减轻元数据服务器的压力。
[0083]理论上,本发明可以支持任何基于Linux内核的移动操作系统,比如Android、Ubuntu Mobile 0S、Firefox OS、以及Qt Extended等。本发明的原型系统已经在使用ARM指令集的开发板上实现,可在无线网络环境下支持Android 2.3和多个Qt xtended版本的启动。以Android系统为例,图6展示了整个系统的运行流程。
[0084]从图6可以看出,本发明在客户端的运行从加载Linux内核开始,用户登录后就可以提供一个服务列表供用户选择,具体的服务可以是个操作系统,也可以是个应用程序,系统可以用同样的方式对其进行处理,也就是从选择服务,到安装服务,最后到流式执行的过程,如此循环往复,直至用户结束操作。本发明与传统系统的不同之处在于,本发明只有运算是在本地进行的,而存储与管理都被转移到了服务器端,所以上述的每个操作都是快速且有效的。
[0085]根据透明计算的思想,本发明需要实现按需加载服务,用户所需的服务通常是一系列的应用,但这些应用需要运行在具体的软件平台上,也就是操作系统。和应用程序一样,操作系统也是用户需要管理和维护的软件资源,而且维护的难度通常比应用程序要大得多。因此,在本发明中,传统的移动操作系统也是被管理和调度的对象,它们连同其它的应用程序都被部署在网络上的服务器中,作为可动态加载的资源,这样就可以做到终端轻量化,服务多样化,并且易于管理与维护。
[0086]本发明采用分布式文件系统来实现网络存储。文件系统是操作系统用来存储程序与数据的功能模块,它向上层提供标准的调用与访问接口。分布式文件系统可以将存储节点分散到网络上的多个文件存储地址,并通过网络来完成对各个存储节点的管理与通信,进而形成一个高容量、高可用性和可扩展性的存储系统。
[0087]本发明是对操作系统的虚拟化,其并不模拟出硬件,也不虚拟出整个客体OS,而是创建一个或多个彼此独立的操作系统环境,每个环境内都拥有各自的系统和用户函数库、文件系统、应用程序和环境配置等,所以对用户和应用程序而言,每个环境的运行和操作都与一台独立的计算机一模一样。不同的环境中运行的程序彼此互不干扰,而且这些环境都访问同一个宿主内核,这样也就可以最大化的共享硬件、软件和其他资源。
【权利要求】
1.一种基于Linux内核的移动设备虚拟化系统,其特征在于,该系统包括客户端和服务器端,客户端通过网络与服务器端连接通信; 客户端包括用户管理与呈现模块、虚拟文件系统、即时安装代理模块、流式加载执行模块和虚拟硬件模块;用户管理与呈现模块与虚拟文件系统进行数据交互,虚拟文件系统通过即时安装代理模块经由虚拟硬件模块与网络进行数据交互,虚拟文件系统通过流式加载执行模块经由虚拟硬件模块与网络进行数据交互,虚拟文件系统由即时安装代理模块和流式加载执行模块按需逐步建立; 服务器端包括用户管理模块、资源调度服务模块、若干软件资源模块和即时安装服务模块;用户管理模块分别与资源调度服务模块以及即时安装服务模块进行数据交互,各软件资源模块分别与资源调度服务模块以及即时安装服务模块进行数据交互;资源调度服务模块、各软件资源模块和即时安装服务模块均分别与网络连接通信,进行数据交互。
2.根据权利要求1所述的基于Linux内核的移动设备虚拟化系统,其特征在于,所述服务器端包括一台元数据服务器以及一台或者多台存储服务器; 所述元数据服务器用于响应所述客户端的文件存储地址查询请求,并返回文件或目录在存储服务器的真实存储地址;元数据服务器包括元数据库,元数据库包括文件或目录名、使用权限与目录层次结构; 所述存储服务器用于响应客户端的读写请求,以及元数据服务器发送的资源分配请求和资源释放请求;存储服务器包括可共享的程序文件库和不可共享的用户文件库;程序文件库包括多种操作系统和应用程序的可执行文件、库文件;用户文件库包括用户的私人文档与使用应用程序时生成的个人数据,用户文件库需为每个用户开辟独立的存储空间。
3.根据权利要求1所述的基于Linux内核的移动设备虚拟化系统,其特征在于,所述即时安装代理模块是根据客户端的软件安装请求向所述即时安装服务模块获取需要的元数据的模块。
4.根据权利要求1所述的基于Linux内核的移动设备虚拟化系统,其特征在于,所述流式加载执行模块是采用数据分块、按需加载数据块的方式将一个一个的数据块从网络上加载到本地的模块。
5.根据权利要求1所述的基于Linux内核的移动设备虚拟化系统,其特征在于,所述虚拟硬件模块包括Linux标准内核、通用驱动程序模块和专用驱动程序模块;虚拟硬件模块安装在基于Linux内核的移动设备中。
6.根据权利要求2所述的基于Linux内核的移动设备虚拟化系统,其特征在于,所述资源调度服务模块是将所述客户端的文件访问请求重定向到所述存储服务器上正确的存储文件存储地址、完成客户端地址到其对应的文件的映射并返回该文件访问请求的元数据的模块。
7.根据权利要求2所述的基于Linux内核的移动设备虚拟化系统,其特征在于,所述即时安装服务模块是为用户分配对应的用户数据并记录到元数据库中、同时将多个文件存储地址信息返回到所述即时安装代理模块的模块。
8.一种适用于权利要求1所述的基于Linux内核的移动设备虚拟化系统的即时安装方法,其特征在于,该方法包括如下步骤: 步骤一,用户在移动设备上选择需要的软件资源,并向即时安装代理模块发送请求; 步骤二,即时安装代理模块向即时安装服务模块获取该应用程序对应的元数据; 步骤三,即时安装服务模块为用户分配对应的用户数据存储空间,并记录到元数据库中;同时,即时安装服务模块将所需的文件存储地址信息返回至客户端的即时安装代理模块; 步骤四,即时安装代理模块创建安装目录和快捷方式,并指向步骤三中的多个文件存储地址,从而完成该软件资源的即时安装; 步骤五,安装完成后,客户端通过流式加载执行模块从存储服务器上的一个或多个文件存储地址流式加载数据。
9.根据权利要求8所述的基于Linux内核的移动设备虚拟化系统的即时安装方法,其特征在于,所述步骤三即时安装服务模块将多个文件存储地址信息以类似URL的形式返回到客户端的即时安装代理模块。
10.根据权利要求8所述的基于Linux内核的移动设备虚拟化系统的即时安装方法,其特征在于,所述流式加载是通过网络文件系统NFS实现;首先从存储服务器上读取当前需要的程序块,再一块一块的把需要的程序通过网络加载到客户端上;且每一块程序块都能直接加载到移动设备的内存中并完成当前的执行任务。
【文档编号】H04L29/08GK104202332SQ201410468847
【公开日】2014年12月10日 申请日期:2014年10月11日 优先权日:2014年10月11日
【发明者】张尧学, 王斌, 邓朝阳, 盛津芳, 肖斯诺 申请人:中南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1