KR102465953B1 - 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법 - Google Patents

하이퍼바이저 시스템 및 하이퍼바이저 동작 방법 Download PDF

Info

Publication number
KR102465953B1
KR102465953B1 KR1020220066142A KR20220066142A KR102465953B1 KR 102465953 B1 KR102465953 B1 KR 102465953B1 KR 1020220066142 A KR1020220066142 A KR 1020220066142A KR 20220066142 A KR20220066142 A KR 20220066142A KR 102465953 B1 KR102465953 B1 KR 102465953B1
Authority
KR
South Korea
Prior art keywords
hypervisor
heterogeneous
virtual platform
operating system
command
Prior art date
Application number
KR1020220066142A
Other languages
English (en)
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 쿤텍 주식회사
Priority to KR1020220066142A priority Critical patent/KR102465953B1/ko
Application granted granted Critical
Publication of KR102465953B1 publication Critical patent/KR102465953B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45554Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

하이퍼바이저 시스템 및 하이퍼바이저 동작 방법이 개시된다. 개시되는 일 실시예에 따른 하이퍼바이저 시스템은, 호스트 컴퓨터에 설치되는 하이퍼바이저 시스템으로서, 호스트 컴퓨터에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키도록 마련되는 하이퍼바이저를 포함하고, 동종 명령어 운영 체제는, 호스트 컴퓨터의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제이고, 이종 명령어 운영 체제는, 호스트 컴퓨터의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제이다.

Description

