用于装置中特权模式挂接的动态注册的系统的制作方法

文档序号:6498403阅读:177来源:国知局
专利名称:用于装置中特权模式挂接的动态注册的系统的制作方法
技术领域
本发明大体上涉及一装置的有效操作,且更特定地说涉及一种用于在一装置中的特权模式挂接的动态注册的系统。
背景技术
技术进步促成了家庭、办公和个人用途的各种装置的发展。举例而言,例如桌上型计算机、笔记本计算机和平板计算机的计算机系统已成为用于家庭或办公环境的强大工具。例如无线电话、个人数字助理(PDA)和传呼装置的个人装置也已变得更加强大且正被广泛使用。
如今许多装置包括运行例如UNIX、LINUX的操作系统或类似操作系统的复杂硬件和软件。通常,这些操作系统提供多种操作模式。举例而言,大多数系统提供特权操作模式和非特权操作模式。允许以特权操作模式执行的程序无限制地访问存储器和系统资源。限制以非特权模式执行的程序访问特定存储区域和/或装置系统。此配置对于重要的存储器或装置函数提供某种程度的保护。举例而言,通过以非特权模式执行第三方应用程序,可保护重要的存储区域和装置函数免遭非授权访问。并且,此配置允许系统在执行期间将故障隔离开来。
随着时间推移,这些系统已变得更加复杂以便满足装置和装置用户的日益增长的需要。举例而言,使用函数模块或函数来提供多种系统服务。随着装置已变得更加复杂且具有丰富特征,与这些特征关联的函数的数量和复杂性也已增加。
不幸的是,常规系统在支援函数模块方面具有若干局限性。举例而言,常规系统可具有用以访问函数的有限数量的挂接。举例而言,系统可具有可用以访问函数的有限数量的陷阱。此外,将陷阱定义编译成一个在装置上运行的可执行二进制,此对系统灵活性造成固有限制。
因此,需要这样一种系统,其提供动态地注册对特权函数的挂接的方式。所述系统应允许在系统初始化期间注册函数,藉此提供灵活性并避免常规系统中固有的将陷阱定义编译成可执行的潜在版本确定问题。所述系统也应允许注册无限数量的函数,藉此克服与常规系统相关的将固定数量的可用陷阱与函数相关联的局限性。

发明内容
在一或一个以上实施例中,提供一种包括方法和/或设备的系统,所述系统运行以便提供装置中特权模式挂接的动态注册。在一实施例中,不同程序模块在系统初始化期间安装挂接。每一函数模块在安装时均分配有一识别符,且所述模块将此识别符保留于非特权应用程序可读取的一变量中。当从一以非特权模式执行的应用程序中调用时,所述模块从变量检索其挂接识别符以便执行所述挂接。此避免常规系统中固有的将函数与编译为可执行二进制的固定数量的陷阱相关联的潜在版本确定问题。
在一实施例中,提供一种用于在装置中动态地注册一函数的方法,所述装置包含包括特权模式和非特权模式在内的至少两种操作模式。所述方法包括识别将识别符映射到函数的数据结构中的可用槽;和存储与所述槽中的所述函数关联的指针。所述方法还包括检索与所述槽关联的识别符;和使非特权应用程序可访问所述识别符。
在另一实施例中,提供一种用于在装置中动态地注册一函数的设备,所述装置包含包括特权模式和非特权模式在内的至少两种操作模式。所述设备包括用以识别将识别符映射到函数的数据结构中的可用槽的逻辑;和用以存储与所述槽中的所述函数关联的指针的逻辑。所述设备还包括用以检索与所述槽关联的识别符的逻辑;和用以使非特权应用程序可访问所述识别符的逻辑。
在另一实施例中,提供一种用于在装置中动态地注册一函数的设备,所述装置包含包括特权模式和非特权模式在内的至少两种操作模式。所述设备包括用以识别将识别符映射到函数的数据结构中的可用槽的构件;和用以存储与所述槽中的所述函数关联的指针的构件。所述设备还包括用以检索与所述槽关联的识别符的构件;和用以使非特权应用程序可访问所述识别符的构件。
在另一实施例中,提供一种包括指令的计算机可读媒体,当装置中的处理器执行所述指令时,所述指令运行以在所述装置中动态地注册一函数。所述装置包含包括特权模式和非特权模式在内的至少两种操作模式。所述计算机可读媒体包括用以识别将识别符映射到函数的数据结构中的可用槽的指令;和用以存储与所述槽中的所述函数关联的指针的指令。所述计算机可读媒体还包括用以检索与所述槽关联的识别符的指令;和用以使非特权应用程序可访问所述识别符的指令。
在阅读下述


