为嵌入式设备构建操作系统镜像的系统和方法转让专利

申请号 : CN200980106990.4

文献号 : CN101960419B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : O·温特M·莫伊尼

申请人 : 微软公司

摘要 :

公开了用于为嵌入式设备创建操作系统镜像的示例系统和方法。在一个示例中,该系统包括含有嵌入式设备的操作系统的操作系统库模块、包含被编程为在嵌入式设备上执行的一个或多个软件应用程序的软件应用程序模块、以及被编程为标识这一个或多个软件应用程序中的依赖性的分析程序模块。该系统还包括包含被添加到操作系统库的一个或多个组件的组件模块、以及被编程为将依赖性映射到来自组件模块的一个或多个组件的映射模块。也描述了使用集成开发系统为嵌入式设备创建操作系统镜像的方法。

权利要求 :

1.一种用于为嵌入式设备创建操作系统镜像(114)的系统(100),所述系统包括:包括嵌入式设备的操作系统的操作系统库模块(102);

软件应用程序模块(104),所述软件应用程序模块(104)包括被编程为在所述嵌入式设备上执行的一个或多个软件应用程序;

被编程为标识所述一个或多个软件应用程序中的依赖性的分析程序模块(106);

包括被添加到操作系统库的一个或多个组件的组件模块(108);

被编程为将依赖性映射到来自组件模块(108)的一个或多个组件的映射模块(110);

被编程为准许为所述软件应用程序模块选择若干文件格式之一的用户界面模块;

构建操作系统镜像的构建模块;

被编程为测试所述操作系统镜像,确定所述操作系统中的附加依赖性,以及标识用于解决所述附加依赖性的组件的测试和设计模块。

2.如权利要求1所述的系统,其特征在于,所述组件选自:媒体播放器;web浏览器;和防火墙。

3.如权利要求1所述的系统,其特征在于,所述映射模块还被编程为使用散列表来映射依赖性。

4.如权利要求1所述的系统,其特征在于,还包括被编程为包含用于选择软件应用程序的格式的第一分区以及用于选择组件的第二分区的用户界面。

5.一种用于为嵌入式设备创建操作系统镜像(114)的集成开发系统(100),所述集成开发系统包括:包括嵌入式设备的操作系统的操作系统库模块(102);

包含以一种或多种文件格式提供的一个或多个软件应用程序的软件应用程序模块(104);

包含被编程为分析所述软件应用程序以确定所述软件应用程序中的操作系统依赖性的一个或多个分析程序的分析程序模块(106);

包括被编程为添加到操作系统的一个或多个组件的组件模块(108);

准许选择所述文件格式和组件的用户界面模块(210);以及执行所述分析程序以分析所述软件应用程序并将依赖性映射到在用户界面(300)上显示的组件的依赖性处理模块(212);

构建操作系统镜像的构建模块;

测试所述操作系统、确定所述操作系统中的附加依赖性、以及标识用于解决所述附加依赖性的组件的测试和设计模块。

6.如权利要求5所述的系统,其特征在于,所述组件选自:媒体播放器;web浏览器;和防火墙。

7.如权利要求5所述的系统,其特征在于,还包括被编程为使用散列表来映射依赖性的映射模块。

8.一种用于使用集成开发系统(100)为嵌入式设备创建操作系统镜像(114)的方法,所述方法包括:标识要在操作系统库上执行的软件应用程序;

从所述集成开发系统(100)的用户界面(300)为所述软件应用程序选择文件格式;

使用所述集成开发系统(100)中所包括的一个或多个分析程序来对所述软件应用程序执行依赖性分析;

根据所述依赖性分析确定操作系统依赖性;

将所述依赖性映射到要被添加到操作系统库的一个或多个组件;

在所述用户界面(300)上显示所述一个或多个组件;

将所选组件添加到所述操作系统库;以及

将所述软件应用程序添加到所述操作系统库;

从操作系统库构建操作系统镜像;

测试所述操作系统镜像以确定是否存在任何附加依赖性;以及当作出存在所述附加依赖性的判断时,标识用于解决所述附加依赖性的组件。

9.如权利要求8所述的方法,其特征在于,映射依赖性还包括使用散列表来映射依赖性。

10.如权利要求8所述的方法,其特征在于,所述组件选自:媒体播放器;web浏览器;

和防火墙。