하이퍼바이저 시스템 및 하이퍼바이저 동작 방법{HYPERVISOR SYSTEM AND OPERATING METHOD OF HYPERVISOR}
본 발명의 실시예는 하이퍼바이저 기술과 관련된다.
하이퍼바이저(Hypervisor)는 호스트 컴퓨터에서 다수의 운영 체제(Operating System: OS)를 동시에 실행시키기 위한 소프트웨어 가상화 플랫폼을 말한다. 그러나, 기존의 하이퍼바이저는 동일한 프로세서의 다수의 운영 체제를 실행할 수는 있으나, 이기종 프로세서의 운영 체제를 실행할 수는 없다는 문제점이 있다.
즉, 기존의 하이퍼바이저는 X86 기반의 윈도우(Windows)와 리눅스(Linux)와 같은 프로세서가 동일한 종류의 복수의 운영 체제를 실행할 수는 있으나, ARM, PowerPC, MIPS와 같이 서로 다른 종류의 프로세서 기반의 운영 체제를 실행할 수는 없었다.
한편, 스마트시티와 같은 최신 ICT(Information and Communications Technology) 융합 인프라는 스마트 교통 서비스, 스마트 에너지 서비스 등 다양한 서비스에 복수개의 서로 다른 ISA(Instructure Set Architecture)를 지원하는 디바이스가 포함되어 있다. 즉, ICT 융합 환경(예를 들어, 스마트시티와 같은 5G Massive 인프라 환경 등)에서는 다양한 이기종 프로세서와 운영 체제(OS, RTOS)가 실행되는 환경이다.
이러한 ICT 융합 환경에서, 다양한 악성 코드를 수집 및 분석하고 악성 코드 침입에 대응하기 위해서는 실제 엔드 디바이스(end device)와 유사한 함정(Trap)을 배포하고 공격을 유도하여 이를 탐지할 수 있어야 한다. 그러나, 기존의 하이퍼바이저는 이기종 프로세서의 운영 체제를 실행할 수 없기 때문에, 다양한 이기종 프로세서 및 서로 다른 ISA를 지원하는 다양한 디바이스 장치의 유형을 가상으로 구축할 수 없게 된다.
즉, 기존의 하이퍼바이저를 활용하여 구성할 수 있는 가상 인프라는 X86 기반의 윈도우(Windows)와 리눅스(Linux)로 제한되기 때문에, ICT 융합 환경에서 사이버 보안의 공격 보호를 위한 함정(Trap)을 배포할 때도 X86 기반의 윈도우(Windows)와 리눅스(Linux)로 그 운영 체제가 한정되는 문제점이 있다.
등록특허공보 제10-1606212호(2016.03.24)
본 발명의 실시예는 동종 명령어 운영 체제뿐만 아니라 이종 명령어 운영 체제도 실행시킬 수 있는 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법을 제공하기 위한 것이다.
일 실시예에 따른 하이퍼바이저 시스템은, 호스트 컴퓨터에 설치되는 하이퍼바이저 시스템으로서, 상기 호스트 컴퓨터에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키도록 마련되는 하이퍼바이저를 포함하고, 상기 동종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제이고, 상기 이종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제이다.
상기 하이퍼바이저는, 각 이종 가상 플랫폼에 대한 가상 프로세서 및 가상 주변 장치들의 라이브러리를 저장하는 가상 플랫폼 라이브러리 DB(Database); 및 상기 호스트 컴퓨터의 하드웨어를 모니터링하여 상기 하이퍼바이저에 자원을 할당하는 자원 관리 도구를 포함할 수 있다.
상기 하이퍼바이저 시스템은, 상기 하이퍼바이저의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 상기 호스트 컴퓨터의 화면에 표시하고, 상기 가상 플랫폼 지원 리스트에서 선택되는 가상 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 상기 확인된 이종 가상 플랫폼에 대한 라이브러리를 상기 가상 플랫폼 라이브러리 DB에서 추출하여 상기 하이퍼바이저로 전달하는 하이퍼바이저 관리도구를 더 포함할 수 있다.
상기 하이퍼바이저 관리도구는, 상기 가상 플랫폼 지원 리스트에서 선택되는 이종 가상 플랫폼과 대응하는 바이너리를 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달할 수 있다.
상기 하이퍼바이저는, 상기 이종 가상 플랫폼에 대한 라이브러리의 설정 값에 따라 상기 자원 관리 도구를 통해 이종 가상 플랫폼에 자원을 할당하여 시뮬레이터를 생성하고, 상기 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼을 구성하여 상기 시뮬레이터에 탑재할 수 있다.
상기 이종 가상 플랫폼은, 가상 프로세서 및 가상 주변 장치를 포함하고, 상기 가상 프로세서는, 상기 호스트 컴퓨터의 ISA(Instructure Set Architecture)와는 다른 ISA의 소프트웨어를 구동하기 위한 가상 프로세서일 수 있다.
상기 이종 가상 플랫폼은, 상기 수신한 바이너리를 이종 명령어 운영 체제에 대응하는 명령어로 변환한 후 상기 이종 명령어 운영 체제로 전달하여 상기 이종 명령어 운영 체제를 실행시킬 수 있다.
상기 시뮬레이터는, 상기 이종 명령어 운영 체제가 실행 종료되는 경우, 상기 이종 가상 플랫폼을 통해 상기 이종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득하여 상기 하이퍼바이저 관리도구로 전달하고, 상기 하이퍼바이저 관리도구는, 상기 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환하여 저장할 수 있다.
상기 하이퍼바이저 관리도구는, 사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 상기 동종 가상 플랫폼과 대응하는 바이너리를 상기 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달할 수 있다.
상기 하이퍼바이저는, 상기 자원 관리 도구를 통해 동종 가상 플랫폼에 자원을 할당하여 더미 시뮬레이터를 생성하고, 동종 가상 플랫폼을 구성하여 상기 더미 시뮬레이터에 탑재시킬 수 있다.
개시되는 일 실시예에 따른 하이퍼바이저 동작 방법은, 하이퍼바이저 및 하이퍼바이저 관리도구를 구비하고 호스트 컴퓨터에 설치되는 하이퍼바이저 시스템에서 수행되는 방법으로서, 상기 하이퍼바이저가 상기 호스트 컴퓨터에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키는 단계를 포함하고, 상기 동종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제이고, 상기 이종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제이다.
상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저 관리도구에서, 상기 하이퍼바이저의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 상기 호스트 컴퓨터의 화면에 표시하는 단계; 및 상기 하이퍼바이저 관리도구에서, 상기 가상 플랫폼 지원 리스트에서 선택되는 가상 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 상기 확인된 이종 가상 플랫폼에 대한 라이브러리를 추출하여 상기 하이퍼바이저로 전달하는 단계를 포함할 수 있다.
상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저 관리도구에서, 상기 가상 플랫폼 지원 리스트에서 선택되는 이종 가상 플랫폼과 대응하는 바이너리를 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는 단계를 더 포함할 수 있다.
상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저에서, 상기 이종 가상 플랫폼에 대한 라이브러리의 설정 값에 따라 이종 가상 플랫폼에 자원을 할당하여 시뮬레이터를 생성하는 단계; 및 상기 하이퍼바이저에서, 상기 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼을 구성하여 상기 시뮬레이터에 탑재하는 단계를 더 포함할 수 있다.
상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 이종 가상 플랫폼에서, 상기 수신한 바이너리를 이종 명령어 운영 체제에 대응하는 명령어로 변환한 후 상기 이종 명령어 운영 체제로 전달하여 상기 이종 명령어 운영 체제를 실행시키는 단계를 더 포함할 수 있다.
상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 시뮬레이터에서, 상기 이종 명령어 운영 체제가 실행 종료되는 경우, 상기 이종 가상 플랫폼을 통해 상기 이종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득하여 상기 하이퍼바이저 관리도구로 전달하는 단계; 및 상기 하이퍼바이저 관리도구에서, 상기 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환하여 저장하는 단계를 더 포함할 수 있다.
상기 동종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저 관리도구에서, 사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 상기 동종 가상 플랫폼과 대응하는 바이너리를 상기 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는 단계를 포함할 수 있다.
상기 동종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저에서, 동종 가상 플랫폼에 자원을 할당하여 더미 시뮬레이터를 생성하는 단계; 및 동종 가상 플랫폼을 구성하여 상기 더미 시뮬레이터에 탑재시키는 단계를 더 포함할 수 있다.
개시되는 실시예에 의하면, 하이퍼바이저 시스템을 통해 동종 명령어 운영 체제뿐만 아니라 이종 명령어 운영 체제도 실행시킬 수 있으며, 그로 인해 ICT 융합 인프라와 같이 다양한 이기종 프로세서들이 실행되는 환경에 하이퍼바이저 서비스를 제공할 수 있게 된다. 그리고, ICT 융합 환경에서 다양한 악성 코드 침입에 대응하기 위한 함정을 배포하고 공격을 유도하여 다양한 공격 유형을 탐지하고 대응할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 하이퍼바이저 시스템의 구성을 나타낸 도면
도 2는 본 발명의 일 실시예에 따른 하이퍼바이저 동작 방법을 나타낸 흐름도
도 3은 개시되는 일 실시예에 따른 이종 가상 플랫폼에서 명령어 변환을 위한 구성을 개략적으로 나타낸 도면
도 4는 본 발명의 다른 실시예에 따른 하이퍼바이저 동작 방법을 나타낸 흐름도
도 5는 본 발명의 일 실시예에 따른 시뮬레이터 및 이종 가상 플랫폼과 더미 시뮬레이터 및 동종 가상 플랫폼을 개략적으로 나타낸 도면
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
도 1은 본 발명의 일 실시예에 따른 하이퍼바이저 시스템의 구성을 나타낸 도면이다. 설명의 편의상, 도 1에서는 하이퍼바이저 시스템(100)에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제를 실행시키기 위한 구성에 대해서도 도시하였다.
도 1을 참조하면, 하이퍼바이저 시스템(100)은 하이퍼바이저(110), 하이퍼바이저 관리도구(120), 가상 플랫폼 바이너리 업로더(130), 가상 플랫폼 라이브러리 추가도구(140), 및 실행 바이너리 DB(150)를 포함할 수 있다.
하이퍼바이저 시스템(100)은 호스트 컴퓨터(50)에 설치될 수 있다. 예시적인 실시예에서, 호스트 컴퓨터(100)는 X86 기반의 하드웨어(200)를 갖는 컴퓨팅 장치일 수 있다. X86 기반의 하드웨어(200)는 X86 멀티 프로세서를 포함할 수 있다.
예시적인 실시예에서, 호스트 컴퓨터(50)는 다양한 이기종 프로세서들을 갖는 복수 개의 디바이스들과 통신 가능하게 연결될 수 있다. 호스트 컴퓨터(50)는 클라우드 서버 컴퓨팅 장치일 수 있으며, 다양한 이기종 프로세서들을 갖는 복수 개의 디바이스들과 통신하여 이들을 제어하는 역할을 할 수 있다.
예를 들어, 호스트 컴퓨터(50)는 빌딩에 설치되는 복수 개의 센서들과 통신 가능하게 연결되고, 복수 개의 센서들로부터 수집되는 데이터를 기반으로 빌딩 전력 제어를 수행할 수 있으며, 그 이외에도 상하수도 제어, 철도 신호 제어, 오수 펌프 제어 등을 수행할 수 있다. 호스트 컴퓨터(50)는 하이퍼바이저 시스템(100)을 구비함으로써, 다양한 종류의 프로세서들을 갖는 복수 개의 디바이스들을 제어할 수 있게 된다.
하이퍼바이저(110)는 호스트 컴퓨터(50)에서 동종 명령어 운영 체제를 실행시킬 수도 있고, 하나 이상의 이종 명령어 운영 체제를 실행시킬 수도 있다. 또한, 하이퍼바이저(110)는 동종 명령어 운영 체제 및 이종 명령어 운영 체제를 동시에 실행시킬 수도 있다.
여기서, 동종 명령어 운영 체제는 호스트 컴퓨터(50)의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제를 의미할 수 있다. 즉, 호스트 컴퓨터(50)가 X86 기반의 하드웨어(200)를 가지는 바, 동종 명령어 운영 체제는 X86 기반의 명령어 체계를 갖는 운영 체제를 의미한다. 예를 들어, 동종 명령어 운영 체제는 윈도우(Windows)와 리눅스(Linux)가 있을 수 있다.
이종 명령어 운영 체제는 호스트 컴퓨터(50)의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제를 의미할 수 있다. 즉, 호스트 컴퓨터(50)가 X86 기반의 하드웨어(200)를 가지는 바, 이종 명령어 운영 체제는 X86 기반의 명령어 체계가 아닌 다른 명령어 체계를 갖는 운영 체제를 의미한다. 예를 들어, 이종 명령어 운영 체제는 ARM, PowerPC, MIPS와 같이 X86과는 다른 종류의 프로세서(즉, 다른 명령어 체계를 갖는) 기반의 운영 체제일 수 있다.
하이퍼바이저(110)는 하이퍼바이저 관리도구(120)에서 업로드 되는 바이너리에 따라 시뮬레이터(111) 및 더미시뮬레이터(113) 중 하나 이상을 생성할 수 있다. 하이퍼바이저(110)는 이종 명령어 운영 체제를 실행시키는 경우 시뮬레이터(111)를 생성하고, 이종 가상 플랫폼(112)을 구성하여 시뮬레이터(111)에 탑재시킬 수 있다. 하이퍼바이저(110)는 동종 명령어 운영 체제를 실행시키는 경우 더미 시뮬레이터(113)를 생성하고, 동종 가상 플랫폼(114)을 구성하여 더미 시뮬레이터(113)에 탑재시킬 수 있다. 이에 대한 자세한 설명은 후술하기로 한다.
하이퍼바이저(110)는 가상 플랫폼 라이브러리 DB(115) 및 자원 관리 도구(117)를 포함할 수 있다. 가상 플랫폼 라이브러리 DB(115)에는 각 이종 가상 플랫폼에 대한 가상 프로세서(예를 들어, 가상 ARM 프로세서, 가상 PowerPC 프로세서, 가상 RISCV 프로세서 등) 및 가상 주변 장치(예를 들어, 가상 메모리, 가상 시스템 주변 장치, 가상 스토리지, 가상 통신 장치 등)에 대한 라이브러리들이 저장될 수 있다.
자원 관리 도구(117)는 X86 기반의 하드웨어(200)를 모니터링 하여 하이퍼바이저(110)에 자원을 할당할 수 있다. 즉, 자원 관리 도구(117)는 하이퍼바이저(110)에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키는 경우, 그에 대응하는 자원을 하이퍼바이저(110)에 할당할 수 있다.
하이퍼바이저 관리도구(120)는 하이퍼바이저(110)의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 호스트 컴퓨터(50)의 화면에 표시할 수 있다.
여기서, 가상 플랫폼은 동종 명령어 운영 체제를 실행시키기 위한 가상 플랫폼(이하, 동종 가상 플랫폼으로 지칭할 수 있음)일 수도 있고, 이종 명령어 운영 체제를 실행시키기 위한 가상 플랫폼(이하, 이종 가상 플랫폼으로 지칭할 수 있음)일 수도 있다. 각 가상 플랫폼은 주변 장치, 메모리, 버스, CPU 등으로 구성된 가상의 임베디드 시스템일 수 있다.
예를 들어, 가상 플랫폼 지원 리스트는 가상 플랫폼 라이브러리 DB(115)에 저장되어 있을 수 있다. 하이퍼바이저 관리도구(120)는 가상 플랫폼 라이브러리 DB(115)에서 가상 플랫폼 지원 리스트를 추출하여 화면에 표시할 수 있다.
하이퍼바이저 관리도구(120)는 가상 플랫폼 지원 리스트에서 사용자가 선택한 가장 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 해당 이종 가상 플랫폼에 대한 라이브러리를 가상 플랫폼 라이브러리 DB(115)에서 추출하여 하이퍼바이저(110)로 전달할 수 있다.
또한, 하이퍼바이저 관리도구(120)는 가상 플랫폼 지원 리스트에서 사용자가 선택한 가상 플랫폼과 대응하는 바이너리(즉, 가상 플랫폼에서 실행시키기 위한 바이너리)를 가상 플랫폼 바이너리 업로더(130)에 요청하여 수신하고 상기 바이너리를 하이퍼바이저(110)로 전달할 수 있다.
가상 플랫폼 바이너리 업로더(130)는 각 가상 플랫폼과 대응하는 바이너리들을 저장할 수 있으며, 하이퍼바이저 관리도구(120)의 요청에 따라 그에 대응하는 바이너리를 하이퍼바이저 관리도구(120)로 업로드할 수 있다.
가상 플랫폼 바이너리 업로더(130)에는 타겟 정보, 타겟 바이너리, 및 최종 실행 정보의 파일들이 하나의 세트로 저장될 수 있다. 타겟 정보는 가상 플랫폼에 대한 정보로서, 예를 들어 가상 플랫폼의 구성 정보, 가상 프로세서의 아키텍처 등이 포함될 수 있다. 타겟 바이너리는 가상 플랫폼에서 실행시키기 위한 바이너리이다. 최종 실행 정보는 최종 실행 상태 복구를 위한 정보로서, 가상 플랫폼에서 메모리 최신 상태, CPU Register, Program Counter, Stack 정보 등을 포함할 수 있다.
가상 플랫폼 라이브러리 추가도구(140)는 하이퍼바이저(110)에서 지원 가능한 이종 가상 플랫폼의 종류가 추가될 수 있도록 이종 가상 플랫폼 라이브러리를 추가하는 역할을 할 수 있다. 가상 플랫폼 라이브러리 추가도구(140)는 신규 추가되는 이종 가상 플랫폼에 대한 라이브러리를 가상 플랫폼 라이브러리 DB(115)에 업로드 할 수 있다.
실행 바이너리 DB(150)는 하이버파이저(100)에서 실행되는 동종 명령어 운영 체제 및 이종 명령어 운영 체제에서 실행된 실행 관련 정보가 저장될 수 있다. 여기서, 실행 관련 정보는 동종 명령어 운영 체제 및 이종 명령어 운영 체제에서 실행된 실행 정보(예를 들어, 실행 코드, 레지스터, 메모리 등), 실행 바이너리, 및 하드웨어 설정 값 등을 포함할 수 있다.
개시되는 실시예에 의하면, 하이퍼바이저 시스템(100)을 통해 동종 명령어 운영 체제뿐만 아니라 이종 명령어 운영 체제도 실행시킬 수 있으며, 그로 인해 ICT(Information and Communications Technology) 융합 인프라와 같이 다양한 이기종 프로세서들이 실행되는 환경에 하이퍼바이저 서비스를 제공할 수 있게 된다. 그리고, ICT 융합 환경에서 다양한 악성 코드 침입에 대응하기 위한 함정을 배포하고 공격을 유도하여 다양한 공격 유형을 탐지하고 대응할 수 있게 된다.
도 2는 본 발명의 일 실시예에 따른 하이퍼바이저 동작 방법을 나타낸 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
여기서는, 하이퍼바이저 시스템(100)에서 이종 명령어 운영 체제를 실행시키기 위한 동작 방법을 일 예로 설명하기로 한다. 이를 위해, 하이퍼바이저 시스템(100)은 시뮬레이터(111)를 생성하고, 이종 가상 플랫폼(112)을 구성하여 시뮬레이터(111) 상에 탑재하게 된다.
도 2를 참조하면, 호스트 컴퓨터(50)에서 사용자의 명령에 의해 하이퍼바이저(110)가 실행되는 경우, 하이퍼바이저(110)는 하이퍼바이저 관리도구(120)를 호출할 수 있다(S 101). 이때, 하이퍼바이저(110)는 쉘 화면을 통해 명령어 방식으로 하이퍼바이저 관리도구(120)를 호출하거나 GUI(Graphic User Interface) 프로그램을 통해 하이퍼바이저 관리도구(120)를 호출할 수 있다.
다음으로, 하이퍼바이저 관리도구(120)는 기 저장된 가상 플랫폼 지원 리스트를 호스트 컴퓨터(50)의 화면에 표시할 수 있다(S 103). 즉, 하이퍼바이저 관리도구(120)는 호스트 컴퓨터(50)에서 지원 가능한 가상 플랫폼의 리스트를 화면에 표시할 수 있다.
예를 들어, 가상 플랫폼 지원 리스트는 가상 플랫폼 라이브러리 DB(115)에 저장되어 있을 수 있다. 하이퍼바이저 관리도구(120)는 가상 플랫폼 라이브러리 DB(115)에서 가상 플랫폼 지원 리스트를 추출하여 화면에 표시할 수 있다.
다음으로, 하이퍼바이저 관리도구(120)는 가상 플랫폼 지원 리스트에서 사용자가 선택하는 가상 플랫폼과 관련된 명령어 운영 체제를 확인할 수 있다(S 105).
즉, 하이퍼바이저 관리도구(120)는 가상 플랫폼 지원 리스트에서 사용자가 선택하는 가상 플랫폼이 동종 명령어 운영 체제를 실행시키기 위한 것인지(동종 가상 플랫폼인지) 아니면 이종 명령어 운영 체제를 실행시키기 위한 것인지(이종 가상 플랫폼인지) 여부를 확인할 수 있다.
단계 S 105에서, 사용자가 선택한 가상 플랫폼이 이종 가상 플랫폼인 경우, 하이퍼바이저 관리도구(120)는 해당 이종 가상 플랫폼을 확인하고, 해당 이종 가상 플랫폼에 대한 라이브러리를 가상 플랫폼 라이브러리 DB(115)에서 추출하여 하이퍼바이저(110)로 전달할 수 있다(S 107). 여기서, 라이브러리는 이종 가상 플랫폼을 구성하기 위한 메모리, 프로세서, 버스, 주변 장치 등의 설정 값을 포함하는 파일일 수 있다.
다음으로, 하이퍼바이저 관리도구(120)는 사용자가 선택한 이종 가상 플랫폼과 대응하는 바이너리(즉, 이종 가상 플랫폼에서 실행시키기 위한 바이너리)를 가상 플랫폼 바이너리 업로더(130)에 요청하여 수신하고 상기 바이너리를 하이퍼바이저(110)로 전달할 수 있다(S 109).
즉, 가상 플랫폼 바이너리 업로더(130)는 각 가상 플랫폼과 대응하는 바이너리들을 저장할 수 있으며, 하이퍼바이저 관리도구(120)의 요청에 따라 그에 대응하는 바이너리를 하이퍼바이저 관리도구(120)로 업로드할 수 있다.
다음으로, 하이퍼바이저(110)는 이종 가상 플랫폼에 대한 라이브러리 및 바이너리를 각각 수신하는 경우, 자원 관리 도구(117)를 통해 이종 가상 플랫폼에 자원을 할당하여 해당 이종 가상 플랫폼을 위한 시뮬레이터(111)를 생성할 수 있다(S 111).
여기서, 시뮬레이터(111)는 이종 가상 플랫폼(112)과 하이퍼바이저(110) 및 하이퍼바이저 관리도구(120) 사이에 인터페이스 역할을 하면서 후술하는 이종 가상 플랫폼(112)을 실행시키기 위한 계층일 수 있다. 그리고, 자원 관리 도구(117)는 X86 기반의 하드웨어(200)를 모니터링 하여 이종 가상 플랫폼(112)의 라이브러리 설정 값(예를 들어, 메모리, 저장 공간, CPU의 설정 등)에 따라 그에 대응하는 자원을 이종 가상 플랫폼에 할당할 수 있다.
다음으로, 하이퍼바이저(110)는 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼(112)을 구성하여 시뮬레이터(111) 상에 탑재시킬 수 있다(S 113).
이종 가상 플랫폼(112)은 가상 플랫폼 라이브러리 DB(115)에서 추출한 가상 프로세서 및 가상 주변 장치들의 라이브러리를 통해 구성될 수 있다. 이종 가상 플랫폼(112)은 호스트 컴퓨터(100)의 ISA(Instructure Set Architecture)와는 다른 ISA의 소프트웨어를 구동하기 위해 가상 프로세서를 포함하게 된다.
다음으로, 이종 가상 플랫폼(112)은 상기 업로드 된 바이너리를 이종 명령어 운영 체제(A)에 대응하는 명령어로 변환한 후 이종 명령어 운영 체제(A)로 전달하여 이종 명령어 운영 체제(A)를 실행시킬 수 있다(S 115).
도 3은 개시되는 일 실시예에 따른 이종 가상 플랫폼에서 명령어 변환을 위한 구성을 개략적으로 나타낸 도면이다. 여기서, 이종 가상 플랫폼(112)은 가상 ARM 프로세서(112a)를 구비하는 것으로 한다. 가상 ARM 프로세서(112a)는 명령어 해석기(112a-1) 및 명령어 수행기(112a-2)를 포함할 수 있다. 이 경우, 업로드 된 바이너리는 ARM 바이너리 일 수 있다.
업로드 된 바이너리는 실행 코드가 들어있는 코드 영역이 있고, 이 코드 영역에는 일련의 명령어가 들어 있게 된다. 가상 ARM 프로세서(112a)는 업로드 된 바이너리의 코드 영역에 포함된 각 명령어를 실행 흐름에 따라 순차적으로 가져와 명령어 해석기(112a-1)에서 각 명령어가 어떤 명령어인지를 식별하게 된다. 그리고, 가상 ARM 프로세서(112a)는 명령어 수행기(112a-2)에서 해당 명령어의 기능을 에뮬레이션(emulation) 하게 된다.
예를 들어, ARM 바이너리로부터 32비트 명령어를 읽어왔을 때 명령어 해석기(112a-1)에서 해당 명령어를 add(더하기) 명령어로 식별하는 경우, 명령어 수행기(112a-2)에서 명령어의 오퍼런드(operand) 형식에 맞추어 더하기 연산을 수행하고, 가상 ARM 프로세서(112a)의 레지스터에 결과 값을 저장하게 된다.
다음으로, 이종 명령어 운영 체제(A)가 실행 종료되는 경우, 시뮬레이터(111)는 이종 가상 플랫폼(112)을 통해 이종 명령어 운영 체제(A)에서 실행된 실행 관련 정보를 획득할 수 있다(S 117). 여기서, 실행 관련 정보는 이종 명령어 운영 체제(A)에서 실행된 실행 정보(예를 들어, 실행 코드, 레지스터, 메모리 등), 실행 바이너리, 및 하드웨어 설정 값 등을 포함할 수 있다.
다음으로, 시뮬레이터(111)는 이종 명령어 운영 체제(A)에서 실행된 실행 관련 정보를 하이퍼바이저 관리도구(120)로 전달할 수 있다(S 119).
다음으로, 하이퍼바이저 관리도구(120)는 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환한 후 실행 바이너리 DB(150)에 저장할 수 있다(S 121).
다음으로, 하이퍼바이저(110)는 시뮬레이터(111) 및 이종 가상 플랫폼(112)을 순차적으로 종료시키고, 이종 가상 플랫폼(112)에 할당된 자원을 회수할 수 있다(S 123).
도 4는 본 발명의 다른 실시예에 따른 하이퍼바이저 동작 방법을 나타낸 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
여기서는, 하이퍼바이저 시스템(100)에서 동종 명령어 운영 체제를 실행시키기 위한 동작 방법을 일 예로 설명하기로 한다. 이를 위해, 하이퍼바이저 시스템(100)은 더미 시뮬레이터(113)를 생성하고, 동종 가상 플랫폼(114)을 구성하여 더미 시뮬레이터(113) 상에 탑재하게 된다.
도 4를 참조하면, 호스트 컴퓨터(50)에서 사용자의 명령에 의해 하이퍼바이저(110)가 실행되는 경우, 하이퍼바이저(110)는 하이퍼바이저 관리도구(120)를 호출할 수 있다(S 201).
다음으로, 하이퍼바이저 관리도구(120)는 사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 동종 가상 플랫폼과 대응하는 바이너리(예를 들어, X86 바이너리)를 가상 플랫폼 바이너리 업로더(130)에 요청하여 수신하고 상기 바이너리를 하이퍼바이저(110)로 전달할 수 있다(S 203).
다음으로, 하이퍼바이저(110)는 자원 관리 도구(117)를 통해 동종 가상 플랫폼에 자원을 할당하여 동종 가상 플랫폼을 위한 더미 시뮬레이터(113)를 생성할 수 있다(S 205).
여기서, 더미 시뮬레이터(113)는 시뮬레이터(111)와 계층 구조를 맞추기 위한 것으로, 동종 가상 플랫폼(114)과 하이퍼바이저(110) 및 하이퍼바이저 관리도구(120) 사이에 인터페이스 역할을 할 수 있다. 즉, 더미 시뮬레이터(113)는 시뮬레이터(111)와 인터페이스를 동일하게 하기 위한 것일 수 있다.
다음으로, 하이퍼바이저(110)는 동종 가상 플랫폼(114)을 구성하여 더미 시뮬레이터(113) 상에 탑재시킬 수 있다(S 207). 여기서, 동종 가상 플랫폼(114)은 호스트 컴퓨터(50)와 동일한 명령어 체계를 가지므로 이종 가상 플랫폼을 구성할 때와는 달리 별도의 라이브러리 없이도 구성할 수 있다. 예를 들어, 동종 가상 플랫폼(114)은 Virtual Box를 이용한 가상 머신일 수 있으나, 이에 한정되는 것은 아니다.
다음으로, 동종 가상 플랫폼(114)은 업로드 된 바이너리(예를 들어, X86 바이너리)를 동종 명령어 운영 체제로 전달하여 동종 명령어 운영 체제를 실행시킬 수 있다(S 209). 여기서, 업로드 된 바이너리는 호스트 컴퓨터(50)와 동일한 명령어 체계를 가지므로, 이종 명령어 운영 체제를 실행시킬 때와는 달리 명령어를 변환할 필요가 없다.
다음으로, 동종 명령어 운영 체제가 실행 종료되는 경우, 더미 시뮬레이터(113)는 동종 가상 플랫폼(114)을 통해 동종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득할 수 있다(S 211).
다음으로, 더미 시뮬레이터(113)는 동종 명령어 운영 체제에서 실행된 실행 관련 정보를 하이퍼바이저 관리도구(120)로 전달할 수 있다(S 213).
다음으로, 하이퍼바이저 관리도구(120)는 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환한 후 실행 바이너리 DB(150)에 저장할 수 있다(S 215).
다음으로, 하이퍼바이저(110)는 더미 시뮬레이터(113) 및 동종 가상 플랫폼(114)을 순차적으로 종료시키고, 동종 가상 플랫폼(114)에 할당된 자원을 회수할 수 있다(S 217).
도 5는 본 발명의 일 실시예에 따른 시뮬레이터 및 이종 가상 플랫폼과 더미 시뮬레이터 및 동종 가상 플랫폼을 개략적으로 나타낸 도면이다. 여기서는,
도 5를 참조하면, 시뮬레이터(111)는 이종 가상 플랫폼(112)과 하이퍼바이저(110) 간 통신 인터페이스 역할을 할 수 있다. 이종 가상 플랫폼(112)에는 ARM 바이너리가 업로드 될 수 있다. 이종 가상 플랫폼(112)은 가상 프로세서 및 가상 주변 장치들의 라이브러리를 통해 구성될 수 있다.
더미 시뮬레이터(113)는 동종 가상 플랫폼(114)과 하이퍼바이저(110) 간 통신 인터페이스 역할을 할 수 있다. 동종 가상 플랫폼(114)에는 X86 바이너리가 업로드될 수 있다. 동종 가상 플랫폼(114)은 Virtual Box Engine으로 구성될 수 있다.
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 하이퍼바이저 시스템(100)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
50 : 호스트 컴퓨터
100 : 하이퍼바이저 시스템
110 : 하이퍼바이저
120 : 하이퍼바이저 관리도구
130 : 가상 플랫폼 바이너리 업로더
140 : 가상 플랫폼 라이브러리 추가도구
150 : 실행 바이너리 DB
111 : 시뮬레이터
112 : 이종 가상 플랫폼
113 : 더미 시뮬레이터
114 : 동종 가상 플랫폼
115 : 가상 플랫폼 라이브러리 DB
117 : 자원 관리 도구

