KR20060108694A - 디바이스에서 특권펑션을 발생시키는 시스템 - Google Patents

디바이스에서 특권펑션을 발생시키는 시스템 Download PDF

Info

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
Application number
KR1020067010462A
Other languages
English (en)
Other versions
KR100832274B1 (ko
Inventor
브라이언 해럴드 켈리
라메시 찬드라세카
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20060108694A publication Critical patent/KR20060108694A/ko
Application granted granted Critical
Publication of KR100832274B1 publication Critical patent/KR100832274B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2105Dual 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

디바이스에서 특권펑션을 발생시키는 시스템{SYSTEM FOR INVOKING A PRIVILEGED FUNCTION IN A DEVICE}
배경
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)

  1. 일 애플리케이션으로 하여금, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하는 디바이스 상에서, 상기 특권모드에서 실행하는 펑션을 발생시키게 하는 방법으로서,
    상기 애플리케이션으로부터의 요청을 수신하여 상기 펑션을 발생시키는 단계;
    상기 애플리케이션의 상기 동작모드를 판정하는 단계;
    상기 애플리케이션이 상기 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여, 상기 애플리케이션과 동일한 태스크 내에서 실행되는 상기 펑션을 발생시키는 단계; 및
    상기 애플리케이션이 상기 특권모드에서 실행하고 있으면, 상기 펑션을 직접 발생시키는 단계를 포함하는, 펑션 발생 방법.
  2. 제 1 항에 있어서,
    상기 인터럽트는 소프트웨어 인터럽트인, 펑션 발생 방법.
  3. 제 1 항에 있어서,
    상기 요청에 의해 전달되는 식별자에 기초하여, 상기 펑션을 판정하는 단계를 더 포함하는, 펑션 발생 방법.
  4. 제 1 항에 있어서,
    상기 펑션의 실행이 완료될 경우, 상기 애플리케이션으로 리턴시키는 단계를 더 포함하는, 펑션 발생 방법.
  5. 제 1 항에 있어서,
    상기 디바이스는 무선 디바이스인, 펑션 발생 방법.
  6. 일 애플리케이션으로 하여금, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하는 디바이스 상에서, 상기 특권모드에서 실행하는 펑션을 발생시키게 하는 장치로서,
    상기 애플리케이션으로부터의 요청을 수신하여 상기 펑션을 발생시키는 로직;
    상기 애플리케이션의 상기 동작모드를 판정하는 로직;
    상기 애플리케이션이 상기 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여, 상기 애플리케이션과 동일한 태스크 내에서 실행되는 상기 펑션을 발생시키는 로직; 및
    상기 애플리케이션이 상기 특권모드에서 실행하고 있으면, 상기 펑션을 직접 발생시키는 로직을 포함하는, 펑션 발생 장치.
  7. 제 6 항에 있어서,
    상기 인터럽트는 소프트웨어 인터럽트인, 펑션 발생 장치.
  8. 제 6 항에 있어서,
    상기 펑션을 식별하는, 상기 요청과 관련된 식별자를 더 포함하는, 펑션 발생 장치.
  9. 제 6 항에 있어서,
    상기 디바이스는 무선 디바이스인, 펑션 발생 장치.
  10. 일 애플리케이션으로 하여금, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하는 디바이스 상에서, 상기 특권모드에서 실행하는 펑션을 발생시키게 하는 장치로서,
    상기 애플리케이션으로부터의 요청을 수신하여 상기 펑션을 발생시키는 수단;
    상기 애플리케이션의 상기 동작모드를 판정하는 수단;
    상기 애플리케이션이 상기 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여, 상기 애플리케이션과 동일한 태스크 내에서 실행되는 상기 펑션을 발생시키는 수단; 및
    상기 애플리케이션이 상기 특권모드에서 실행하고 있으면, 상기 펑션을 직접 발생시키는 수단을 포함하는, 펑션 발생 장치.
  11. 제 10 항에 있어서,
    상기 인터럽트는 소프트웨어 인터럽트인, 펑션 발생 장치.
  12. 제 10 항에 있어서,
    상기 펑션을 식별하는 수단인 식별자를 더 포함하는, 펑션 발생 장치.
  13. 제 10 항에 있어서,
    상기 디바이스는 무선 디바이스인, 펑션 발생 장치.
  14. 디바이스 내의 프로세서에 의해 실행될 경우, 일 애플리케이션으로 하여금, 특권모드 및 비-특권모드를 포함하는 2 개 이상의 동작모드를 포함하는 디바이스 상에서, 상기 특권모드에서 실행하는 펑션을 발생시키게 하도록 동작하는 명령을 포함하는 컴퓨터-판독가능 매체로서,
    상기 애플리케이션으로부터의 요청을 수신하여 상기 펑션을 발생시키는 명령;
    상기 애플리케이션의 상기 동작모드를 판정하는 명령;
    상기 애플리케이션이 상기 비-특권모드에서 실행하고 있으면, 인터럽트를 이용하여, 상기 애플리케이션과 동일한 태스크 내에서 실행되는 상기 펑션을 발생시 키는 명령; 및
    상기 애플리케이션이 상기 특권모드에서 실행하고 있으면, 상기 펑션을 직접 발생시키는 명령을 포함하는, 컴퓨터-판독가능 매체.
  15. 제 1 항에 있어서,
    상기 인터럽트는 소프트웨어 인터럽트인, 컴퓨터-판독가능 매체.
  16. 제 1 항에 있어서,
    상기 요청에 의해 전달되는 식별자에 기초하여, 상기 펑션을 판정하는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
  17. 제 1 항에 있어서,
    상기 펑션의 실행이 완료될 경우, 상기 애플리케이션으로 리턴시키는 명령을 더 포함하는, 컴퓨터-판독가능 매체.
  18. 제 1 항에 있어서,
    상기 디바이스는 무선 디바이스인, 컴퓨터-판독가능 매체.
KR1020067010462A 2003-10-29 2004-10-28 디바이스에서 특권함수를 호출하는 시스템 KR100832274B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101426575B1 (ko) * 2007-03-23 2014-08-05 퀄컴 인코포레이티드 분산형 프로세싱 시스템 및 방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 삼성전자주식회사 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
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