具体实施方式
和权利要求书之后,将更容易了解本发明的其他方面、优点和特征。

结合附图参看以下具体实施方式
,将更容易了解本文中所描述的实施例的前述方面和相应优点,在附图中图1展示动态注册系统的一实施例,所述动态注册系统运行以便提供装置中的特权模式挂接的动态注册;图2展示一包括动态注册系统的一实施例的装置的方框图;且图3展示说明用于装置中的动态注册系统的一实施例操作的流程图。
具体实施例方式
以下具体实施方式
描述一种动态注册系统,其运行以便提供装置中的特权模式挂接的动态注册。举例而言,所述系统运行以便允许在装置初始化过程期间或在调用函数之前的任何时刻注册函数挂接。在一实施例中,注册过程产生存储于静态变量中的函数识别符,所述静态变量可由特权和非特权两种应用程序读取。特权或非特权应用程序通过获得识别符而可访问所述函数所提供的服务。因为通过每一注册函数自身的接口来访问每一注册函数,所以所述系统克服了常规系统中将函数与固定数量的陷阱相关联的相关问题。
在一或一个以上实施例中,注册系统与执行于装置上的运行环境(或操作系统)互动,所述运行环境(例如)通过提供对于装置特定资源的一般调用来简化装置操作。此类运行环境中的一种为由加州圣地亚哥市的QUALCOMM公司开发的无线二进制运行环境TM(BREWTM)软件平台。以下实施方式描述一执行例如BREW软件平台的运行环境的装置。然而,在一个或一个以上实施例中,所述注册系统适合于与其他类型的运行环境一起使用,以便提供多种装置中的特权函数挂接的快速且有效的注册,所述多种装置包含产生系统或其他控制或监视程序。举例而言,所述装置可包含(但不限于)桌上型计算机、笔记本计算机、手提计算机,和例如无线电话、传呼机、PDA、电子邮件装置、平板计算机的便携式装置,或其他类型计算装置。
图1展示动态注册系统100的一实施例,所述动态注册系统100运行以便提供在装置102中的特权模式挂接的动态注册。系统100可为家用计算机、办公计算机或例如无线电话或PDA的个人装置或者任何其他类型计算装置的一部分。
在一实施例中,装置102包含一运行环境104(意即,BREW),其提供至少两种操作模式,即非特权模式(NP)和特权模式(P)。非特权操作模式用来限制对运行于装置上的应用程序的访问并提供故障检测。举例而言,将以非特权模式运行的应用程序限制于选定的存储区域,且可拒绝其访问装置寄存器或其他资源。特权操作模式允许在此模式下运行的应用程序不受限制地访问存储器或装置资源。
在系统初始化期间,动态地注册函数106以便允许执行于装置上的应用程序从函数106获得服务。与所述函数关联的函数处理器108运行以便在处理器数据结构112中查找一可用槽110。处理器108存储一函数指针,所述函数指针指向可用槽110中的函数106。槽110具有一相关识别符(或索引),所述相关识别符由处理器108检索并存储于非特权应用程序可访问的存储器或其他区域中。举例而言,在一实施例中,将识别符存储于非特权模式可访问的静态变量114中。非特权应用程序116可读取所述静态变量114。因此,函数106经注册以供执行于装置上的应用程序使用。使用相同处理过程来注册一个或任何数量的函数。每一函数使用处理器数据结构112中的可用槽,并将其相关识别符存储于(例如)非特权应用程序可读取的静态变量中。
在装置操作期间,应用程序116在装置102上执行,以便为装置102提供信息、功能和/或服务。举例而言,一种类型的应用程序可为查看器应用程序,其在装置102上运行以便显示电影、新闻或其他类型多媒体内容。
当应用程序116在装置102上执行时,其在运行环境下运行以便提供所需功能性。如果应用程序116需访问函数106以获得服务,那么应用程序114从静态变量114中检索识别符并使用所述识别符来访问函数106。
图2展示装置102的函数方框图,其包括动态注册系统的一实施例。装置102包括处理逻辑202和耦接到内部数据总线204的装置资源206。所述装置资源206包括硬件、软件、存储器、逻辑和/或允许所述装置连接到各种内部和外部资源、装置或系统的其他资源。代码存储器208和数据存储器210也耦接到处理逻辑202。
在一或一个以上实施例中,处理逻辑202包括CPU、处理器、门阵列、硬件逻辑、存储器元件、虚拟机、软件、I/O接口和/或硬件与软件的任何组合。因此,处理逻辑202通常包括用来执行机器可读指令的逻辑。举例而言,可从一例如软盘、CDROM、闪存的计算机可读媒体,或通过装置资源206而连接到装置102的其他计算机可读媒体将指令载入装置102中。在另一实施例中,可从一例如网络服务器的网络资源或通过装置资源206而连接到装置102的任何其他类型的网络资源将指令下载到装置102中。当处理逻辑202执行指令时,所述指令提供如本文中所描述的动态注册系统的一个或一个以上在一实施例中,代码存储器208包括RAM、ROM、FLASH、EEROM或任何其他适宜类型的存储器或其组合。通过存储器管理单元216的操作将代码存储器206分割成特权区域(P)212和非特权区域(NP)214。所述MMU 216运行以便限制非特权程序代码的操作,从而使非特权代码对于代码存储器208的选定区域具有有限访问权。
特权区域212包含程序代码,当所述程序代码被执行时,其对于存储器或装置102的其他系统具有无限制访问权。举例而言,特权代码区域212包括操作系统代码(OS)、用户接口代码(UI)、函数处理器108和特权函数代码106。特权代码区域212中所展示的代码代表可包含于装置102中的类型的特权代码。特权代码区域212也可能包含用于在装置102上执行的其他类型的特权代码。
非特权代码区域214包含程序代码,当所述程序代码被执行时,其受到限制而仅访问选定的存储区域。举例而言,非特权代码区域214包括OS代码和应用程序代码(App-NP)116。
在一实施例中,数据存储器210包括特权区域216和非特权区域218。所述特权区域226包括仅可由特权程序代码访问的数据区域。举例而言,特权数据区域216包括OS、UI所使用的数据和函数106所使用的函数数据。数据区域216也包括处理器数据结构112。
所述非特权数据区域218包含可由非特权程序代码访问的数据区域。举例而言,非特权数据区域218包括由非特权OS和App-NP 116所使用的数据。数据区域218也包括保存有与函数106关联的识别符的静态变量114。MMU 220运行以便限制对于非特权和特权数据区域的访问。举例而言,限制非特权应用程序访问特权数据区域216中的数据或属于非特权数据区域218中其他非特权应用程序的数据。
应注意,所述装置102的配置仅为一种适合实施所述注册系统的配置。也可能使用本发明范畴内的其他装置配置、功能元件或元件配置来实施注册系统的一个或一个以上在装置102运行期间,动态注册系统在初始化过程期间注册一个或一个以上函数。举例而言,在一实施例中,在初始化期间逐个注册函数直到已注册了所有函数为止。为每一函数判定结构112中的一可用槽,且使每一个别槽的识别符可用,从而使得其可由非特权应用程序读取。
在一实施例中,所描述的注册系统包括存储于计算机可读媒体上的程序指令,当处理逻辑202执行所述程序指令时,所述程序指令提供本文中所描述的功能。在一个或一个以上实施例中,计算机可读媒体包括软盘、CD、存储卡、FLASH存储装置、RAM、ROM或任何其他类型的存储装置。
图3展示一说明在装置(例如装置102)中使用的注册系统的一实施例的操作流程图300。为清晰起见,将参看图2中所展示的装置102来描述流程图300。将假设所述装置正执行BREW运行时环境,且处理逻辑202执行存储于代码存储器208中的程序指令以便执行下文描述的功能。
在方块302处,注册过程以找出处理器数据结构中一可用槽而开始。举例而言,处理逻辑202执行程序指令以便在数据结构112中搜寻一可用槽。在一实施例中,所述数据结构112为一表,且所述表中的每一项均为一槽。每一槽可存储一函数的地址指针,且每一槽具有一相关识别符(例如表索引)。
在方块304处,在已找到所述可用槽之后,将待注册的函数的指针存储于所述槽中。举例而言,将函数Func 106的地址指针存储于可用槽110中。
在方块306处,使槽识别符可用于供非特权应用程序进行读取访问。举例而言,槽识别符存储于非特权应用程序可读取的一静态变量中。举例而言,所述变量可位于一赋予特权应用程序读取/写入特权且赋予非特权应用程序只读特权的数据区域中。
在方块308处,使用识别符来访问特权函数以便为特权和非特权应用程序执行服务。关于如何使用识别符来访问特权函数,读者可参考标题为“SYSTEM FOR PROVIDINGTRANSITIONS BETWEEN OPERATING MODES OF A DEVICE”的代理人案号为第030620号的美国专利申请案,其以引用的方式并入本文中。
应注意,程序流程图300仅说明一实施例,且在不背离本发明范畴的前提下可对程序元件做出变化、添加或重新配置。
因此,尽管本文已说明并描述动态注册系统的方法和设备的一个或一个以上实施例,但应了解,在不背离实施例精神或本质特征的前提下可对所述实施例做出各种变化。因此,本文中的揭示内容和描述仅旨在说明而非限定上述权利要求书中所陈述的本发明范畴。
权利要求
1.一种用于在一装置中动态地注册一函数的方法,所述装置包含包括一特权模式和一非特权模式在内的至少两个操作模式,所述方法包括识别一将识别符映射到函数的数据结构中的一可用槽;存储一与所述槽中的所述函数关联的指针;检索一与所述槽关联的识别符;和使非特权应用程序可访问所述识别符。
2.根据权利要求1所述的方法,其中用以使所述识别符可被访问的所述步骤包括将所述识别符存储于非特权应用程序可读取的一存储器中。
3.根据权利要求1所述的方法,其中所述数据结构为一将识别符映射到函数的表。
4.根据权利要求3所述的方法,其中所述识别符为一进入所述表的索引。
5.根据权利要求1所述的方法,其中所述装置为一无线装置。
6.根据权利要求1所述的方法,其进一步包括在装置初始化期间执行所述注册。
7.一种用于在一装置中动态地注册一函数的设备,所述装置包含包括一特权模式和一非特权模式在内的至少两个操作模式,所述设备包括用以识别一将识别符映射到函数的数据结构中的一可用槽的逻辑;用以存储一与所述槽中的所述函数关联的指针的逻辑;用以检索一与所述槽关联的识别符的逻辑;和用以使非特权应用程序可访问所述识别符的逻辑。
8.根据权利要求7所述的设备,其中用以使所述识别符可被访问的所述逻辑包括用以将所述识别符存储于非特权应用程序可读取的存储器中的逻辑。
9.根据权利要求7所述的设备,其中所述数据结构为一将识别符映射到函数的表。
10.根据权利要求9所述的设备,其中所述识别符为一进入所述表的索引。
11.根据权利要求7所述的设备,其中所述装置为一无线装置。
12.根据权利要求7所述的设备,其进一步包括用以在装置初始化期间执行所述注册的逻辑。
13.一种用于在一装置中动态地注册一函数的设备,所述装置包含包括一特权模式和一非特权模式在内的至少两个操作模式,所述设备包括用以识别一将识别符映射到函数的数据结构中的一可用槽的构件;用以存储一与所述槽中的所述函数关联的指针的构件;用以检索一与所述槽关联的识别符的构件;和用以使非特权应用程序可访问所述识别符的构件。
14.根据权利要求13所述的设备,其中用以使所述识别符可被访问的所述构件包括用以将所述识别符存储于非特权应用程序可读取的存储器中的构件。
15.根据权利要求13所述的设备,其中所述数据结构为一将识别符映射到函数的表。
16.根据权利要求15所述的设备,其中所述识别符为一进入所述表的索引。
17.根据权利要求13所述的设备,其中所述装置为一无线装置。
18.根据权利要求13所述的设备,其进一步包括用以在装置初始化期间执行所述注册的构件。
19.一种包括指令的计算机可读媒体,当一装置中的一处理器执行所述指令时,所述指令运行以便在所述装置中动态地注册一函数,其中所述装置包含包括一特权模式和一非特权模式在内的至少两个操作模式,所述计算机可读媒体包括用以识别一将识别符映射到函数的数据结构中的一可用槽的指令;用以存储一与所述槽中的所述函数关联的指针的指令;用以检索一与所述槽关联的识别符的指令;和用以使非特权应用程序可访问所述识别符的指令。
20.根据权利要求19所述的计算机可读媒体,其中用以使所述识别符可被访问的所述指令包括用以将所述识别符存储于非特权应用程序可读取的存储器中的指令。
21.根据权利要求19所述的计算机可读媒体,其中所述数据结构为一将识别符映射到函数的表。
22.根据权利要求21所述的计算机可读媒体,其中所述识别符为一进入所述表的索引。
23.根据权利要求19所述的计算机可读媒体,其中所述装置为一无线装置。
24.根据权利要求19所述的计算机可读媒体,其进一步包括用以在装置初始化期间执行所述注册的指令。
全文摘要
本发明提供一种用于在一装置中动态注册特权模式挂接(hooks)的系统。所述系统包含一种在一装置中动态注册一函数的方法,所述装置包含包括一特权模式和一非特权模式在内的至少两个操作模式。所述方法包括识别一将识别符映射到函数的数据结构中的一可用槽(slot);和存储一与所述槽中的所述函数关联的指针。所述方法还包括检索一与所述槽关联的识别符;和使非特权应用程序可访问所述识别符。
文档编号G06FGK1875341SQ200480031824
公开日2006年12月6日 申请日期2004年10月28日 优先权日2003年10月29日
发明者布赖恩·哈罗德·凯利, 拉梅什·钱德拉塞卡尔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1