CN1943160A - 用于在一装置中调用一特权函数的系统 - Google Patents
用于在一装置中调用一特权函数的系统 Download PDFInfo
- Publication number
- CN1943160A CN1943160A CNA2004800318254A CN200480031825A CN1943160A CN 1943160 A CN1943160 A CN 1943160A CN A2004800318254 A CNA2004800318254 A CN A2004800318254A CN 200480031825 A CN200480031825 A CN 200480031825A CN 1943160 A CN1943160 A CN 1943160A
- Authority
- CN
- China
- Prior art keywords
- function
- application
- privileged
- mode
- privileged mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
本发明提供一种用于在一装置中调用一特权函数的系统。所述系统包含一允许一应用程序在一装置上调用一函数的方法,其中所述装置包含包括一特权模式(314)和一非特权模式(322)在内的至少两种操作模式,且所述函数以所述特权模式(314)执行。所述方法包含:从所述应用程序接收一调用所述函数的请求;和判定所述应用程序的操作模式。所述方法还包含:如果所述应用程序正以所述非特权模式执行,那么使用一中断(310)来调用所述函数,其中在与所述应用程序相同的任务中执行所述函数。所述方法还包含:如果所述应用程序正以所述特权模式执行,那么直接调用所述函数。
Description
技术领域
本发明大体上涉及一装置的有效操作,且更特定地说涉及一种用于在一装置中调用一特权函数的系统。
背景技术
技术进步已导致家庭、办公和个人用途的各种装置的发展。例如,例如桌上型计算机、笔记本计算机和平板计算机的计算机系统已成为用于家庭或办公环境的强大工具。例如无线电话、个人数字助理(PDA)和传呼装置的个人装置也已变得更加强大且正被广泛使用。
如今许多装置包括运行例如UNIX、LINUX的操作系统或类似操作系统的复杂硬件和软件。通常,这些操作系统提供多种操作模式。例如,大多数系统提供特权操作模式和非特权操作模式。允许以特权操作模式执行的程序无限制地访问存储器和系统资源。限制以非特权模式执行的程序访问特定存储区域和/或装置系统。此配置对于重要的存储器或装置函数提供某种程度的保护。例如,通过以非特权模式执行第三方应用程序,可保护重要的存储区域和装置函数免遭非授权访问。并且,此配置允许系统在执行期间将故障隔离开来。
然而在某些情况下,需要允许从以特权模式或非特权模式执行的应用程序调用特权模式函数。例如,需要特权模式应用程序具有对特权模式函数的访问权,但也需要以非特权模式执行的应用程序具有对相同特权函数的访问权。例如,可能需要允许应用程序具有对一选定的系统文件或装置硬件(例如装置调制解调器)的访问权。
不幸的是,常规系统利用一陷阱来暂时中止非特权应用程序的执行,同时一分离的特权模式“核心”任务执行所请求的操作。因此,新特权模式任务导致另外的排程复杂性和额外开销。也可能存在调度程序延滞形式的另外的系统延迟。此外,新任务与非特权应用程序(从中调用了新任务)相比可以不同优先权而执行,藉此使系统排程和操作进一步复杂。
因此,需要这样一种系统,其提供以特权模式或非特权模式执行的应用程序调用特权模式函数的方式,所述应用程序调用一特权模式函数以便在与应用程序相同的任务内执行,藉此为执行于任一模式下的应用程序提供对特权模式挂接的访问权。
发明内容
在一或一个以上实施例中,提供一种包括方法和/或设备的系统,所述系统运行以便为以特权模式或非特权模式执行的应用程序提供对特权模式挂接的访问权。例如,在一实施例中,所述系统提供一函数处理器,其允许以非特权模式运行的应用程序在相同任务(或执行线程)内执行特权模式函数,藉此避免任务建立、排定和调度程序延滞。所述函数处理器也可为特权应用程序所访问以便允许那些应用程序执行特权函数。因此,所述系统良好地应用于现有软件中,因为可在不改变现有软件模型的前提下实现对特权模式函数的存取。
在一或一个以上实施例中,所述函数处理器运行以便判定一调用应用程序正以特权模式执行还是以非特权模式执行。如果所述调用应用程序正以特权模式执行,那么函数处理器直接调用特权函数。如果调用应用程序正以非特权模式执行,那么函数处理器产生一由(例如)一过渡系统处理的中断,所述过渡系统允许在与调用非特权应用程序相同的任务内调用特权函数。因此,函数处理器运行以便为特权和非特权应用程序两者提供特权函数挂接。
在一实施例中,调用应用程序将一函数识别符传递至函数处理器。所述函数识别符识别可用于执行的函数。在一实施例中,函数处理器根据识别符判定函数并直接调用所述函数。在另一实施例中,函数处理器产生中断并将识别符传递至过渡系统,所述过渡系统在适当验证之后使用所述识别符来调用所请求的函数。所述中断可为基于软体、硬体或异常的中断。
在一实施例中,提供一种允许一应用程序在一装置上调用一函数的方法,其中所述装置包含至少两种操作模式,所述操作模式包括一特权模式和一非特权模式,且所述函数以所述特权模式执行。所述方法包括:从所述应用程序接收一调用所述函数的请求;和判定所述应用程序的操作模式。所述方法还包括:如果所述应用程序正以所述非特权模式执行,那么使用一中断来调用所述函数,其中在与所述应用程序相同的任务内执行所述函数。所述方法还包括:如果所述应用程序正以所述特权模式执行,那么直接调用所述函数。
在另一实施例中,提供一种允许一应用程序在一装置上调用一函数的设备,其中所述装置包含至少两种操作模式,所述操作模式包括一特权模式和一非特权模式,且所述函数以所述特权模式执行。所述设备包括从所述应用程序接收一调用所述函数的请求的逻辑。所述设备还包括判定所述应用程序的操作模式的逻辑。所述设备还包括如果所述应用程序正以所述非特权模式执行就使用一中断来调用所述函数的逻辑,其中在与所述应用程序相同的任务内执行所述函数。所述设备还包括如果所述应用程序正以所述特权模式执行就直接调用所述函数的逻辑。
在另一实施例中,提供一种允许一应用程序在一装置上调用一函数的设备,其中所述装置包含至少两种操作模式,所述操作模式包括一特权模式和一非特权模式,且所述函数以所述特权模式执行。所述设备包括用于从所述应用程序接收一调用所述函数的请求的构件,和用于判定所述应用程序的操作模式的构件。所述设备还包括用于如果所述应用程序正以所述非特权模式执行就使用一中断来调用所述函数的构件,其中在与所述应用程序相同的任务内执行所述函数。所述设备还包括用于如果所述应用程序正以所述特权模式执行就直接调用所述函数的构件。
在另一实施例中,提供一种包括指令的计算机可读媒体,当一装置中的一处理器执行所述指令时,所述指令运行以便允许一应用程序在一装置上调用一函数,其中所述装置包含至少两种操作模式,所述操作模式包括一特权模式和一非特权模式,且所述函数以所述特权模式执行。所述计算机可读媒体包括用于从所述应用程序接收一调用所述函数的请求的指令,和用于判定所述应用程序的操作模式的指令。所述计算机可读媒体还包括用于如果所述应用程序正以所述非特权模式执行就使用一中断来调用所述函数的指令,其中在与所述应用程序相同的任务内执行所述函数。所述计算机可读媒体还包括用于如果所述应用程序正以所述特权模式执行就直接调用所述函数的指令。
在阅读下文所陈述的附图说明、具体实施方式和权利要求书之后,将更易了解本发明的其他方面、优点和特征。
附图说明
结合附图,参看以下具体实施方式,将更易了解本文中所描述的实施例的前述方面和相应优点,在附图中:
图1展示一函数处理器系统的一实施例,所述函数处理器系统为执行于一装置102上的特权和非特权应用程序提供特权函数挂接;
图2展示一包括函数处理器系统的一实施例的装置的详细方框图;且
图3展示说明用于装置中的函数处理器系统的一实施例操作的流程图。
具体实施方式
以下具体实施方式描述一函数处理器系统,其为特权和非特权应用程序提供特权函数挂接。例如,所述系统运行以便从特权和非特权应用程序接收函数调用,此后,判定调用应用程序的操作模式,并提供至特权函数的快速且有效过渡。所述函数执行于与调用应用程序相同的执行线程内。因此,函数处理器为特权和非特权应用程序两者提供特权函数挂接,接着特权和非特权应用程序能够调用特权函数而不会产生一新任务,藉此避免新任务建立、排定和调度程序延滞的开销。
在一或一个以上实施例中,函数处理器系统与执行于装置上的运行环境(或操作系统)互动,所述运行环境是用来(例如)通过提供对装置特定资源的一般调用来简化装置操作。一种此类运行环境为由美国加州圣地亚哥市的高通(QUALCOMM)公司开发的无线二进制运行环境TM(BREWTM)软件平台。以下实施方式描述一执行例如BREW软件平台的运行环境的装置。然而,在一或一个以上实施例中,所述注册系统适于与其他类型运行环境一起使用以在多种装置中提供特权函数挂接的快速且有效注册,所述多种装置包含产生系统或其他控制或监视程序。例如,所述装置可包含(但不限于)台式计算机、笔记本计算机、手提计算机,和例如无线电话、传呼机、PDA、电子邮件装置、平板计算机等便携式装置,或其他类型计算装置。
图1展示一函数处理器系统100的一实施例,所述函数处理器系统100为执行于一装置102上的特权和非特权应用程序提供特权函数挂接。系统100可为家用计算机、办公计算机、或例如无线电话或PDA的个人装置或者任何其他类型计算装置的一部分。在操作期间,一或一个以上应用程序执行于装置102上以便为装置102提供信息、功能和/或服务。例如,应用程序的一种类型可为观看器应用程序,其运行以便允许装置102显示电影、新闻或其他类型多媒体内容。
在一实施例中,装置102包含一运行环境104(意即,BREW),其提供至少两种操作模式,即非特权模式(NP)和特权模式(P)。非特权操作模式是用来限制运行于装置上的应用程序的访问并提供故障检测。例如,将以非特权模式运行的应用程序限制于选定的存储区域,且可拒绝其访问装置寄存器或其他资源。特权操作模式允许在此模式下运行的应用程序不受限制地访问存储器或装置资源。
当应用程序执行于装置102上时,其在运行环境下运行以便提供所需功能性。例如,应用程序116在非特权模式(NP)下运行于装置102上,且应用程序118在特权模式(P)中运行于装置102上。这些应用程序的任一者可要求通过一特权函数110可用的功能或系统资源。例如,应用程序可能需要访问特权存储器或装置硬件资源。为了获得这些功能和服务,函数处理器系统100提供一机制,所述机制允许任一应用程序(116、118)通过一函数处理器112来调用特权函数。当通过函数处理器112被调用时,函数110执行于与调用应用程序相同的执行线程内。在函数110执行所请求的服务之后,程序控制返回调用应用程序。
因此,函数处理器系统100提供一快速且有效的机制以便允许特权和非特权应用程序执行特权函数,而无需建立新任务和排程新任务以供由运行环境执行,藉此消除排程器复杂性和相关调度程序延滞。
图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或任何其他适宜类型的存储器,或其组合。通过一存储器管理单元(memory management unit)216的操作将代码存储器206分割成一特权区域(P)212和一非特权区域(NP)214。所述MMU216运行以便限制非特权程序代码的操作,从而使非特权代码对于代码存储器208的选定区域具有有限访问权。
特权区域212包含程序代码,当所述程序代码被执行时,其对于存储器或装置102的其他系统具有无限制访问权。例如,特权代码区域212包括操作系统代码(OS)、用户接口代码(UI)、验证代码、应用程序代码(App-P)108和特权函数代码FUNC 110。特权代码区域212中所展示的代码代表可包含于装置102中的特权代码类型。特权代码区域212也可能包含用于执行于装置102上的其他类型特权代码。
非特权代码区域214包含程序代码,当所述程序代码被执行时,其被限制为仅访问选定的存储区域。例如,非特权代码区域214包括OS代码和应用程序代码(App-NP)106,以及函数处理器106。在一或一个以上实施例中,可从一在装置制造时安装的网络或系统将FH 106下载至装置102,或可从一计算机可读媒体将FH 106添加至所述装置。
在一实施例中,数据存储器210包括一特权区域216和一非特权区域218。所述特权区域216包括仅可由特权程序代码访问的数据区域。例如,特权数据区域226包括OS、UI、验证、App-P和FUNC代码所使用的数据。所述非特权数据区域218包含可由非特权程序代码访问的数据区域。例如,非特权数据区域218包括由非特权OS、App-NP和FH程序代码所使用的数据。一存储器管理单元(MMU)220也耦接至数据存储器210。MMU 220运行以便限制对于非特权和特权数据区域的访问。例如,限制非特权应用程序访问特权数据区域216中的数据,或属于非特权数据区域218中其他非特权应用程序的数据。
处理逻辑模块202还包括模式逻辑模块222和中断逻辑模块224。模式逻辑模块222包括一CPU、处理器、逻辑、装置寄存器、软件或运行以允许在装置102的操作模式之间进行模式变化的硬件与软件的任何组合。例如,在一实施例中,模式逻辑模块222包括一寄存器,所述寄存器的位设置操作模式。例如,为了从特权模式切换至非特权模式,设置暂存器中选定的位,从而使得恢复非特权堆栈且以非特权模式继续进行程序执行。
中断逻辑模块224包括一CPU、处理器、逻辑、软件或运行以允许处理逻辑模块202接收并处理中断的硬件与软件的任何组合。例如,中断逻辑模块224可接收由处理逻辑模块202执行的程序代码所产生的软件中断。在一实施例中,函数处理系统使用所述软件中断来允许非特权程序代码执行相同任务和优先权内的特权函数。在一实施例中,中断逻辑模块224处理软件中断、硬件中断、程序异常或作为函数处理系统操作的一部分的任何其他类型中断。
应注意,所述装置102的配置仅为一种适于实施所描述的函数处理系统的配置。也可能使用本发明范畴内的其他装置配置、功能元件或元件配置来实施函数处理系统的一或一个以上实施例。
在装置102操作期间,处理逻辑模块202执行非特权应用程序代码(意即,App-NP)和/或特权应用程序代码(App-P)。当任一应用程序要求特权函数服务(例如Func 110)时,个别应用程序调用具有识别符的FH代码112,所述识别符识别所需函数(意即,Func)。FH代码112为非特权代码,且因此其可从特权或非特权应用程序中被调用。
FH代码判定调用应用程序的操作模式,并基于所判定的模式来执行选定步骤以便调用特权函数Func来提供所请求的服务而不会建立新任务。以下为FH 112用来回应对于特权函数服务的请求的步骤概述。
1.从应用程序接收一执行与一识别符关联的函数的请求,所述识别符连同所述请求一起传递。
2.判定所述请求应用程序的操作模式。
3.如果请求应用程序正以特权操作模式执行,那么:
a.基于识别符来查找所请求的特权函数。
b.调用特权函数。
c.返回调用特权应用程序。
4.如果请求应用程序正以非特权操作模式执行,那么:
a.产生软件中断并传递识别符。
b.过渡至特权模式中断处理器。
c.基于识别符来查找所请求的特权函数。
d.调用特权函数。
e.在特权函数执行之后,恢复非特权寄存器。
f.返回调用非特权应用程序。
在一实施例中,所描述的函数处理系统包括存储于计算机可读媒体上的程序指令,当处理逻辑模块202执行所述程序指令时,所述程序指令提供本文中所描述的功能。在一或一个以上实施例中,计算机可读媒体包括软盘、CD、存储卡、FLASH存储装置、RAM、ROM或任何其他类型存储装置。
图3展示说明用于一装置(例如装置102)中的函数处理系统的一实施例操作的流程图300。为明确起见,将参看图2中所展示的装置102来描述流程图300。将假设所述装置正执行BREW运行环境,所述BREW运行环境运行以便建立一执行线程302。所述执行线程302表示在装置上执行特权或非特权应用程序。
一系统排程器(未图示)运行以便排程应用程序的执行,从而形成执行线程302。通常,排程器运行以便基于优先权来排程执行,但可运行以便基于其他标准来排程执行。然而,本文中所描述的函数处理器系统提供一函数处理器,所述函数处理器在与调用应用程序相同的执行线程内运行,藉此避免新任务建立、相关排程器复杂性和可能的调度程序延滞。
执行线程302表示执行特权应用程序(App-P)或非特权应用程序(App-NP)。执行应用程序可为查看器应用程序,其运行以便允许装置为装置用户显示各种多媒体内容。当应用程序执行时,发生对于一特权函数(Func)服务的要求。为了获得来自特权函数的服务,应用程序调用FH 304并传递一识别特权函数Func的识别符。将假设:系统中可用的特权函数具有一可被执行应用程序发现的相关识别符。在一或一个以上实施例中,执行存储于代码存储器208中的程序指令的处理逻辑模块202执行以下功能,所述处理逻辑模块202也处理数据存储器210中的数据。
在方框306处,FH 304获得识别特权函数Func的识别符。例如,所述识别符可在与处理逻辑模块202关联的寄存器中或数据存储器210中其他存储位置中而传递至FH。
在方框308处,执行一测试来判定调用应用程序正以特权模式执行还是以非特权模式执行。例如,处理逻辑模块通过评估处理器状态寄存器来判定应用程序的当前处理模式。如果调用应用程序正以非特权模式执行,那么方法前进至方框310。如果调用应用程序正以特权模式执行,那么方法前进至方框312。
在方框312处,已判定应用程序正以特权模式执行。FH代码304基于接收到的识别符来查找所请求的特权函数(意即,Func)。例如,处理逻辑模块202使用识别符来访问一将可用函数映射至识别符的数据结构,以便判定调用应用程序正请求的函数。数据结构可存储于数据存储器210中。
在方框314中,调用特权函数Func以便执行所请求的服务。例如,特权函数可访问一系统文件或一硬件资源。在一实施例中,处理逻辑模块执行程序指令以便调用特权函数Func。一旦执行,函数Func也可执行各种参数查核和验证以便确认调用应用程序已通过合法且有效参数。一旦函数Func已完成执行,那么程序流返回执行线程302。
因此,如果特权应用程序通过FH 304调用函数Func,那么FH 304运行以便基于识别符来判定所请求的函数,并调用所述函数来执行所请求的服务。如果非特权应用程序通过FH 304调用函数Func,那么FH 304如下运行以便提供所请求的服务。
在方框310处,FH 304产生一中断,所述中断运行以便请求装置的操作模式过渡至特权模式316,从而特权函数Func可执行。中断可为一软件中断或可由FH 304产生的任何其他类型中断。中断包括自调用应用程序传递的识别符。例如,中断可由图2中所展示的中断逻辑模块224产生和/或处理。
在产生中断之后,程序执行流动至特权模式程序代码316,其中在与调用应用程序相同的任务内调用特权函数Func。
下文提供对于程序代码316的操作的简单描述。然而,关于对于程序代码316的操作的更详细描述,读者可参考标题为“SYSTEM FOR PROVIDING TRANSITIONSBETWEEN OPERATING MODES OF A DEVICE”的代理人案号第030620号美国专利申请案,其以引用的方式并入本文中。
在方框318处,基于所传递的识别符来判定所需特权函数。例如,处理逻辑模块202基于识别符来搜寻存储于数据存储器210中的数据结构以便识别所需函数Func。
在方框320处,一旦判定了特权函数Func,那么调用所述特权函数Func。例如,在一实施例中,处理逻辑模块202执行存储于代码存储器208中的指令来调用函数Func。特权函数可运行以便打开一特定系统文件,所述系统文件含有供调用非特权应用程序使用的数据。在一实施例中,从应用程序将另外的参数传递至特权函数。例如,所述参数可进一步指示或界定非特权应用程序所请求的服务类型。特权函数运行以便验证这些参数,从而确认特权函数的执行将不会超出准予应用程序的特权。例如,所述函数运行以便验证参数,从而函数的执行将不会超出对应用程序规定的存储限制。
在方框322处,在执行函数Func之后,恢复非特权模式寄存器,包含恢复非特权模式堆栈。如路径324处所展示,程序执行返回非特权应用程序线302。
应注意,程序流程图300仅说明一实施例,且在不背离本发明范畴的前提下可对程序元件作出变化、添加或重新配置。
因此,尽管本文已说明并描述一函数处理系统的方法和设备的一或一个以上实施例,但应了解在不背离所述实施例精神或本质特征的前提下可对这些实施例作出各种变化。因此,本文中的揭示内容和描述是用来说明所附权利要求书中提出的本发明的保护范围,而不是对其进行限定。
Claims (18)
1.一种允许一应用程序在一装置上调用一函数的方法,其中所述装置包含包括一特权模式和一非特权模式在内的至少两种操作模式,且所述函数以所述特权模式执行,所述方法包括:
从所述应用程序接收一调用所述函数的请求;
判定所述应用程序的操作模式;
如果所述应用程序正以所述非特权模执行,那么使用一中断来调用所述函数,其中在与所述应用程序相同的任务中执行所述函数;和
如果所述应用程序正以所述特权模式执行,那么直接调用所述函数。
2.根据权利要求1所述的方法,其中所述中断为一软件中断。
3.根据权利要求1所述的方法,其进一步包括基于一连同所述请求一起传递的识别符来判定所述函数。
4.根据权利要求1所述的方法,其进一步包括当所述函数的所述执行完成时返回至所述应用程序。
5.根据权利要求1所述的方法,其中所述装置为一无线装置。
6.一种允许一应用程序在一装置上调用一函数的设备,其中所述装置包含包括一特权模式和一非特权模式在内的至少两种操作模式,且所述函数以所述特权模式执行,所述设备包括:
从所述应用程序接收一调用所述函数的请求的逻辑单元;
判定所述应用程序的操作模式的逻辑单元;
在所述应用程序正在执行所述非特权模式时使用一中断来调用所述函数的逻辑单元,其中,在与所述应用程序相同的任务中执行所述函数;和
在所述应用程序正在执行所述特权模式时直接调用所述函数的逻辑单元。
7.根据权利要求6所述的设备,其中所述中断为一软件中断。
8.根据权利要求6所述的设备,其进一步包括一与所述请求关联的识别符,所述识别符识别所述函数。
9.根据权利要求6所述的设备,其中所述装置为一无线装置。
10.一种允许一应用程序在一装置上调用一函数的设备,其中所述装置包含包括一特权模式和一非特权模式在内的至少两种操作模式,且所述函数以所述特权模式执行,所述设备包括:
用于从所述应用程序接收一调用所述函数的请求的构件;
用于判定所述应用程序的操作模式的构件;
所述应用程序正在执行所述非特权模式时的用于使用一中断来调用所述函数的构件,其中在与所述应用程序相同的任务中执行所述函数;和
所述应用程序正在执行所述特权模式时的用于直接调用所述函数的构件。
11.根据权利要求10所述的设备,其中所述中断为一软件中断。
12.根据权利要求10所述的设备,其进一步包括用于识别所述函数的识别符构件。
13.根据权利要求10所述的设备,其中所述装置为一无线装置。
14.一种包括指令的计算机可读媒体,当一装置中的一处理器执行所述指令时,所述指令运行以允许一应用程序在一装置上调用一函数,其中所述装置包含包括一特权模式和一非特权模式在内的至少两种操作模式,且所述函数以所述特权模式执行,所述计算机可读媒体包括:
用于从所述应用程序接收一调用所述函数的请求的指令;
用于判定所述应用程序的操作模式的指令;
用于如果所述应用程序正以所述非特权模式执行就使用一中断来调用所述函数的指令,其中在与所述应用程序相同的任务中执行所述函数;和
用于如果所述应用程序正以所述特权模式执行就直接调用所述函数的指令。
15.根据权利要求1所述的计算机可读媒体,其中所述中断为一软件中断。
16.根据权利要求1所述的计算机可读媒体,其进一步包括用于基于一连同所述请求一起传递的识别符来判定所述函数的指令。
17.根据权利要求1所述的计算机可读媒体,其进一步包括用于当所述函数的所述执行完成时返回至所述应用程序的指令。
18.根据权利要求1所述的计算机可读媒体,其中所述装置为一无线装置。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/697,355 US7120794B2 (en) | 2003-10-29 | 2003-10-29 | System for invoking a privileged function in a device |
| US10/697,355 | 2003-10-29 | ||
| PCT/US2004/036286 WO2005043335A2 (en) | 2003-10-29 | 2004-10-28 | System for invoking a privileged function in a device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1943160A true CN1943160A (zh) | 2007-04-04 |
| CN100596055C CN100596055C (zh) | 2010-03-24 |
Family
ID=34550336
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN200480031825A Expired - Fee Related CN100596055C (zh) | 2003-10-29 | 2004-10-28 | 用于在一装置中调用一特权函数的系统 |
Country Status (16)
| Country | Link |
|---|---|
| US (1) | US7120794B2 (zh) |
| EP (1) | EP1682981B1 (zh) |
| JP (1) | JP2007510236A (zh) |
| KR (1) | KR100832274B1 (zh) |
| CN (1) | CN100596055C (zh) |
| AR (1) | AR046351A1 (zh) |
| AU (1) | AU2004285256A1 (zh) |
| BR (1) | BRPI0415917A (zh) |
| CA (1) | CA2543620A1 (zh) |
| IL (1) | IL175013A0 (zh) |
| MY (1) | MY134441A (zh) |
| NZ (1) | NZ546716A (zh) |
| PE (1) | PE20050857A1 (zh) |
| RU (1) | RU2342695C2 (zh) |
| TW (1) | TW200535695A (zh) |
| WO (1) | WO2005043335A2 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101782854A (zh) * | 2009-01-19 | 2010-07-21 | 英业达股份有限公司 | 用于选择只读存储器模块间的沟通方法及系统 |
| CN105138360A (zh) * | 2015-08-19 | 2015-12-09 | 惠州Tcl移动通信有限公司 | 一种可穿戴设备的系统函数调用方法及其可穿戴设备 |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7475398B2 (en) * | 2000-08-01 | 2009-01-06 | Wind River Systems, Inc. | System and method for implementing a smart system call |
| US7076637B2 (en) * | 2003-10-29 | 2006-07-11 | Qualcomm Inc. | System for providing transitions between operating modes of a device |
| US8037515B2 (en) | 2003-10-29 | 2011-10-11 | Qualcomm Incorporated | Methods and apparatus for providing application credentials |
| US7788487B2 (en) * | 2003-11-28 | 2010-08-31 | Panasonic Corporation | Data processing apparatus |
| US7669050B2 (en) * | 2004-06-24 | 2010-02-23 | International Business Machines Corporation | Method to enable user mode process to operate in a privileged execution mode |
| US7793350B2 (en) * | 2004-10-28 | 2010-09-07 | International Business Machines Corporation | Apparatus, system, and method for simulated access to restricted computing resources |
| US20060107323A1 (en) * | 2004-11-16 | 2006-05-18 | Mclean Ivan H | System and method for using a dynamic credential to identify a cloned device |
| US9176713B2 (en) * | 2005-11-30 | 2015-11-03 | International Business Machines Corporation | Method, apparatus and program storage device that provides a user mode device interface |
| US8225189B2 (en) * | 2007-03-15 | 2012-07-17 | Broadcom Corporation | Data error detection |
| KR101426575B1 (ko) * | 2007-03-23 | 2014-08-05 | 퀄컴 인코포레이티드 | 분산형 프로세싱 시스템 및 방법 |
| US8353058B1 (en) * | 2009-03-24 | 2013-01-08 | Symantec Corporation | Methods and systems for detecting rootkits |
| US9207968B2 (en) * | 2009-11-03 | 2015-12-08 | Mediatek Inc. | Computing system using single operating system to provide normal security services and high security services, and methods thereof |
| US8578368B2 (en) * | 2010-05-05 | 2013-11-05 | Insyde Software Corporation | Injecting a file from the bios into an operating system |
| US8788863B2 (en) | 2011-08-10 | 2014-07-22 | Microsoft Corporation | System and method for restoring and/or continuing execution functionality to various processes based on predefined power classifications while transitioning a computing environment from connected standby state to execution state |
| JPWO2013080631A1 (ja) * | 2011-11-30 | 2015-04-27 | 日本放送協会 | 受信機、プログラム及び受信方法 |
| US8850450B2 (en) * | 2012-01-18 | 2014-09-30 | International Business Machines Corporation | Warning track interruption facility |
| US10210349B2 (en) * | 2012-02-08 | 2019-02-19 | Arm Limited | Data processing apparatus and method using secure domain and less secure domain |
| US9213828B2 (en) * | 2012-02-08 | 2015-12-15 | Arm Limited | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains |
| US9477834B2 (en) * | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
| US9202071B2 (en) | 2012-02-08 | 2015-12-01 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
| US9116711B2 (en) | 2012-02-08 | 2015-08-25 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
| GB2503471B (en) * | 2012-06-27 | 2015-05-06 | Nordic Semiconductor Asa | Integrated-circuit radio |
| GB2521607B (en) * | 2013-12-23 | 2016-03-23 | Nordic Semiconductor Asa | Integrated-Circuit Radio |
| US9400885B2 (en) | 2014-01-10 | 2016-07-26 | Bitdefender IPR Management Ltd. | Computer security systems and methods using virtualization exceptions |
| US9372996B2 (en) * | 2014-05-15 | 2016-06-21 | International Business Machines Corporation | Protecting data owned by an operating system in a multi-operating system mobile environment |
| US9904580B2 (en) | 2015-05-29 | 2018-02-27 | International Business Machines Corporation | Efficient critical thread scheduling for non-privileged thread requests |
| US11171983B2 (en) * | 2018-06-29 | 2021-11-09 | Intel Corporation | Techniques to provide function-level isolation with capability-based security |
| CN114282275A (zh) * | 2020-09-28 | 2022-04-05 | 阿里巴巴集团控股有限公司 | 模式切换方法、装置、嵌入式系统和存储介质 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| SU1621029A1 (ru) * | 1988-07-12 | 1991-01-15 | Предприятие П/Я Р-6668 | Электронна вычислительна машина дл ускоренной обработки запросов прерываний |
| US6175916B1 (en) * | 1997-05-06 | 2001-01-16 | Microsoft Corporation | Common-thread inter-process function calls invoked by jumps to invalid addresses |
| EP1105996A4 (en) * | 1998-08-21 | 2005-08-17 | Visto Corp | DEVICE AND METHOD FOR ENSURING SAFE ACCESS TO SERVICES IN A COMPUTER NETWORK |
| US6553384B1 (en) * | 1999-06-14 | 2003-04-22 | International Business Machines Corporation | Transactional name service |
| US6931546B1 (en) * | 2000-01-28 | 2005-08-16 | Network Associates, Inc. | System and method for providing application services with controlled access into privileged processes |
| US20020138727A1 (en) * | 2001-03-26 | 2002-09-26 | International Business Machines Corporation | System and process for enhancing method calls of special purpose object-oriented programming languages to have security attributes for access control |
| US6842803B2 (en) * | 2001-07-09 | 2005-01-11 | Advanced Micro Devices, Inc. | Computer system with privileged-mode modem driver |
| US6779065B2 (en) * | 2001-08-31 | 2004-08-17 | Intel Corporation | Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads |
| DE10155092B4 (de) * | 2001-11-09 | 2006-10-05 | Siemens Ag | Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen |
| EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
| US7171546B2 (en) * | 2002-05-23 | 2007-01-30 | Adams Phillip M | CPU life-extension apparatus and method |
| US20050076186A1 (en) * | 2003-10-03 | 2005-04-07 | Microsoft Corporation | Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements |
| KR100506254B1 (ko) * | 2003-11-21 | 2005-08-10 | 삼성전자주식회사 | 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법 |
-
2003
- 2003-10-29 US US10/697,355 patent/US7120794B2/en not_active Expired - Lifetime
-
2004
- 2004-10-28 EP EP04796870.6A patent/EP1682981B1/en not_active Expired - Lifetime
- 2004-10-28 KR KR1020067010462A patent/KR100832274B1/ko not_active Expired - Fee Related
- 2004-10-28 NZ NZ546716A patent/NZ546716A/en unknown
- 2004-10-28 CA CA002543620A patent/CA2543620A1/en not_active Abandoned
- 2004-10-28 AU AU2004285256A patent/AU2004285256A1/en not_active Abandoned
- 2004-10-28 PE PE2004001042A patent/PE20050857A1/es not_active Application Discontinuation
- 2004-10-28 CN CN200480031825A patent/CN100596055C/zh not_active Expired - Fee Related
- 2004-10-28 MY MYPI20044444A patent/MY134441A/en unknown
- 2004-10-28 RU RU2006118347/09A patent/RU2342695C2/ru not_active IP Right Cessation
- 2004-10-28 BR BRPI0415917-9A patent/BRPI0415917A/pt not_active IP Right Cessation
- 2004-10-28 WO PCT/US2004/036286 patent/WO2005043335A2/en not_active Ceased
- 2004-10-28 JP JP2006538398A patent/JP2007510236A/ja active Pending
- 2004-10-29 AR ARP040103990A patent/AR046351A1/es unknown
- 2004-10-29 TW TW093133078A patent/TW200535695A/zh unknown
-
2006
- 2006-04-20 IL IL175013A patent/IL175013A0/en unknown
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101782854A (zh) * | 2009-01-19 | 2010-07-21 | 英业达股份有限公司 | 用于选择只读存储器模块间的沟通方法及系统 |
| CN105138360A (zh) * | 2015-08-19 | 2015-12-09 | 惠州Tcl移动通信有限公司 | 一种可穿戴设备的系统函数调用方法及其可穿戴设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20060108694A (ko) | 2006-10-18 |
| JP2007510236A (ja) | 2007-04-19 |
| AR046351A1 (es) | 2005-12-07 |
| WO2005043335A3 (en) | 2006-07-27 |
| IL175013A0 (en) | 2006-08-20 |
| EP1682981A2 (en) | 2006-07-26 |
| NZ546716A (en) | 2008-07-31 |
| EP1682981A4 (en) | 2010-06-16 |
| TW200535695A (en) | 2005-11-01 |
| CN100596055C (zh) | 2010-03-24 |
| RU2006118347A (ru) | 2007-12-10 |
| KR100832274B1 (ko) | 2008-05-26 |
| WO2005043335A2 (en) | 2005-05-12 |
| MY134441A (en) | 2007-12-31 |
| BRPI0415917A (pt) | 2006-12-26 |
| RU2342695C2 (ru) | 2008-12-27 |
| AU2004285256A1 (en) | 2005-05-12 |
| EP1682981B1 (en) | 2016-06-29 |
| CA2543620A1 (en) | 2005-05-12 |
| US20050251864A1 (en) | 2005-11-10 |
| PE20050857A1 (es) | 2005-11-10 |
| US7120794B2 (en) | 2006-10-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1943160A (zh) | 用于在一装置中调用一特权函数的系统 | |
| JP5006366B2 (ja) | デバイスの動作モード間の移行を提供するシステム | |
| CN1912833A (zh) | 一种嵌入式操作系统驱动程序动态升级方法 | |
| JP4472706B2 (ja) | デバイスに特権モードフックを動的に登録するためのシステム | |
| HK1099865A (zh) | 用於在一裝置中調用一特權函數的系統 | |
| CN1894883A (zh) | 用于选择性地启用一装置的工作模式的系统 | |
| HK1097622A (zh) | 用於提供裝置的操作模式之間轉換的系統 | |
| MXPA06004736A (es) | Sistema para invocar una funcion privilegiada en un dispositivo | |
| MXPA06004670A (en) | System for providing transitions between operating modes of a device | |
| HK1097621A (zh) | 用於裝置中特權模式挂接的動態注冊的系統 | |
| MXPA06004681A (es) | Sistema para el registro dinamico de enganches en modo privilegiado en un dispositivo.?? | |
| HK1096507A (zh) | 用於選擇性地啟用一裝置的工作模式的系統 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1099865 Country of ref document: HK |
|
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1099865 Country of ref document: HK |
|
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100324 Termination date: 20211028 |