KR100624668B1 - 가상 머신 모니터와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 방법 - Google Patents
가상 머신 모니터와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 방법 Download PDFInfo
- Publication number
- KR100624668B1 KR100624668B1 KR1020037008770A KR20037008770A KR100624668B1 KR 100624668 B1 KR100624668 B1 KR 100624668B1 KR 1020037008770 A KR1020037008770 A KR 1020037008770A KR 20037008770 A KR20037008770 A KR 20037008770A KR 100624668 B1 KR100624668 B1 KR 100624668B1
- Authority
- KR
- South Korea
- Prior art keywords
- vmm
- address space
- operating system
- guest operating
- virtual machine
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명의 일실시예에서, 주소 공간 충돌을 해결하는 방법은 제1 주소 공간 내에서 가상 머신 모니터의 제1 부분에 의해 점유된 영역에 게스트 운영 체제가 액세스하고자 하는 시도를 검출하는 단계, 및 상기 제1 주소 공간 내에서 상기 VMM의 상기 제1 부분을 재배치시켜 상기 게스트 운영 체제가 상기 VMM의 상기 제1 부분에 의해 전에 점유되었던 상기 영역에 액세스할 수 있게 하는 단계를 포함한다.
제1 주소 공간, 제2 주소 공간, 가상 머신, 가상 머신 모니터(VMM), 게스트 운영 체제, VMM의 제1 부분, VMM의 제2 부분, VMM 코드 및 데이터 구조, 가상 머신 커널, 트랩 핸들러, 인터럽트 디스크립터 테이블, 프로세서, 메모리.
Description
본 발명은 일반적으로 가상 머신(virtual machine)에 관한 것으로서, 더욱 상세하게는 가상 머신 모니터와 게스트 운영 체제(guest operating system) 간의 주소 공간 충돌(address space conflict)을 해결하기 위한 방법 및 시스템에 관한 것이다.
종래의 가상 머신 모니터(VMM)는 통상적으로 컴퓨터 상에서 실행되고, 다른 소프트웨어에 하나 이상의 가상 머신의 추상적 개념(abstraction)을 제공한다. 각 가상 머신은 자체 "게스트 운영 체제"(즉, VMM에 의해 호스트되는 운영 체제)를 실행하는 자립식(self-contained) 플랫폼으로서 기능할 수 있다. 게스트 운영 체제는 가상 머신 상에서가 아니라 전용 컴퓨터 상에서 실행되는 것처럼 동작할 것으로 예상된다. 즉, 게스트 운영 체제는 여러 가지의 컴퓨터 동작을 제어하고, 이러한 동작 동안에 컴퓨터의 물리적 메모리 및 메모리-맵핑(memory-mapped) I/O 장치에 대한 비제한적 액세스(unlimited access)를 갖는 것으로 예상된다. 그러나, 가상 머신 환경에서, VMM은 가상 머신으로부터의 보호(protection)와 가상 머신 간의 보호를 제공하기 위해서 컴퓨터의 자원에 대한 궁극적인 제어를 할 수 있어야 한다. 이것을 달성하기 위해서, VMM은 통상적으로 게스트 운영 체제가 컴퓨터 자원에 하고자 하는 모든 액세스를 인터셉트하여 중재한다.
현존 프로세서(예컨대, IA-32 마이크로프로세서)에서, VMM은 VMM의 코드 및/또는 데이터 구조의 일부가 게스트 운영 체제와 동일한 가상 주소 공간에 위치되지 않는다면 하드웨어 자원에 대한 게스트 운영 체제의 액세스를 인터셉트하지 못 할 수도 있다. 그러나, 게스트 운영 체제는 VMM 코드 및/또는 데이터 구조(structure)가 게스트 운영 체제의 주소 공간에 있을 것으로 예상하지 못하여, 이 주소 공간에서 VMM에 의해 점유된 영역을 액세스하고자 할 수 있기 때문에, 게스트 운영 체제와 VMM 간의 주소 공간 충돌을 야기할 수 있다. 이러한 충돌은 VMM 또는 게스트 운영 체제에 의해 수행되는 동작을 비정상적으로 종료시킬 수도 있다.
따라서, VMM과 게스트 운영 체제 간의 주소 공간 충돌을 검출하고 해결할 메카니즘이 필요하다.
본 발명의 목적은 VMM과 게스트 운영 체제 간의 주소 공간 충돌을 검출하고 해결할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 일실시예에서, 주소 공간 충돌을 해결하는 방법은, 가상 머신 모니터(VMM)에 관련된 제1 주소 공간에 VMM의 제1 부분을 위치시키는 단계와; 상기 VMM의 제2 부분을 상기 제1 주소 공간과, 게스트 운영 체제에 관련되는 제2 주소 공간에 맵핑하는 단계를 포함한다.
본 발명의 일실시예에서, 주소 공간 충돌을 해결하는 장치는, 게스트 운영 체제에 관련된 제1 주소 공간; 가상 머신 모니터(VMM)에 관련된 제2 주소 공간; 및 상기 VMM의 제1 부분을 상기 제2 주소 공간에 위치시키고, 상기 VMM의 제2 부분을 상기 제1 주소 공간 및 상기 제2 주소 공간에 맵핑하고, 상기 게스트 운영 체제가 상기 제1 주소 공간 내의 상기 VMM의 제2 부분에 의해 점유된 영역을 액세스하고자 하는 시도를 검출하고, 상기 게스트 운영 체제가 상기 VMM의 상기 제2 부분에 의해 이전에 점유되었던 상기 영역을 액세스할 수 있도록 상기 제1 주소 공간 내에서 상기 VMM의 상기 제2 부분을 재배치하는 가상 머신 커널(kernel)을 포함한다.
도 1은 가상 머신 환경의 일실시예를 도시한다.
도 2는 본 발명의 일실시예에 따라 가상 머신 모니터와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 시스템의 블록도이다.
도 3은 본 발명의 일실시예에 따라 가상 머신 모니터와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 방법의 흐름도이다.
도 4는 본 발명의 일실시예에 따라 가상 머신 주소 공간 내에서 가상 머신 커널(kernel)을 재배치하는 방법의 흐름도이다.
도 5는 본 발명의 일실시예에 따라 게스트의 권리 박탈(guest deprivilege)을 지원하는 가상 머신 커널의 동작을 도시한다.
도 6은 본 발명의 일실시예에 따라 게스트 운영 체제에 의해 생성된 가상 트랩(virtualization trap)을 처리하는 방법의 흐름도이다.
도 7은 프로세싱 시스템의 일실시예의 블럭도이다.
이하에서는 주소 공간 충돌을 해결하는 방법 및 장치가 기술된다. 다음 설명에서, 부품들 사이의 거리, 구조 형상의 유형 등 여러 가지 상세사항이 기술되지만, 본 발명은 이러한 특정한 세부구성 없이도 실시될 수 있다는 것은 본 기술분야에 익숙한 자에게 명백할 것이다. 다른 예에서, 본 발명을 모호하게 하는 것을 방지하기 위해서 세부구성이 아니라 널리 알려진 구조 및 장치가 블록도로 도시된다.
다음의 설명에서, 설명의 목적을 위해서, 여러 가지 특정한 세부구성이 본 발명의 완전한 이해를 위해서 기술된다. 그러나, 본 발명은 이러한 특정한 세부구성 없이도 실시될 수 있다는 것은 명백할 것이다.
다음의 상세한 설명 중 어떤 부분은 컴퓨터 메모리 내의 데이터 비트로 나타낸 동작의 알고리즘 및 심볼 표시로 주어진다. 이러한 알고리즘 설명 및 표현은 본 기술분야에 익숙한 자에게 연구 요지를 가장 효과적으로 전달하기 위해서 데이터 프로세싱 기술에 익숙한 자에 의해 사용되는 수단이다. 알고리즘은 여기에서 일반적으로 바람직한 결과에 도달하는 자체 일관적(self-consistent) 시퀀스의 단계인 것으로 간주된다. 단계는 물리량의 물리적 조작을 요구하는 것이다. 통상적으로, 이러한 물리량은 전기 또는 자기 신호의 형태를 취하며, 이러한 전기 또는 자기 신호는 기억, 전달, 결합, 비교 및 조작될 수도 있지만, 이러한 것은 필수적인 것은 아니다. 이러한 신호를 비트, 값, 요소, 심볼, 문자, 기간(term), 숫자 등으로 표시하는 것이 주로 공통적으로 사용된다는 이유로 종종 편리한 것으로 입증되었다.
그러나, 이러한 용어 및 유사한 용어가 적절한 물리량과 관련되어야 하고 단순히 이러한 물리량에 적용되는 편리한 라벨이라는 것을 명심해야 한다. 이와 달리, 특정하게 언급되지 않으면, 다음의 논의에서 명백하듯이, 본 발명 전체에 걸쳐, "프로세싱", "컴퓨팅", "계산" 또는 "판정" 또는 "표시" 등의 용어를 사용하는 설명은 컴퓨터 시스템의 레지스터 및 메모리 내에서 물리(전자)량으로 표시된 데이터를 조작하고 또한 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 이러한 정보 기억장치, 전송 또는 표시 장치 내에서 물리량으로 유사하게 표시된 다른 데이터로 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 작용 및 프로세스를 나타낼 수도 있다.
본 발명은 또한 여기에서 동작을 수행하는 장치에 관한 것이다. 이 장치는 요구되는 목적을 위해서 특정하게 구성될 수 있거나, 컴퓨터 내에 기억된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수도 있다. 이러한 컴퓨터 프로그램은 플로피 디스크, 광 디스크, CD-ROM, 및 자기-광 디스크를 포함하여 임의의 형태의 디스크, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), EPROM, EEPROM, 자기 또는 광 카드, 또는 전자 명령을 기억하기에 적합하고 컴퓨터 시스템 버스에 각각 결합되는 임의의 형태의 매체 등 컴퓨터 판독 가능 기억 매체에 기억될 수 있으나, 이러한 매체로 한정되는 것은 아니다. 명령은 하나 이상의 프로세싱 장치(예컨대, 프로세서, 중앙 처리 장치, 등)를 사용하여 실행 가능하다.
본 명세서에 제공된 알고리즘 및 표시는 어떠한 특정 컴퓨터 또는 다른 장치에 고유하게 관련되지는 않는다. 여러 가지 범용 머신이 본 명세서에서의 교시에 따른 프로그램과 함께 사용될 수도 있지만, 요구되는 방법의 단계를 수행하기 위해서 더욱 전문화된 장치를 구성하는 것이 편리한 것으로 입증될 수도 있다. 이러한 여러 가지 요구되는 구조는 아래의 설명으로 나타날 것이다. 또한, 본 발명은 임의의 특정 프로그래밍 언어를 참조하여 기술되지 않는다. 여기에 기술된 본 발명의 교시를 실시하기 위해서 다양한 프로그래밍 언어가 사용될 수 있다는 것을 이해할 것이다.
본 발명의 실시예에 대한 다음의 상세한 설명에서, 본 발명이 실시될 수 있는 특정 실시예를 설명하고자 하는 목적으로 도시한 첨부 도면을 참조한다. 도면에서, 유사한 도면부호는 여러 가지 도면에서 실질적으로 유사한 부분을 나타낸다. 이러한 실시예는 본 기술분야에 익숙한 자가 본 발명을 실시할 수 있게 하기 위해 충분히 상세하게 기술된다. 다른 실시예가 사용될 수도 있으며, 본 발명의 범위를 이탈하지 않는 범위 내에서 구조적, 논리적 및 전기적 변경이 이루어질 수도 있다. 더욱이, 본 발명의 여러 실시예는 비록 상이하기는 하지만 반드시 서로 배타적인 것은 아니다. 예컨대, 일실시예에 기술된 특정한 양상, 구조 또는 특징은 다른 실시예에 포함될 수 있다. 따라서, 다음의 상세한 설명은 본 발명을 제한하려는 것으로 이해되어서는 안 되며, 본 발명의 범위는 첨부된 청구범위와, 이러한 청구범위가 적용되는 모든 범위의 동등물에 의해서만 한정된다.
본 발명의 방법 및 장치는 게스트 운영 체제와 가상 머신 모니터(VMM) 간의 주소 공간 충돌을 해결하는 메카니즘을 제공한다. 도 1은 본 발명이 동작할 수 있는 가상 머신 환경(100)의 일실시예를 도시한다. 이 실시예에서, 베어(bare) 플랫폼 하드웨어(116)는 예컨대 표준 운영 체제(OS) 또는 VMM(112) 등의 가상 머신 모니터(VMM)를 실행할 수 있는 컴퓨팅 플랫폼을 포함한다. VMM은 비록 통상적으로는 소프트웨어로 실시되지만 에뮬레이션(emulation) 등의 베어 머신 인터페이스를 더 높은 레벨의 소프트웨어에 제공할 수도 있다. 이러한 더 높은 레벨의 소프트웨어는 표준 또는 실시간 OS를 포함할 수 있지만, 본 발명의 범위는 이러한 것으로 제한되지 않으며, 또한 그와 다른 예로서, VMM은 다른 VMM 내에서 또는 그 위에서 실행될 수 있다. VMM과 그들의 대표적인 특징 및 기능은 본 기술분야에 익숙한 자에게 널리 알려진 것이며, 예컨대 소프트웨어, 펌웨어(firmware) 또는 여러 가지 기법의 조합에 의해 실시될 수 있다.
전술한 바와 같이, VMM은 다른 소프트웨어(즉, "게스트" 소프트웨어)에 하나 이상의 가상 머신(VM)의 추상적 개념을 제공한다. 도 1은 2개의 VM(102, 114)를 도시한다. 각 VM은 게스트 OS(104, 106) 등의 게스트 OS와, 여러 가지 게스트 소프트웨어 애플리케이션(108-110)을 포함한다. 게스트 OS(104, 106)는 각각 자신이 실행되는 하드웨어 플랫폼 내의 물리적 자원(예컨대, 메모리 및 메모리-맵핑 I/O 장치)에 대한 액세스를 제어하고, 다른 기능을 수행하도록 예상된다. 그러나, 가상 머신 환경에서, VMM(112)은 VM(102, 104)으로부터의 보호와 그들 간의 보호를 제공하기 위해서 물리적 자원에 대한 궁극적 제어권(control)을 가질 수 있어야 한다. VMM(112)은 컴퓨터의 물리적 자원에 대한 게스트 OS(104, 106)의 모든 액세스를 인터셉트함으로써 이 목적을 달성한다. 예컨대, 게스트 권리 박탈 기법(guest deprivileging technique)은 VMM(112)이 상기 액세스를 인터셉트할 수 있게 하기 위해 사용될 수 있다. 게스트 권리 박탈은 모든 게스트 소프트웨어가 하드웨어 특권 레벨에서 실행되도록 하여, 모든 게스트 소프트웨어로 하여금 특정한 하드웨어 자원을 액세스하지 못하게 한다. 그 결과, 게스트 OS(104 또는 106)가 이러한 하드웨어 자원 중 어떤 것을 액세스하고자 시도할 때마다, 게스트 OS(104 또는 106)는 VMM(112)에 "트랩(trap)"한다. 즉, VMM(112)은 게스트 운영 체제에 의해 개시된 동작이 이러한 하드웨어 자원을 액세스하는 동작을 포함하면 그 동작에 대한 제어권을 수용한다. 유사한 동작에 대한 제어권을 게스트 OS(104, 106)로부터 VMM(112)으로 이양함에 있어서 본 기술분야에서 공지된 임의의 다른 기법이 사용될 수도 있다는 점을 유의하여야 한다.
컴퓨터의 물리적 자원에 대한 게스트 OS(104, 106)의 액세스를 VMM(112)이 인터셉트할 수 있게 하는 게스트 권리 박탈 또는 다른 기법을 사용할 때, VMM 코드 및/또는 데이터 구조의 일부는 구조적으로 각 게스트 OS(104, 106)와 동일한 가상 주소 공간에 존재하도록 요구될 수도 있다. 그러나, 게스트 OS(104, 106)는 VMM의 존재를 알지 못하기 때문에, 게스트 OS는 자신과 관련된 가상 주소 공간 내에서 VMM 코드 및/또는 데이터 구조에 의해 점유된 영역에 액세스하고자 하는 시도를 행할 수도 있다. 이러한 시도는 가상 주소 공간 내의 게스트 OS의 코드 및 데이터 구조와, VMM 코드 및 데이터 구조 간의 충돌을 초래할 수 있으므로, 게스트 OS(104, 106) 또는 VMM(112)에 의해 수행되는 동작의 비정상적 종료를 야기한다. 본 발명은 이러한 주소 공간 충돌을 해결하는 메카니즘을 제공한다.
도 2는 본 발명의 일실시예에 따라 VMM과 게스트 OS 간의 주소 공간 충돌을 해결하는 시스템(200)의 블록도이다. 시스템(200)은 게스트 OS(예컨대, 게스트 OS "104" 및 "106")와 VMM(예컨대, VMM "112") 등을 실행할 수 있는 컴퓨팅 플랫폼을 포함하는 베어 플랫폼 하드웨어(214)를 포함한다. 2개의 별도의 주소 공간(204, 202)이 게스트 소프트웨어와 VMM을 위해서 할당된다. 즉, VM 주소 공간(204)은 게스트 OS의 코드 및 데이터 구조와 기타 게스트 소프트웨어를 유지하기 위해서 할당되고, VMM 주소 공간(202)은 VMM 코드 및 데이터 구조를 위해서 할당된다.
상기와 같이, VMM 코드 및/또는 데이터 구조의 어떤 부분은 하드웨어 자원에 대한 게스트 OS의 액세스를 VMM이 인터셉트할 수 있게 하기 위해 게스트 OS와 동일한 주소 공간 내에 존재하도록 구조적으로 요구될 수 있다. 예컨대, IA-32 명령 세트 구조(ISA)에 대해서, 하드웨어 자원에 대한 게스트 OS의 액세스에 대하여 VMM의 제어권을 보장하기 위해서 게스트 권리 박탈이 사용될 때, 트랩 핸들링 루틴에 대한 포인터를 포함하는 인터럽트-디스크립터 테이블(IDT)이 게스트 OS와 동일한 주소 공간에 존재하도록 구조적으로 요구된다. 게스트 권리 박탈을 지원하는 본 발명의 일실시예가 아래에서 도 5 및 도 6과 관련하여 더욱 상세히 설명될 것이다. 다른 ISA에 대해서는, VMM 코드 및/또는 데이터 구조의 여러 가지 다른 부분이 하드웨어 자원에 대해 게스트 OS가 하고자 하는 액세스에 대한 VMM의 제어권을 보장하기 위해서 게스트 OS와 동일한 주소 공간에 존재하도록 구조적으로 요구될 수 있다.
일실시예에서, VMM 코드 및 데이터 구조는 2개의 부분으로 분할된다. VMM의 제1 부분은 게스트 OS의 주소 공간, 즉 VM 주소 공간(204)에 존재하도록 요구되는 한 세트의 코드 및/또는 데이터 구조를 포함한다. VMM의 제2 부분은 VMM 코드 및 데이터 구조의 나머지를 포함한다. 일실시예에서, 소프트웨어 프로그램(가상 머신 커널(210)로 지칭됨)은 게스트 OS와 동일한 주소 공간에 위치되도록 요구되는 최소 세트의 VMM 코드 및/또는 데이터 구조를 수집한다. VMM 코드 및 데이터 구조의 나머지는 별도의 프로그램으로서 수집되어 VMM 주소 공간(202)에 위치된다. 가상 머신 커널(VMK)(210)은 그 후 자신을 VM 주소 공간(204)과 VMM 주소 공간(202) 둘 다에 맵핑한다.
그 후에, 게스트 OS가 VM 주소 공간(204) 내에서 VMM 코드 및/또는 데이터 구조에 의해 점유된 영역을 액세스하고자 할 때, VMK(210)는 게스트 OS의 이러한 시도를 검출한다. 일실시예에서, VMK(210)는 게스트 OS에 의해 개시된 이벤트가 게스트 OS와 VMM 간의 주소 공간 충돌을 야기할 가능성이 있으면 그 이벤트에 대한 제어권을 수용한다. 본 기술분야에서 알려진 게스트 권리 박탈 또는 임의의 다른 하드웨어 또는 소프트웨어 메카니즘이 이러한 이벤트에 대한 제어권을 게스트 OS로부터 VM 주소 공간(204)에 존재하는 VMM 코드 및/또는 데이터 구조로 이양하는 데에 사용될 수 있다.
VMK(210)는 그 후 이 이벤트를 평가하여 그 원인을 판정한다. VMM 코드 및/또는 데이터 구조에 의해 점유된 영역을 게스트 OS가 액세스하려는 시도에 의해 그 이벤트가 야기된 것으로 검출되면, VMK(210)는 자신을 VM 주소 공간(204) 내의 다른 영역으로 재맵핑하여 게스트 OS가 VMK(210)에 의해 이전에 사용된 영역을 액세스할 수 있게 한다. VM 주소 공간(204) 내에서 VMK(210)를 재배치시키는 방법의 일실시예가 아래에서 도 4와 관련하여 더욱 상세히 설명된다.
도 3은 본 발명의 일실시예에 따라 VMM과 게스트 OS 간의 주소 공간 충돌을 해결하는 방법(300)의 일실시예의 흐름도이다. 본 방법(300)은 VMM을 제1 부분과 제2 부분으로 분할하는 것으로 시작된다(처리 블록 304). 전술한 바와 같이, 제1 부분은 구조적으로 게스트 OS와 동일한 주소 공간에 존재하도록 요구되는 한 세트의 VMM 코드 및/또는 데이터 구조를 포함한다. VMM의 제2 부분은 VMM 코드 및 데이터 구조의 나머지를 포함한다. 일실시예(아래에서 더욱 상세히 설명됨)에서, VMM의 제1 부분은 한 세트의 트랩 핸들러와 인터럽트-디스크립터 테이블(IDT)을 포함한다. 다른 실시예에서, 제1 부분은 게스트 OS와 동일한 주소 공간에 존재하여야만 하는 VMM의 여러 가지 다른 데이터 구조 및 코드를 포함한다.
다음에, 제1 주소 공간(즉, VM 주소 공간(204))이 게스트 OS의 코드 및 데이터 구조와 기타 게스트 소프트웨어를 유지하도록 형성되고(처리 블록 306), 제2 주소 공간(즉, VMM 주소 공간(202))이 VMM 코드 및 데이터 구조를 위해서 형성된다(처리 블록 308). 일실시예에서, 이러한 주소 공간들은 부팅 프로세스(boot process)에서 형성된다.
또한, VMM의 제1 부분은 VM 주소 공간과 VMM 주소 공간 둘 다에 맵핑되고(처리 블록 310), VMM의 제2 부분은 VMM 주소 공간에 로딩된다(처리 블록 312).
처리 블록 314에서, VMM의 제1 부분에 의해 점유된 영역을 액세스하고자 하는 게스트 OS의 시도가 검출된다. 일실시예에서, 이러한 시도는 게스트 OS에 의해 개시된 이벤트가 게스트 운영 체제와 VMM 간의 주소 공간 충돌을 야기할 가능성이 있으면 그 이벤트에 대한 제어권을 VMM의 제1 부분으로 이양함으로써 검출된다. 잠재적 주소 공간 충돌을 검출하는 일실시예는 아래에서 도 5 및 도 6을 참조하여 더욱 상세히 기술된다.
그 후에, 처리 블록 316에서, VMM의 제1 부분은 VM 주소 공간 내의 다른 영역으로 재배치되어 VMM의 제1 부분에 의해 이전에 점유된 영역을 게스트 OS가 액세스할 수 있게 한다. VMM의 제1 부분에 의해 점유된 새로운 영역을 액세스하려는 어떠한 후속 시도 또한 또다시 VM 주소 공간 내의 VMM의 제1 부분을 재배치할 것이다. VMM의 제1 부분을 포함하는 VMK를 재배치하는 방법의 일실시예가 도 4에 도시되어 있다.
도 4를 참조하면, 게스트 OS와 VMM 간의 주소 공간 충돌이 검출된(처리 블록 404) 후에, 미사용 영역을 찾기 위해 VM 주소 공간이 탐색된다(처리 블록 406). 판정 블록(408)에서, VM 주소 공간 내에 미사용 영역이 존재하는지에 대한 판정이 이루어진다. 판정이 긍정적이면, VMM 코드 및 데이터 구조의 제1 부분을 포함하는 VMK가 이 미사용 영역으로 재맵핑되고, 제어권은 게스트 OS로 반환되고, 게스트 OS는 이제 VMK에 의해 이전에 사용되었던 영역을 액세스할 수 있게 된다.
이와 달리, VM 주소 공간 내에 미사용 영역이 존재하지 않으면, 즉, 게스트 OS가 전체 VM 주소 영역을 사용하고 있으면, VM 주소 공간 내의 랜덤 영역이 선택되고(처리 블록 412), 선택된 영역에 위치된 메모리의 내용이 VMM 주소 공간 내의 버퍼로 복사되고(처리 블록 414), VMK는 VM 주소 공간 내의 선택된 영역으로 재맵핑된다(처리 블록 416). 이 선택된 영역(즉, 새로운 VMK 영역)에 대한 후속 메모리 액세스는 새로운 VMK 영역의 원래의 내용을 포함하는 VMM 주소 공간 내의 버퍼로부터 에뮬레이트된 메모리 액세스를 통해서 서비스된다. 일실시예에서, 이러한 에뮬레이트된 메모리 참조의 빈도는 빈번하게 사용되지 않은 영역이 발견될 때까지 VM 주소 공간 내의 랜덤 영역에 VMK를 주기적으로 재배치시킴으로써 감소될 수 있다.
도 5는 본 발명의 일실시예에 따라 게스트 권리 박탈을 지원하는 VMK의 동작을 도시한다. 전술한 바와 같이, 게스트 권리 박탈은 게스트 OS가 더 낮은 특권 레벨에서 실행되게 하여, 게스트 OS는 프로세서 시스템 상태에서 동작하는 특권 명령을 발행하려고 시도할 때마다 VMM에 "트랩"한다. 일실시예에서, 게스트 권리 박탈을 지원하는 VMM은 트랩 핸들링 루틴(즉, 트랩 핸들러(552))에 대한 포인터(pointer)를 인터럽트-디스크립터 테이블(IDT)(514) 내에 설치한다. 어떤 ISA(예컨대, IA-32 ISA)는 IDT(514)가 현재 활성화된 가상 주소 공간(즉, VM 주소 공간(504))에 존재하도록 요구한다. 일실시예에서, IDT(514) 내의 엔트리는 주소 공간 스위치를 제공하는 태스크 게이트이다. 즉, 트랩이 생성될 때, 트랩 핸들링 루틴에 대한 포인터를 찾기 위해 IDT가 탐색된다. 이 포인터가 태스크 게이트이면, 이 포인터는 생성된 트랩을 위한 트랩 핸들링 루틴을 포함하는 VMM 주소 공간으로의 직접 스위칭을 가능하게 할 것이다. 따라서, 태스크 게이트 자체는 VM 주소 공간 내에 존재하여야 하지만, 태스크 게이트에 대응하는 트랩 핸들러는 VM 주소 공간 내에 존재할 필요가 없다. 다른 실시예에서, IDT(514)내의 엔트리는 주소 공간 스위치를 제공하지 않는 트랩 게이트 또는 인터럽트 게이트이다. 따라서, 이러한 IDT 엔트리와 관련된 트랩 핸들러는 VM 주소 공간 내에 존재하여야만 한다. 또한, VMM은 다른 데이터 구조(예컨대, 글로벌 디스크립터 테이블)의 새도우 버전(shadow version)을 VM 주소 공간에 위치시킬 수도 있다.
일실시예에서, VMK(510)는 VM 주소 공간에 위치되어야만 하는 최소 세트의 트랩 핸들러 및/또는 데이터 구조(예컨대, IDT(514))를 함께 수집하고, 이들을 VM 주소 공간(504)과 VMM 주소 공간(502) 둘 다에 맵핑하고, VMK(510)를 유지하는 페이지의 액세스 권한을 가장 높은 특권 레벨(예컨대, IA-32 마이크로프로세서에 대해서 링(ring)=0을 갖는 "슈퍼바이저(supervisor)" 특권 레벨)로 설정한다. 상기와 같이, 게스트 OS는 권리 박탈 모드(예컨대, IA-32 마이크로프로세서에 대해서 링=32를 가진 "사용자" 모드)에서 실행된다. 그 결과, 일실시예에서, 게스트 OS는 가장 높은 특권 액세스 권한으로 보호된 VMK(510)를 유지하는 페이지를 포함하는 특권이 부여된 머신 자원에 대한 액세스를 시도할 때마다 가상화 트랩(virtualization trap)을 생성한다.
일실시예에서, 가상화 트랩이 생성될 때, 트랩 핸들러에 대한 대응 포인터를 찾기 위해서 IDT(514)가 탐색된다. 일실시예에서, 트랩은 VMM-상주(resident) 트랩 핸들러에 의해 처리될 필요가 있을 수 있다. 이 실시예에서, VMK는 2개의 주소 공간 전환을 수행하는데, 첫 번째 전환에 의해서는 트랩이 VMM 주소 공간(502) 내의 트랩 핸들러에 공급되고, 두 번째 전환에 의해서는 트랩이 VMM-상주 트랩 핸들러에 의해 서비스된 후에 VM 주소 공간(504)으로 다시 이동된다.
이와 달리, 트랩은 VMK-상주 핸들러에서 처리될 수 있다. 예컨대, 트랩은 프로세서의 레지스터 내에 플래그(flag)를 리셋하라는 게스트 OS의 명령에 의해 발생될 수도 있다. 이러한 트랩은 제어권을 VMM 주소 공간(502) 내의 VMM에 이양하지 않고서도 트랩 핸들러(552)에서 완전히 처리될 수 있고, 이러한 실시는 더욱 양호한 성능을 줄 것이다.
가상화 트랩의 한 형태는 게스트 OS가 VMK(510)에 의해 현재 사용되는 VM 주소 공간(504)의 영역을 액세스하려고 시도할 때 생성되는 충돌 장애(fault)이다. VMK(510)는 앞에서 도 4와 관련하여 더욱 상세히 설명된 바와 같이 VM 주소 공간(504) 내의 새로운 영역에 자신을 재맵핑함으로써 이러한 충돌 장애를 처리한다.
도 6은 본 발명의 일실시예에 따라 게스트 OS에 의해 생성된 가상화 트랩을 처리하는 방법(600)의 흐름도이다. 본 방법(600)은 VMK에 의해 점유된 영역의 액세스 권한을 게스트 OS와 관련된 특권 레벨보다 높은 특권 레벨로 설정하는 것으로 시작한다(처리 블록 604). 예컨대, 모든 VMK 페이지는 슈퍼바이저-전용 특권(링=0)으로 맵핑될 수 있고, 게스트 OS는 권리 박탈 사용자 모드(링=3)에서 실행되도록 설정될 수 있다.
처리 블록 606에서, 게스트 OS에 의해 생성된 트랩이 수신된다. 트랩은 특권이 부여된 하드웨어 자원을 액세스하려는 게스트 OS의 시도에 의해 야기된다. 판정 블록 608에서, 트랩이 VMK에 의해 내부적으로(예컨대, VMK-상주 트랩 핸들러에서) 처리될 수 있는지에 관한 판정이 이루어진다. 트랩이 너무 복잡해서 VMK에 의해 처리될 수 없으면, 이 트랩은 VMM 주소 공간으로(예컨대, VMM-상주 트랩 핸들러로) 공급되고(처리 블록 610), 트랩이 VMM에 의해 서비스된 후에 VM 주소 공간으로 되돌려 보내어진다(처리 블록 612). 그 후에, 트랩을 야기한 이벤트에 대한 제어권은 게스트 OS로 반환된다(처리 블록 620).
이와 달리, 트랩이 VMK에 의해 내부적으로 처리될 수 있으면, 트랩이 VMK 코드 및 데이터 구조와 게스트 OS의 코드 및 데이터 구조 간의 주소 공간 충돌에 의해 야기되었는지에 관한 판정이 이루어진다(판정 블록 614). 트랩이 실제로 주소 공간 충돌에 의해 야기되었으면, VMK 코드 및 데이터 구조는 VM 주소 공간 내의 새로운 영역에 재배치된다(처리 블록 618). 그와 다른 경우에는, 트랩은 대응 트랩 핸들러에서 처리된다(처리 블록 616). 그 후에, 트랩을 야기한 이벤트에 제어권은 게스트 OS로 반환된다(처리 블록 620).
도 7은 프로세싱 시스템의 일실시예의 블록도이다. 본 프로세싱 시스템(700)은 프로세서(720)와 메모리(730)를 포함한다. 프로세서(720)로는 마이크로프로세서, 디지털 신호 프로세서, 마이크로콘트롤러 등 소프트웨어를 실행할 수 있는 어떠한 형태의 프로세서도 가능하다. 프로세싱 시스템(700)은 퍼스널 컴퓨터(PC), 메인프레임, 파지형 디바이스, 휴대용 컴퓨터, 셋톱 박스, 또는 소프트웨어를 포함하는 어떠한 다른 시스템도 가능하다.
메모리(730)로는 하드 디스크, 플로피 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 또는 프로세서(720)에 의해 판독 가능한 임의의 형태의 머신 매체가 가능하다. 메모리(730)는 방법(300, 400, 600)(도 3, 도 4, 도 6) 등 본 발명의 여러 가지 방법 실시예의 실행을 수행하기 위한 명령을 기억할 수 있다.
상기 설명은 설명을 위한 것이지 제한을 목적으로 하는 것이 아닌 것임을 이해해야 한다. 많은 다른 실시예가 상기 설명을 읽고 이해하면 본 기술에 익숙한 자에게 명백할 것이다. 본 발명의 범위는 따라서 첨부된 청구범위 및 그 청구범위가 적용되는 동등물의 전체 범위를 참조하여 결정되어야 한다.
Claims (32)
- 가상 머신 모니터(VMM : virtual machine monitor)와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 방법에 있어서,가상 머신 모니터(VMM)의 제1 부분을 상기 VMM에 관련된 제1 주소 공간 및 게스트 운영 체제에 관련된 제2 주소 공간에 맵핑하는 단계; 및상기 VMM의 제2 부분을 상기 제1 주소 공간에 위치시키는 단계를 포함하는 주소 공간 충돌 해결 방법.
- 제1항에 있어서,상기 VMM의 상기 제1 부분이 구조적으로 상기 제2 주소 공간 내에 존재하도록 요구되는 한 세트의 VMM 코드 및 데이터 구조를 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 제1항에 있어서,상기 VMM의 상기 제1 부분이 한 세트의 트랩 핸들러(trap handler)와 인터럽트 디스크립터 테이블(IDT : interrupt-descriptor table)을 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 삭제
- 제1항에 있어서,상기 게스트 운영 체제에 의해 개시된 이벤트가 상기 게스트 운영 체제와 상기 VMM 간의 주소 공간 충돌(address space conflict)을 야기할 가능성이 있을 때 상기 이벤트에 대한 제어권(control)을 수용하는 단계를 더 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 제5항에 있어서,상기 제어권을 수용하는 단계는,상기 VMM의 상기 제1 부분에 의해 점유된 섹션에 대한 액세스 권한(acess rights)을 상기 게스트 운영 체제에 관련된 특권 레벨(privilege level)보다 더 많은 특권의 레벨(more privileged level)로 설정하는 단계; 및상기 게스트 운영 체제에 관련된 상기 특권 레벨보다 더 높은 특권 레벨(higher privilege level)을 가진 하드웨어 자원을 상기 게스트 운영 체제가 액세스하고자 하는 시도에 의해 야기되는 트랩을 수신하는 단계를 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 제6항에 있어서,상기 제어권을 수용하는 단계는,상기 수신된 트랩이 상기 VMM의 상기 제1 부분에 의해 처리될 수 있는 것으로 판단하는 단계;상기 트랩에 관련된 코드를 실행하는 단계; 및상기 이벤트에 대한 제어권을 상기 게스트 운영 체제에 반환하는 단계를 더 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 제6항에 있어서,상기 제어권을 수용하는 단계는,상기 수신된 트랩이 상기 VMM의 상기 제2 부분에 의해 처리되어야 하는 것으로 판단하는 단계;상기 트랩을 상기 VMM의 상기 제2 부분에 전달하는 단계; 및상기 트랩에 관련된 코드가 상기 VMM의 상기 제2 부분에 의해 실행된 후에 상기 이벤트에 대한 제어권을 상기 게스트 운영 체제에 넘겨주는 단계를 더 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 제1항에 있어서,상기 제2 주소 공간 내의 상기 VMM의 제1 부분에 의해 점유된 영역을 액세스하고자 하는 상기 게스트 운영 체제의 시도를 검출하는 단계; 및상기 게스트 운영 체제가 상기 VMM의 제1 부분에 의해 이전에 점유된 영역을 액세스할 수 있도록 상기 제2 주소 공간 내의 상기 VMM의 제1 부분을 재배치하는 단계를 더 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 제9항에 있어서,상기 VMM의 상기 제1 부분을 재배치하는 단계는,상기 제2 주소 공간 내에 미사용 영역이 존재하지 않는 것으로 판단하는 단계;상기 제2 주소 공간 내의 랜덤 영역을 선택하는 단계;상기 랜덤 영역에 위치된 메모리의 내용을 상기 제1 주소 공간에 복사하는 단계; 및상기 VMM의 상기 제1 부분을 상기 랜덤 영역에 재맵핑하는 단계를 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 제10항에 있어서,상기 VMM의 제1 부분을 재배치하는 단계는,상기 게스트 운영 체제에 의해 개시되는 이벤트로서, 상기 제2 주소 공간의 상기 랜덤 영역에 이전에 위치되었던 상기 메모리의 내용을 상기 게스트 운영 체제가 액세스하고자 하는 시도에 대응하는 이벤트에 대한 제어권을 수용하는 단계, 및상기 제1 주소 공간 내의 상기 메모리의 상기 복사된 내용을 액세스하는 단계를 더 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 제11항에 있어서,자주 액세스되지 않는 영역을 발견할 때까지 상기 VMM의 상기 제1 부분을 상기 제2 주소 공간 내의 랜덤 영역에 주기적으로 재배치하는 단계를 더 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
- 가상 머신 모니터(VMM : virtual machine monitor)와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 장치에 있어서,게스트 운영 체제에 관련된 제1 주소 공간;가상 머신 모니터(VMM)에 관련된 제2 주소 공간; 및상기 VMM의 제1 부분을 상기 제1 주소 공간 및 상기 제2 주소 공간에 맵핑하고, 상기 VMM의 제2 부분을 상기 제2 주소 공간에 위치시키며, 상기 게스트 운영 체제가 상기 제1 주소 공간 내의 상기 VMM의 제1 부분에 의해 점유된 영역을 액세스하고자 하는 시도를 검출하고, 상기 게스트 운영 체제가 상기 VMM의 상기 제1 부분에 의해 이전에 점유되었던 상기 영역을 액세스할 수 있도록 상기 제1 주소 공간 내의 상기 VMM의 상기 제1 부분을 재배치하는 가상 머신 커널(kernel)을 포함하는 주소 공간 충돌 해결 장치.
- 제13항에 있어서,상기 VMM의 상기 제1 부분이, 구조적으로 상기 제2 주소 공간 내에 존재하도록 요구되는 한 세트의 VMM 코드 및 데이터 구조를 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 제13항에 있어서,상기 VMM의 상기 제1 부분이 한 세트의 트랩 핸들러와 인터럽트 디스크립터 테이블을 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 삭제
- 제13항에 있어서,상기 가상 머신 커널은 상기 게스트 운영 체제에 의해 개시된 이벤트가 상기 게스트 운영 체제와 상기 VMM 간의 주소 공간 충돌을 야기할 가능성이 있을 때 상기 이벤트에 대한 제어권을 수용하는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 제17항에 있어서,상기 가상 머신 커널은 상기 VMM의 상기 제1 부분에 의해 점유된 섹션에 대한 액세스 권한(access rights)을 상기 게스트 운영 체제에 관련된 특권 레벨(privilege level)보다 더 많은 특권의 레벨(more privileged level)로 설정함으로써, 그리고 상기 게스트 운영 체제에 관련된 상기 특권 레벨보다 더 높은 특권 레벨(higher privilege level)을 가진 하드웨어 자원을 상기 게스트 운영 체제가 액세스하고자 하는 시도에 의해 야기되는 트랩을 수신함으로써, 제어권(control)을 수용하는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 제18항에 있어서,상기 가상 머신 커널은 또한 상기 트랩이 상기 VMM의 상기 제1 부분에 의해 처리될 수 있는 것으로 판단하고, 상기 트랩에 관련된 코드를 실행하고, 상기 이벤트에 대한 제어권을 상기 게스트 운영 체제에 반환하는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 제18항에 있어서,상기 가상 머신 커널은 또한 상기 트랩이 상기 VMM의 상기 제2 부분에 의해 처리되어야 하는 것으로 판정하고, 상기 트랩을 상기 VMM의 상기 제2 부분에 공급하고, 상기 트랩에 관련된 코드가 상기 VMM의 상기 제2 부분에 의해 실행된 후에 상기 이벤트에 대한 제어권을 상기 게스트 운영 체제에 넘겨주는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 제13항에 있어서,상기 가상 머신 커널은 상기 제1 주소 공간 내의 미사용 영역을 탐색하여 상기 미사용 영역에 상기 VMM의 상기 제1 부분을 재맵핑함으로써 상기 VMM의 상기 제1 부분을 재배치하는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 제13항에 있어서,상기 가상 머신 커널은, 상기 제1 주소 공간 내에 미사용 영역이 존재하지 않는 것으로 판정하고, 상기 제1 주소 공간 내에서 랜덤 영역을 선택하며, 상기 랜덤 영역에 위치된 메모리의 내용을 상기 제2 주소 공간에 복사하고, 상기 VMM의 상기 제1 부분을 상기 랜덤 영역에 재맵핑함으로써, 상기 VMM의 상기 제1 부분을 재배치하는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 제22항에 있어서,상기 가상 머신 커널은 상기 게스트 운영 체제에 의해 개시된 이벤트에 대한 제어권을 수용하며, 상기 이벤트는 랜덤 영역에 이전에 위치되었던 상기 메모리의 내용을 액세스하고자 하는 상기 게스트 운영 체제의 시도에 대응하며, 또한 상기 가상 머신 커널은 상기 제2 주소 공간 내의 메모리의 카피된 내용을 액세스하는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 제23항에 있어서,상기 가상 머신 커널은 자주 액세스되지 않는 영역을 발견할 때까지 상기 VMM의 상기 제1 부분을 상기 제1 주소 공간 내의 랜덤 영역에 주기적으로 재배치하는 것을 특징으로 하는 주소 공간 충돌 해결 장치.
- 가상 머신 모니터(VMM : virtual machine monitor)와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 시스템에 있어서,게스트 운영 체제에 관련된 제1 주소 공간과 가상 머신 모니터(VMM)에 관련된 제2 주소 공간을 포함하는 메모리; 및상기 메모리에 접속되며, 상기 VMM의 제1 부분을 상기 제1 주소 공간 및 상기 제2 주소 공간에 맵핑하고, 상기 VMM의 제2 부분을 상기 제2 주소 공간에 위치시키며, 상기 게스트 운영 체제가 상기 제1 주소 공간 내의 상기 VMM의 제1 부분에 의해 점유된 영역을 액세스하고자 하는 시도를 검출하고, 상기 게스트 운영 체제가 상기 VMM의 상기 제1 부분에 의해 이전에 점유되었던 상기 영역을 액세스할 수 있도록 상기 제1 주소 공간 내의 상기 VMM의 상기 제1 부분을 재배치하는 프로세서를 포함하는 주소 공간 충돌 해결 시스템.
- 제25항에 있어서,상기 VMM의 상기 제1 부분은 구조적으로 상기 제1 주소 공간에 존재하도록 요구되는 한 세트의 VMM 코드 및 데이터 구조를 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 시스템.
- 제25항에 있어서,상기 VMM의 상기 제1 부분이 한 세트의 트랩 핸들러(trap handler)와 인터럽트 디스크립터 테이블을 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 시스템.
- 프로세서 상에서 실행될 때 상기 프로세서가 동작을 수행하게 하는 명령을 제공하는 컴퓨터 판독 가능 매체에 있어서,상기 동작은,가상 머신 모니터(VMM)의 제1 부분을 상기 VMM에 관련된 제1 주소 공간 및 게스트 운영 체제에 관련된 제2 주소 공간에 맵핑하는 단계; 및상기 VMM의 제2 부분을 상기 제1 주소 공간에 위치시키는 단계를 포함하는 컴퓨터 판독 가능 매체.
- 제28항에 있어서,상기 게스트 운영 체제가 제2 주소 공간 내의 상기 가상 머신 모니터(VMM)의 제1 부분에 의해 점유된 영역을 액세스하고자 하는 시도를 검출하는 단계; 및상기 게스트 운영 체제가 상기 VMM의 상기 제1 부분에 의해 이전에 점유되었던 상기 영역을 액세스할 수 있도록 상기 제2 주소 공간 내의 상기 VMM의 상기 제1 부분을 재배치하는 단계를 포함하는 동작을 상기 프로세서가 수행하도록 하는 명령을 더 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
- 제29항에 있어서,상기 제2 주소 공간 내의 미사용 영역을 탐색하는 단계; 및상기 VMM의 상기 제1 부분을 상기 미사용 영역에 재맵핑하는 단계를 포함하는 동작을 상기 프로세서가 수행하도록 하는 명령을 더 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
- 제29항에 있어서,상기 제2 주소 공간 내에 상기 미사용 영역이 존재하지 않는 것으로 판단하는 단계;상기 제2 주소 공간 내의 랜덤 영역을 선택하는 단계;상기 랜덤 영역에 위치된 메모리의 내용을 상기 제1 주소 공간에 복사하는 단계; 및상기 VMM의 상기 제1 부분을 상기 랜덤 영역에 재맵핑하는 단계를 포함하는 동작을 상기 프로세서가 수행하도록 하는 명령을 더 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
- 제9항에 있어서,상기 VMM의 상기 제1 부분을 재배치하는 단계는,상기 제2 주소 공간 내의 미사용 영역을 탐색하는 단계; 및상기 VMM의 상기 제1 부분을 상기 미사용 영역에 재맵핑하는 단계를 포함하는 것을 특징으로 하는 주소 공간 충돌 해결 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/752,587 US7035963B2 (en) | 2000-12-27 | 2000-12-27 | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US09/752,587 | 2000-12-27 | ||
PCT/US2001/050415 WO2002056172A2 (en) | 2000-12-27 | 2001-12-20 | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030097798A KR20030097798A (ko) | 2003-12-31 |
KR100624668B1 true KR100624668B1 (ko) | 2006-09-18 |
Family
ID=25026926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037008770A KR100624668B1 (ko) | 2000-12-27 | 2001-12-20 | 가상 머신 모니터와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 방법 |
Country Status (10)
Country | Link |
---|---|
US (2) | US7035963B2 (ko) |
EP (1) | EP1405181A2 (ko) |
JP (1) | JP4021769B2 (ko) |
KR (1) | KR100624668B1 (ko) |
CN (2) | CN101826030B (ko) |
AU (1) | AU2002249862A1 (ko) |
BR (1) | BR0116630A (ko) |
RU (1) | RU2259582C2 (ko) |
TW (1) | TWI228221B (ko) |
WO (1) | WO2002056172A2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101414173B1 (ko) | 2006-06-27 | 2014-07-01 | 도이체 텔레콤 악티엔 게젤샤프트 | 더 높은 레벨의 특권 인스턴스에 의해 더 낮은 레벨의 특권인스턴스로 특권을 위임하는 방법 |
US12007906B2 (en) | 2019-11-22 | 2024-06-11 | Huawei Technologies Co., Ltd. | Method and apparatus for first operating system to access resource of second operating system |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6745346B2 (en) * | 2000-12-08 | 2004-06-01 | Intel Corporation | Method for efficiently identifying errant processes in a computer system by the operating system (OS) for error containment and error recovery |
US7461148B1 (en) * | 2001-02-16 | 2008-12-02 | Swsoft Holdings, Ltd. | Virtual private server with isolation of system components |
US7260820B1 (en) * | 2001-04-26 | 2007-08-21 | Vm Ware, Inc. | Undefeatable transformation for virtual machine I/O operations |
US7103529B2 (en) * | 2001-09-27 | 2006-09-05 | Intel Corporation | Method for providing system integrity and legacy environment emulation |
US7058786B1 (en) * | 2002-01-17 | 2006-06-06 | Hewlett-Packard Development Company | Operating system data communication method and system |
US7124327B2 (en) * | 2002-06-29 | 2006-10-17 | Intel Corporation | Control over faults occurring during the operation of guest software in the virtual-machine architecture |
US6996748B2 (en) * | 2002-06-29 | 2006-02-07 | Intel Corporation | Handling faults associated with operation of guest software in the virtual-machine architecture |
US7149510B2 (en) | 2002-09-23 | 2006-12-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Security access manager in middleware |
US7278030B1 (en) * | 2003-03-03 | 2007-10-02 | Vmware, Inc. | Virtualization system for computers having multiple protection mechanisms |
US7111145B1 (en) | 2003-03-25 | 2006-09-19 | Vmware, Inc. | TLB miss fault handler and method for accessing multiple page tables |
US7409487B1 (en) * | 2003-06-30 | 2008-08-05 | Vmware, Inc. | Virtualization system for computers that use address space indentifiers |
US20050044408A1 (en) * | 2003-08-18 | 2005-02-24 | Bajikar Sundeep M. | Low pin count docking architecture for a trusted platform |
US7370324B2 (en) * | 2003-09-30 | 2008-05-06 | Intel Corporation | Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment |
US7376949B2 (en) * | 2003-10-01 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Resource allocation and protection in a multi-virtual environment |
EP1678617A4 (en) * | 2003-10-08 | 2008-03-26 | Unisys Corp | COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM |
US20050132122A1 (en) * | 2003-12-16 | 2005-06-16 | Rozas Carlos V. | Method, apparatus and system for monitoring system integrity in a trusted computing environment |
US7877747B2 (en) | 2004-02-20 | 2011-01-25 | Hewlett-Packard Development Company, L.P. | Flexible operating system operable as either native or as virtualized |
US7725643B1 (en) * | 2004-05-04 | 2010-05-25 | Oracle America, Inc. | Methods and systems for detecting and avoiding an address dependency between tasks |
US7802250B2 (en) * | 2004-06-28 | 2010-09-21 | Intel Corporation | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software |
US7607011B1 (en) * | 2004-07-16 | 2009-10-20 | Rockwell Collins, Inc. | System and method for multi-level security on a network |
US7685391B1 (en) * | 2004-10-12 | 2010-03-23 | Sun Microsystems, Inc. | Kernel/user stack relocation during system uptime |
EP1669864B1 (en) * | 2004-12-03 | 2010-06-02 | STMicroelectronics Srl | A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor |
US7395405B2 (en) * | 2005-01-28 | 2008-07-01 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US20070006178A1 (en) * | 2005-05-12 | 2007-01-04 | Microsoft Corporation | Function-level just-in-time translation engine with multiple pass optimization |
US7496495B2 (en) * | 2005-05-12 | 2009-02-24 | Microsoft Corporation | Virtual operating system device communication relying on memory access violations |
US20060277546A1 (en) * | 2005-06-02 | 2006-12-07 | Rothman Michael A | Detecting virtualization |
US7370137B2 (en) * | 2005-06-06 | 2008-05-06 | Intel Corporation | Inter-domain data mover for a memory-to-memory copy engine |
JP2007004661A (ja) * | 2005-06-27 | 2007-01-11 | Hitachi Ltd | 仮想計算機の制御方法及びプログラム |
US8856473B2 (en) * | 2005-07-01 | 2014-10-07 | Red Hat, Inc. | Computer system protection based on virtualization |
US8327353B2 (en) * | 2005-08-30 | 2012-12-04 | Microsoft Corporation | Hierarchical virtualization with a multi-level virtualization mechanism |
US8104034B2 (en) * | 2005-11-30 | 2012-01-24 | Red Hat, Inc. | Purpose domain for in-kernel virtual machine for low overhead startup and low resource usage |
US8612970B2 (en) * | 2005-11-30 | 2013-12-17 | Red Hat, Inc. | Purpose domain for low overhead virtual machines |
US8429629B2 (en) * | 2005-11-30 | 2013-04-23 | Red Hat, Inc. | In-kernel virtual machine for low overhead startup and low resource usage |
US7548999B2 (en) * | 2006-01-17 | 2009-06-16 | Advanced Micro Devices, Inc. | Chained hybrid input/output memory management unit |
US7536541B2 (en) | 2006-03-07 | 2009-05-19 | Novell Inc. | Parallelizing multiple boot images with virtual machines |
US9213542B2 (en) | 2006-03-30 | 2015-12-15 | Microsoft Technology Licensing, Llc | Creating templates of offline resources |
US7577820B1 (en) | 2006-04-14 | 2009-08-18 | Tilera Corporation | Managing data in a parallel processing environment |
US7774579B1 (en) * | 2006-04-14 | 2010-08-10 | Tilera Corporation | Protection in a parallel processing environment using access information associated with each switch to prevent data from being forwarded outside a plurality of tiles |
US8321377B2 (en) * | 2006-04-17 | 2012-11-27 | Microsoft Corporation | Creating host-level application-consistent backups of virtual machines |
US8176485B2 (en) | 2006-05-15 | 2012-05-08 | Microsoft Corporation | Launching hypervisor under running operating system |
US20070271560A1 (en) * | 2006-05-18 | 2007-11-22 | Microsoft Corporation | Deploying virtual machine to host based on workload characterizations |
US7587663B2 (en) * | 2006-05-22 | 2009-09-08 | Intel Corporation | Fault detection using redundant virtual machines |
US20070294707A1 (en) * | 2006-06-15 | 2007-12-20 | Microsoft Corporation | Enhancing or replacing host operating system functionality by leveraging guest operating system functionality |
US8024727B2 (en) * | 2006-06-15 | 2011-09-20 | Microsoft Corporation | Enhancing or replacing host operating system functionality by leveraging guest operating system functionality |
JP2008033392A (ja) * | 2006-07-26 | 2008-02-14 | Nec Corp | 仮想計算機システム及びその動作方法 |
US7478228B2 (en) * | 2006-08-31 | 2009-01-13 | Qualcomm Incorporated | Apparatus for generating return address predictions for implicit and explicit subroutine calls |
US7490191B2 (en) * | 2006-09-22 | 2009-02-10 | Intel Corporation | Sharing information between guests in a virtual machine environment |
US20080104586A1 (en) * | 2006-10-27 | 2008-05-01 | Microsoft Corporation | Allowing Virtual Machine to Discover Virtual Status Thereof |
US7689817B2 (en) * | 2006-11-16 | 2010-03-30 | Intel Corporation | Methods and apparatus for defeating malware |
US9354927B2 (en) * | 2006-12-21 | 2016-05-31 | Vmware, Inc. | Securing virtual machine data |
US9098347B2 (en) | 2006-12-21 | 2015-08-04 | Vmware | Implementation of virtual machine operations using storage system functionality |
US9189265B2 (en) | 2006-12-21 | 2015-11-17 | Vmware, Inc. | Storage architecture for virtual machines |
US7765374B2 (en) * | 2007-01-25 | 2010-07-27 | Microsoft Corporation | Protecting operating-system resources |
US8380987B2 (en) * | 2007-01-25 | 2013-02-19 | Microsoft Corporation | Protection agents and privilege modes |
KR101396831B1 (ko) * | 2007-03-30 | 2014-05-21 | 삼성전자주식회사 | 메모리 접근 제어 방법 |
US7984483B2 (en) * | 2007-04-25 | 2011-07-19 | Acxess, Inc. | System and method for working in a virtualized computing environment through secure access |
US8561060B2 (en) * | 2007-04-26 | 2013-10-15 | Advanced Micro Devices, Inc. | Processor and method configured to determine an exit mechanism using an intercept configuration for a virtual machine |
US20090007100A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Suspending a Running Operating System to Enable Security Scanning |
CN101334751B (zh) * | 2007-06-29 | 2010-04-14 | 联想(北京)有限公司 | 虚拟机监视器识别客户操作系统中进程的方法及装置 |
US8763115B2 (en) * | 2007-08-08 | 2014-06-24 | Vmware, Inc. | Impeding progress of malicious guest software |
US20090083829A1 (en) * | 2007-09-20 | 2009-03-26 | C & S Operations, Inc. | Computer system |
CN101425020A (zh) * | 2007-10-31 | 2009-05-06 | 国际商业机器公司 | 对mmu仿真进行加速的方法、装置和全系统仿真器 |
KR100881386B1 (ko) | 2008-01-24 | 2009-02-02 | 주식회사 파수닷컴 | 프로세스 분리 실행을 통한 drm 클라이언트 충돌 방지 방법 |
CN101727331B (zh) * | 2008-10-24 | 2013-03-20 | 国际商业机器公司 | 升级活动虚拟机的客户操作系统的方法和设备 |
US9785462B2 (en) | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
US8627014B2 (en) | 2008-12-30 | 2014-01-07 | Intel Corporation | Memory model for hardware attributes within a transactional memory system |
US8627017B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Read and write monitoring attributes in transactional memory (TM) systems |
US8806101B2 (en) * | 2008-12-30 | 2014-08-12 | Intel Corporation | Metaphysical address space for holding lossy metadata in hardware |
US9535767B2 (en) | 2009-03-26 | 2017-01-03 | Microsoft Technology Licensing, Llc | Instantiating a virtual machine with a virtual non-uniform memory architecture |
US9529636B2 (en) | 2009-03-26 | 2016-12-27 | Microsoft Technology Licensing, Llc | System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine |
US8429648B2 (en) * | 2009-05-28 | 2013-04-23 | Red Hat, Inc. | Method and apparatus to service a software generated trap received by a virtual machine monitor |
US8813069B2 (en) * | 2009-05-29 | 2014-08-19 | Red Hat, Inc. | Migration of functionalities across systems |
US20110197256A1 (en) * | 2009-12-18 | 2011-08-11 | Assured Information Security, Inc. | Methods for securing a processing system and devices thereof |
KR20110094764A (ko) * | 2010-02-17 | 2011-08-24 | 삼성전자주식회사 | 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법 |
US20110219373A1 (en) * | 2010-03-02 | 2011-09-08 | Electronics And Telecommunications Research Institute | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform |
US9529729B2 (en) * | 2010-11-16 | 2016-12-27 | International Business Machines Corporation | Location of memory management translations in an emulated processor |
EP2718785A4 (en) | 2011-06-13 | 2014-12-31 | Lynux Works Inc | SYSTEMS AND METHOD FOR SAFE DOMAIN INSULATION |
US9804870B2 (en) * | 2011-10-28 | 2017-10-31 | Intel Corporation | Instruction-set support for invocation of VMM-configured services without VMM intervention |
KR20130050156A (ko) * | 2011-11-07 | 2013-05-15 | 한국전자통신연구원 | 가상 주소 공간 전환 장치 |
CN103975303B (zh) * | 2011-12-07 | 2017-08-08 | 英特尔公司 | 用于预链接软件以改善虚拟系统中的存储器去重的技术 |
RU2472215C1 (ru) | 2011-12-28 | 2013-01-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ выявления неизвестных программ с использованием эмуляции процесса загрузки |
EP4116824A1 (en) | 2012-06-26 | 2023-01-11 | Lynx Software Technologies Inc. | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection prevention, and/or other features |
US10310973B2 (en) * | 2012-10-25 | 2019-06-04 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
CN103699388B (zh) * | 2013-12-30 | 2015-07-08 | 北京控制工程研究所 | 基于绝对地址汇聚的数据访问冲突检测方法 |
US9740857B2 (en) | 2014-01-16 | 2017-08-22 | Fireeye, Inc. | Threat-aware microvisor |
US9436395B2 (en) * | 2014-03-14 | 2016-09-06 | Advanced Micro Devices, Inc. | Mechanisms to save user/kernel copy for cross device communications |
WO2016004263A1 (en) | 2014-07-01 | 2016-01-07 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features |
US9390267B2 (en) | 2014-05-15 | 2016-07-12 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features |
CA2969422A1 (en) | 2014-05-15 | 2015-11-19 | Lynx Software Technologies Inc. | Systems and methods involving features of hardware virtualization, hypervisor, apis of interest, and/or other features |
WO2015176048A1 (en) | 2014-05-15 | 2015-11-19 | Lynx Software Technologies, Inc. | Aspects of hardware virtualization, hypervisors, code detection |
US11782745B2 (en) | 2014-07-01 | 2023-10-10 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features |
US9934376B1 (en) | 2014-12-29 | 2018-04-03 | Fireeye, Inc. | Malware detection appliance architecture |
US10474813B1 (en) | 2015-03-31 | 2019-11-12 | Fireeye, Inc. | Code injection technique for remediation at an endpoint of a network |
US9912681B1 (en) | 2015-03-31 | 2018-03-06 | Fireeye, Inc. | Injection of content processing delay in an endpoint |
US10454950B1 (en) | 2015-06-30 | 2019-10-22 | Fireeye, Inc. | Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks |
US10846117B1 (en) | 2015-12-10 | 2020-11-24 | Fireeye, Inc. | Technique for establishing secure communication between host and guest processes of a virtualization architecture |
US10447728B1 (en) | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
US10108446B1 (en) | 2015-12-11 | 2018-10-23 | Fireeye, Inc. | Late load technique for deploying a virtualization layer underneath a running operating system |
RU2626550C1 (ru) * | 2016-08-09 | 2017-07-28 | Акционерное Общество "Научно-Исследовательский Институт Микроэлектронной Аппаратуры "Прогресс" | Программно-аппаратная платформа и способ ее реализации для беспроводных средств связи |
US10191861B1 (en) | 2016-09-06 | 2019-01-29 | Fireeye, Inc. | Technique for implementing memory views using a layered virtualization architecture |
US10909053B2 (en) * | 2019-05-27 | 2021-02-02 | Advanced Micro Devices, Inc. | Providing copies of input-output memory management unit registers to guest operating systems |
US10853263B1 (en) * | 2019-07-23 | 2020-12-01 | Ati Technologies Ulc | Unified kernel virtual address space for heterogeneous computing |
US20230033583A1 (en) * | 2021-07-30 | 2023-02-02 | Advanced Micro Devices, Inc. | Primary input-output queue serving host and guest operating systems concurrently |
Family Cites Families (184)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3699532A (en) * | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
US3996449A (en) | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
US4162536A (en) | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4037214A (en) * | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4247905A (en) * | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4276594A (en) | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4207609A (en) | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
JPS5823570B2 (ja) * | 1978-11-30 | 1983-05-16 | 国産電機株式会社 | 液面検出装置 |
JPS5576447A (en) * | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
US4307447A (en) | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US4307214A (en) | 1979-12-12 | 1981-12-22 | Phillips Petroleum Company | SC2 activation of supported chromium oxide catalysts |
US4319323A (en) * | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
US4419724A (en) | 1980-04-14 | 1983-12-06 | Sperry Corporation | Main bus interface package |
US4366537A (en) | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4403283A (en) * | 1980-07-28 | 1983-09-06 | Ncr Corporation | Extended memory system and method |
DE3034581A1 (de) | 1980-09-13 | 1982-04-22 | Robert Bosch Gmbh, 7000 Stuttgart | Auslesesicherung bei einchip-mikroprozessoren |
JPS58140862A (ja) | 1982-02-16 | 1983-08-20 | Toshiba Corp | 相互排他方式 |
US4521852A (en) | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
JPS59111561A (ja) * | 1982-12-17 | 1984-06-27 | Hitachi Ltd | 複合プロセツサ・システムのアクセス制御方式 |
US4759064A (en) * | 1985-10-07 | 1988-07-19 | Chaum David L | Blind unanticipated signature systems |
US4975836A (en) | 1984-12-19 | 1990-12-04 | Hitachi, Ltd. | Virtual computer system |
JPS61206057A (ja) | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
JPS6273346A (ja) * | 1985-09-27 | 1987-04-04 | Hitachi Ltd | アドレス変換装置 |
FR2592510B1 (fr) * | 1985-12-31 | 1988-02-12 | Bull Cp8 | Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire |
FR2601476B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire |
FR2601525B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique |
FR2601535B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission |
JPS63156248A (ja) * | 1986-12-19 | 1988-06-29 | Nec Corp | 仮想計算機方式 |
FR2618002B1 (fr) * | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | Procede et systeme d'authentification de cartes a memoire electronique |
US5007082A (en) * | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US5079737A (en) * | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) * | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
FR2640798B1 (fr) * | 1988-12-20 | 1993-01-08 | Bull Cp8 | Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable |
JPH02171934A (ja) | 1988-12-26 | 1990-07-03 | Hitachi Ltd | 仮想計算機システム |
JPH02208740A (ja) | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
US5442645A (en) * | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JP2590267B2 (ja) * | 1989-06-30 | 1997-03-12 | 株式会社日立製作所 | 仮想計算機における表示制御方式 |
US5022077A (en) | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
JPH0388042A (ja) * | 1989-08-31 | 1991-04-12 | Nec Corp | 仮想計算機環境におけるプログラム起動方式 |
JP2825550B2 (ja) | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | 多重仮想空間アドレス制御方法および計算機システム |
CA2010591C (en) * | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
CA2027799A1 (en) * | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
US5075842A (en) | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
US5108590A (en) | 1990-09-12 | 1992-04-28 | Disanto Dennis | Water dispenser |
US5230069A (en) | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
US5317705A (en) * | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5287363A (en) | 1991-07-01 | 1994-02-15 | Disk Technician Corporation | System for locating and anticipating data storage media failures |
US5437033A (en) * | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5255379A (en) | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5453003A (en) * | 1991-01-09 | 1995-09-26 | Pfefferle; William C. | Catalytic method |
JP3093293B2 (ja) * | 1991-02-08 | 2000-10-03 | 日本電気株式会社 | 情報処理装置の割り込み方式 |
US5446904A (en) * | 1991-05-17 | 1995-08-29 | Zenith Data Systems Corporation | Suspend/resume capability for a protected mode microprocessor |
JPH04348434A (ja) * | 1991-05-27 | 1992-12-03 | Hitachi Ltd | 仮想計算機システム |
US5319760A (en) * | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5455909A (en) * | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
JPH06236284A (ja) * | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5627987A (en) * | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5574936A (en) | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5486529A (en) * | 1992-04-16 | 1996-01-23 | Zeneca Limited | Certain pyridyl ketones for treating diseases involving leukocyte elastase |
US5421006A (en) | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5414851A (en) * | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
US5237616A (en) * | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
US5293424A (en) | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
US5796835A (en) * | 1992-10-27 | 1998-08-18 | Bull Cp8 | Method and system for writing information in a data carrier making it possible to later certify the originality of this information |
JP2765411B2 (ja) * | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
US5668971A (en) | 1992-12-01 | 1997-09-16 | Compaq Computer Corporation | Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer |
JPH06187178A (ja) | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
US5483656A (en) | 1993-01-14 | 1996-01-09 | Apple Computer, Inc. | System for managing power consumption of devices coupled to a common bus |
US5469557A (en) | 1993-03-05 | 1995-11-21 | Microchip Technology Incorporated | Code protection in microcontroller with EEPROM fuses |
FR2703800B1 (fr) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
FR2704341B1 (fr) * | 1993-04-22 | 1995-06-02 | Bull Cp8 | Dispositif de protection des clés d'une carte à puce. |
JPH06348867A (ja) * | 1993-06-04 | 1994-12-22 | Hitachi Ltd | マイクロコンピュータ |
FR2706210B1 (fr) * | 1993-06-08 | 1995-07-21 | Bull Cp8 | Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants. |
US5555385A (en) | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5825880A (en) | 1994-01-13 | 1998-10-20 | Sudia; Frank W. | Multi-step digital signature method and system |
US5459869A (en) | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5604805A (en) | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
FR2717286B1 (fr) * | 1994-03-09 | 1996-04-05 | Bull Cp8 | Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant. |
US5421066A (en) * | 1994-05-16 | 1995-06-06 | Bonomo; Melvin E. | Self-locking tensioning bar |
US5684881A (en) | 1994-05-23 | 1997-11-04 | Matsushita Electric Industrial Co., Ltd. | Sound field and sound image control apparatus and method |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
JPH0883211A (ja) | 1994-09-12 | 1996-03-26 | Mitsubishi Electric Corp | データ処理装置 |
US6058478A (en) * | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
FR2725537B1 (fr) | 1994-10-11 | 1996-11-22 | Bull Cp8 | Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe |
US5903752A (en) * | 1994-10-13 | 1999-05-11 | Intel Corporation | Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5606617A (en) | 1994-10-14 | 1997-02-25 | Brands; Stefanus A. | Secret-key certificates |
US5564040A (en) | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
US6269392B1 (en) * | 1994-11-15 | 2001-07-31 | Christian Cotichini | Method and apparatus to monitor and locate an electronic device using a secured intelligent agent |
US5560013A (en) | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
US5555414A (en) | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
US5615263A (en) | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5764969A (en) | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
FR2731536B1 (fr) * | 1995-03-10 | 1997-04-18 | Schlumberger Ind Sa | Procede d'inscription securisee d'informations dans un support portable |
US5717903A (en) | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
JP3451595B2 (ja) | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ |
US5684948A (en) | 1995-09-01 | 1997-11-04 | National Semiconductor Corporation | Memory management circuit which provides simulated privilege levels |
US5633929A (en) | 1995-09-15 | 1997-05-27 | Rsa Data Security, Inc | Cryptographic key escrow system having reduced vulnerability to harvesting attacks |
US5737760A (en) * | 1995-10-06 | 1998-04-07 | Motorola Inc. | Microcontroller with security logic circuit which prevents reading of internal memory by external program |
US5606817B1 (en) * | 1995-10-18 | 1999-06-29 | Remington Arms Co Inc | Muzzle-loading firearm |
JP3693721B2 (ja) * | 1995-11-10 | 2005-09-07 | Necエレクトロニクス株式会社 | フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法 |
IL116708A (en) * | 1996-01-08 | 2000-12-06 | Smart Link Ltd | Real-time task manager for a personal computer |
US5657445A (en) | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
US5835594A (en) | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5978892A (en) * | 1996-05-03 | 1999-11-02 | Digital Equipment Corporation | Virtual memory allocation in a virtual address space having an inaccessible gap |
US5809546A (en) | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
US6175925B1 (en) * | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
US6205550B1 (en) * | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
US6178509B1 (en) * | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
US5729760A (en) | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US5757604A (en) * | 1996-06-27 | 1998-05-26 | Raychem Corporation | Surge arrester having grooved and ridged terminals |
US5944821A (en) * | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
US6199152B1 (en) * | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5740178A (en) | 1996-08-29 | 1998-04-14 | Lucent Technologies Inc. | Software for controlling a reliable backup memory |
US6055637A (en) * | 1996-09-27 | 2000-04-25 | Electronic Data Systems Corporation | System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5935242A (en) * | 1996-10-28 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for initializing a device |
JPH10134008A (ja) * | 1996-11-05 | 1998-05-22 | Mitsubishi Electric Corp | 半導体装置およびコンピュータシステム |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
DE19649292A1 (de) * | 1996-11-28 | 1998-06-04 | Deutsche Telekom Ag | Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems |
US5901225A (en) * | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
US5757919A (en) * | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
US5818939A (en) * | 1996-12-18 | 1998-10-06 | Intel Corporation | Optimized security functionality in an electronic system |
US6412035B1 (en) * | 1997-02-03 | 2002-06-25 | Real Time, Inc. | Apparatus and method for decreasing the response times of interrupt service routines |
US5953502A (en) * | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
US6272637B1 (en) * | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US6557104B2 (en) * | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US6044478A (en) * | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6175924B1 (en) * | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6035374A (en) * | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
US6014745A (en) * | 1997-07-17 | 2000-01-11 | Silicon Systems Design Ltd. | Protection for customer programs (EPROM) |
US6212635B1 (en) * | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
US5919257A (en) * | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
DE19735948C1 (de) * | 1997-08-19 | 1998-10-01 | Siemens Nixdorf Inf Syst | Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung |
US6182089B1 (en) * | 1997-09-23 | 2001-01-30 | Silicon Graphics, Inc. | Method, system and computer program product for dynamically allocating large memory pages of different sizes |
US6061794A (en) * | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
US6357004B1 (en) * | 1997-09-30 | 2002-03-12 | Intel Corporation | System and method for ensuring integrity throughout post-processing |
US6085296A (en) * | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6108644A (en) * | 1998-02-19 | 2000-08-22 | At&T Corp. | System and method for electronic transactions |
US6192455B1 (en) * | 1998-03-30 | 2001-02-20 | Intel Corporation | Apparatus and method for preventing access to SMRAM space through AGP addressing |
US6374286B1 (en) * | 1998-04-06 | 2002-04-16 | Rockwell Collins, Inc. | Real time processor capable of concurrently running multiple independent JAVA machines |
DK0990072T4 (da) * | 1998-04-22 | 2008-05-13 | Peter Geiger | Udlægningsformation af fortovssten af betonmateriale |
US6173417B1 (en) * | 1998-04-30 | 2001-01-09 | Intel Corporation | Initializing and restarting operating systems |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
FR2778998B1 (fr) * | 1998-05-20 | 2000-06-30 | Schlumberger Ind Sa | Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre |
US6421702B1 (en) * | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
US6339815B1 (en) * | 1998-08-14 | 2002-01-15 | Silicon Storage Technology, Inc. | Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space |
US6505279B1 (en) * | 1998-08-14 | 2003-01-07 | Silicon Storage Technology, Inc. | Microcontroller system having security circuitry to selectively lock portions of a program memory address space |
JP2000076087A (ja) * | 1998-08-28 | 2000-03-14 | Hitachi Ltd | マルチオペレーティングシステム制御方法 |
US6363485B1 (en) * | 1998-09-09 | 2002-03-26 | Entrust Technologies Limited | Multi-factor biometric authenticating device and method |
US6230248B1 (en) * | 1998-10-12 | 2001-05-08 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6445797B1 (en) * | 1998-12-16 | 2002-09-03 | Secure Choice Llc | Method and system for performing secure electronic digital streaming |
US6282650B1 (en) * | 1999-01-25 | 2001-08-28 | Intel Corporation | Secure public digital watermark |
US6560627B1 (en) * | 1999-01-28 | 2003-05-06 | Cisco Technology, Inc. | Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore |
US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US6188257B1 (en) * | 1999-02-01 | 2001-02-13 | Vlsi Technology, Inc. | Power-on-reset logic with secure power down capability |
US6272533B1 (en) * | 1999-02-16 | 2001-08-07 | Hendrik A. Browne | Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device |
US7225333B2 (en) * | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
US6615278B1 (en) * | 1999-03-29 | 2003-09-02 | International Business Machines Corporation | Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment |
US6684326B1 (en) * | 1999-03-31 | 2004-01-27 | International Business Machines Corporation | Method and system for authenticated boot operations in a computer system of a networked computing environment |
US6389537B1 (en) * | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6529909B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
JP2001148344A (ja) * | 1999-09-09 | 2001-05-29 | Nikon Corp | 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法 |
US6535988B1 (en) * | 1999-09-29 | 2003-03-18 | Intel Corporation | System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate |
US6374317B1 (en) * | 1999-10-07 | 2002-04-16 | Intel Corporation | Method and apparatus for initializing a computer interface |
US6292874B1 (en) * | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6507904B1 (en) * | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6789126B1 (en) * | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Addressing message gates in a distributed computing environment |
GB0020416D0 (en) * | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted system |
WO2002050664A2 (en) * | 2000-12-21 | 2002-06-27 | Connectix Corporation | Logical substitution of processor control in an emulated computing environment |
US7225441B2 (en) * | 2000-12-27 | 2007-05-29 | Intel Corporation | Mechanism for providing power management through virtualization |
US6789156B1 (en) * | 2001-05-22 | 2004-09-07 | Vmware, Inc. | Content-based, transparent sharing of memory units |
US20030018892A1 (en) * | 2001-07-19 | 2003-01-23 | Jose Tello | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer |
US7191464B2 (en) * | 2001-10-16 | 2007-03-13 | Lenovo Pte. Ltd. | Method and system for tracking a secure boot in a trusted computing environment |
US7103771B2 (en) * | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
US7308576B2 (en) * | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US6725289B1 (en) * | 2002-04-17 | 2004-04-20 | Vmware, Inc. | Transparent address remapping for high-speed I/O |
US7318141B2 (en) * | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
-
2000
- 2000-12-27 US US09/752,587 patent/US7035963B2/en not_active Expired - Fee Related
-
2001
- 2001-12-20 CN CN2010101495395A patent/CN101826030B/zh not_active Expired - Fee Related
- 2001-12-20 CN CN018228372A patent/CN1575453B/zh not_active Expired - Fee Related
- 2001-12-20 RU RU2003123112/09A patent/RU2259582C2/ru not_active IP Right Cessation
- 2001-12-20 AU AU2002249862A patent/AU2002249862A1/en not_active Abandoned
- 2001-12-20 BR BR0116630-1A patent/BR0116630A/pt not_active Application Discontinuation
- 2001-12-20 KR KR1020037008770A patent/KR100624668B1/ko not_active IP Right Cessation
- 2001-12-20 EP EP01998106A patent/EP1405181A2/en not_active Withdrawn
- 2001-12-20 JP JP2002556364A patent/JP4021769B2/ja not_active Expired - Fee Related
- 2001-12-20 WO PCT/US2001/050415 patent/WO2002056172A2/en active Application Filing
- 2001-12-24 TW TW090132036A patent/TWI228221B/zh not_active IP Right Cessation
-
2003
- 2003-09-30 US US10/676,737 patent/US7020738B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101414173B1 (ko) | 2006-06-27 | 2014-07-01 | 도이체 텔레콤 악티엔 게젤샤프트 | 더 높은 레벨의 특권 인스턴스에 의해 더 낮은 레벨의 특권인스턴스로 특권을 위임하는 방법 |
US12007906B2 (en) | 2019-11-22 | 2024-06-11 | Huawei Technologies Co., Ltd. | Method and apparatus for first operating system to access resource of second operating system |
Also Published As
Publication number | Publication date |
---|---|
KR20030097798A (ko) | 2003-12-31 |
CN1575453B (zh) | 2011-01-12 |
RU2003123112A (ru) | 2005-02-27 |
US7020738B2 (en) | 2006-03-28 |
EP1405181A2 (en) | 2004-04-07 |
US20030120856A1 (en) | 2003-06-26 |
BR0116630A (pt) | 2004-09-28 |
RU2259582C2 (ru) | 2005-08-27 |
WO2002056172A3 (en) | 2004-01-08 |
TWI228221B (en) | 2005-02-21 |
WO2002056172A2 (en) | 2002-07-18 |
US7035963B2 (en) | 2006-04-25 |
AU2002249862A1 (en) | 2002-07-24 |
CN101826030B (zh) | 2012-12-05 |
CN101826030A (zh) | 2010-09-08 |
JP4021769B2 (ja) | 2007-12-12 |
CN1575453A (zh) | 2005-02-02 |
US20040064813A1 (en) | 2004-04-01 |
JP2004526229A (ja) | 2004-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100624668B1 (ko) | 가상 머신 모니터와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 방법 | |
US8380907B2 (en) | Method, system and computer program product for providing filtering of GUEST2 quiesce requests | |
US7886127B2 (en) | Methods for accessing multiple page tables in a computer system | |
US8015388B1 (en) | Bypassing guest page table walk for shadow page table entries not present in guest page table | |
US7127548B2 (en) | Control register access virtualization performance improvement in the virtual-machine architecture | |
US7209994B1 (en) | Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests | |
US7707341B1 (en) | Virtualizing an interrupt controller | |
US8032897B2 (en) | Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization | |
US8412910B2 (en) | Maintaining reverse mappings in a virtualized computer system | |
US8561060B2 (en) | Processor and method configured to determine an exit mechanism using an intercept configuration for a virtual machine | |
EP3022648B1 (en) | Page fault injection in virtual machines to cause mapping of swapped-out memory pages into vm virtualized memory | |
US8140834B2 (en) | System, method and computer program product for providing a programmable quiesce filtering register | |
US20050076324A1 (en) | Virtual machine monitor | |
EP2955634B1 (en) | Paravirtualization-based interface for memory management in virtual machines | |
US5873124A (en) | Virtual memory scratch pages | |
US20170220369A1 (en) | Hypervisor post-write notification of control and debug register updates | |
US11169838B2 (en) | Hypercall implementation in a virtualized computer system | |
US10698783B2 (en) | Virtualization detection in a computing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120904 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130902 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140829 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20150827 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20160830 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |