首页> 中国专利> 应用特定客户端证书的自动生成

应用特定客户端证书的自动生成

摘要

本文中公开了用于应用特定客户端证书的自动生成的技术。在一个实施例中,一种方法包括:在web服务器处在包含共同打包的web客户端的打包应用中接收来自web客户端的连接请求和来自web客户端的客户端证书的第一副本。在接收到客户端证书时,web服务器可以使用由web服务器针对共同打包的web客户端先前生成的客户端证书的第二副本认证来自web客户端的连接请求。响应于成功地认证,基于客户端证书的第一副本和第二副本两者,web服务器可以与web客户端建立安全连接,以允许web客户端访问计算设备上的系统级服务。否则,web服务器将拒绝连接。

著录项

说明书

背景技术

在计算中,web应用(web application)或web应用(web app)是一种遵循客户端服务器模型的计算机程序,在客户端服务器模型中,客户端(通常包括用户界面和客户端逻辑)在web浏览器中运行。web应用可以使用以标准格式(诸如由各种web浏览器支持的超文本标记语言(HTML)和

发明内容

提供本“发明内容”以便以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

尽管web应用可以为用户和开发人员提供极大的可访问性和其他好处,但是在某些情况下,将应用部署为web应用可能会导致某些操作困难。例如,通过在web浏览器内运行web应用,web应用通常无权访问计算设备上的系统级服务,因为web浏览器中的安全边界或“沙盒”将web应用与计算设备的主机操作系统隔离。这样的系统级服务的示例可以包括各种配置服务(例如,改变机器名称)或由计算设备上的主机操作系统提供的其他合适类型的服务。

前述困难的一种解决方案是将web应用与专用web服务器一起作为打包应用部署在计算设备上。这种配置有时被称为“同一盒子”配置。在操作中,web服务器可以被授予系统级访问权限,并且服务于来自web应用的对系统级服务的请求。但是,前述解决方案存在来自其他web应用的潜在安全漏洞的风险,因为web服务器不仅可以服务于来自共同打包的web应用的请求,而且还可以服务于来自在同一计算设备上运行的其他未授权web应用的请求。这样,没有系统级访问权限的另一web应用可以通过请求web服务器执行某些操作来获取系统级访问权限。这样的操作可以绕过计算设备上的安全设置。

所公开的技术的几个实施例可以通过在打包应用中实现应用特定客户端证书的自动生成来解决上述挑战的某些方面。在一种实现中,在安装、访问许可修改或打包应用启动期间,web服务器可以被配置为自动生成服务器证书和客户端证书。服务器证书和客户端证书可以分别包括表示私钥、公钥、签名、绑定到前述组件的主题(例如,web服务器)的数据、或其他合适的安全性数据。然后,web服务器可以将所生成的服务器证书和客户端证书存储在由例如主机操作系统分配给打包应用的专用存储器位置。专用存储器位置只能由web服务器和对应web客户端访问。

在服务器证书和客户端证书的创建和存储完成之后,web服务器可以被配置为通过例如在web浏览器中启动web客户端来激活web客户端。在激活期间,web服务器可以被配置为例如作为函数调用中的变元或其他合适类型的激活指令来向web客户端传递web服务器的数字签名(或“缩略图”)或公钥或者作为可信证书颁发机构的web服务器的标识。在接收到激活指令时和/或在web浏览器中启动web客户端期间,web客户端可以从专用存储器位置取回由web服务器创建的客户端证书的副本。

使用自动生成的服务器/客户端证书,web服务器和共同打包的web客户端可以彼此认证,以降低或防止未授权web应用访问计算设备上的web服务器的风险。在某些实施例中,打包应用可以在web服务器与web客户端之间实现传输层安全性(TLS)或安全套接字层(SSL)握手。例如,web客户端可以向web服务器传输连接请求连同web客户端的标识或其他合适的参数。作为响应,web服务器可以传输由web服务器自签名的服务器证书的副本(例如,包含web服务器的公钥)。在一种实现中,web客户端可以通过将服务器证书与在激活期间作为变元而接收的证书进行比较来认证web服务器。在另一实现中,web客户端可以将web服务器标识为可信证书颁发机构,并且使用web服务器的公钥来认证服务器证书。在其他实现中,web客户端可以按照其他合适的方式认证web服务器。

web客户端还可以将客户端证书的副本传输到web服务器以进行认证。在接收到客户端证书时,web服务器可以使用存储在专用存储器位置中的客户端证书的副本来以与上面关于验证web服务器所述的方式大体上相似的方式来认证和验证web客户端。一旦通过认证,web服务器就可以允许所请求的连接,web客户端可以基于该连接经由web服务器访问各种系统级服务。在其他实施例中,打包应用还可以实现3路、4路或其他合适类型的握手协议,以在打包应用中在web服务器与web客户端之间建立连接。

所公开的技术的几个实施例因此可以降低或防止未授权web客户端访问打包应用中的web服务器的风险。当未授权web客户端请求与web服务器的连接时,未授权web客户端将无法访问分配给打包应用的专用存储器位置。因此,未授权web客户端无法向web服务器提供任何或正确的客户端证书以进行认证。结果,打包应用中的web服务器将拒绝连接请求,从而防止未授权web客户端经由web服务器访问任何系统级服务。

附图说明

图1A和图1B是示出根据所公开的技术的实施例的支持被配置为自动生成应用特定客户端证书的打包应用的主机的示意图。

图2A至图2E是根据所公开的技术的实施例的在用于在打包应用中的web服务器与web客户端之间建立连接的操作阶段期间图1A和图1B的主机的某些硬件/软件组件的示意图。

图3A至图3C是示出根据所公开的技术的实施例的用于客户操作系统的存储器分配的某些过程的流程图。

图4是适合于图1中的计算设备的某些组件的计算设备。

具体实施方式

下面描述用于应用特定客户端证书的自动生成的系统、设备、组件、模块、例程、数据结构和过程的某些实施例。在以下描述中,包括组件的具体细节以提供对所公开的技术的某些实施例的透彻理解。相关领域的技术人员还将理解,该技术可以具有其他实施例。该技术也可以在没有下面参考图1A至图4描述的实施例的几个细节的情况下实践。

如本文中使用的,“主机计算设备”或“主机”通常是指被配置为支持一个或多个应用或计算机程序的执行的计算设备。在某些实施例中,主机可以包括被配置为支持应用或计算机程序的执行的主机操作系统。在其他实施例中,主机还可以支持例如一个或多个虚拟机(VM)、容器或其他合适的虚拟化组件的实现。例如,主机可以包括具有配置为支持一个或多个虚拟机、容器或其他合适类型的虚拟组件的管理程序的服务器。一个或多个虚拟机或容器可以用于启动和执行合适的应用或计算机程序以提供对应计算服务。

本文中还使用的“主机操作系统”通常是指被部署为直接与计算机设备(例如,服务器)的硬件组件交互并且可以授予或拒绝对由主机操作系统提供的服务的系统级访问的操作系统。在某些实现中,管理程序(例如,托管的管理程序)可以在主机操作系统之上运行,而不是直接与计算设备的硬件组件交互。然后,管理程序可以创建、管理或以其他方式支持一个或多个VM或容器,一个或多个VM或容器各自具有通过安全边界与主机操作系统分离的“客户操作系统”或“客户”。在某些实现中,客户操作系统可能与支持该客户操作系统的主机操作系统不同。

本文中还使用的“虚拟存储器”通常是指计算设备上可用的抽象存储资源。使用硬件和软件的组合的主机操作系统可以将由虚拟机或容器使用的存储器地址(“虚拟地址”)映射到计算设备中的存储器和/或存储装置(例如,硬盘驱动器)中的物理地址。由虚拟机或容器看到的虚拟存储器可以呈现为连续的地址空间或连续分段的集合。主机操作系统可以管理和促进虚拟地址空间的操作以及基础物理存储器到虚拟存储器的对应分配。一旦分配,虚拟机、容器或应用就可以使用所分配的虚拟存储器,就好像虚拟存储器是适合于执行应用的指令的物理存储器一样。

此外,本文中使用的“存储器位置”通常是指计算设备中的软件和硬件通过存储器地址或存储器地址范围而可标识的存储器的块、分段、页面或其他合适的划分。在某些实现中,存储器地址可以包括显示和操纵为无符号整数的固定长度的数字序列(例如,以十六进制表示)。例如,示例存储器位置可以在示例存储器地址“FBFF FFFF”处。在其他实现中,存储器地址可以包括其他合适类型的标识符。

本文中还使用的“非对称密码术”通常是指使用成对的公钥和私钥的密码技术。公钥可以与主机中的其他组件共享,而私钥只能由指定组件(诸如打包应用中的web服务器或web客户端)访问。如稍后更详细描述的,私钥/公钥可以用于彼此认证web服务器和web客户端,从而防止未授权web应用访问web服务器。公钥和私钥的示例可以包括64、128、256或其他合适数目的位数的字符串。尽管本文中描述的技术的实施例使用非对称加密作为示例认证技术,但是在其他实施例中,打包应用也可以实现对称加密,其中web服务器和web客户端都可以具有相同的加密密钥。

本文中还使用的“打包应用”通常是指包含web服务器和被配置为与web服务器合作以实现某些设计功能的对应web客户端的应用。从外观上看,打包应用看起来是单个可执行实体。在某些实施例中,web服务器可以在主机的网络接口卡(NIC)上被分配端口(例如,端口80)。然后,共同打包的web客户端可以在建立连接之后以回送方式经由web服务器的分配端口访问web服务器。在其他实施例中,web客户端可以按照其他合适的方式访问web服务器。

以“同一盒子”配置在打包应用中部署web服务器和web客户端可能会导致对主机上的系统级服务的未授权访问的这一潜在风险。例如,web服务器可以被授予系统级访问权限,并且服务于来自web应用的对系统级服务的请求。但是,在同一计算设备上运行的其他未授权web应用也可以访问web服务器以服务于未授权服务请求。这样,没有系统级访问权限的其他未授权web应用可以经由web服务器获取系统级访问权限,以规避计算设备上的安全设置。

所公开的技术的几个实施例可以通过在打包应用中实现应用特定客户端证书的自动生成来解决上述挑战的某些方面。在安装、访问许可修改或打包应用启动期间,web服务器可以被配置为自动生成服务器证书和客户端证书。然后,web服务器可以将所生成的服务器证书和客户端证书存储在由例如主机操作系统分配给打包应用的专用存储器位置。专用存储器位置只能由web服务器和对应web客户端访问。

在服务器证书和客户端证书的创建和存储完成之后,web服务器可以被配置为通过例如在web浏览器中启动web客户端来激活web客户端。在激活期间,web服务器可以被配置为例如作为函数调用中的变元或其他合适类型的激活指令来向web客户端传递web服务器的数字签名(或“缩略图”)或公钥或者作为可信证书颁发机构的web服务器的标识。在接收到激活指令时和/或在web浏览器中启动web客户端期间,web客户端可以从专用存储器位置取回由web服务器创建的客户端证书的副本。使用自动生成的服务器证书和客户端证书,web服务器和共同打包的web客户端可以彼此认证,以降低或防止未授权web应用访问计算设备上的web服务器的风险,如下面参考图1A至图4更详细地描述的。

图1A是示出根据所公开的技术的实施例的支持被配置为自动生成应用特定客户端证书的打包应用104的主机100的示意图。主机100可以是服务器、台式或膝上型计算机、智能电话或其他合适类型的计算设备。尽管在图1中仅示出了主机100的特定组件,但是在其他实施例中,主机100可以包括更多的和/或不同的硬件和/或软件组件,诸如下面参考图4描述的示例组件。

在图1A和本文中的其他图中,各个软件组件、对象、类、模块和例程可以是用C、C++、C#、Java和/或其他合适的编程语言作为源代码编写的计算机程序、过程或进程。组件可以包括但不限于一个或多个模块、对象、类、例程、属性、进程、线程、可执行文件、库或其他组件。组件可以采用源代码或二进制形式。组件可以包括编译之前的源代码的各方面(例如,类、属性、过程、例程)、已编译二进制单元(例如,库、可执行文件)、或在运行时实例化和使用的工件(例如,对象、进程、线程)。

系统内的组件可以在系统内采用不同形式。作为一个示例,包括第一组件、第二组件和第三组件的系统可以包括但不限于包括其中第一组件是源代码属性,第二组件是二进制编译库并且第三组件是在运行时创建的线程的系统。计算机程序、过程或进程可以被编译成目标、中间或机器代码,并且被呈现以由个人计算机、web服务器、膝上型计算机、智能电话和/或其他合适的计算设备的一个或多个处理器执行。

同样,组件可以包括硬件电路系统。本领域普通技术人员将认识到,硬件可以被视为化石软件,并且软件可以被视为液化硬件。仅作为一个示例,组件中的软件指令可以被刻录到可编程逻辑阵列电路,或者可以被设计为具有适当集成电路的硬件电路。同样,硬件可以由软件仿真。源代码、中间代码和/或目标代码和相关联的数据的各种实现可以存储在计算机存储器中,包括只读存储器、随机存取存储器、磁盘存储介质、光学存储介质、闪存设备、和/或除了传播信号以外的其他合适的计算机可读存储介质。

如图1A所示,主机100可以包括被配置为支持打包应用104的安装和执行的主机操作系统102。即使打包应用104在图1A中示出为在主机操作系统102之上直接安装或执行,但是在其他实施例中,打包应用104也可以在由主机操作系统102支持的虚拟机、容器或其他合适的虚拟组件中安装或执行。在图1A中,应用特定客户端证书的自动生成操作在安装上下文中描述以用于说明目的。在其他实施例中,这些操作也可以响应于主机100中的访问许可的修改或打包应用104的启动而被执行。

还如图1A所示,打包应用104可以包括web服务器106、web客户端112和专用存储器108,专用存储器108是例如由主机操作系统102分配给打包应用104的虚拟存储器块。在某些实现中,web服务器106和web客户端112都可以在由主机操作系统102定义的安全边界或“沙盒”内操作。web服务器106可以被授予对由主机操作系统102提供的系统级服务的某些访问权限,而web客户端112无法直接访问这样的系统级服务。

在某些实施例中,web服务器106可以包括被配置为根据超文本传输协议(HTTP)协议或其他合适类型的网络协议响应于传入请求而提供内容的独立的软件程序。在其他实施例中,web服务器106还可以包括对主机100上的本地web服务器(未示出)的扩展。如图1A所示,根据所公开的技术的实施例,web服务器106可以包括彼此操作地耦合的证书组件122、握手组件124和服务组件126。尽管在图1A中示出了web服务器106的特定组件,但是在其他实施例中,web服务器106也可以包括接口组件或其他合适类型的组件。

如图1A所示,在从用户101接收到安装请求120时,主机操作系统102可以例如经由计算机网络(例如,互联网)下载打包应用104,并且在主机操作系统102中存储/安装所下载的打包应用104。在安装之后,web服务器106的证书组件122可以被配置为自动生成服务器证书110a和客户端证书110b。

如本文中使用的,服务器/客户端证书110a和110b通常是指表示用于证明身份所有权的数字证书或身份证书的数据包。在某些实施例中,服务器证书110a和客户端证书110b可以个体地包括表示私钥、公钥、数字签名、绑定到前述组件的主题(例如,web服务器106或web客户端112)的数据、或其他合适的安全性数据。在其他实施例中,服务器证书110a和客户端证书110b还可以包括可信证书颁发机构和对应网络地址的指定。在其他实施例中,服务器证书110a和客户端证书110b还可以包括打包应用104的已安装实例的标识、已安装web服务器106的标识、或已安装的web服务器104的扩展的标识、或其他合适的信息中的一个或多个。

然后,web服务器106的证书组件122可以被配置为将所生成的服务器证书110a和客户端证书110b存储在专用存储器108处。在某些实现中,证书组件122可以将服务器证书110a和客户端证书110b存储在专用存储器108中的某些保留或指定存储器位置处。在其他实现中,证书组件122可以将服务器证书110a和客户端证书110b存储在专用存储器108中的随机存储器位置处。在任何前述实施例中,仅web服务器106和web客户端112可以访问将服务器证书110a和客户端证书110b保留在专用存储器位置中的存储器位置。

如图1A所示,在服务器证书110a和客户端证书110b的创建和存储完成之后,web服务器106可以被配置为通过例如经由传输激活指令111在web浏览器(未示出)中启动web客户端112来激活web客户端112。在某些实施例中,激活指令111可以是函数调用(例如,应用程序编程接口或API调用),并且web服务器106可以被配置为例如作为函数调用中的变元来向web客户端112传递web服务器106的数字签名(或“缩略图”)或公钥或者作为可信证书颁发机构的web服务器106的标识。在其他实施例中,激活指令111可以包括其他合适类型的激活指令。

web客户端112可以包括被配置为根据例如HTTP协议从web服务器106请求内容或服务的软件程序。如图1A所示,web客户端112可以包括彼此操作地耦合的激活组件132、连接组件134和请求组件136。尽管在图1A中示出了web客户端112的特定组件,但是在其他实施例中,web客户端112还可以包括网络组件、显示组件或其他合适类型的组件。

如图1B所示,在接收到激活指令111时和/或在web浏览器中启动web客户端112期间,web客户端112的激活组件132可以被配置为从专用存储器108取回由web服务器106创建的客户端证书110b的副本。在一个实施例中,激活组件132可以从专用存储器108中的指定存储器位置取回客户端证书110b。在其他实施例中,激活指令111可以包括向激活组件132指示客户端证书110b在专用存储器108中所存储在的存储器位置的参数。基于激活指令111中的参数,激活组件132然后可以取回客户端证书110b的副本。在其他实施例中,激活组件132可以被配置为向专用存储器108查询客户端证书110b,或者执行其他合适的操作以取回客户端证书110b的副本。web服务器106和web客户端112的附加组件在下面参考图2A至图2E更详细地描述。

图2A至图2E是根据所公开的技术的实施例的在用于在打包应用104中的web服务器106与web客户端112之间建立连接的操作阶段期间图1A和图1B的主机102的某些硬件/软件组件的示意图。使用自动生成的服务器/客户端证书110a和110b,web服务器106和共同打包的web客户端112可以彼此认证,以降低或防止未授权web应用112'(如图2E所示)访问主机100上的web服务器106的风险。

在某些实施例中,打包应用104可以实现握手协议以彼此认证web服务器106和web客户端112。在以下描述中,将web服务器106与web客户端112之间的传输层安全性(TLS)或安全套接字层(SSL)握手用作示例握手协议,在其他实施例中,打包应用104还可以实现3路、4路或其他合适类型的握手协议,以在打包应用104中的web服务器与web客户端之间建立连接。

如图2A所示,web客户端112的连接组件134可以被配置为例如经由分配给主机100中的web服务器的端口向web服务器106传输连接请求113连同web客户端112的标识或其他合适的参数。如图2B所示,响应于接收到连接请求113,web服务器的握手组件124可以传输由web服务器106自签名的服务器证书110a的副本(例如,包含web服务器106的公钥)。

然后,连接组件134可以被配置为基于所接收的服务器证书110a执行证书锁定(pinning)以认证web服务器106。在一种实现中,连接组件134可以通过将所接收的服务器证书110a的副本与在激活期间作为变元而接收的证书进行比较来认证web服务器106。在另一实现中,连接组件134可以将web服务器106标识为可信证书颁发机构,并且使用web服务器106的公钥来认证所接收的服务器证书110a中包括的数字签名。在其他实现中,连接组件134还可以被配置为以其他合适的方式认证web服务器。在认证之后,web客户端112验证web服务器106的身份,并且将客户端证书110b的副本传输到web服务器106,如图2C所示。

如图2C所示,然后,握手组件124可以被配置为通过基于所接收的客户端证书110b的副本和从专用存储器108取回的客户端证书110b'的另一副本执行证书锁定来认证web客户端112。这样的证书锁定的实现通常可以类似于以上关于基于服务器证书110a来认证web服务器106所描述的那些。

一旦被认证,web服务器106的握手组件124就可以允许所请求的连接119,web客户端112可以基于该连接经由web服务器106访问各种系统级服务。使用连接119,web客户端112可以从web服务器106请求和接收内容和/或服务。例如,如图2D所示,web客户端112的请求组件136可以被配置为向web服务器106传输服务请求115。服务组件126可以被配置为执行合适的系统级服务,并且根据例如HTTP协议、NT LAN

上面参考图2A至图2D所述的公开技术的几个实施例可以降低或防止未授权web客户端112'访问打包应用104中的web服务器106的风险,如图2E所示。如图2E所示,未授权web客户端112'不是打包应用104的一部分。因此,未授权web客户端112'无法访问专用存储器108。当未授权web客户端112'请求与web服务器106的连接时,未授权web客户端可以例如经由分配给主机100上的web服务器106的端口向web服务器106传输连接请求113'。但是,未授权web客户端112'不能向web服务器106提供任何或正确的客户端证书110b(为清晰起见,以虚线示出)以进行认证。结果,打包应用104中的web服务器106将拒绝连接请求113',并且从而防止未授权web客户端112'经由web服务器106访问任何系统级服务。在某些实施例中,握手组件124可以被配置为向未授权web客户端112'传输连接拒绝消息(未示出)。在其他实施例中,握手组件124可以被配置为简单地忽略连接请求113'而不发送任何响应。

图3A至图3C是示出根据所公开的技术的实施例的用于客户操作系统的存储器分配的某些过程的流程图。即使下面在图1A至图2E中的主机100和打包应用104的上下文中描述这些过程的实施例,但是在其他实施例中,这些过程也可以在具有更多和/或不同硬件/软件组件的主机、计算设备或计算系统中执行。

如图3A所示,过程200可以包括在阶段202接收安装、修改许可或启动打包应用的请求。例如,该请求可以在由主机计算设备的主机操作系统提供的安装、许可修改或执行服务时接收。然后,过程200可以包括在阶段204在打包应用的web服务器处生成服务器证书和客户端证书。然后,所生成的服务器证书和客户端证书可以存储在仅打包应用的组件可访问的专用存储器中。在某些实施例中,每次打包应用被安装、权限修改或启动时,都可以重新生成服务器证书和客户端证书。在其他实施例中,所生成的服务器证书和客户端证书可以具有对应的生存时间值,该生存时间值的期满可以引起服务器证书和客户端证书被重新生成。在其他实施例中,服务器证书和客户端证书可以周期性地,基于合适的事件或者以其他合适的方式重新生成。

然后,过程200可以包括在阶段206由web服务器激活打包应用的web客户端。在某些实施例中,web客户端的激活可以包括带有参数的函数调用,这些参数向web客户端指示web服务器将被信任(例如,通过指示web服务器是可信证书颁发机构)。在其他实施例中,这些参数还可以传递web服务器的签名或其他合适的信息,如上面参考图2A至图2D所述。由web客户端在激活期间执行的示例操作在下面参考图3B更详细地描述。

如图3B所示,用于激活web客户端的示例操作可以包括在阶段212从web服务器接收激活指令。然后,该操作可以包括在阶段214部署web浏览器以实例化web客户端。在一种实现中,所部署的web浏览器可以是具有与web客户端对应的单个控件(或脚本)的单页web浏览器。在其他实现中,所部署的web客户端可以具有其他合适的配置。然后,该操作可以包括,在阶段216由web客户端取回(例如,通过执行脚本)以从打包应用的专用存储器取回由web服务器生成的客户端证书的副本,如上面参考图2A至图2D所述。

图3C是示出在都是打包应用的一部分的web服务器与web客户端之间执行握手的过程220的流程图。如图3C所示,过程220可以包括在阶段222由web服务器从web客户端接收客户端证书。然后,过程220可以包括在阶段224在web服务器处执行证书锁定以基于所接收的客户端证书和由web服务器先前为web客户端生成的客户端证书来验证web客户端确实是共同打包的web客户端。上面参考图2A至图2D描述了执行这种证书锁定的示例操作。

然后,过程220可以包括用于确定基于所接收的客户端证书的认证是否成功的决策阶段226。在一个示例中,可以将所接收的客户端证书中的数字签名与专用存储器中的另一数字签名进行比较。然后,该操作可以包括确定数字签名是否彼此匹配,并且响应于确定数字签名彼此匹配,该操作可以包括指示认证成功;否则,该操作可以包括指示认证失败。在另一示例中,可以确定对所接收的客户端证书的副本进行签名的证书颁发机构。然后,该操作可以包括确定证书颁发机构是否是web服务器本身。响应于确定证书颁发机构是web服务器本身,该操作可以包括指示认证成功;否则,该操作可以包括指示认证失败。

响应于确定基于所接收的客户端证书的认证成功,过程220可以包括在阶段228允许与web客户端的安全连接。响应于确定基于所接收的客户端证书的认证不成功,过程220可以包括在阶段230拒绝连接。

图4是适合于图1A至图2D中的主机100的计算设备300。在非常基本的配置302中,计算设备300可以包括一个或多个处理器304、和系统存储器306。存储器总线308可以用于在处理器304与系统存储器306之间进行通信。

取决于期望配置,处理器304可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任何组合。处理器304可以包括一级以上的高速缓存(例如,1级高速缓存310和2级高速缓存312)、处理器核314和寄存器316。示例处理器核314可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任何组合。示例存储器控制器318也可以与处理器304一起使用,或者在一些实现中,存储器控制器318可以是处理器304的内部部分。

取决于期望配置,系统存储器306可以是任何类型,包括但不限于易失性存储器(例如,RAM)、非易失性存储器(例如,ROM、闪存等)或其任何组合。系统存储器306可以包括操作系统320、一个或多个应用322、和程序数据324。所描述的基本配置302在图10中通过内部虚线内的组件示出。

计算设备300可以具有更多的特征或功能以及更多的接口,以促进基本配置302与任何其他设备和接口之间的通信。例如,总线/接口控制器330可以用于促进基本配置302与一个或多个数据存储设备332之间经由存储接口总线334的通信。数据存储设备332可以是可移除存储设备336、不可移除存储设备338或它们的组合。可移除存储和不可移除存储设备的示例包括固态硬盘等磁盘设备(诸如软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(诸如光盘(CD)驱动器或数字多功能磁盘(DVD)驱动器)、固态驱动器(SSD)和磁带驱动器等。示例计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。术语“计算机可读存储介质”或“计算机可读存储设备”不包括传播信号和通信介质。

系统存储器306、可移除存储设备336和不可移除存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能磁盘(DVD)或其他光学存储、磁盒、磁带、磁盘存储或其他磁性存储设备、或者可以用于存储期望信息并且可以由计算设备300访问的任何其他介质。任何这样的计算机可读存储介质都可以是计算设备300的一部分。术语“计算机可读存储介质”不包括传播信号和通信介质。

计算设备300还可以包括用于促进从各种接口设备(例如,输出设备342、外围接口344和通信设备346)经由总线/接口控制器330到基本配置302的通信的接口总线340。示例输出设备342包括可以被配置为经由一个或多个A/V端口352与诸如显示器或扬声器等各种外部设备通信的图形处理单元348和音频处理单元350。示例外围接口344包括可以被配置为经由一个或多个I/O端口358与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描器等)等外部设备通信的串行接口控制器354或并行接口控制器356。示例通信设备346包括可以被布置为促进经由一个或多个通信端口364通过网络通信链路与一个或多个其他计算设备362的通信的网络控制器360。

网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块、或经调制数据信号(诸如载波或其他传输机制)中的其他数据来体现,并且可以包括任何信息传递介质。“经调制数据信号”可以是具有以将信息编码在信号中的方式来设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接等有线介质、以及诸如声学、射频(RF)、微波、红外(IR)和其他无线介质等无线介质。本文中使用的术语计算机可读介质可以包括存储介质和通信介质。

计算设备300可以被实现为包括上述任何功能的小型便携式(或移动)电子设备的一部分,诸如手机、个人数据助理(PDA)、个人媒体播放器设备、无线网络手表设备、个人耳机设备、应用特定设备或混合设备。计算设备300也可以被实现为包括膝上型计算机和非膝上型计算机配置的个人计算机。

以上已经出于说明的目的描述了本技术的特定实施例。然而,可以在不背离前述公开的情况下进行各种修改。另外,一个实施例的很多要素可以补充或代替其他实施例的要素而与其他实施例组合。因此,除所附权利要求书,本技术不受限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号