11.如权利要求8所述的方法,其特征在于,还包括准许用户手动取消选择所映射的组件以及选择附加组件。

12.如权利要求8所述的方法,其特征在于,还包括将附加组件添加到所述操作系统库以解决所述依赖性。

13.如权利要求12所述的方法,其特征在于,映射依赖性还包括使用散列表来映射依赖性。

说明书 :

为嵌入式设备构建操作系统镜像的系统和方法

技术领域

[0001] 本发明涉及计算机操作系统,尤其涉及构建操作系统镜像。
[0002] 背景
[0003] 嵌入式设备通常是单应用程序设备。为了使该应用程序在该嵌入式设备上正常工作,嵌入式设备的操作系统必须支持应用程序的所有特征。常常,当一应用程序被集成到嵌入式设备的操作系统镜像时,在应用程序中存在有在操作系统镜像中不被支持的依赖性。例如,应用程序可能需要呈现视频并因此需要诸如视频播放器等系统组件来这样做。
[0004] 系统组件通常被添加到操作系统镜像以试图满足这样的依赖性。将所需系统组件添加到操作系统镜像并测试所构建的镜像以确保依赖性得到满足的过程通常是使构建过程长且乏味的反复试验方法。
[0005] 概述
[0006] 根据一个实施例,用于为嵌入式设备创建操作系统镜像的系统包括含有嵌入式设备的操作系统的操作系统库模块、包含被编程为在嵌入式设备上执行的一个或多个软件应用程序的软件应用程序模块、以及被编程为标识这一个或多个软件应用程序中的依赖性的分析程序模块。该系统还包括包含被添加到操作系统库的一个或多个组件的组件模块、以及被编程来将依赖性映射到来自组件模块的一个或多个组件的映射模块。
[0007] 根据另一实施例,用于为嵌入式设备创建操作系统镜像的集成开发系统包括含有嵌入式设备的操作系统的操作系统库模块、以及含有以一种或多种格式提供的一个或多个软件应用程序的软件应用程序模块。该系统还包括包含被编程为分析软件应用程序以确定软件应用程序中的操作系统依赖性的一个或多个分析程序的分析程序模块、包含被编程为被添加到操作系统的一个或多个组件的组件模块、允许选择格式和组件的用户界面模块、以及执行分析程序以分析软件应用程序并将依赖性映射到在用户界面上显示的组件的依赖性处理模块。
[0008] 根据又一实施例,使用集成开发系统为嵌入式设备创建操作系统镜像的方法包括:标识要在操作系统库上执行的软件应用程序;从集成开发系统的用户界面选择软件应用程序的格式;使用集成开发系统中所包括的一个或多个分析程序对软件应用程序执行依赖性分析;根据依赖性分析确定操作系统依赖性;将依赖性映射到要添加到操作系统库的一个或多个组件;在用户界面上显示这一个或多个组件;将所选组件添加到操作系统库并将该软件应用程序添加到操作系统库。
[0009] 提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
[0010] 附图描述
[0011] 合并在本说明书中并形成其一部分的附图示出了本发明的若干方面,并且与说明书一起用于解释本发明的原理。在附图中:
[0012] 图1示出了用于为嵌入式设备创建操作系统镜像的示例系统。
[0013] 图2示出了用于使用集成开发系统为嵌入式设备创建操作系统镜像的示例系统。
[0014] 图3示出了用于使用集成开发系统为嵌入式设备创建操作系统镜像的系统的示例用户界面。
[0015] 图4示出了用于使用集成开发系统为嵌入式设备创建操作系统镜像的示例方法的流程图。
[0016] 详细描述
[0017] 本申请针对用于为嵌入式设备构建操作系统镜像的系统和方法。在此处所述的示例中,各系统和方法使用依赖性分析程序来为在嵌入式设备上运行的一个或多个软件应用程序确定操作系统依赖性。标识可被添加到操作系统镜像以解决这些依赖性的操作系统组件。分析程序可独立运行或作为集成开发系统的一部分运行。
[0018] 图1示出了用于在嵌入式设备上构建定制操作系统镜像的示例系统100。示例系统100包括操作系统库模块102、软件应用程序模块104、分析程序模块106、组件模块108、映射模块110以及构建模块112。构建的最终结果是定制的操作系统镜像114。
[0019] 示例操作系统库模块102包括用于嵌入式系统的诸如举例而言美国华盛顿州雷德蒙市微软公司所提供的 嵌入式CE或XP嵌入式操作系统等的操作系统库。也可使用其他操作系统。操作系统库是包含诸如内核、文件系统、核心组件等的基本功能的完全操作系统的外壳。
[0020] 软件应用程序模块104包括在嵌入式操作系统上运行的一个或多个软件应用程序,诸如举例而言运行在销售点(POS)设备上的POS应用程序。软件应用程序模块104可需要一个或多个系统组件在操作系统中的支持。这样的需求被称为依赖性。例如,软件应用程序模块104可需要音频能力,这又需要将媒体组件添加到操作系统库模块102。如以下进一步描述地,某些其他示例依赖性包括而非限制:用于呈现超文本标记语言格式的文档的web浏览器以及用于限制来自和去往嵌入式设备的连接的防火墙。
[0021] 为确定依赖性,分析程序模块106被编程为分析并标识与软件应用程序模块104相关联的依赖性。这样的分析程序的一个示例是Dumpbin.exe,这是可用于标识与软件应用程序模块104相关联的依赖性的命令行工具。Dumpbin.exe 分析二进制文件和动态链接库的结构。在另一示例中,分析程序诸如是Depends.exe,它被编程为扫描软件应用程序模块104并确定与之相关联的、可能阻止软件应用程序正常操作的任何依赖性。这样的分析程序通常是可单独运行或在诸如由微软公司提供的VISUAL 开发系统等集成开发系统的上下文内运行的静态程序。
[0022] 软件应用程序中被分析程序模块106发现的依赖性被映射到用于解决依赖性的操作系统组件。这些组件被包括在示例组件模块108中。由映射程序模块110执行映射。操作系统组件的一些示例包括诸如由微软公司提供的INTERNET 因特网浏
览器等web浏览器;诸如WINDOWS 播放器等媒体组件;以及诸如Windows防火墙等防火墙组件。有可能有组件的其他示例。
[0023] 映射程序模块110可被编程为使用各种技术来完成将依赖性映射到组件。在某些示例中,使用列表、表、数据库或任何其他数据结构来映射依赖性。在所示的非限制性示例中,使用表来映射依赖性。可使用的一个示例表是包括将键与值相关联的数据结构的散列表。散列表包括可能依赖性的列表,并将依赖性映射到满足依赖性的一个或多个系统组件。有可能有其他配置。
[0024] 构建模块112被用于使用所标识的操作系统组件来构建操作系统镜像。这一过程的最终结果是满足软件应用程序模块104中的依赖性的操作系统镜像114。定制的操作系统镜像114可被嵌入在诸如POS设备的嵌入式设备中以便在期望的环境中操作该设备。
[0025] 图2示出了用于为嵌入式设备构建操作系统镜像的示例集成开发系统200。这样的示例集成开发系统的一个示例是VISUAL 开发系统。也可使用其他工具。例如,在另一示例中,开发系统200是用于标识依赖性、将依赖性映射至系统组件、和/或创建定制操作系统镜像的独立工具,如以下进一步描述。
[0026] 集成开发系统200包括操作系统库模块102、软件应用程序模块104、分析程序模块106、组件模块108以及构建模块112。示例集成开发系统200还包括用户界面模块210、依赖性处理模块212、构建模块214以及测试和设计模块216。
[0027] 示例用户界面模块210一般准许用户控制依赖性的标识、将依赖性映射至系统组件以及创建定制操作系统镜像。例如,用户界面模块210准许用户为软件应用程序模块104选择格式。可选择若干格式之一,包括二进制文件、源代码文件以及安装文件。示例用户界面模块212也提供可被添加到操作系统库模块102的组件的显示。
[0028] 示例依赖性处理模块212在软件应用程序上运行一个或多个分析程序、标识该软件应用程序中的操作系统依赖性、并将依赖性映射到解决这些依赖性的操作系统组件。在一些实施例中,依赖性处理模块212将所标识的操作系统组件自动添加到操作系统组件列表,并基于这些组件构建新的操作系统镜像。在其他实施例中,所标识的组件经由用户界面模块210向用户呈现,并且用户选择要添加的组件。
[0029] 一旦用户选择要被添加到操作系统库模块102的组件,构建模块214就用于构建操作系统镜像。所构建的操作系统镜像然后由测试和设计模块216测试以确定在操作系统中是否存在任何附加的依赖性。测试和设计模块216包括分析由构建模块112创建的操作系统镜像的分析程序。因为操作系统镜像可包括软件和硬件依赖性两者,所以测试和设计模块216可被编程为发现依赖性处理模块212可能漏掉的新依赖性。
[0030] 示例测试和设计模块216标识任何新的操作系统依赖性并标识可解决这些依赖性的操作系统组件。在一些实施例中,测试和设计模块216将所标识的操作系统组件自动添加到操作系统组件列表,并基于这些组件构建新的操作系统镜像。在其他实施例中,所标识的组件经由用户界面模块210向用户呈现,并且用户选择要添加的组件。
[0031] 图3示出了由用户界面模块210生成的示例用户界面300。示例用户界面300包括用于选择软件应用程序的格式的分区302以及用户选择组件的分区304。
[0032] 示例分区302包括用于选择软件应用程序的文件格式的复选框。所包括的有用于二进制文件格式的复选框306、用于源文件格式的复选框308以及用于安装文件格式的复选框310。
[0033] 示例组件分区304包括用于选择系统组件以满足依赖性的复选框。在所示示例中,组件分区304列出诸如以下的组件:专有用户界面312如微软公司所提供的XP操作系统界面;用于媒体播放器的复选框314;用于web浏览器的复选框316;用于防火墙的复选框318;以及用于网络框架诸如举例而言由微软公司提供的.Net框架的复选框320。有可能有其他组件。
[0034] 在示例实施例中,分区304中的一个或多个复选框可由集成开发系统200自动选取以选择依赖性处理模块212所标识的组件来解决软件应用程序中的依赖性。除自动选取以外,用户可通过手动选取分区304中的复选框中的一个或多个来选择附加组件。
[0035] 在示例实施例中,系统100、200和用户界面300在一个或多个计算机系统上实现。在示例实施例中,系统100、200包括处理单元和计算机可读介质。计算机可读介质可包括存储器,如易失性(诸如RAM)、非易失性(诸如ROM、闪存等)或其某种组合。系统100、200也包括海量存储(可移动和/或不可移动),如磁/光盘/带。操作系统和一个或多个应用程序可被存储在系统100、200上。有可能有其他配置。
[0036] 图4是示出用于使用集成开发系统为嵌入式设备创建操作系统镜像的示例方法400的流程图。如上所述,集成开发系统一般用于为指定嵌入式操作系统平台构建操作系统镜像。
[0037] 一开始,在方法400的操作402处,标识软件应用程序以添加到操作系统平台。这例如可通过在打开示例集成开发系统中的项目文件和选择软件应用程序来完成。在操作404处,选择软件应用程序的文件类型,诸如举例而言二进制文件、源代码文件或安装文件。
选择可通过选择对应于合适文件类型的复选框来在集成开发系统的用户界面上完成。有可能有其他备选的选择方法,诸如举例而言通过使用集成开发系统中的项目文件。
[0038] 在其他示例中,用户也可选择其他参数。例如,在某些实施例中,集成开发系统被编程为处理多种类型的操作系统,诸如 嵌入式CE或XP嵌入式操作系统。在这样的示例中,用户可在软件应用程序的分析之前选择哪一操作系统是合乎需要的。
[0039] 在操作406处,针对该软件应用程序运行集成开发系统中所包括的一个或多个分析程序以确定软件应用程序中是否存在任何操作系统依赖性。在操作408处,所标识的依赖性被映射到用于解决依赖性的操作系统组件。
[0040] 所标识的操作系统组件然后在操作410处被显示在集成开发系统的用户界面上。集成开发系统可例如通过在用户界面上选取所标识组件的复选框来显示这些组件。在操作
412处,用户选择接受所标识组件、取消选择一组件或手动选择附加组件。一旦用户对选择满意,就在操作414处将软件应用程序添加到操作系统库并在操作416处构建操作系统镜像。
[0041] 在操作418处,测试所构建的镜像以确定是否存在附加的依赖性。例如,集成开发系统可包括附加的测试和分析程序,它们从操作系统硬件的立场来测试所构建的操作系统镜像。测试和分析程序可标识可被添加以进一步调节操作系统镜像的附加组件。在操作420处,可将这些附加的组件添加到操作系统镜像。这些组件的添加可由集成开发系统自动完成或可由用户手动添加。最后,在操作422处,如果添加了附加的组件,则在集成开发系统上重新构建操作系统镜像。
[0042] 尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。