用于封闭系统的编程框架.pdf

上传人:1** 文档编号:1040147 上传时间:2018-03-27 格式:PDF 页数:27 大小:1.27MB
返回 下载 相关 举报
摘要
申请专利号:

CN200880012469.X

申请日:

2008.03.20

公开号:

CN101669111A

公开日:

2010.03.10

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/00申请公布日:20100310|||专利申请权的转移IPC(主分类):G06F 17/00变更事项:申请人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州登记生效日:20150727|||实质审查的生效IPC(主分类):G06F 17/00申请日:20080320|||公开

IPC分类号:

G06F17/00

主分类号:

G06F17/00

申请人:

微软公司

发明人:

P·L·布莱施; S·哈戈瑞伍斯; T·米勒; M·O·皮乔西奥; J·M·沃克

地址:

美国华盛顿州

优先权:

2007.4.20 US 11/737,921

专利代理机构:

上海专利商标事务所有限公司

代理人:

张政权;钱静芳

PDF下载: PDF下载
内容摘要

公开了使用编程框架来对计算平台进行平台抽象的机制。该编程框架允许应用程序通过对平台进行抽象来以相同的方式与不同的平台交互。应用程序对跨不同平台的编程框架使用相同的指令,且该编程框架修改该指令以符合平台专用要求。该编程框架还代表应用程序仿真平台专用的所期望的应用程序行为。该编程框架还可为平台提供附加安全层以限制应用程序的访问。

权利要求书

1: 一种用于通过使用编程框架来创建计算系统中的平台抽象的方法,包 括: 在编程框架上从至少一个应用程序接收至少一个指令; 在所述编程框架内修改所述至少一个指令以符合计算设备操作系统的要 求;以及 将经修改的至少一个指令从所述编程框架传送至所述计算设备操作系统, 其中所述编程框架能够在具有不同的操作系统和硬件的至少两个计算设备上 配置,并且其中所述编程框架在所述至少两个计算设备上以相同的方式从所述 至少一个应用程序接收所述至少一个指令,而不管所述计算设备的操作系统和 硬件的不同要求。
2: 如权利要求1所述的方法,其特征在于,所述计算设备操作系统具有至 少一个资源层,并且其中所述编程框架将所述至少一个指令传送至所述计算设 备操作系统的至少一个资源层。
3: 如权利要求2所述的方法,其特征在于,所述计算设备操作系统具有包 括至少图形层、音频层、输入层和存储层的资源层。
4: 如权利要求2所述的方法,其特征在于,所述编程框架通过至少一个应 用程序编程接口(API)来将所述至少一个指令传送至所述计算设备操作系统 的至少一个资源层。
5: 如权利要求1所述的方法,其特征在于,所述编程框架被集成到所述计 算设备操作系统中。
6: 如权利要求1所述的方法,其特征在于,所述编程框架从所述操作系统 接收至少一个指令,如符合所述应用程序的要求所需地修改所述至少一个指 令,并且将所述至少一个指令传送至所述应用程序。
7: 如权利要求1所述的方法,其特征在于,在所述编程框架上从所述至少 一个应用程序接收到的至少一个指令包括至少一个对由所述计算设备操作系 统控制的资源的请求。
8: 一种具有用于执行如权利要求1所述的步骤的计算机可执行指令的计 算机可读介质。
9: 一种用于通过使用编程框架来仿真计算系统中所期望的应用程序行为 的方法,包括: 在编程框架上从至少一个应用程序接收至少一个指令; 在所述编程框架内确定来自所述至少一个应用程序的至少一个指令是否 需要附加指令来符合计算设备操作系统对应用程序行为的期望;以及 在适当的时间并且以适当的方式来将附加指令从所述编程框架传送至所 述计算设备操作系统以使得所述编程框架仿真所述计算设备操作系统所期望 的所述应用程序的行为。
10: 如权利要求9所述的方法,其特征在于,所述计算设备操作系统具 有至少一个资源层,并且其中所述编程框架将所述附加指令传送至所述计算设 备操作系统的至少一个资源层。
11: 如权利要求10所述的方法,其特征在于,所述计算设备操作系统 具有包括至少图形层、音频层、输入层和存储层的资源层。
12: 如权利要求10所述的方法,其特征在于,所述编程框架通过至少 一个应用程序编程接口(API)来将所述至少一个指令传送至所述计算设备操 作系统的至少一个资源层。
13: 如权利要求9所述的方法,其特征在于,在所述编程框架上从所述 至少一个应用程序接收到的至少一个指令包括至少一个对由所述计算设备操 作系统控制的资源的请求。
14: 如权利要求9所述的方法,其特征在于,所述编程框架被集成到所 述计算设备操作系统中。
15: 一种具有用于执行如权利要求9所述的步骤的计算机可执行指令的 计算机可读介质。
16: 一种用于通过使用编程框架来向计算设备提供附加安全措施的方 法,包括: 在编程框架上从至少一个应用程序接收至少一个指令;以及 在所述编程框架内确定所述至少一个指令是否违反计算系统的安全策略, 其中如果所述至少一个指令没有违反所述计算系统的安全策略,则所述编程框 架将命令传送至所述计算系统的操作系统,并且其中如果所述至少一个指令的 确违反所述计算系统的安全策略,则所述编程框架不将所述命令传送至所述计 算系统的操作系统。
17: 如权利要求16所述的方法,其特征在于,在所述编程框架上从所 述至少一个应用程序接收到的至少一个指令包括至少一个对由所述计算设备 的操作系统控制的资源的请求。
18: 如权利要求16所述的方法,其特征在于,如果所述至少一个指令 没有违反所述计算系统的安全策略,则所述编程框架通过至少一个应用程序编 程接口(API)来将所述命令传送至所述计算系统的操作系统。
19: 如权利要求16所述的方法,其特征在于,所述编程框架被集成到 计算设备操作系统中。
20: 一种具有用于执行如权利要求16所述的步骤的计算机可执行指令 的计算机可读介质。

说明书


用于封闭系统的编程框架

    背景

    开发在一个计算平台上表现良好的软件应用程序是复杂的任务,但开发在多个平台上表现良好的应用程序更加困难。存在许多为了控制计算平台的硬件和操作系统以产生开发者所需的结果而必须执行和管理的任务,并且完成这些任务的方式在各平台之间广泛地变化。还存在对在各平台之间变化的应用程序行为的期望。尽管具有平台制造商的完全支持,但对于专业软件开发者而言编写正确地执行不同平台上所需的所有任务并创建遵照这些平台的预期行为的新应用程序是非常费时且复杂的。对于业余爱好者、学生开发者或者制造商所批准的开发者圈子之外的其他程序员而言,应用程序开发的这个方面甚至更具有挑战性。

    这在诸如游戏控制台等封闭系统中尤其如此。游戏控制台通常只允许由制造商控制的“经签署的”或经认证的游戏在这些控制台上执行。该限制可出于各种原因而作出,包括为发行商保护维护严格控制的环境的商业模型、防止知识产权侵犯或控制作弊的可能性。然而,存在想要创建其自己的用于封闭系统以及更开放的平台的程序的自制(homebrew)开发者和业余爱好者的极速增长的市场。这些开发者花费时间和精力来攻击(hack)游戏控制台以允许未经签署的代码在这些控制台上运行。将会期望具有使得这些开发者能够创建其内容而不必侵入封闭系统同时仍旧保持对这些系统的保护级别的合法方式。

    因此,需要使开发者无需针对不同平台和操作系统来定制其软件的方式。如果开发者能够使用将允许程序在不同平台上运行而不为处理不同的底层软件或硬件而定制应用程序代码的对操作系统的标准接口或编程框架来编写程序,这将极大地简化他们的工作。这一框架将需要允许开发者以相同的方式与各种计算设备的操作系统交互以使得该编程框架处理底层代码和硬件中的差异。该接口还将通过包括确保所提供的开发者代码遵守底层平台的限制和要求的检查和确认来保护该平台。这将解放开发者以使其编程努力集中于其程序的创造性方面而不必担心使程序与不同的操作系统和硬件一起工作的更乏味的任务。

    概述

    提供了允许开发者代码通过对底层平台进行抽象的编程框架来访问计算系统的资源的机制。通过提供跨多个平台的一致的框架,制造商能够通过使得更易于获取对操作系统资源和硬件的访问权来方便第三方软件开发。在当前所公开的主题的一方面,提供平台的操作系统层和应用软件之间的编程框架。该框架形成中间层,该中间层代表应用软件来与诸如图形层、音频层、输入层和存储层等各种系统层进行通信。这些系统层与平台操作系统和硬件一起工作以便完成该平台上的实现应用软件所需的任务。

    该编程框架提供对计算平台的标准接口以允许开发者内容控制操作系统及相关联的资源的各方面。这提供了使用相同的应用程序代码来控制各种平台的方式,由此使开发者无需担心使得特定硬件和操作系统资源与其应用程序一起工作。该编程框架创建平台抽象以使得开发者代码以相同的方式与计算平台的单个、抽象出的版本交互,而不管其上运行该代码地实际平台。该框架实现指示操作系统和硬件执行实现开发者应用程序所必需的任务的平台专用方面,从而使开发者从该任务中解放出来。该框架还提供平台所期望的适当行为以使得应用程序能够成功地在该平台上运行,并且在应用程序代码和平台之间添加附加安全层。

    应当注意,提供本概述以便用简化形式介绍下面在详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

    附图简述

    以上的概述以及以下的详细描述在结合附图阅读时能更好地理解。为了阐明本发明,示出了本发明的各方面。然而,本发明不限于所讨论的特定方面。包括以下附图:

    图1示出了其中开发者软件直接与各操作系统层交互的现有技术系统;

    图2是示出其中开发者软件与编程框架交互作为与各操作系统层进行通信的方式的示例系统的示图;

    图3是示出编程框架通过将开发者软件请求转换成操作系统图形层所期望的格式来提供平台抽象的示例方式的示图;

    图4是进一步示出编程框架通过将开发者软件请求转换成不同的操作系统图形层所期望的另一种格式来提供平台抽象的示例方式的示图;

    图5是示出编程框架通过在将请求从开发者代码传递至操作系统图形层时仿真适当的代码行为来提供平台抽象的示例方式的示图;

    图6示出了表示其上可实现根据当前所公开的主题的编程框架的示例性、非限制计算系统环境的框图;以及

    图7示出了例示其上可实现根据当前所公开的主题的编程框架的示例性、非限制性多媒体控制台设备的框图。

    详细描述

    概览

    通常,在计算机平台上运行的应用程序直接与操作系统交互。通过操作系统,应用程序操纵完成任务所需的平台硬件和资源。应用程序通常将使用应用程序接口(API)来与操作系统的各个元素进行通信以完成其需要的系统级任务。这些任务的示例包括在监视器上呈现图形图像、在扬声器上创建音频输出、通过设备(例如,键盘、鼠标或游戏控制器)来从用户接收输入、访问存储器以及访问存储设备(例如,硬盘驱动器、软盘驱动器或闪速驱动器)。API以及如何使用API将由于硬件和操作系统在各平台之间变化而必定随平台而变化。因此,在平台上运行的每一个应用程序在其想要如所期望地工作的情况下都必须正确地与该平台的特定操作系统及其相关联的API交互。此外,存在计算机平台上运行的应用程序所期望的行为。这些所期望的行为也取决于平台而广泛地变化。应用程序无法根据平台期望来操作可导致该应用程序失败或不正确地执行。

    另一方面,在计算机平台上运行的大多数应用软件都将具有关于其对于平台资源的需求和期望的类似要求。即,应用软件最通常将需要使用诸如存储器、视觉显示器、控制器等对于大多数计算平台是典型的硬件和软件。因此,为应用程序提供对平台进行抽象的接口是可能的,从而使得应用程序无论平台如何都看见对平台的相同接口,同时仍旧提供对大多数应用程序所需资源的访问。通过提供这一接口,开发者无需专注于其应用程序的平台专用方面并且可创建成功地与多个平台交互的单个程序。

    在本发明的一个示例性且非限制性方面,提供编程框架以执行平台抽象。该编程框架提供类似于对于单独的平台资源的API的对平台的接口,但该编程框架可以是对整个平台的接口,从而允许访问该平台的若干资源。因为应用软件与平台的抽象出的版本一起工作,所以该应用软件通过该编程框架来执行相同的完成任务的动作而不管该框架之下的硬件或软件。该编程框架接受来自应用程序的对平台资源的请求并且将该请求传送到该资源,且修改和格式化该请求以使其以该资源所需的特定方式正确地接收,由此确保该请求的正确执行。同样,从系统资源发往应用软件的信息和请求通过编程框架来传递给该应用软件。

    该编程框架还代表应用程序提供平台所期望的行为以使得该应用程序对于该平台表现为“行为良好的”。这解除了开发者必须适应各种平台所期望的行为中的差异的负担。

    该编程框架为平台提供附加安全层。通过提供对平台的标准化接口,该框架控制来自应用软件的通信和请求如何到达平台资源。这提供了针对否则可能访问受限平台资源或执行不安全的或非平台或平台制造商所期望的动作的应用程序开发者代码的附加检查。该编程框架接口还通过向业余爱好者或自制开发者提供访问平台资源的更容易且更高效的方式来减少攻击计算系统,尤其是诸如游戏控制台等封闭系统的动机,由此消除了对这些攻击的需求。

    编程框架的各方面

    当前所公开的主题的该节聚焦于用于提供平台抽象的编程框架的各方面。当前所公开的主题适用于其中可能期望允许软件开发者创建访问设备资源中的至少一个的应用软件的任何计算设备。为了获得对该框架的更好的理解,查看现有技术是有益的。

    图1示出了平台150上的现有技术系统,其中开发者代码102直接与各操作系统层交互以达到所需结果。平台150可以是诸如游戏控制台等封闭计算设备,其中该封闭计算设备被配置成执行操作系统和游戏软件;或者平台150可以是诸如个人计算机等被配置成执行各种各样的软件的更开放的平台。示出了在典型的平台150上可用的各示例层。这些示例层包括图形层110、音频层115、输入层120、存储层125、网络层130和数学层135。这些层中的每一个都负责不同的任务。例如,图形层110可负责呈现图形(包括但不限于,平面着色、普通映射、纹理映射等);音频层115,顾名思义,可负责封闭系统上的音频;输入层120可负责处理来自用户的输入,诸如控制器按钮选择、使用输入设备的点击等;存储层125可负责存储特定内容或重新调用特定内容;网络层130可允许网络访问,如允许应用程序联系因特网上的服务器;以及数学层135可允许执行特定数学功能,例如以便允许更高效的映射渲染(如果涉及图形的话)。

    这些层110、115、120、125、130和135中的每一个都帮助为应用程序提供对平台150资源的访问。这些层还提供用户模式100和系统管理程序(例如,内核)模式101之间的安全门,开发者代码102可能需要通过该安全门以确保安全的计算(即,以使得该开发者代码不会出于非平台制造商或其他感兴趣各方所预期的目的而接管底层本机OS层103及任何相关联的平台资源150)。

    层110、115、120、125、130和135通常是平台、操作系统或硬件专用的。例如,组成具有32GB硬盘驱动器的平台的存储层125的软件将不同于具有64GB硬盘驱动器的平台上所使用的软件。同样,平台操作系统的一个版本可以与先前版本不同地实现存储层125。这是必然的,因为不同的硬件需要不同的软件来控制它。同样,底层操作系统的不同版本将会具有不同的软件以及完成系统任务的不同方法。

    通常,层110、115、120、125、130和135将通过API经由应用程序访问层104来访问。这些API将随组成这些层的软件变化而变化。因此,应用程序代码必须允许这点,并且或者检测和提供对其中期望应用软件正确地运行的所有平台上所存在的各种API的适当输入,或者限于单个平台。虽然这由专业开发者来定期理解并处理,但对于这些专业开发者而言具有与其一起工作的公共框架将会容易得多以使其不必在确保其代码多平台兼容上花费时间。对于新手开发者和业余爱好者,多平台支持甚至是更大的挑战。

    此外,将用于访问层110、115、120、125、130和135的API可能是非常特定且复杂的,从而需要全面理解这些API的要求以及它们如何与层一起工作。无法在请求任务时向API提供完整且正确的数据可能导致任务失败或错误情况。API还可期望来自应用程序的特定行为以便正确地工作。非专业开发者或并非直接与平台制造商共事的开发者或没有平台制造商的批准的开发者可能无法容易地获得这些行为的知识。同样,虽然这通常由专业开发者来处理,但处理软件开发的这些方面对于新手开发者而言可能是非常令人畏缩的任务。

    与图1相反,图2示出了利用编程框架205来方便开发者代码202和平台250的各元素之间的通信的系统。平台250可以是诸如游戏控制台等封闭计算设备,或者是诸如个人计算机等开放式平台,其中该计算设备被配置成执行实现编程框架205的操作系统软件组件。应用程序访问层204中的层210、215、220、225、230和235在功能上类似于上文中图1所描述的层。编程框架205对用于访问层210、215、220、225、230和235的API进行抽象。在本发明的一示例性且非限制性方面,编程框架205提供对诸如层210、215、220、225、230和235等平台资源的简化接口。此处所使用的术语“接口”构想了通常将由软件使用的任何输入和输出的宽泛定义。

    图3和4示出了编程框架将如何方便应用软件的开发并提供平台抽象的非常简化的示例。注意,此处所描述的示例在出于解释本发明的主题的目的而显示并极大地简化的计算系统的各部分中是非常有限的。还注意,此处所使用的命令的示例是仅出于说明的目的而简化的命令,并且不以任何方式暗示可使用的实际命令或限制本发明。

    图3示出了平台350上的示例系统,其具有视频卡355、本机操作系统303、图形层310和编程框架305。存在CRT(阴极射线管)监视器360,其经由视频卡355连接到平台350。在平台350上运行的开发者代码302可请求平台350在显示器上显示字符集。在该示例中,开发者代码302正在请求在监视器360上显示字符“ABC”。该请求与命令340“显示{ABC}”一起传送到编程框架。该编程框架305将接受该请求,修改该请求以符合图形层310的要求并将该请求提交给图像层310。对于该示例假设图形层310要求如命令330“图形API{打印CRT[ABC][50][60][10]}”所示的那样格式化该命令。在该说明性示例中,图形层310需要编程框架305提供的用于除了将要显示的字符之外的其他显示字符的域,从而解除了应用程序开发者代码302了解图形层310的特定要求的负担。图形层310然后与操作系统层303一起工作,该操作系统层303控制视频卡355,该视频卡355进而指示CRT监视器360显示字符。

    将图3与图4进行对比,图4示出了具有平台450、视频卡455、本机操作系统403、图形层410和编程框架405的系统。存在LCD(液晶显示器)监视器460,其经由视频卡455连接到平台450。此处,相同的开发者代码302在该平台450上运行,并且用与图3中的命令“显示{ABC}”相同的命令来向编程框架405作出相同的请求。编程框架405接受该请求并针对图形层410来正确地格式化该请求,但在这种情况下,因为平台450具有与图3所示的平台不同的资源,所以图形层410的命令要求不同于图形层310的命令要求。因此,编程框架405向图形层410发出命令“图形API{打印LCD[10][50][60][ABC]}”。然而,应用程序开发者代码302对底层平台350和450中的差异可能完全不可知并且仍然取得与相同的命令340相同的结果。图形层410然后与操作系统层403一起工作,该操作系统层403控制视频卡455,该视频卡455进而指示LCD监视器460显示字符。

    该示例示出编程框架如何提供平台抽象。在图3和图4所示的两个示例中,开发者代码302能够将相同的命令340传送到编程框架305和405,而不管底层软件和硬件中的差异。开发者代码302能够与平台350和450交互而不必解决包括对与各图形层API一起工作的不同要求在内的各平台之间的差异。该远离开发者代码对平台进行抽象的能力极大地简化了创建多平台兼容应用程序的工作。确保代码跨平台可行所需的大量乏味的劳动通过使用如此处所使用的编程框架来消除。

    图5示出了编程框架505如何可帮助确保开发者代码在其与平台550交互时展示适当的行为。类似于图3和4,开发者代码302向编程框架505传递命令340形式的请求。框架505接收该请求340并采取使得该命令在底层硬件和软件中实现的步骤。在该示例中,如果图形层510要求请求用于要显示的字符的存储器空间的命令570始终在诸如命令530等请求显示字符的命令之前,则编程框架505将提供该附加请求570。作为其平台抽象的责任的一部分,框架505将发出任何必需的附加命令并执行允许开发者代码302从操作系统层的观点来看表现为正确地工作所需的附加动作,由此帮助确保开发者代码302如所预期的那样执行。这还使开发者无需在应用程序代码302中包括代码行为的不同变体以适应不同平台所期望的各种行为。

    该编程框架还可为平台提供附加安全层。再次参考图2,如果开发者代码202向编程框架205发出访问其不应该可访问的资源的请求,或试图控制或以其他方式执行平台制造商所不准许或不期望的任务,则编程框架205将用作附加防御。编程框架205还可简单地不变得通过其允许这些禁止的行为的接口命令或程序调用可用。虽然诸如图形层210或存储层225等平台250中的系统通常具有内置保护设备,但编程框架205的附加功能用于进一步保护这些资源。例如,如果开发者代码202发出向当前正作为内核或本机操作系统软件203的一部分来使用的存储器片段写入的请求,则编程框架205将会是针对这一请求的第一条防守线。框架205可具有从存储层225接收到的受限存储器位置的列表,该框架205使用该列表来检查来自开发者代码202的存储器请求。在其他情况下,编程框架205可具有诸如盘格式化或改变密码等严格而言对于开发者代码202是不被允许的特定命令或功能的静态列表。

    编程框架的附加、较不直接的安全特征是减少攻入平台,尤其是对于诸如游戏控制台等封闭系统的动机。如果诸如此处所使用的编程框架变得对业余爱好者和新手开发者可用以允许他们在框架所提供的限制内容易地创建软件,则这些开发者将很有可能会选择使用该框架而不是攻入平台。该编程框架将允许这些开发者将其努力集中于开发其软件的创造性方面。他们将不必在想出如何规避限制和封闭系统的必需的软件签署上花费时间和精力。即使在开放式系统中,可访问且易于使用的编程框架的存在也将允许开发者更高效地利用对于平台可用的资源,并激励用户开发新软件。

    示例性计算设备

    如上所述,当前所公开的主题适用于其中可能期望允许软件开发者创建访问设备资源中的至少一个的应用软件的任何计算设备。然而,应当理解,等价于应用软件的内容的其他内容可以与当前所公开的编程框架一起工作,并且当前所公开的主题能够在不限于此处所描述的示例的所有种类的计算设备上实现。因此,以下在图6中描述的通用计算设备仅是一个示例,且本发明的主题可用任何客户机、服务器、便携式或非便携式设备来实现,而无论其是独立的还是具有网络/总线互操作性和交互。由此,本发明主题可在其中蕴含了极少或最少客户机资源的联网主存服务的环境,例如其中客户机设备仅用作到网络/总线的接口(如置于器具中的对象)的联网环境中实现。

    尽管并不是必需的,但本发明的主题可以部分地经由操作系统来实现,以供设备或对象的服务或软件的开发者使用,和/或被包括在结合本发明主题操作的应用软件中。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域技术人员可以理解,本发明主题可以用其它计算机系统配置和协议来实施。

    图6由此示出了其中可实现参考图1-5描述的各方面的合适的计算系统环境600的一个示例,但如以上清楚地描述的,计算系统环境600仅为用于实现当前所公开的主题的合适计算环境的一个示例,并非旨在对本发明的各方面的使用范围或功能提出任何限制。也不应该把计算环境600解释为对示例性操作环境600中示出的任一组件或其组合有任何依赖性或要求。

    参考图6,用于实现以上提到的各方面的示例性计算设备包括计算机610形式的、在上文中也被称为平台的通用计算设备。计算机610的组件可以包括,但不限于,处理单元620、系统存储器630和将包括系统存储器在内的各种系统组件耦合至处理单元620的系统总线621。系统总线621可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。

    计算机610通常包括各种计算机可读介质。计算机可读介质可以是可由计算机610访问的任何可用介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CDROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机610访问的任一其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传送介质。

    系统存储器630可以包括计算机存储介质,其形式为易失性和/或非易失性存储器,诸如只读存储器(ROM)632和/或随机存取存储器(RAM)634。基本输入/输出系统(BIOS)可被存储在存储器630中,它包含帮助在诸如启动期间在计算机610内的元件之间传递信息的基本例程。存储器630通常还包含处理单元620可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,存储器630还可以包括操作系统、应用程序、其它程序模块、和程序数据。

    计算机610也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。例如,计算机610可以包括对不可移动、非易失性磁介质进行读写的硬盘驱动器,对可移动、非易失性磁盘进行读写的磁盘驱动器,和/或对诸如CD-ROM或其它光学介质等可移动、非易失性光盘进行读写的光盘驱动器。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器通常由诸如接口680等不可移动存储器接口连接至系统总线621,而磁盘驱动器或光盘驱动器通常由诸如接口690等可移动存储器接口连接至系统总线621。

    用户除了能够经由控制器来向封闭计算设备提供输入之外,用户可以通过输入设备,如键盘和定点设备(通常指鼠标、跟踪球或触摸垫)向计算机610输入命令和信息。除了这些外围设备之外,其他输入设备可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常由耦合至系统总线621的用户输入640和相关联的接口连接到处理单元620,但是也可由诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构连接。图形子系统也可以被连接到系统总线621。监视器或其它类型的显示设备也通过接口,如输出接口650连接至系统总线621,而输出接口650又与视频存储器通信。除监视器之外,计算机还可以包括其它外围输出设备,如扬声器和打印机,它们可以通过输出接口650连接。

    计算机610可使用至诸如远程计算机670等的一个或多个远程计算机的逻辑连接在网络化或分布式环境中操作,远程计算机670又可以具有与设备610不同的媒体能力。远程计算机670可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点、或任何其它远程媒体消费或传输设备,并且可以包括上面关于计算机610所描述的任何或全部元件。图6所描绘的逻辑连接包括网络671,网络671的示例包括局域网(LAN)或广域网(WAN),但也可包括其它网络/总线。这样的联网环境在家庭、办公室、企业范围计算机网络、内联网和因特网中是常见的。

    当在LAN联网环境中使用时,计算机610通过网络接口或适配器连接到网络671。当在WAN联网环境中使用时,计算机610通常包括调制解调器或用于通过诸如因特网等的WAN建立通信的其它装置。调制解调器可以是内置或外置的,它可以通过输入640的用户输入接口或其它适当机制连接至系统总线621。在网络化环境中,相对于计算机610所描述的程序模块或其部分可被储存在远程存储器存储设备中。本领域的技术人员可以理解,所示和所述的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。

    示例性封闭系统或控制台环境

    接着参考图7,其示出了例示另一示例性、非限制性计算设备,即示例性多媒体控制台的框图,该示例性多媒体控制台可以是封闭的以便只允许访问有限量的由诸如封闭设备制造商或游戏软件发行商等某一签署机构签署的软件组件。图7示出其中可实现所公开的本发明的主题的各方面的多媒体控制台700的功能组件。多媒体控制台700包括具有1级(L1)高速缓存702、2级(L2)高速缓存704和闪存ROM(只读存储器)706的中央处理单元(CPU)701。1级高速缓存702和2级高速缓存704临时存储数据并因此减少存储器访问周期数,从而提高处理速度和吞吐量。闪存ROM 706可存储在多媒体控制台700通电时在引导进程初始化阶段加载的可执行代码。另选地,在初始引导阶段期间加载的可执行代码可被存储在闪存设备(未示出)中。此外,ROM 706可与CPU 701分开放置。

    该控制台可具有对其可用的各种资源,诸如来自用于高速、高分辨率图形处理的视频处理流水线的图形处理单元(GPU)708和视频编码器/视频编解码器(编码器/解码器)714。在该设置中,数据经由总线从图形处理单元708输送到视频编码器/视频编解码器714。视频处理流水线将数据输出到A/V(音频/视频)端口740以传输到电视或其它显示器。存储器控制器710被连接到GPU708和CPU 701以方便处理器访问各种类型的存储器712,诸如但不局限于RAM(随机存取存储器)。

    多媒体控制台700包括较佳地在模块718上实现的I/O控制器720、系统管理控制器722、音频处理单元723、网络接口控制器724、第一USB主控制器726、第二USB控制器728和前面板I/O部件730。USB控制器726和728用作外围控制器742(1)-742(2)、无线适配器748、和外置存储器单元746(例如闪存、外置CD/DVD ROM驱动器、可移动介质等)的主机。网络接口724和/或无线适配器748提供对网络(例如因特网、家庭网络等)的访问并且可以是各种不同有线或无线接口组件中的任一种,包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等等。

    提供系统存储器743以存储在引导进程期间加载的应用程序数据。提供媒体驱动器744且其可包括DVD/CD驱动器、硬盘驱动器、或其它可移动媒体驱动器等。媒体驱动器744可以内置或外置于多媒体控制台700。应用程序数据可经由媒体驱动器744访问,以由多媒体控制台700执行、回放等。媒体驱动器744经由诸如串行ATA总线或其它高速连接(例如IEEE 1394)等总线连接到I/O控制器720。

    系统管理控制器722提供涉及确保多媒体控制台700可用性的各种服务功能。音频处理单元723和音频编解码器732形成具有高保真度和立体声处理的对应音频处理流水线。音频数据经由通信链路在音频处理单元723与音频编解码器726之间传输。音频处理流水线将数据输出到A/V端口740以供外置音频播放器或具有音频能力的设备再现。

    前面板I/O部件730支持暴露在多媒体控制台700外表面上的电源按钮750和弹出按钮752以及任何LED(发光二极管)或其它指示器的功能。系统电源模块736向多媒体控制台700的组件供电。风扇738冷却多媒体控制台700内的电路。

    CPU 701、GPU 708、存储器控制器710、和多媒体控制台700内的各个其它组件经由一条或多条总线互连,包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。

    当多媒体控制台700通电或重新引导时,应用程序数据可从系统存储器743加载到存储器712和/或高速缓存702和704中并在CPU 701上执行。应用程序可呈现在导航到多媒体控制台700上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,媒体驱动器744中包含的应用程序和/或其它媒体可从媒体驱动器744启动或播放,以向多媒体控制台700提供附加功能。

    多媒体控制台700可通过将该系统简单地连接到电视机或其它显示器而作为独立系统来操作。在该独立模式中,多媒体控制台700可以允许一个或多个用户与该系统交互、看电影、听音乐等。然而,随着可通过网络接口724或无线适配器748获得的宽带连接的集成,多媒体控制台700还可在较大网络社区中作为参与者来操作。

    图7所描绘的多媒体控制台是可用于执行诸如游戏等多媒体应用程序的典型的多媒体控制台。多媒体应用程序可以用系统特征来增强,这些系统特征包括例如系统设置、语音聊天、联网游戏、通过网络与其他用户交互的能力、电子邮件、浏览器应用程序等。这些系统特征可启用多媒体控制台700的改进的功能,诸如不同位置的玩家具有经由因特网玩同一个游戏的能力。

    同样,随着时间流逝,可以更新或向多媒体应用程序添加系统特征。并非要求多媒体开发者对多媒体应用程序做出显著修改来提供这些系统特征,此处描述的系统和方法允许多媒体开发者通过结合多媒体应用程序工作的独立的系统应用程序来提供系统特征。例如,系统应用程序可以实现涉及联网能力的功能,从而使多媒体应用程序能够被容易地调整以使多媒体(例如,游戏)开发者进行少量工作即可提供联网能力。这种能力之一是对于多个和联网的用户的系统级通知。使系统级通知成为系统应用程序的一部分而非由诸如运行于系统上的游戏等各个多媒体应用程序处理,为多媒体应用程序开发者将处理诸如游戏邀请等显示通知从开发过程中除去,并允许他们致力于多媒体应用程序本身。

    如上所述,尽管结合各种计算设备和网络体系结构描述了本发明的主题的各示例性实施例,但基本概念可被应用于其中可加载并执行开发者应用软件的任何计算设备或系统。例如,所讨论的各方面的算法和硬件实现可被应用于计算设备的操作系统,可作为设备上的独立对象、作为另一对象的一部分、作为可重复使用的控件、作为可从服务器下载的对象、作为设备或对象与网络之间的“中间人”、作为分布式对象、作为硬件、以存储器、以上任何的组合等来提供。尽管此处选择了示例性编程语言、名称和示例来表示各种选择,但这些语言、名称和示例并不旨在是限制性的。

    此处所述的各种技术可结合硬件或软件,或在适当时以其组合来实现。由此,本发明主题的方法和装置或其特定方面或部分可采取包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中当程序代码被加载到诸如计算机等机器内并由其执行时,该机器成为用于实现所公开的本发明各方面的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。可实现或利用根据这些方面来提供的任何软件的一个或多个程序较佳地以高级过程语言或面向对象编程语言实现以便与计算机系统进行通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。

    所公开的本发明各方面的方法和装置也可以经由以通过某种传输介质传输的程序代码的形式体现的通信来实现,比如通过电线或电缆、通过光纤或经由任何其它传输形式,其中,当程序代码由诸如EPROM、门阵列、可编程逻辑器件(PLD)、客户计算机等机器接收、加载并执行时,该机器成为用于实现所公开的本发明主题的装置。当在通用处理器上实现时,程序代码与处理器相结合来提供一种用于调用本发明主题的功能的独特装置。另外,结合本发明的各方面使用的任何存储技术总是可以是硬件和软件的组合。

    尽管结合各附图的优选实施例描述了上述各方面,但可以理解,可以使用其它类似的实施例,或可以对所述实施例进行修改和添加来执行相同的功能而不背离本发明。例如,本领域技术人员将认识到在本申请中所述的方法可应用于诸如游戏控制台、手持式计算机、便携式计算机等无论是有线还是无线的任何计算设备或环境,且可被应用于经由通信网络连接并通过该网络交互的任何数目的这种计算设备。

    此外,应当强调,构想了包括手持式设备操作系统和其它专用操作系统的各种计算机平台,尤其是在无线联网设备的数量持续增长时。此外,本发明主题的功能可在多个处理芯片或设备中或跨多个处理芯片或设备实现,且存储可类似地跨多个设备来实现。因此,所公开的本发明各方面不应限于任何单个实施例,而是应该根据所附权利要求书的广度和范围来解释。

用于封闭系统的编程框架.pdf_第1页
第1页 / 共27页
用于封闭系统的编程框架.pdf_第2页
第2页 / 共27页
用于封闭系统的编程框架.pdf_第3页
第3页 / 共27页
点击查看更多>>
资源描述

《用于封闭系统的编程框架.pdf》由会员分享,可在线阅读,更多相关《用于封闭系统的编程框架.pdf(27页珍藏版)》请在专利查询网上搜索。

公开了使用编程框架来对计算平台进行平台抽象的机制。该编程框架允许应用程序通过对平台进行抽象来以相同的方式与不同的平台交互。应用程序对跨不同平台的编程框架使用相同的指令,且该编程框架修改该指令以符合平台专用要求。该编程框架还代表应用程序仿真平台专用的所期望的应用程序行为。该编程框架还可为平台提供附加安全层以限制应用程序的访问。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1