Claims (18)

  1. 호스트 컴퓨터에 설치되는 하이퍼바이저 시스템으로서,
    상기 호스트 컴퓨터에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키도록 마련되는 하이퍼바이저를 포함하고,
    상기 동종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제이고,
    상기 이종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제이며,
    상기 하이퍼바이저는, 각 이종 가상 플랫폼에 대한 가상 프로세서 및 가상 주변 장치들의 라이브러리를 저장하는 가상 플랫폼 라이브러리 DB(Database) 및 상기 호스트 컴퓨터의 하드웨어를 모니터링하여 상기 하이퍼바이저에 자원을 할당하는 자원 관리 도구를 포함하고,
    상기 하이퍼바이저 시스템은,
    상기 하이퍼바이저의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 상기 호스트 컴퓨터의 화면에 표시하고, 상기 가상 플랫폼 지원 리스트에서 선택되는 가상 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 상기 확인된 이종 가상 플랫폼에 대한 라이브러리를 상기 가상 플랫폼 라이브러리 DB에서 추출하여 상기 하이퍼바이저로 전달하는 하이퍼바이저 관리도구를 더 포함하는, 하이퍼바이저 시스템.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    상기 하이퍼바이저 관리도구는,
    상기 가상 플랫폼 지원 리스트에서 선택되는 이종 가상 플랫폼과 대응하는 바이너리를 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는, 하이퍼바이저 시스템.
  5. 청구항 4에 있어서,
    상기 하이퍼바이저는,
    상기 이종 가상 플랫폼에 대한 라이브러리의 설정 값에 따라 상기 자원 관리 도구를 통해 이종 가상 플랫폼에 자원을 할당하여 시뮬레이터를 생성하고, 상기 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼을 구성하여 상기 시뮬레이터에 탑재하는, 하이퍼바이저 시스템.
  6. 청구항 5에 있어서,
    상기 이종 가상 플랫폼은, 가상 프로세서 및 가상 주변 장치를 포함하고,
    상기 가상 프로세서는, 상기 호스트 컴퓨터의 ISA(Instructure Set Architecture)와는 다른 ISA의 소프트웨어를 구동하기 위한 가상 프로세서인, 하이퍼바이저 시스템.
  7. 청구항 5에 있어서,
    상기 이종 가상 플랫폼은,
    상기 수신한 바이너리를 이종 명령어 운영 체제에 대응하는 명령어로 변환한 후 상기 이종 명령어 운영 체제로 전달하여 상기 이종 명령어 운영 체제를 실행시키는, 하이퍼바이저 시스템.
  8. 청구항 7에 있어서,
    상기 시뮬레이터는,
    상기 이종 명령어 운영 체제가 실행 종료되는 경우, 상기 이종 가상 플랫폼을 통해 상기 이종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득하여 상기 하이퍼바이저 관리도구로 전달하고,
    상기 하이퍼바이저 관리도구는, 상기 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환하여 저장하는, 하이퍼바이저 시스템.
  9. 청구항 5에 있어서,
    상기 하이퍼바이저 관리도구는,
    사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 상기 동종 가상 플랫폼과 대응하는 바이너리를 상기 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는, 하이퍼바이저 시스템.
  10. 청구항 9에 있어서,
    상기 하이퍼바이저는,
    상기 자원 관리 도구를 통해 동종 가상 플랫폼에 자원을 할당하여 더미 시뮬레이터를 생성하고, 동종 가상 플랫폼을 구성하여 상기 더미 시뮬레이터에 탑재시키는, 하이퍼바이저 시스템.
  11. 하이퍼바이저 및 하이퍼바이저 관리도구를 구비하고 호스트 컴퓨터에 설치되는 하이퍼바이저 시스템에서 수행되는 방법으로서,
    상기 하이퍼바이저가 상기 호스트 컴퓨터에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키는 단계를 포함하고,
    상기 동종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제이고,
    상기 이종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제이며,
    상기 이종 명령어 운영 체제를 실행시키는 단계는,
    상기 하이퍼바이저 관리도구에서, 상기 하이퍼바이저의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 상기 호스트 컴퓨터의 화면에 표시하는 단계; 및
    상기 하이퍼바이저 관리도구에서, 상기 가상 플랫폼 지원 리스트에서 선택되는 가상 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 상기 확인된 이종 가상 플랫폼에 대한 라이브러리를 추출하여 상기 하이퍼바이저로 전달하는 단계를 포함하는, 하이퍼바이저 동작 방법.
  12. 삭제
  13. 청구항 11에 있어서,
    상기 이종 명령어 운영 체제를 실행시키는 단계는,
    상기 하이퍼바이저 관리도구에서, 상기 가상 플랫폼 지원 리스트에서 선택되는 이종 가상 플랫폼과 대응하는 바이너리를 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
  14. 청구항 13에 있어서,
    상기 이종 명령어 운영 체제를 실행시키는 단계는,
    상기 하이퍼바이저에서, 상기 이종 가상 플랫폼에 대한 라이브러리의 설정 값에 따라 이종 가상 플랫폼에 자원을 할당하여 시뮬레이터를 생성하는 단계; 및
    상기 하이퍼바이저에서, 상기 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼을 구성하여 상기 시뮬레이터에 탑재하는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
  15. 청구항 14에 있어서,
    상기 이종 명령어 운영 체제를 실행시키는 단계는,
    상기 이종 가상 플랫폼에서, 상기 수신한 바이너리를 이종 명령어 운영 체제에 대응하는 명령어로 변환한 후 상기 이종 명령어 운영 체제로 전달하여 상기 이종 명령어 운영 체제를 실행시키는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
  16. 청구항 15에 있어서,
    상기 이종 명령어 운영 체제를 실행시키는 단계는,
    상기 시뮬레이터에서, 상기 이종 명령어 운영 체제가 실행 종료되는 경우, 상기 이종 가상 플랫폼을 통해 상기 이종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득하여 상기 하이퍼바이저 관리도구로 전달하는 단계; 및
    상기 하이퍼바이저 관리도구에서, 상기 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환하여 저장하는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
  17. 청구항 14에 있어서,
    상기 동종 명령어 운영 체제를 실행시키는 단계는,
    상기 하이퍼바이저 관리도구에서, 사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 상기 동종 가상 플랫폼과 대응하는 바이너리를 상기 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는 단계를 포함하는, 하이퍼바이저 동작 방법.
  18. 청구항 17에 있어서,
    상기 동종 명령어 운영 체제를 실행시키는 단계는,
    상기 하이퍼바이저에서, 동종 가상 플랫폼에 자원을 할당하여 더미 시뮬레이터를 생성하는 단계; 및
    동종 가상 플랫폼을 구성하여 상기 더미 시뮬레이터에 탑재시키는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
KR1020220066142A 2022-05-30 2022-05-30 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법 KR102465953B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220066142A KR102465953B1 (ko) 2022-05-30 2022-05-30 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220066142A KR102465953B1 (ko) 2022-05-30 2022-05-30 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법

Publications (1)

Publication Number Publication Date
KR102465953B1 true KR102465953B1 (ko) 2022-11-11

Family

ID=84042857

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220066142A KR102465953B1 (ko) 2022-05-30 2022-05-30 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법

Country Status (1)

Country Link
KR (1) KR102465953B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008012159A1 (en) * 2006-07-25 2008-01-31 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture
JP2008108260A (ja) * 2006-10-26 2008-05-08 Internatl Business Mach Corp <Ibm> コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム
US20100138828A1 (en) * 2008-12-01 2010-06-03 Vincent Hanquez Systems and Methods for Facilitating Virtualization of a Heterogeneous Processor Pool
KR20100066405A (ko) * 2008-12-08 2010-06-17 엔비디아 코포레이션 이종 처리 유닛을 위한 중앙집중형 디바이스 가상화 계층
KR101606212B1 (ko) 2009-11-17 2016-03-24 인터내셔널 비지네스 머신즈 코포레이션 하이퍼바이저 파일 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008012159A1 (en) * 2006-07-25 2008-01-31 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture
JP2008108260A (ja) * 2006-10-26 2008-05-08 Internatl Business Mach Corp <Ibm> コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム
US20100138828A1 (en) * 2008-12-01 2010-06-03 Vincent Hanquez Systems and Methods for Facilitating Virtualization of a Heterogeneous Processor Pool
KR20100066405A (ko) * 2008-12-08 2010-06-17 엔비디아 코포레이션 이종 처리 유닛을 위한 중앙집중형 디바이스 가상화 계층
KR101606212B1 (ko) 2009-11-17 2016-03-24 인터내셔널 비지네스 머신즈 코포레이션 하이퍼바이저 파일 시스템

Similar Documents

Publication Publication Date Title
EP3304295B1 (en) Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines
TWI608363B (zh) 架構模式組態
TWI639090B (zh) 用於可在多種架構中初始化之控制公用程式之共同開機順序
US20190334765A1 (en) Apparatuses and methods for site configuration management
US8332848B2 (en) Mechanism for staged upgrades of a virtual machine system
JP6388455B2 (ja) 仮想データセンタゲストへのサービスの拡大
WO2020015447A1 (zh) 共识机制的部署方法、装置、设备和存储介质
US20110125979A1 (en) Migrating Logical Partitions
KR20170022028A (ko) 컨테이너 이미지 보안 검사 방법 및 그 장치
JP7386882B2 (ja) セキュア仮想マシン環境におけるゲスト命令の透過的解釈
WO2017183565A1 (ja) ネットワークシステム、パッチファイル適用方法、及び記録媒体
JP5346405B2 (ja) ネットワークシステム
JP2016515267A5 (ko)
US20190312909A1 (en) Method and system for applying compliance policies on private and public cloud
US9448807B2 (en) Automatic creation, deployment, and upgrade of disk images
TWI734379B (zh) 用於使用初始程式載入機制啟動安全客體之電腦實施方法、電腦系統及電腦程式產品
CN114651233A (zh) 即时容器
WO2018003020A1 (ja) 制御装置、コンテナの起動方法及びプログラム
CN103995733A (zh) 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法
CN110968392B (zh) 一种升级虚拟化模拟器的方法和装置
WO2013145434A1 (ja) ネットワークシステム及びその制御方法
KR20120068573A (ko) 심리스 애플리케이션 통합 장치 및 방법
TW202101209A (zh) 將中斷及例外注入安全虛擬機器
JP7388804B2 (ja) セキュア仮想マシンのディスパッチ
KR102465953B1 (ko) 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant