KR20060108694A - 디바이스에서 특권펑션을 발생시키는 시스템 - Google Patents
디바이스에서 특권펑션을 발생시키는 시스템 Download PDFInfo
- Publication number
- KR20060108694A KR20060108694A KR1020067010462A KR20067010462A KR20060108694A KR 20060108694 A KR20060108694 A KR 20060108694A KR 1020067010462 A KR1020067010462 A KR 1020067010462A KR 20067010462 A KR20067010462 A KR 20067010462A KR 20060108694 A KR20060108694 A KR 20060108694A
- Authority
- KR
- South Korea
- Prior art keywords
- function
- privileged
- application
- mode
- running
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000006870 function Effects 0.000 description 138
- 238000012545 processing Methods 0.000 description 18
- 230000007704 transition Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)
- Mobile Radio Communication Systems (AREA)
- Debugging And Monitoring (AREA)
- Bus Control (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 디바이스에서 특권펑션을 발생시키는 시스템에 관한 것이다. 그 시스템은, 애플리케이션으로 하여금 디바이스 상에서 펑션을 발생시키게 하는 방법을 포함하며, 그 디바이스는 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하며, 그 펑션은 특권모드에서 실행한다. 그 방법은 애플리케이션으로부터의 요청을 수신하여 펑션을 발생시키는 단계, 및 애플리케이션의 동작모드를 판정하는 단계를 포함한다. 또한, 그 방법은, 애플리케이션이 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여 펑션을 발생시키는 단계를 포함하며, 그 펑션은 애플리케이션과 동일한 태스크 내에서 실행된다. 또한, 그 방법은, 애플리케이션이 특권모드에서 실행하고 있으면, 펑션을 직접 발생시키는 단계를 포함한다.
특권모드, 특권펑션
Description
배경
I. 기술분야
본 발명은 일반적으로 디바이스의 효율적인 동작에 관한 것으로, 더 상세하게는, 디바이스에서 특권펑션 (privileged function) 을 발생시키는 시스템에 관한 것이다.
II. 관련 기술의 설명
기술의 진보는 가정, 사무실, 및 개인 사용을 위한 다양한 디바이스의 개발을 발생시켜 왔다. 예를 들어, 데스크탑, 노트북, 및 태블릿 (tablet) 컴퓨터와 같은 컴퓨터 시스템은 가정에서 또는 사무실 환경에서 사용하기에 강력한 툴이 되어 왔다. 또한, 무선 전화기, 개인휴대 정보단말기 (PDA), 및 호출 디바이스와 같은 개인용 디바이스는 더 강력하게 되었으며, 현재 광범위하게 사용되고 있다.
현재, 다수의 디바이스는, UNIX, LINUX, 또는 유사한 운영 시스템과 같은 운영 시스템을 구동시키는 복잡한 하드웨어 및 소프트웨어를 포함한다. 일반적으로, 이들 운영 시스템은 다중의 동작모드를 제공한다. 예를 들어, 대부분의 시스템은 특권 및 비-특권 동작모드를 제공한다. 특권 동작모드에서 실행하는 프 로그램은 메모리 및 시스템 리소스에 제한없이 액세스하도록 허용된다. 비-특권모드에서 실행하는 프로그램은 일정한 메모리 영역 및/또는 디바이스 시스템으로의 액세스로부터 제한된다. 이러한 구성은 중요한 메모리 또는 디바이스 펑션에 보호 레벨을 제공한다. 예를 들어, 비-특권모드에서 제 3 자 애플리케이션을 실행함으로써, 중요한 메모리 영역 및 디바이스 펑션은 인증되지 않은 액세스로부터 보호될 수 있다. 또한, 그러한 배열은 시스템으로 하여금 실행 중에 결함을 분리하게 한다.
그러나, 어떤 상황에서는, 특권모드 펑션이 특권모드 또는 비-특권모드에서 실행하는 애플리케이션으로부터 발생되게 하는 것이 바람직하다. 예를 들어, 특권모드 애플리케이션이 특권모드 펑션에 액세스하는 것이 바람직하지만, 또한, 비-특권모드에서 실행하는 애플리케이션이 동일한 특권펑션에 액세스하는 것도 바람직하다. 예를 들어, 애플리케이션으로 하여금 디바이스 모뎀과 같이 선택된 시스템 파일 또는 디바이스 하드웨어에 액세스하게 하는 것이 바람직할 수도 있다.
불행히도, 종래의 시스템은 트랩 (trap) 을 활용하여 비-특권 애플리케이션의 실행을 정지시키지만, 별도의 특권모드 "커널 (kernel)" 태스크가 요청된 동작을 수행한다. 결과로서, 신규한 특권모드 태스크는 추가적인 스케쥴링 복잡도 및 오버헤드를 발생시킨다. 또한, 디스패처 (dispatcher) 레이턴시의 형태로 추가적인 시스템 지연이 존재할 수도 있다. 또한, 신규한 태스크는 발생된 비-특권 애플리케이션과는 상이한 우선순위로 실행할 수도 있으며, 이에 따라, 시스템 스케쥴링 및 동작을 더 복잡하게 할 수도 있다.
따라서, 특권모드 또는 비-특권모드에서 실행하는 애플리케이션에 대해, 특권펑션이 그 애플리케이션과 동일한 태스크 내에서 실행하도록 함으로써, 어느 하나의 모드에 따라 실행하는 애플리케이션에 특권모드 후크 (hooks) 로의 액세스를 제공하는 방법을 제공하는 시스템이 필요하다.
개요
하나 이상의 실시형태에서, 일 시스템은 특권모드 또는 비-특권모드에서 실행하는 애플리케이션으로부터 특권모드 후크로의 액세스를 제공하도록 동작하는 방법 및/또는 장치를 포함한다. 예를 들어, 일 실시형태에서, 그 시스템은, 비-특권모드에서 구동하는 애플리케이션이 동일한 태스크 (또는 실행 흐름 (execution thread)) 내의 특권모드 펑션을 실행하게 함으로써 태스크 생성, 스케쥴링, 및 디스패처 레이턴시를 회피하는 펑션 핸들러를 제공한다. 또한, 펑션 핸들러는, 그들 애플리케이션이 특권펑션을 실행하게 하도록 특권 애플리케이션에 액세스할 수 있다. 따라서, 그 시스템은, 기존의 소프트웨어 모델을 변경하지 않고도 특권모드 펑션으로의 액세스가 달성될 수 있기 때문에, 기존의 소프트웨어에 잘 매핑된다.
하나 이상의 실시형태에서, 펑션 핸들러는, 호출 애플리케이션이 특권모드 또는 비-특권모드에서 실행하고 있는지를 판정하도록 동작한다. 만약 호출 애플리케이션이 특권모드에서 실행하고 있으면, 펑션 핸들러는 특권펑션을 직접 호출한다. 만약 호출 애플리케이션이 비-특권모드에서 실행하고 있으면, 펑션 핸들러는, 예를 들어, 특권펑션이 호출 비-특권 애플리케이션과 동일한 태스크 내에서 호출되게 하는 트랜지션 (transition) 시스템에 의해 프로세싱되는 인터럽트를 발생시킨다. 따라서, 펑션 핸들러는, 특권 및 비-특권 애플리케이션 양자에 특권펑션 후크를 제공하도록 동작한다.
일 실시형태에서, 호출 애플리케이션은 펑션 식별자를 펑션 핸들러에 전달한다. 펑션 식별자는, 실행을 위해 이용가능한 펑션을 식별한다. 일 실시형태에서, 펑션 핸들러는 그 식별자로부터의 펑션을 판정하고 그 펑션을 직접 호출한다. 다른 실시형태에서, 펑션 핸들러는 인터럽트를 발생시키고, 그 식별자를 트랜지션 시스템에 전달하며, 이 시스템은 적절한 유효화 (validation) 이후에 요청된 펑션을 호출하기 위해 그 식별자를 이용한다. 그 인터럽트는 소프트웨어, 하드웨어 또는 익셉션 (exception) 기반 인터럽트일 수도 있다.
일 실시형태에서는, 애플리케이션이 디바이스 상에서 펑션을 발생시키게 하는 방법이 제공되며, 여기서, 그 디바이스는 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하며, 그 펑션은 특권모드에서 실행한다. 그 방법은, 애플리케이션으로부터의 요청을 수신하여 펑션을 발생시키는 단계, 및 그 애플리케이션의 동작모드를 판정하는 단계를 포함한다. 또한, 그 방법은, 애플리케이션이 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여 펑션을 발생시키는 단계를 포함하며, 그 펑션은 애플리케이션과 동일한 태스크 내에서 실행된다. 또한, 그 방법은, 애플리케이션이 특권모드에서 실행하고 있으면, 펑션을 직접 발생시키는 단계를 포함한다.
다른 실시형태에서, 애플리케이션으로 하여금 디바이스 상에서 펑션을 발생 시키게 하는 장치가 제공되며, 여기서, 그 디바이스는, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하며, 그 펑션은 특권모드에서 실행한다. 그 장치는, 애플리케이션으로부터의 요청을 수신하여 펑션을 발생시키는 로직을 포함한다. 또한, 그 장치는, 애플리케이션의 동작모드를 판정하는 로직을 포함한다. 또한, 그 장치는, 애플리케이션이 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여 펑션을 발생시키는 로직을 포함하며, 그 펑션은 애플리케이션과 동일한 태스크 내에서 실행된다. 또한, 그 장치는, 애플리케이션이 특권모드에서 실행하고 있으면, 펑션을 직접 발생시키는 로직을 포함한다.
다른 실시형태에서, 애플리케이션으로 하여금 디바이스 상에서 펑션을 발생시키게 하는 장치가 제공되며, 여기서, 그 디바이스는, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하며, 그 펑션은 특권모드에서 실행한다. 그 장치는, 애플리케이션으로부터의 요청을 수신하여 펑션을 발생시키는 수단 및 애플리케이션의 동작모드를 판정하는 수단을 포함한다. 또한, 그 장치는, 애플리케이션이 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여 펑션을 발생시키는 수단을 포함하며, 그 펑션은 애플리케이션과 동일한 태스크 내에서 실행된다. 또한, 그 장치는, 애플리케이션이 특권모드에서 실행하고 있으면, 펑션을 직접 발생시키는 수단을 포함한다.
다른 실시형태에서, 디바이스 내의 프로세서에 의해 실행될 경우, 애플리케이션으로 하여금 디바이스 상에서 펑션을 발생시키게 하도록 동작하는 명령을 포함하는 컴퓨터-판독가능 매체가 제공되며, 여기서, 그 디바이스는, 특권모드 및 비- 특권모드를 포함하는 2 개 이상의 동작모드를 포함하며, 그 펑션은 특권모드에서 실행한다. 그 컴퓨터-판독가능 매체는, 애플리케이션으로부터의 요청을 수신하여 펑션을 발생시키는 명령 및 애플리케이션의 동작모드를 판정하는 명령을 포함한다. 또한, 그 컴퓨터-판독가능 매체는, 애플리케이션이 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여 펑션을 발생시키는 명령을 포함하며, 그 펑션은 애플리케이션과 동일한 태스크 내에서 실행된다. 또한, 그 컴퓨터-판독가능 매체는, 애플리케이션이 특권모드에서 실행하고 있으면, 펑션을 직접 발생시키는 명령을 포함한다.
본 발명의 다른 양태, 이점, 및 특징은, 이후에 제시되는 도면의 간단한 설명, 발명의 상세한 설명, 및 특허청구범위의 검토 후에 명백하게 될 것이다.
도면의 간단한 설명
여기에서 설명된 실시형태의 상기의 양태 및 부가적인 이점은 첨부 도면과 함께 제시된 다음의 상세한 설명을 참조함으로써 더 명백하게 될 것이다.
도 1 은 디바이스 (102) 상에서 실행하는 특권 및 비-특권 애플리케이션에 특권펑션 후크를 제공하는 펑션 핸들러 시스템의 일 실시형태를 도시한 것이다.
도 2 는 펑션 핸들러 시스템의 일 실시형태를 포함하는 디바이스의 상세 블록도를 도시한 것이다.
도 3 은 일 디바이스에서 사용하기 위한 펑션 핸들러 시스템의 일 실시형태의 동작을 나타낸 흐름도를 도시한 것이다.
상세한 설명
다음의 상세한 설명은, 특권 및 비-특권 애플리케이션에 특권펑션 후크를 제공하는 펑션 핸들러 시스템을 설명한다. 예를 들어, 그 시스템은 특권 및 비-특권 애플리케이션으로부터의 펑션 호출 (function call) 을 수신하도록 동작하며, 그 이후, 호출 애플리케이션의 동작모드가 판정되며, 특권펑션으로의 신속하고 효율적인 트랜지션이 제공된다. 그 펑션은 호출 애플리케이션과 동일한 실행 흐름 내에서 실행한다. 따라서, 펑션 핸들러는, 신규한 태스크가 발생하지 않아도 특권펑션을 호출할 수 있는 특권 및 비-특권 애플리케이션 모두에 특권펑션 후크를 제공함으로써, 신규한 태스크 생성, 스케쥴링 및 디스패처 레이턴시의 오버헤드를 회피한다.
하나 이상의 실시형태에서, 펑션 핸들러 시스템은, 예를 들어, 디바이스 특정 리소스에 대해 일반 호출을 제공함으로써, 디바이스의 동작을 간략화하는데 이용되는 디바이스 상에서 실행되는 런타임 (runtime) 환경 (또는 운영 시스템) 과 상호작용한다. 그러한 런타임 환경 중 하나는 캘리포니아주 샌디에고 소재의 QUALCOMM Inc.에 의해 개발된 BREW™ (Binary Runtime Environment for Wireless™) 소프트웨어 플랫폼이다. 다음의 설명은 BREW 소프트웨어 플랫폼과 같은 런타임 환경을 실행하는 디바이스를 설명한다. 그러나, 하나 이상의 실시형태에서는, 발생 시스템 또는 다른 제어 프로그램 또는 모니터링 프로그램을 포함하여 다양한 디바이스에서 특권펑션 후크의 신속하고 효율적인 등록을 제공하기 위해, 등록 시스템이 다른 타입의 런타임 환경과 함께 사용하기에 적절하다. 예를 들어, 그 디바이스는 데스크탑 컴퓨터, 노트북 컴퓨터, 핸드헬드 컴퓨터, 그리고, 무 선 전화기, 호출기, PDA, 이메일 디바이스, 태블릿 컴퓨터, 또는 다른 타입의 컴퓨팅 디바이스와 같은 휴대용 디바이스를 포함할 수도 있지만 이에 제한되지 않는다.
도 1 은, 디바이스 (102) 상에서 실행하는 특권 및 비-특권 애플리케이션에 특권펑션 후크를 제공하는 펑션 핸들러 시스템 (100) 의 일 실시형태를 도시한 것이다. 시스템 (100) 은 가정용 컴퓨터, 사무용 컴퓨터, 또는 무선 전화기나 PDA 와 같은 개인용 디바이스, 또는 임의의 다른 타입의 컴퓨팅 디바이스의 일부일 수도 있다. 동작 동안, 하나 이상의 애플리케이션이 디바이스 (102) 상에서 실행하고, 정보, 펑션, 및/또는 서비스를 디바이스 (102) 에 제공하도록 동작한다. 예를 들어, 일 타입의 애플리케이션은, 디바이스 (102) 가 영화, 뉴스, 또는 다른 타입의 멀티미디어 콘텐츠를 디스플레이하게 하도록 동작하는 뷰어 (viewer) 애플리케이션일 수도 있다.
일 실시형태에서, 디바이스 (102) 는 2 개 이상의 동작 모드, 즉, 비-특권모드 (NP) 및 특권모드 (P) 를 제공하는 런타임 환경 (104; 즉, BREW) 을 포함한다. 비-특권 동작모드는, 디바이스 상에서 구동하는 애플리케이션의 액세스를 제한하고 결함 검출을 제공하는데 이용된다. 예를 들어, 비-특권모드에서 구동하는 애플리케이션은 선택된 메모리 영역으로 제한되며, 디바이스 레지스터 또는 다른 리소스로의 액세스가 거부될 수도 있다. 특권 동작모드는 이 모드에 따라 구동하는 애플리케이션으로 하여금 메모리 또는 디바이스 리소스에 제한없이 액세스하게 한다.
애플리케이션이 디바이스 (102) 상에서 실행할 경우, 그것은 런타임 환경 하 에서 구동하여 원하는 기능을 제공한다. 예를 들어, 애플리케이션 (106) 은 비-특권모드 (NP) 에 따라 디바이스 (102) 상에서 구동하며, 애플리케이션 (108) 은 특권모드 (P) 에서 디바이스 (102) 상에서 구동한다. 이들 애플리케이션 중 어는 하나는, 특권펑션 (110) 을 통하여 이용가능한 시스템 서비스 또는 펑션을 요구할 수도 있다. 예를 들어, 그 애플리케이션들은 특권 메모리 또는 디바이스 하드웨어 리소스에 액세스할 필요가 있을 수도 있다. 이들 펑션 또는 서비스를 획득하기 위하여, 펑션 핸들러 시스템 (100) 은, 어느 하나의 애플리케이션 (106, 108) 이 펑션 핸들러 (112) 를 통하여 특권펑션을 호출하게 하는 메커니즘을 제공한다. 펑션 핸들러 (112) 를 통해 호출될 경우, 펑션 (110) 은 호출 애플리케이션과 동일한 실행 흐름 내에서 실행한다. 펑션 (110) 이 요청된 서비스를 수행한 후, 프로그램 제어는 호출 애플리케이션으로 리턴한다.
결과로서, 펑션 핸들러 시스템 (100) 은, 런타임 환경에 의한 실행을 위해 생성 및 스케쥴링될 신규한 태스크에 대한 요구없이도, 특권 및 비-특권 애플리케이션이 특권펑션을 수행하게 하는 신속하고 효율적인 메커니즘을 제공함으로써, 스케쥴링 복잡도 및 관련 디스패처 레이턴시를 제거한다.
도 2 는, 펑션 핸들러 시스템의 일 실시형태를 포함하는 디바이스 (102) 의 상세 블록도를 도시한 것이다. 디바이스 (102) 는 프로세싱 로직 (202), 및 내부 데이터 버스 (204) 에 커플링된 디바이스 리소스 (206) 를 포함한다. 디바이스 리소스 (206) 는 그 디바이스가 다양한 내부 및 외부 리소스, 디바이스, 또는 시스템에 인터페이스하게 하는 하드웨어, 소프트웨어, 메모리, 로직, 또는 다른 리 소스를 포함한다. 또한, 코드 메모리 (208) 및 데이터 메모리 (210) 는 프로세싱 로직 (202) 에 커플링된다.
하나 이상의 실시형태에서, 프로세싱 로직 (202) 은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 엘리먼트, 가상 머신, 소프트웨어, I/O 인터페이스, 및/또는 하드웨어와 소프트웨어의 임의의 조합을 포함한다. 따라서, 일반적으로, 프로세싱 로직 (202) 은, 머신-판독가능 명령을 실행하기 위한 로직을 포함한다. 예를 들어, 그 명령은, 디바이스 리소스 (206) 를 통해 디바이스 (102) 에 인터페이스하는 플로피 디스크, CDROM, 플래시 메모리, 또는 다른 컴퓨터-판독가능 매체와 같은 컴퓨터-판독가능 매체로부터 디바이스 (102) 에 로딩될 수도 있다. 다른 실시형태에서, 그 명령은, 디바이스 리소스 (206) 를 통해 디바이스 (102) 에 인터페이스하는 네트워크 서버 또는 임의의 다른 타입의 네트워크 리소스와 같은 네트워크 리소스로부터 디바이스 (102) 에 다운로드될 수도 있다. 프로세싱 로직 (202) 에 의해 실행될 경우, 그 명령은 여기에서 설명되는 바와 같은 펑션 핸들러 시스템의 하나 이상의 실시형태를 제공한다.
일 실시형태에서, 코드 메모리 (208) 는 RAM, ROM, FLASH, EEPOM, 또는 임의의 다른 적절한 타입의 메모리, 또는 이들의 조합을 포함한다. 코드 메모리 (206) 는 메모리 관리 유닛 (216) 의 동작을 통하여 특권영역 (P; 212) 및 비-특권영역 (NP; 214) 으로 파티션된다. MMU (216) 는 비-특권 프로그램 코드의 동작을 제한하도록 동작하여, 비-특권코드가 코드 메모리 (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) 에 다운로드될 수도 있다.
일 실시형태에서, 데이터 메모리 (210) 는 특권영역 (216) 및 비-특권영역 (218) 을 포함한다. 특권영역 (226) 은, 오직 특권 프로그램 코드에 의해서만 액세스될 수도 있는 데이터 영역을 포함한다. 예를 들어, 특권 데이터 영역 (216) 은 OS, UI, 유효화, App-P 및 FUNC 코드에 의해 이용되는 데이터를 포함한다. 비-특권 데이터 영역 (218) 은, 비-특권 프로그램 코드에 의해 액세스될 수도 있는 데이터 영역을 포함한다. 예를 들어, 비-특권 데이터 영역 (218) 은 비-특권 OS, App-NP 및 FH 프로그램 코드에 의해 이용되는 데이터를 포함한다. 또한, 메모리 관리 유닛 (MMU; 220) 이 데이터 메모리 (210) 에 커플링된다. MMU (220) 는 비-특권 및 특권 데이터 영역으로의 액세스를 제한하도록 동작한다. 예를 들어, 비-특권 애플리케이션은 특권 데이터 영역 (216) 내의 데이터, 또는 비-특권 데이터 영역 (218) 내의 다른 비-특권 애플리케이션에 속하는 데이터로의 액세스로부터 제한된다.
또한, 프로세싱 로직 (202) 은 모드 로직 (222) 및 인터럽트 로직 (224) 을 포함한다. 모드 로직 (222) 은, 디바이스 (102) 의 동작모드 사이의 모드 변경을 허용하도록 동작하는 CPU, 프로세서, 로직, 디바이스 레지스터, 소프트웨어, 또는 하드웨어와 소프트웨어의 임의의 조합을 포함한다. 예를 들어, 일 실시형태에서, 모드 로직 (222) 은, 비트가 동작모드를 설정하는 레지스터를 포함한다. 예를 들어, 특권모드로부터 비-특권모드로 스위칭하기 위하여, 레지스터 내의 선택된 비트가 설정되며, 이것은 비-특권 스택이 복원되게 하고, 프로그램 실행이 비-특권모드에서 지속되게 한다.
인터럽트 로직 (224) 은, 인터럽트가 프로세싱 로직 (202) 에 의해 수신 및 프로세싱되게 하도록 동작하는 CPU, 프로세서, 로직, 소프트웨어, 또는 하드웨어와 소프트웨어의 임의의 조합을 포함한다. 예를 들어, 인터럽트 로직 (224) 은, 프로세싱 로직 (202) 에 의해 실행된 프로그램 코드에 의해 발생되는 소프트웨어 인터럽트를 수신할 수도 있다. 일 실시형태에서, 펑션 핸들러 시스템은 소프트웨어 인터럽트를 이용하여, 비-특권 프로그램 코드가 동일한 태스크 및 우선순위 내에서 특권펑션을 실행하게 한다. 일 실시형태에서, 인터럽트 로직 (224) 은, 펑션 핸들러 시스템의 동작의 일부로서 소프트웨어 인터럽트, 하드웨어 인터럽트, 프로그램 익셉션, 또는 임의의 다른 타입의 인터럽트를 프로세싱한다.
디바이스 (102) 의 구성은, 설명된 펑션 핸들러 시스템을 구현하기 위한 단지 하나의 적절한 구성이다. 또한, 본 발명의 범위 내에서 다른 디바이스 구성, 기능적 엘리먼트들 또는 엘리먼트 구성을 사용하여 펑션 핸들러 시스템의 하나 이상의 실시형태를 구현하는 것이 가능하다.
디바이스 (102) 의 동작 동안, 프로세싱 로직 (202) 은 비-특권 애플리케이션 코드 (즉, App-NP) 및/또는 특권 애플리케이션 코드 (App-P) 를 실행한다. 어느 하나의 애플리케이션이 Func (110) 과 같은 특권펑션의 서비스를 요구할 경우, 각각의 애플리케이션은, 원하는 펑션 (즉, Func) 을 식별하는 식별자를 갖는 FH 코드 (112) 를 호출한다. 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) 를 도시한 것이다. 명료화를 위하여, 흐름도 (300) 는 도 2 에 도시된 디바이스를 참조하여 설명한다. 그 디바이스는, 실행 흐름 (302) 을 생성하도록 동작하는 BREW 런타임 환경을 실행하고 있다고 가정한다. 실행 흐름 (302) 은 디바이스 상에서의 특권 또는 비- 특권 애플리케이션의 실행을 나타낸다.
시스템 스케쥴러 (미도시) 는 애플리케이션의 실행을 스케쥴링하도록 동작하여 실행 흐름 (302) 를 형성한다. 통상적으로, 스케쥴러는 우선순위에 기초하여 실행을 스케쥴링하도록 동작하지만, 다른 기준에 기초하여 실행을 스케쥴링하도록 동작할 수도 있다. 그러나, 여기에서 설명된 펑션 핸들러 시스템은, 호출 애플리케이션과 동일한 실행 흐름 내에서 동작하는 펑션 핸들러를 제공함으로써, 신규한 태스크 생성, 관련 스케쥴러 복잡도, 및 가능한 디스패처 레이턴시를 회피한다.
실행 흐름 (302) 은 특권 애플리케이션 (App-P) 또는 비-특권 애플리케이션 (App-NP) 의 실행을 나타낸다. 실행 애플리케이션은, 디바이스로 하여금 다양한 멀티미디어 콘텐츠를 디바이스 사용자에게 디스플레이하게 하는 뷰어 애플리케이션일 수도 있다. 애플리케이션이 실행함에 따라, 특권펑션 (Func) 의 서비스에 대한 요구가 발생한다. 특권펑션으로부터의 서비스를 획득하기 위하여, 그 애플리케이션은 FH (304) 를 호출하고, 특권펑션 (Func) 을 식별하는 식별자를 전달한다. 시스템에서 이용가능한 특권펑션은, 실행 애플리케이션에 의해 발견될 수 있는 관련 식별자를 가진다고 가정한다. 하나 이상의 실시형태에서, 다음의 펑션이, 코드 메모리 (208) 에 저장된 프로그램 명령을 실행하는 프로세싱 로직 (202) 에 의해 수행되며, 이는 또한 데이터 메모리 (210) 내의 데이터를 프로세싱할 수도 있다.
블록 306 에서, FH (304) 는, 특권펑션 (Func) 을 식별하는 식별자를 획득한 다. 예를 들어, 그 식별자는, 프로세싱 로직 (202) 과 관련된 레지스터 내의 FH 또는 데이터 메모리 (210) 내의 다른 메모리 위치에 전달될 수도 있다.
블록 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) 에 의해 발생 및/또는 프로세싱될 수도 있다.
인터럽트가 발생된 후, 프로그램 실행은, 특권펑션 (Func) 이 호출 애플리케이션과 동일한 태스크 내에서 호출되는 특권모드 프로그램 코드 (316) 로 흐른다.
이하, 프로그램 코드 (316) 의 동작에 대한 간단한 설명을 제공한다. 그러나, 프로그램 코드 (316) 의 동작에 대한 더 상세한 설명을 위해서는, 여기에서 참조로서 포함되며 대리인 식별번호가 제 030620 호이며 명칭이 "디바이스의 동작 모드 간의 트랜지션을 제공하는 시스템" 인 미국특허 출원을 참조할 수 있다.
특권모드 스택으로의 스위치 및 전달된 펑션 식별자의 유효화 이후, 프로그램 실행은 블록 318 로 흐른다.
블록 318 에서는, 원하는 특권펑션이 전달된 식별자에 기초하여 판정된다. 예를 들어, 데이터 메모리 (210) 에 저장된 데이터 구조가, 원하는 펑션 (Func) 을 식별하기 위한 식별자에 기초하여 프로세싱 로직 (202) 에 의해 탐색된다.
블록 320 에서, 일단 특권펑션 (Func) 이 판정되면, 그 펑션이 호출된다. 예를 들어, 일 실시형태에서, 프로세싱 로직 (202) 은 코드 메모리 (208) 에 저장된 명령을 실행하여 펑션 (Func) 을 호출한다. 특권펑션은, 호출 비-특권 애플리케이션에 의한 사용을 위한 데이터를 포함하는 특정 시스템 파일을 개방하도록 동작할 수도 있다. 일 실시형태에서는, 추가적인 파라미터가 그 애플리케이션으로부터 특권펑션에 전달된다. 예를 들어, 그 파라미터는, 또한, 비-특권 애플리케이션에 의해 요청되는 서비스의 타입을 표시 또는 정의할 수도 있다. 특권펑션은 이들 파라미터를 유효화하도록 동작하여, 특권펑션의 실행이 애플리케이션에 허여된 특권을 초과하지 않음을 입증한다. 예를 들어, 그 펑션은 그 파라미터를 유효화하도록 동작하여, 그 펑션의 실행이 애플리케이션에 부과된 메모리 제한을 초과하지 않게 한다.
블록 322 에서는, 펑션 (Func) 이 수행된 후, 비-특권모드 스택을 포함하여, 비-특권모드 레지스터가 복원된다. 프로그램 실행은, 경로 (324) 에 도시된 바와 같은 비-특권 애플리케이션 흐름 (302) 으로 리턴한다.
프로그램 흐름도 (300) 는 단지 하나의 실시형태를 나타내며, 본 발명의 범위를 벗어나지 않고, 프로그램 엘리먼트의 변경, 추가, 또는 재배열이 가능하다.
이와 같이, 펑션 핸들러 시스템에 대한 방법 및 장치의 하나 이상의 실시형 태가 여기에서 예시 및 설명되었지만, 그 사상 또는 본질적인 특징으로부터 벗어나지 않고, 그 실시형태에 대한 다양한 변경이 가능함을 알 수 있다. 따라서, 여기에서의 개시물 및 설명은, 다음의 특허청구범위에 기재된 본 발명의 범위에 대한 예시이며 제한하려는 것은 아니다.
Claims (18)
- 일 애플리케이션으로 하여금, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하는 디바이스 상에서, 상기 특권모드에서 실행하는 펑션을 발생시키게 하는 방법으로서,상기 애플리케이션으로부터의 요청을 수신하여 상기 펑션을 발생시키는 단계;상기 애플리케이션의 상기 동작모드를 판정하는 단계;상기 애플리케이션이 상기 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여, 상기 애플리케이션과 동일한 태스크 내에서 실행되는 상기 펑션을 발생시키는 단계; 및상기 애플리케이션이 상기 특권모드에서 실행하고 있으면, 상기 펑션을 직접 발생시키는 단계를 포함하는, 펑션 발생 방법.
- 제 1 항에 있어서,상기 인터럽트는 소프트웨어 인터럽트인, 펑션 발생 방법.
- 제 1 항에 있어서,상기 요청에 의해 전달되는 식별자에 기초하여, 상기 펑션을 판정하는 단계를 더 포함하는, 펑션 발생 방법.
- 제 1 항에 있어서,상기 펑션의 실행이 완료될 경우, 상기 애플리케이션으로 리턴시키는 단계를 더 포함하는, 펑션 발생 방법.
- 제 1 항에 있어서,상기 디바이스는 무선 디바이스인, 펑션 발생 방법.
- 일 애플리케이션으로 하여금, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하는 디바이스 상에서, 상기 특권모드에서 실행하는 펑션을 발생시키게 하는 장치로서,상기 애플리케이션으로부터의 요청을 수신하여 상기 펑션을 발생시키는 로직;상기 애플리케이션의 상기 동작모드를 판정하는 로직;상기 애플리케이션이 상기 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여, 상기 애플리케이션과 동일한 태스크 내에서 실행되는 상기 펑션을 발생시키는 로직; 및상기 애플리케이션이 상기 특권모드에서 실행하고 있으면, 상기 펑션을 직접 발생시키는 로직을 포함하는, 펑션 발생 장치.
- 제 6 항에 있어서,상기 인터럽트는 소프트웨어 인터럽트인, 펑션 발생 장치.
- 제 6 항에 있어서,상기 펑션을 식별하는, 상기 요청과 관련된 식별자를 더 포함하는, 펑션 발생 장치.
- 제 6 항에 있어서,상기 디바이스는 무선 디바이스인, 펑션 발생 장치.
- 일 애플리케이션으로 하여금, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하는 디바이스 상에서, 상기 특권모드에서 실행하는 펑션을 발생시키게 하는 장치로서,상기 애플리케이션으로부터의 요청을 수신하여 상기 펑션을 발생시키는 수단;상기 애플리케이션의 상기 동작모드를 판정하는 수단;상기 애플리케이션이 상기 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여, 상기 애플리케이션과 동일한 태스크 내에서 실행되는 상기 펑션을 발생시키는 수단; 및상기 애플리케이션이 상기 특권모드에서 실행하고 있으면, 상기 펑션을 직접 발생시키는 수단을 포함하는, 펑션 발생 장치.
- 제 10 항에 있어서,상기 인터럽트는 소프트웨어 인터럽트인, 펑션 발생 장치.
- 제 10 항에 있어서,상기 펑션을 식별하는 수단인 식별자를 더 포함하는, 펑션 발생 장치.
- 제 10 항에 있어서,상기 디바이스는 무선 디바이스인, 펑션 발생 장치.
- 디바이스 내의 프로세서에 의해 실행될 경우, 일 애플리케이션으로 하여금, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하는 디바이스 상에서, 상기 특권모드에서 실행하는 펑션을 발생시키게 하도록 동작하는 명령을 포함하는 컴퓨터-판독가능 매체로서,상기 애플리케이션으로부터의 요청을 수신하여 상기 펑션을 발생시키는 명령;상기 애플리케이션의 상기 동작모드를 판정하는 명령;상기 애플리케이션이 상기 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여, 상기 애플리케이션과 동일한 태스크 내에서 실행되는 상기 펑션을 발생시 키는 명령; 및상기 애플리케이션이 상기 특권모드에서 실행하고 있으면, 상기 펑션을 직접 발생시키는 명령을 포함하는, 컴퓨터-판독가능 매체.
- 제 1 항에 있어서,상기 인터럽트는 소프트웨어 인터럽트인, 컴퓨터-판독가능 매체.
- 제 1 항에 있어서,상기 요청에 의해 전달되는 식별자에 기초하여, 상기 펑션을 판정하는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
- 제 1 항에 있어서,상기 펑션의 실행이 완료될 경우, 상기 애플리케이션으로 리턴시키는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
- 제 1 항에 있어서,상기 디바이스는 무선 디바이스인, 컴퓨터-판독가능 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/697,355 | 2003-10-29 | ||
US10/697,355 US7120794B2 (en) | 2003-10-29 | 2003-10-29 | System for invoking a privileged function in a device |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060108694A true KR20060108694A (ko) | 2006-10-18 |
KR100832274B1 KR100832274B1 (ko) | 2008-05-26 |
Family
ID=34550336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067010462A KR100832274B1 (ko) | 2003-10-29 | 2004-10-28 | 디바이스에서 특권함수를 호출하는 시스템 |
Country Status (16)
Country | Link |
---|---|
US (1) | US7120794B2 (ko) |
EP (1) | EP1682981B1 (ko) |
JP (1) | JP2007510236A (ko) |
KR (1) | KR100832274B1 (ko) |
CN (1) | CN100596055C (ko) |
AR (1) | AR046351A1 (ko) |
AU (1) | AU2004285256A1 (ko) |
BR (1) | BRPI0415917A (ko) |
CA (1) | CA2543620A1 (ko) |
IL (1) | IL175013A0 (ko) |
MY (1) | MY134441A (ko) |
NZ (1) | NZ546716A (ko) |
PE (1) | PE20050857A1 (ko) |
RU (1) | RU2342695C2 (ko) |
TW (1) | TW200535695A (ko) |
WO (1) | WO2005043335A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101426575B1 (ko) * | 2007-03-23 | 2014-08-05 | 퀄컴 인코포레이티드 | 분산형 프로세싱 시스템 및 방법 |
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 |
KR101037006B1 (ko) * | 2003-11-28 | 2011-05-25 | 파나소닉 주식회사 | 데이터 처리장치 |
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 |
US8095976B2 (en) * | 2007-03-15 | 2012-01-10 | Broadcom Corporation | Data excess protection |
CN101782854A (zh) * | 2009-01-19 | 2010-07-21 | 英业达股份有限公司 | 用于选择只读存储器模块间的沟通方法及系统 |
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 |
WO2013080631A1 (ja) * | 2011-11-30 | 2013-06-06 | 日本放送協会 | 受信機、プログラム及び受信方法 |
US8850450B2 (en) * | 2012-01-18 | 2014-09-30 | International Business Machines Corporation | Warning track interruption facility |
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 |
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 |
US10210349B2 (en) * | 2012-02-08 | 2019-02-19 | Arm Limited | Data processing apparatus and method using secure domain and 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 |
US9477834B2 (en) * | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
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 |
CN105138360A (zh) * | 2015-08-19 | 2015-12-09 | 惠州Tcl移动通信有限公司 | 一种可穿戴设备的系统函数调用方法及其可穿戴设备 |
US11171983B2 (en) * | 2018-06-29 | 2021-11-09 | Intel Corporation | Techniques to provide function-level isolation with capability-based security |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6175916B1 (en) * | 1997-05-06 | 2001-01-16 | Microsoft Corporation | Common-thread inter-process function calls invoked by jumps to invalid addresses |
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 |
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 active Active
-
2004
- 2004-10-28 MY MYPI20044444A patent/MY134441A/en unknown
- 2004-10-28 WO PCT/US2004/036286 patent/WO2005043335A2/en active Application Filing
- 2004-10-28 AU AU2004285256A patent/AU2004285256A1/en not_active Abandoned
- 2004-10-28 CN CN200480031825A patent/CN100596055C/zh not_active Expired - Fee Related
- 2004-10-28 RU RU2006118347/09A patent/RU2342695C2/ru not_active IP Right Cessation
- 2004-10-28 NZ NZ546716A patent/NZ546716A/en unknown
- 2004-10-28 KR KR1020067010462A patent/KR100832274B1/ko not_active IP Right Cessation
- 2004-10-28 CA CA002543620A patent/CA2543620A1/en not_active Abandoned
- 2004-10-28 JP JP2006538398A patent/JP2007510236A/ja active Pending
- 2004-10-28 EP EP04796870.6A patent/EP1682981B1/en not_active Not-in-force
- 2004-10-28 BR BRPI0415917-9A patent/BRPI0415917A/pt not_active IP Right Cessation
- 2004-10-28 PE PE2004001042A patent/PE20050857A1/es not_active Application Discontinuation
- 2004-10-29 TW TW093133078A patent/TW200535695A/zh unknown
- 2004-10-29 AR ARP040103990A patent/AR046351A1/es unknown
-
2006
- 2006-04-20 IL IL175013A patent/IL175013A0/en unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101426575B1 (ko) * | 2007-03-23 | 2014-08-05 | 퀄컴 인코포레이티드 | 분산형 프로세싱 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2005043335A2 (en) | 2005-05-12 |
RU2342695C2 (ru) | 2008-12-27 |
PE20050857A1 (es) | 2005-11-10 |
US7120794B2 (en) | 2006-10-10 |
KR100832274B1 (ko) | 2008-05-26 |
MY134441A (en) | 2007-12-31 |
JP2007510236A (ja) | 2007-04-19 |
WO2005043335A3 (en) | 2006-07-27 |
CA2543620A1 (en) | 2005-05-12 |
RU2006118347A (ru) | 2007-12-10 |
US20050251864A1 (en) | 2005-11-10 |
IL175013A0 (en) | 2006-08-20 |
BRPI0415917A (pt) | 2006-12-26 |
EP1682981A2 (en) | 2006-07-26 |
EP1682981A4 (en) | 2010-06-16 |
CN100596055C (zh) | 2010-03-24 |
EP1682981B1 (en) | 2016-06-29 |
AR046351A1 (es) | 2005-12-07 |
AU2004285256A1 (en) | 2005-05-12 |
TW200535695A (en) | 2005-11-01 |
CN1943160A (zh) | 2007-04-04 |
NZ546716A (en) | 2008-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100832274B1 (ko) | 디바이스에서 특권함수를 호출하는 시스템 | |
JP5006366B2 (ja) | デバイスの動作モード間の移行を提供するシステム | |
KR100823069B1 (ko) | 디바이스에 특권 모드 훅의 다이나믹한 등록을 위한 시스템 | |
US7496958B2 (en) | System for selectively enabling operating modes of a device | |
MXPA06004736A (es) | Sistema para invocar una funcion privilegiada en un dispositivo | |
MXPA06004670A (en) | System for providing transitions between operating modes of a device | |
Li et al. | Instrumentation Based Dynamic Android Application Security Protection System | |
MXPA06004681A (es) | Sistema para el registro dinamico de enganches en modo privilegiado en un dispositivo.?? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130429 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140430 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20160330 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170330 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20180329 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |