在封闭系统中执行未经签署的内容并保护访问转让专利

申请号 : CN200780045480.1

文献号 : CN101553840B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R·D·小耶茨A·S·何T·W·米勒P·L·布莱施

申请人 : 智谷控股有限公司

摘要 :

公开了允许执行未经签署的内容并在这些未经签署的内容在封闭系统上执行时保护该系统中的资源的机制。例如,在封闭系统的操作系统层与实际未经签署的内容之间使用访问层。该访问层可包含各个子层,诸如图形层、音频层、输入层和存储层等。这些层能够控制未经签署的内容可对封闭系统的本地操作系统层及相关联的资源的访问。通过提供这一访问层,未经签署的内容(例如,视频游戏)能够在通常被设计成只运行经签署的内容的封闭系统上运行。

权利要求 :

1.一种用于在封闭系统中执行未经签署的内容并保护访问的系统,包括:

封闭计算设备(200),其中所述封闭计算设备被配置成执行由签署机构授权的软件内容组件(205、210),以及至少一个未经签署的软件内容组件(215、220);

其中所述至少一个未经签署的软件内容组件通过以下动作来在所述封闭计算设备上执行:使得所述封闭计算设备除了向由所述签署机构授权的所述软件内容组件提供接口之外还能虚拟化用于所述至少一个未经签署的软件内容组件的接口,以阻止所述至少一个未经签署的软件内容组件对所述封闭计算设备的资源的直接访问,但允许通过居间层来间接访问,所述接口对应于图形层(510)、音频层(515)、输入层(520)和存储层(525)中的至少一个,所述图形层、所述音频层、所述输入层和所述存储层中的至少一个包括第一缓冲区和第二缓冲区,其中与所述至少一个未经签署的软件内容组件相关联的数据被存储在所述第一缓冲区中,并且所述数据从所述第一缓冲区被复制到所述第二缓冲区中,并且其中所述数据在所述第二缓冲区中确认。

2.如权利要求1所述的系统,其特征在于,所述数据在所述确认后被提供给与所述封闭计算设备相关联的资源。

3.如权利要求1所述的系统,其特征在于,所述数据在所述确认后在被提供给与所述封闭计算设备相关联的资源之前被提供给环形缓冲区。

4.如权利要求1所述的系统,其特征在于,所述至少一个未经签署的软件内容组件经由来自第一计算设备的连接来被提供给所述封闭计算设备。

5.如权利要求1所述的系统,其特征在于,所述至少一个未经签署的软件内容组件使用以下各项中的一个来被提供给所述封闭计算设备:(a)来自第二计算设备的动态通信以及(b)从所述第二计算设备流传送。

6.一种用于在封闭系统中执行未经签署的内容并保护访问的方法,包括:

将封闭计算设备配置成执行由签署机构授权的软件内容组件(1100);

将所述封闭计算设备配置成在所述封闭计算设备上执行至少一个未经签署的软件内容组件,其中所述至少一个未经签署的软件内容组件通过以下动作来在所述封闭计算设备上执行:使得所述封闭计算设备除了向由所述签署机构授权的所述软件内容组件提供接口之外还能虚拟化用于所述至少一个未经签署的软件内容组件的接口(1105),以阻止所述至少一个未经签署的软件内容组件对所述封闭计算设备的资源的直接访问,但允许通过居间层来间接访问,其中所述接口对应于图形层、音频层、输入层和存储层中的至少一个;以及将所述图形层、所述音频层、所述输入层和所述存储层中的至少一个配置成包括第一缓冲区和第二缓冲区,其中与所述至少一个未经签署的软件内容组件相关联的数据被存储在所述第一缓冲区中,并且所述数据从所述第一缓冲区被复制到所述第二缓冲区中,并且其中所述数据在所述第二缓冲区中确认。

7.如权利要求6所述的方法,其特征在于,还包括将唯一的用户标识分配给所述封闭计算设备以及经由所述唯一的用户标识来跟踪对所述封闭计算设备的任何侵害。

8.如权利要求6所述的方法,其特征在于,还包括使用所述接口。

9.如权利要求6所述的方法,其特征在于,还包括在所述确认后将所述数据提供给与所述封闭计算设备相关联的资源。

10.如权利要求6所述的方法,其特征在于,还包括经由来自第一计算设备的连接来将所述至少一个未经签署的软件内容组件提供给所述封闭计算设备。

11.如权利要求6所述的方法,其特征在于,还包括使用以下各项中的一个来将所述至少一个未经签署的软件内容组件提供给所述封闭计算设备:(a)来自第二计算设备的动态通信以及(b)从所述第二计算设备流传送。

说明书 :

在封闭系统中执行未经签署的内容并保护访问

技术领域

[0001] 本发明涉及计算领域,尤其涉及游戏环境。
[0002] 背景
[0003] 游戏系统在当今计算环境中是普遍的。游戏控制台通常是只允许由硬件厂商控制的经签署游戏在这些控制台上执行的封闭系统。该限制可出于各种原因而做出,无论是为发行商保护具有其中对知识产权的侵犯被维持在最低限度的严格控制环境的商业模型,还是为了控制能够在游戏系统上玩的游戏的类型,例如以便允许孩子玩符合家长期望的内容。另外,允许经签署的代码运行帮助控制并缓解其中诸如社区分数或数字货币等特定假设必须是准确的在线社区中游戏作弊的可能性。
[0004] 然而,存在于游戏控制台上的这些严格限制总体上妨碍了较大型的创造性社区在封闭的游戏控制台上开发游戏或类似游戏的应用程序。因此,解决允许开发者、玩家、一般业余爱好者和学生游戏开发者社区等为传统上封闭的系统编写游戏的需求是重要的。另外,解决花费时间和精力来攻击(hack)游戏控制台以允许未经签署的代码在这些游戏控制台上运行的自制(homebrew)开发者(有了以下公开的本发明主题他们本不必花费这些时间和精力)的急速增长市场的问题是重要的。
[0005] 概述
[0006] 提供了允许执行未经签署的内容并在这些未经签署的内容在封闭系统上执行时保护该系统中的资源的机制。在所公开的本发明主题的一方面中,在封闭系统的操作系统层和实际未经签署的内容之间使用访问层。此外,该访问层可包含各种子层,诸如图形层、音频层、输入层和存储层等。这些层能够控制未经签署的内容可对本地操作系统及其相关联资源的访问的类型和量。
[0007] 在一示例性且非限制性方面,所提到的子层中的任一个都可由各种缓冲区组成,诸如封闭系统的用户模式中的输入缓冲区和封闭系统的管理员模式中的相应的确认缓冲区等,其中信息(代码和/或数据)可从前一缓冲区被复制到后一缓冲区(以便在该后一缓冲区中确认)。另外,可使用各种其他组件,诸如可存储已经在所提到的确认缓冲区中得到确认的命令的环形缓冲区等。
[0008] 应当注意,提供本概述是为了以简化的形式介绍将在以下在详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
[0009] 附图简述
[0010] 以上概述及以下详细描述在结合附图阅读时能够被更好地理解。为了阐明本发明,示出了本发明的各方面。然而,本发明不限于所讨论的特定方面。包括以下附图:
[0011] 图1示出了其中只有经签署的软件组件(即,经签署的游戏)才能够在通常封闭的系统上运行的现有技术系统;
[0012] 图2示出了其中经签署和未经签署的游戏两者都能够在封闭系统上运行的系统;
[0013] 图3示出经签署的游戏得到认证而未经签署的游戏未得到认证;
[0014] 图4示出在游戏操作系统和未经签署的内容之间存在游戏访问层,其中这一居间层控制该未经签署的内容的访问;
[0015] 图5示出了在图4中被示为抽象的、更具体地具有其诸如图形、音频、输入和存储等各种子层的访问层;
[0016] 图6更详细地示出了参考图5讨论的各方面,即,聚焦于供各子层使用的各个缓冲区;
[0017] 图7示出封闭系统所做的是虚拟化供未经签署的代码对其执行的硬件;
[0018] 图8示出存在可将未经签署的内容从某一计算源提供给封闭系统的多种方式;
[0019] 图9示出了表示根据所公开的本发明主题的未经签署的内容可在其上执行的示例性、非限制性计算系统环境的框图;
[0020] 图10示出了显示根据所公开的本发明主题的所述未经签署的内容可在其上执行的示例性、非限制性多媒体控制台设备的框图;以及
[0021] 图11以框图的形式示出了在封闭系统中执行未经签署的内容并保护访问。
[0022] 详细描述
[0023] 概览
[0024] 通常,游戏控制台只允许经签署的游戏执行。为了确保经签署的游戏不以任何剥夺方式暴露封闭控制台,通过被称为认证的过程来推出游戏。认证要求游戏在被签署之前遵循一组严格的规则。这些严格的规则适于防止标题不知不觉地造成可允许以对制造商以及内容发行商有害的方式攻击封闭控制台的漏洞(exploit)。具体而言,防止封闭控制台上内容的非法翻印是重要的。
[0025] 在封闭控制台上运行的所有游戏都将需要访问资源,诸如存储器、CPU、光盘驱动器、输入设备和持久存储(如硬盘驱动器)等。因为未经签署的游戏没有经历经签署的游戏所需的典型认证过程,所以在此公开了用于示出确保从未经签署的游戏流至受保护资源的数据是有效的方式的系统、方法和计算机可读介质。
[0026] 在本发明的一个示例性、非限制性方面,所有数据都通过资源管理层灌进,该资源管理层处理对在未经签署的游戏和封闭的游戏控制台中的受保护资源之间来回流动的任何数据的确认。该层确保所有受保护资源都无法被未经签署的游戏直接访问,并且确保进入受保护资源的所有入口点都是已知的。在未经签署的游戏试图错误地访问受保护资源或者访问完全禁止入内的资源的情况下,该层可立即终止所有执行。此外,可从资源管理层获得的入口点可由控制台制造商来固定或预定。这能够有助于防止未经签署的代码任意创建新的入口点。
[0027] 更危险的某些受保护资源可具有在适当位置的另一抽象层。高级缓冲区连同专用协议可抽象对底层资源的大多数调用。在关键点处的高级缓冲区中的调用可被转储清除到资源管理层中,并且然后在被发送到受保护资源之前确认。
[0028] 最后,资源管理系统可检测到诸如安全违反等任何意外的活动,并将该活动记录到中央位置中。耦合有唯一的用户标识系统的该机制给予控制台制造商跟踪按给定用户分组的安全违反的数量的方法。由该系统呈现的数据为控制台制造商提供了跟踪安全漏洞的源头并正确地处理无污点(inviolate)用户的能力。
[0029] 封闭系统中的未经签署的内容的各方面
[0030] 所公开的本发明主题的此章节聚焦于封闭系统中未经签署的内容以执行是安全的(即,以使得该封闭系统中的资源得到保护)方式的执行。为了获得对这些方面的更好的理解,将其与现有技术进行比较是有益的。
[0031] 因此,图1示出了其中只有经签署的软件组件(即,经签署的游戏)才能够在通常封闭的系统上运行的现有技术系统。具体而言,描绘了诸如游戏A185和游戏B 190能够对其执行195的封闭系统180。这些游戏185、190通常由封闭系统180制造商来授权,然而,在某些方面它们可由游戏开发者或某些其他第三方来授权。在任何情况下,系统180都被认为在并非每一个软件应用程序都可在其上运行的意义上是“封闭的”,如同对于通用个人计算机(PC)的情况一样。
[0032] 典型的签署过程在本领域是已知的,并且如以上所提到的,它用于各种目的,诸如限制知识产权的侵犯以及控制谁可访问适当的内容等。然而,不管这一封闭系统180有多少优点,它不必要地限制了其他“未经签署的”游戏(未被游戏机构官方授权的游戏)的开发。这些未经签署的游戏可以是在现有游戏之上构建的游戏(在从经签署游戏的发行商获得许可的情况下甚至是“经签署的”游戏),或者它们可以是无法在封闭系统上运行的新开发的游戏。
[0033] 因此,与图1相比,图2示出了其中经签署和未经签署的游戏两者都能够在封闭系统上运行的系统。与图1的封闭系统(即,封闭系统180)相比不同的封闭系统200不仅可运行经签署的游戏A 205和B 210,而且可运行未经签署的游戏C 215和D 220。但是应当主意,所描绘的封闭系统180和200仅仅是示例性的并且不限于计算设备的任何特定制造商或代(针对这些系统的抽象框可代替图1和2中的具体描绘示出)。
[0034] 如以上所提到的,允许未经签署的游戏内容C 215和D 220在通常不允许未经签署的内容运行的系统200上运行扩展了这一系统200的游戏能力。然而,允许运行未经签署的游戏内容215、220也呈现出安全问题。因为游戏C215和D 220是未经签署的,即,它们未被验证是它们所声称的游戏,所以恶意或不合乎需要的代码和数据可能结束在游戏系统220上运行。如将简短解释的,参考图4,必须存在安全层。并且该安全层不仅首先允许未经签署的游戏运行,而且另外具有防止不合乎需要的代码和数据与游戏系统200资源交互的益处。
[0035] 接着,图3示出经签署的游戏得到认证而未经签署的游戏未得到认证。具体而言,游戏A 305和B 310由某一认证或确认机构签署以使得这些游戏能够在由该机构指定的具体封闭系统上运行335。这些经签署的游戏A 305和B 310被认为是得到认证的325。相反,未得到认证的游戏330是未由某一这样的机构签署的游戏,即,游戏A 315和B 320,并且因此它们通常无法在封闭系统300上执行。有了本发明的以上和以下各方面,这些游戏315、320能够在封闭系统300上运行(除了最初经签署的游戏A 305和B 310之外)。
[0036] 现在转向图4,其示出在游戏操作系统和未经签署的内容之间存在游戏访问层,其中这一居间层控制该未经签署的内容的访问;游戏访问层405是抽象(这将在以下参考图5和6更详细地解释)。简而言之,该层可被广泛地理解成一种供未经签署的内容410与其交互的接口。实际上,它表示用于未经签署的内容410的虚拟化硬件以使得该未经签署的内容410不必严格地与操作系统层400兼容(如对于经签署的游戏内容(例如,图3所示的游戏A 
305和B 310)的情况)。
[0037] 具体而言,在图4中被示为抽象的访问层405将参考图5更详细地解释。访问层405可包括至少六层:图形层510、音频层515、输入层520、存储层525、网络层527和数学层528。这些层中的每一个都负责不同的任务。例如,图形层510可负责呈现图形(包括但不限于,平面着色、普通映射、纹理映射等);音频层515(如名称所暗示的)可负责封闭系统上的音频(但应注意,这一音频可以与或不与未经签署的内容相关联,即,它可以是从CD、DVD或某一计算机设备文件获取的独立音频);输入层520可负责处理来自用户的输入,诸如控制器按钮选择、使用输入设备的点击等;存储层525可负责存储特定游戏内容或重新调用特定游戏内容(另外,该层可用于通过存储使游戏内容达到新控制台硬件水平的代码和/或数据来允许运行传统软件);网络层527可允许联机游戏,其中控制台侧和任何相关联的服务器侧两者上的联网栈都可用于允许在线联机体验;以及最后,数学层528可允许执行特定数学功能,例如以便允许更高效的映射渲染(如果涉及图形的话)。在任何情况下,这些层510、515、
520、525、527、528中的每一个都有助于提供用户模式500和管理员(例如,内核)模式505之间的安全门,诸如托管代码530等未经签署的代码可能需要通过该安全门以确保安全的计算(即,以使得未经签署的代码不会出于非控制台制造商或其他感兴趣各方所预期的目的接管底层本地OS层540及任何相关联的控制台资源)。
[0038] 因此,按照图5,与上述未经签署的代码相关联的某一托管代码530被提供给访问层405,该访问层405可包括以上所讨论的各个子层510、515、520、525、527、528。托管代码530从用户模式500侧提供,并穿过各子层向下过滤至管理员模式505侧。这六个层510、515、
520、525、527、528确保(1)适当的接口被展示给托管代码530以及(2)托管代码530将只访问本地OS层540中被许可访问的资源。由此,总体而言,访问层405在第一种情况下扮演辅助角色而在第二种情况下扮演防守角色,从而分别允许未经签署的内容执行并防止错误的未经签署的内容访问特定资源。否则,如果托管代码530可直接访问管理员模式505中的本地OS层540,则这一代码530将可完全控制对于游戏控制台本地的资源。然而,这出于以上所列出的原因可能是不合乎需要的,即,出于非制造商预期目的使用控制台。
[0039] 图6更详细地示出了参考图5讨论的各方面。例如,如果要采用诸如图形层510等以上所讨论的子层中的一个,并聚焦于其子组件,则将会看到类似于图6右侧所示组件的组件。首先,图像层510在图6的左侧示出,并且它可接收某一输入600(它还可提供输出,但该方面限于呈现输入的目的)。
[0040] 因此,图形层510可具有接收所提到的输入600的输入缓冲区605。本领域技术人员将容易理解可在此处使用的不同类型的缓冲区,诸如顶点缓冲区、索引缓冲区、顶点和像素着色器等。一旦输入代码和/或数据,就可将其从用户模式500侧复制到管理员模式侧505。因此,它从输入缓冲区605被复制到确认缓冲区610中。在该确认缓冲区610中,可确认信息(代码、数据或其任何其他等价物)以确保其是应被允许访问管理员模式505的信息类型。
[0041] 管理员模式505中应允许什么的标准可由控制台制造商或其他第三方来定义,并且该标准可由这些各方持续更新和监视。因此,做出关于存储在确认缓冲区610中的信息的检查。例如,可在确认缓冲区610中确认句柄,其中“句柄”被理解为通常是指针的标记,其使得程序能够访问资源,诸如库函数或如以上所讨论的某一硬件资源等。如果该信息是有效的,则可将其向下传递给环形缓冲区615以供对本地控制台资源执行。
[0042] 当然,可以理解,给定作为输入600的信息类型,可使用其他缓冲区体系结构。环形缓冲区615方面可以在命令被存储在确认缓冲区610中时使用。另一方面,如果提供了对于命令的参数,则可能不需要环形缓冲区615。
[0043] 在所公开的本发明主题的一不同方面中,图7示出封闭系统所做的是虚拟化供未经签署的代码702对其执行的硬件。因此,本质上,虚拟机708形式的虚拟环境在未经签署的代码可执行的地方创建。这一未经签署的代码能够在用户模式500中运行,因此对它本应在管理员模式505中具有的系统706资源具有有限的控制。本地OS层704可虚拟化适用于未经签署的代码的软件和硬件,并仅向该代码提供其可访问和/或控制的一组所需资源。
[0044] 本领域技术人员可以理解,可使用各自具有用于各个相应未经签署的游戏的不同虚拟环境的各种这样的虚拟机708。或者,可使用供未经签署的游戏的全部或某一重要子集以其执行的某一通用虚拟机标准。于是,这些仅仅是此处的延及全部的(over-arching)的本发明所构想的提供供未经签署的游戏在其中运行的虚拟机环境的封闭系统706的实现细节。
[0045] 最后,存在可将未经签署的内容从某一计算源提供给封闭系统的多种方式,如图8所示。该方面旨在示出图4中所提到的并参考图5和6详细讨论的访问层405可处理各种类型的未经签署的内容。该方面中所构想的内容类型可包括只向封闭计算系统808的访问层提供一次802的内容、被流传送804到系统806的内容、或周期性地及动态地808提供给系统808的内容。
[0046] 此处构想了各种类型的内容提供体系结构。一个类型可具有计算源802、804、806与封闭系统808之间的居间服务器810,而其他类型可具有计算源与封闭系统808之间的直接连接。本领域技术人员将容易理解可将内容传递给封闭系统的各种方式。一旦内容被提供给封闭系统808,系统808就可取得该内容并通过图4所示的访问层405、图5所示的各个图形层510、音频层515、输入层520和存储层525以及图6所示的各个缓冲区605、610和615来运行该内容。接收、存储信息以及将信息向下传递给系统808资源的方式将取决于访问层中由系统808制造商设置的限制,并由此取决于未经签署的内容的内容。
[0047] 示例性计算设备
[0048] 如上所述,所公开的本发明主题应用于其中期望在本来封闭的系统上运行未经签署的内容的任何设备。然而,应当理解,如上所示,等价于未经签署的内容的内容的其他内容可以与当前公开的所有种类的计算对象一起工作。因此,在下面的图9中描述的以下通用远程计算机仅是一个示例,且本发明主题可用任何客户机或便携式设备来实现,而不管其是独立的还是具有网络/总线互操作性和交互。由此,本发明主题可在其中蕴含了极少或最少客户机资源的联网主存服务的环境,例如其中客户机设备仅用作到网络/总线的接口(如置于器具中的对象)的联网环境中实现。
[0049] 尽管并不是必需的,但本发明主题可以部分地经由操作系统来实现,以供设备或对象的服务开发者使用,和/或被包括在结合本发明主题操作的应用软件中。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域技术人员可以理解,本发明主题可以用其它计算机系统配置和协议来实施。
[0050] 图9由此示出了其中可实现参考图2-8描述的各方面的合适的计算系统环境100a的一个示例,但如以上清楚地描述的,计算系统环境100a仅为用于执行设备的合适计算环境的一个示例,并非旨在对这些方面的使用范围或功能提出任何限制。也不应将计算系统100a解释为对示例性操作环境100a中示出的任一组件或其组合具有任何依赖性或需求。
[0051] 参考图9,用于实现上述各方面的示例性远程设备包括计算机110a形式的通用计算设备。计算机110a的组件可以包括,但不限于,处理单元120a、系统存储器130a、和将包括系统存储器在内的各种系统组件耦合至处理单元120a的系统总线121a。系统总线121a可以是数种类型的总线结构中的任一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。
[0052] 计算机110a通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110a访问的任何可用介质。作为示例而非局限,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CDROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所需信息并可由计算机110a访问的任何其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传送介质。
[0053] 系统存储器130a可以包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)等易失性和/或非易失性存储器形式的计算机存储介质。基本输入/输出系统(BIOS)可被存储在存储器130a中,它包含帮助在诸如启动期间在计算机110a内的元件之间传递信息的基本例程。存储器130a通常还包含处理单元120a可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非局限,存储器130a还可以包括操作系统、应用程序、其它程序模块、和程序数据。
[0054] 计算机110a也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。例如,计算机110a可以包括对不可移动、非易失性磁介质进行读写的硬盘驱动器,对可移动、非易失性磁盘进行读写的磁盘驱动器,和/或对诸如CD-ROM或其它光学介质等可移动、非易失性光盘进行读写的光盘驱动器。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器通常由诸如接口等不可移动存储器接口连接至系统总线121a,而磁盘驱动器或光盘驱动器通常由诸如接口等可移动存储器接口连接至系统总线121a。
[0055] 用户除了能够经由控制器来向封闭计算设备提供输入之外,用户可以通过输入设备,如键盘和定点设备(通常指鼠标、跟踪球或触摸垫)向计算机110a输入命令和信息。除了这些外围设备之外,其他输入设备可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常由耦合至系统总线121a的用户输入140a和相关联的接口连接到处理单元120a,但是也可由诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构连接。图形子系统也可以被连接到系统总线121a。监视器或其它类型的显示设备也通过接口,如输出接口150a连接至系统总线121a,而输出接口150a又与视频存储器通信。除监视器之外,计算机还可以包括其它外围输出设备,如扬声器和打印机,它们可以通过输出接口150a连接。
[0056] 计算机110a可使用至诸如远程计算机170a等的一个或多个远程计算机的逻辑连接在网络化或分布式环境中操作,远程计算机170a又可以具有与设备110a不同的媒体能力。远程计算机170a可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点、或任何其它远程媒体消费或传输设备,并且可以包括上面关于计算机110a所描述的任何或全部元件。图9所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)等的网络171a,但也可以包括其它网络/总线。这样的联网环境在家庭、办公室、企业范围计算机网络、内联网和因特网中是常见的。
[0057] 当在LAN联网环境中使用时,计算机110a通过网络接口或适配器连接至LAN 171a。当在WAN联网环境中使用时,计算机110a通常包括调制解调器或用于通过诸如因特网等的WAN建立通信的其它装置。调制解调器可以是内置或外置的,它可以通过输入140a的用户输入接口或其它适当机制连接至系统总线121a。在网络化环境中,相对于计算机110a所描述的程序模块或其部分可被储存在远程存储器存储设备中。可以理解,所示和所述的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
[0058] 示例性多媒体(封闭的)控制台环境
[0059] 接着参考图10,所示的是示出另一示例性、非限制性计算设备(即,示例性多媒体控制台)的框图,该控制台对于有限量的由某一签署机构(无论是该封闭系统制造商还是某一游戏发行商)签署的软件组件可以是封闭的。图10示出其中可实现所公开的本发明主题的各方面的多媒体控制台100的功能组件。多媒体控制台100包括具有1级(L1)高速缓存102、2级(L2)高速缓存104和闪存ROM(只读存储器)106的中央处理单元(CPU)101。1级高速缓存102和2级高速缓存104临时存储数据并因此减少存储器访问周期数,从而提高处理速度和吞吐量。闪存ROM 106可存储在多媒体控制台100通电时在引导进程的初始阶段加载的可执行代码。另选地,在初始引导阶段加载的可执行代码可被存储在闪存设备中(未示出)。
此外,ROM 106可与CPU 101分开放置。
[0060] 该控制台可具有对其可用的各种资源,诸如来自用于高速、高分辨率图形处理的视频处理流水线的图形处理单元(GPU)108和视频编码器/视频编解码器(编码器/解码器)114。在该设置中,数据经由总线从图形处理单元108输送到视频编码器/视频编解码器114。
视频处理流水线将数据输出到A/V(音频/视频)端口140以传输到电视或其它显示器。存储器控制器110被连接到GPU 108和CPU 101以便于处理器访问各种类型的存储器112,诸如但不局限于RAM(随机存取存储器)。
[0061] 多媒体控制台100包括较佳地在模块118上实现的I/O控制器120、系统管理控制器122、音频处理单元123、网络接口控制器124、第一USB主控制器126、第二USB控制器128和前面板I/O部件130。USB控制器126和128用作外围控制器142(1)-142(2)、无线适配器148、和外置存储器单元146(例如闪存、外置CD/DVD ROM驱动器、可移动介质等)的主机。网络接口
124和/或无线适配器148提供对网络(例如因特网、家庭网络等)的访问并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同有线和无线接口组件中的任一种。
[0062] 系统存储器143被设置成存储在引导进程过程中加载的应用程序数据。媒体驱动器144被设置并且可包括DVD/CD驱动器、硬盘驱动器、或其它可移动媒体驱动器等。媒体驱动器144可内置或外置于多媒体控制台100。应用程序数据可经由媒体驱动器144访问,以由多媒体控制台100执行、回放等。媒体驱动器144经由诸如串行ATA总线或其它高速连接(例如IEEE 1394)等总线连接到I/O控制器120。
[0063] 系统管理控制器122提供涉及确保多媒体控制台100可用性的各种服务功能。音频处理单元123和音频编解码器132形成具有高保真度和立体声处理的对应音频处理流水线。音频数据经由通信链路在音频处理单元123与音频编解码器126之间传输。音频处理流水线将数据输出到A/V端口140以供外置音频播放器或具有音频能力的设备再现。
[0064] 前面板I/O部件130支持暴露在多媒体控制台100外表面上的电源按钮150和弹出按钮152以及任何LED(发光二极管)或其它指示器的功能。系统电源模块136向多媒体控制台100的组件供电。风扇138冷却多媒体控制台100内的电路系统。
[0065] CPU 101、GPU 108、存储器控制器110、和多媒体控制台100内的各个其它组件经由一条或多条总线互连,这些总线包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。
[0066] 当多媒体控制台100通电或重新引导时,应用程序数据可从系统存储器143加载到存储器112和/或高速缓存102、104中并在CPU 101上执行。应用程序可呈现在导航到多媒体控制台100上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,媒体驱动器144中所包含的应用程序和/或其它媒体可从媒体驱动器144启动或播放,以向多媒体控制台100提供附加功能。
[0067] 多媒体控制台100可通过将该系统简单地连接到电视机或其它显示器而作为独立系统来操作。在该独立模式中,多媒体控制台100可以允许一个或多个用户与该系统交互、看电影、听音乐等。然而,随着可通过网络接口124或无线适配器148获得的宽带连接的集成,多媒体控制台100还可在较大网络社区中作为参与者来操作。
[0068] 图10所示的多媒体控制台是可用于执行诸如例如游戏等多媒体应用程序的典型的多媒体控制台。多媒体应用程序可用系统特征来增强,这些系统特征包括例如系统设置、语音聊天、联网游戏、通过网络与其他用户交互的能力、电子邮件、浏览器应用程序等。这些系统特征启用多媒体控制台100的经改进功能,诸如,例如不同位置的玩家可以经由因特网玩同一个游戏。
[0069] 同样,随着时间流逝,可以更新或向多媒体应用程序添加系统特征并非要求多媒体开发者对多媒体应用程序做出显著修改来提供这些系统特征,此处描述的系统和方法允许多媒体开发者通过结合多媒体应用程序工作的独立的系统应用程序来提供系统特征。例如,系统应用程序可以实现涉及联网能力的功能,从而使多媒体应用程序能够被容易地调整以使多媒体(例如,游戏)开发者进行少量工作即可提供联网能力。这种能力之一是对于多个和联网的用户的系统级通知。使系统级通知成为系统应用程序的一部分而非由诸如运行于系统上的游戏等各个多媒体应用程序处理,为多媒体应用程序开发者将处理诸如游戏邀请等显示通知从开发过程中除去,并允许他们致力于多媒体应用程序本身。
[0070] 如上所示,尽管结合各种计算设备和网络体系结构描述了本发明主题的示例性实施例,但基本概念可被应用于其中可利用输入设备来控制设备或系统的任何计算设备或系统。例如,所讨论的各方面的算法和硬件实现可被应用于计算设备的操作系统,可作为设备上的独立对象、作为另一对象的一部分、作为可重复使用的控件、作为可从服务器下载的对象、作为设备或对象与网络之间的“中间人”、作为分布式对象、作为硬件、以存储器、以上任何的组合等来提供。尽管此处选择了示例性编程语言、名称和示例来表示各种选择,但这些语言、名称和示例并不旨在是限制性的。图11示出实现用于允许未经签署的代码在封闭硬件上运行的算法流程的一种方法;然而,本领域普通技术人员将理解,存在提供实现与本发明主题的各实施例所实现的相同的、类似的或等效的功能的目标代码和命名法的众多方法。
[0071] 如上所述,此处所述的各种技术可结合硬件或软件,或在适当时以两者的组合来实现。由此,本发明主题的方法和装置或其特定方面或部分可采取包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中当程序代码被加载到诸如计算机等机器内并由其执行时,该机器成为用于实现所公开的本发明各方面的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。可实现或利用根据这些方面来提供的任何软件的一个或多个程序较佳地以高级过程语言或面向对象编程语言实现以便与计算机系统进行通信。然而,如果需要,程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。
[0072] 所公开的本发明各方面的方法和装置也可以经由以通过某种传输介质传输的程序代码的形式体现的通信来实现,比如通过电线或电缆、通过光纤或经由任何其它传输形式,其中,当程序代码由诸如EPROM、门阵列、可编程逻辑器件(PLD)、客户计算机等机器接收、加载并执行时,该机器成为用于实现所公开的本发明主题的装置。当在通用处理器上实现时,程序代码与处理器相结合来提供一种用于调用本发明主题的功能的独特装置。另外,结合本发明的各方面使用的任何存储技术总是可以是硬件和软件的组合。
[0073] 尽管结合各附图的优选实施例描述了上述各方面,但可以理解,可以使用其它类似的实施例,或可以对所述实施例进行修改和添加来执行相同的功能而不背离本发明。例如,本领域技术人员将认识到在本申请中所述的方法可应用于诸如游戏控制台、手持式计算机、便携式计算机等无论是有线还是无线的任何计算设备或环境,且可被应用于经由通信网络连接并通过该网络交互的任何数目的这种计算设备。
[0074] 此外,应当强调,构想了包括手持式设备操作系统和其它专用操作系统的各种计算机平台,尤其是在无线联网设备的数量持续增长时。此外,本发明主题的功能可在多个处理芯片或设备中或跨多个处理芯片或设备实现,且存储可类似地跨多个设备来实现。因此,所公开的本发明各方面不应限于任何单个实施例,而是应该根据所附权利要求书的广度和范围来解释。
[0075] 总结
[0076] 总而言之,各种方法、系统和计算机可读介质可具体化以上所讨论的各方面。例如,图11中构想了以下用于在封闭系统中执行未经签署的内容并保护访问的方面。在图11中,在框1100,可使用诸如游戏控制台等封闭的计算设备来实现这一执行和保护,其中该封闭的计算设备被配置成执行由签署机构授权的软件内容组件,即,例如经签署的软件。此外,未经签署的软件内容组件能够在这一封闭的计算设备上执行,其中该未经签署的软件内容组件通过使得该封闭的计算设备虚拟化接口提供输入以使得未经签署的软件可对封闭系统执行,来在该封闭的计算设备上执行,如框1105所示。因此,此处的术语“接口”构想了通常将供软件使用的任何输入和输出的宽泛定义。除了向由所述签署机构授权的经签署的软件内容组件提供典型接口之外还提供这一虚拟化的接口。因此,在框1110,决定在框1115运行经签署的内容还是在框1120运行未经签署的内容。前一种情况是参考图1讨论的传统情况。此处参考图2-8详细讨论的后一种情况提供对封闭的游戏系统的扩展使用。
[0077] 因此,如上文中已经提到的,且如图11中的框1125所示,上述接口可对应于图形层、音频层、输入层和存储层(最初在以上图5中描绘)中的至少一个。此外,图形层、音频层、输入层和存储层中的至少一个如框1130所示可包括各种缓冲区,诸如第一缓冲区和第二缓冲区,其中与未经签署的软件内容组件相关联的数据被存储在该第一缓冲区中,并且该数据从该第一缓冲区被复制到该第二缓冲区中(其中,该数据在所述第二缓冲区中确认)。这些方面在图6中清楚地示出。因此,数据可在所述确认后被提供给与封闭的计算设备相关联的资源(诸如存储器、CPU存取、GPU、光盘驱动器、输入设备、硬盘驱动器等)。或者,数据可在这一确认后在被提供给与封闭的计算设备相关联的这些资源之前被提供给环形缓冲区。然而,如本领域技术人员将容易理解的,这仅仅是所公开的本发明主题的一示例性、非限制性方面。
[0078] 如以上参考诸如图8等其他附图所提到的,未经签署的软件内容组件(例如,用户或开发者制作的游戏)可经由来自计算设备的连接(或另选地,在标定情况下,经由DVD或某一其他光学、磁性或等效设备)来被提供给封闭的计算设备。此外,这一提供可经由来自计算设备(无论是PC、服务器还是其他游戏控制台)的通信来动态实现,或另选地,该提供可通过流传送来自这一计算设备的未经签署的内容来实现。当然,本总结并非是限制性的而仅仅是示例性的。很明显,此处未讨论但在上文中讨论的其他方面,诸如将唯一的用户标识分配给封闭的计算设备以及经由所述唯一的用户标识来跟踪对封闭的计算设备的任何侵害等,即使未在本总结中明确提到,也在本文中构想。