KR102465953B1 - Hypervisor system and operating method of hypervisor - Google Patents

Hypervisor system and operating method of hypervisor 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
Korean (ko)
Inventor
방혁준
Original Assignee
쿤텍 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쿤텍 주식회사 filed Critical 쿤텍 주식회사
Priority to KR1020220066142A priority Critical patent/KR102465953B1/en
Application granted granted Critical
Publication of KR102465953B1 publication Critical patent/KR102465953B1/en

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

Disclosed are a hypervisor system and a hypervisor operating method. As the hypervisor system installed on a host computer, the hypervisor system according to one disclosed embodiment comprises a hypervisor arranged to execute one or more among a homogeneous command operating system and a heterogeneous command operating system on the host computer, wherein the homogeneous command operating system is an operating system having the same command system as a command system of the host computer, and the heterogeneous command operating system is an operating system having a command system different from the command system of the host computer. Therefore, the present invention is capable of detecting and responding to various types of attacks.

Description

하이퍼바이저 시스템 및 하이퍼바이저 동작 방법{HYPERVISOR SYSTEM AND OPERATING METHOD OF HYPERVISOR}Hypervisor system and hypervisor operation method {HYPERVISOR SYSTEM AND OPERATING METHOD OF HYPERVISOR}

본 발명의 실시예는 하이퍼바이저 기술과 관련된다.Embodiments of the present invention relate to hypervisor technology.

하이퍼바이저(Hypervisor)는 호스트 컴퓨터에서 다수의 운영 체제(Operating System: OS)를 동시에 실행시키기 위한 소프트웨어 가상화 플랫폼을 말한다. 그러나, 기존의 하이퍼바이저는 동일한 프로세서의 다수의 운영 체제를 실행할 수는 있으나, 이기종 프로세서의 운영 체제를 실행할 수는 없다는 문제점이 있다. A hypervisor refers to a software virtualization platform for simultaneously executing multiple operating systems (OS) on a host computer. However, existing hypervisors can run multiple operating systems of the same processor, but have a problem in that they cannot run operating systems of heterogeneous processors.

즉, 기존의 하이퍼바이저는 X86 기반의 윈도우(Windows)와 리눅스(Linux)와 같은 프로세서가 동일한 종류의 복수의 운영 체제를 실행할 수는 있으나, ARM, PowerPC, MIPS와 같이 서로 다른 종류의 프로세서 기반의 운영 체제를 실행할 수는 없었다. That is, in the existing hypervisor, processors such as Windows and Linux based on X86 can run multiple operating systems of the same type, but different types of processor-based processors such as ARM, PowerPC, and MIPS I couldn't run the operating system.

한편, 스마트시티와 같은 최신 ICT(Information and Communications Technology) 융합 인프라는 스마트 교통 서비스, 스마트 에너지 서비스 등 다양한 서비스에 복수개의 서로 다른 ISA(Instructure Set Architecture)를 지원하는 디바이스가 포함되어 있다. 즉, ICT 융합 환경(예를 들어, 스마트시티와 같은 5G Massive 인프라 환경 등)에서는 다양한 이기종 프로세서와 운영 체제(OS, RTOS)가 실행되는 환경이다. On the other hand, the latest ICT (Information and Communications Technology) convergence infrastructure such as smart city includes devices supporting a plurality of different ISA (Instructure Set Architecture) in various services such as smart transportation service and smart energy service. That is, in an ICT convergence environment (eg, 5G Massive infrastructure environment such as a smart city), it is an environment in which various heterogeneous processors and operating systems (OS, RTOS) are executed.

이러한 ICT 융합 환경에서, 다양한 악성 코드를 수집 및 분석하고 악성 코드 침입에 대응하기 위해서는 실제 엔드 디바이스(end device)와 유사한 함정(Trap)을 배포하고 공격을 유도하여 이를 탐지할 수 있어야 한다. 그러나, 기존의 하이퍼바이저는 이기종 프로세서의 운영 체제를 실행할 수 없기 때문에, 다양한 이기종 프로세서 및 서로 다른 ISA를 지원하는 다양한 디바이스 장치의 유형을 가상으로 구축할 수 없게 된다. In this ICT convergence environment, in order to collect and analyze various malicious codes and respond to malicious code intrusion, it is necessary to deploy traps similar to actual end devices, induce attacks, and detect them. However, since existing hypervisors cannot execute operating systems of heterogeneous processors, it is impossible to virtually build various types of device devices that support various heterogeneous processors and different ISAs.

즉, 기존의 하이퍼바이저를 활용하여 구성할 수 있는 가상 인프라는 X86 기반의 윈도우(Windows)와 리눅스(Linux)로 제한되기 때문에, ICT 융합 환경에서 사이버 보안의 공격 보호를 위한 함정(Trap)을 배포할 때도 X86 기반의 윈도우(Windows)와 리눅스(Linux)로 그 운영 체제가 한정되는 문제점이 있다. In other words, since the virtual infrastructure that can be configured using the existing hypervisor is limited to X86-based Windows and Linux, traps for cyber security attack protection are deployed in the ICT convergence environment. However, there is a problem that the operating system is limited to X86-based Windows and Linux.

등록특허공보 제10-1606212호(2016.03.24)Registered Patent Publication No. 10-1606212 (2016.03.24)

본 발명의 실시예는 동종 명령어 운영 체제뿐만 아니라 이종 명령어 운영 체제도 실행시킬 수 있는 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법을 제공하기 위한 것이다. An embodiment of the present invention is to provide a hypervisor system and a hypervisor operating method capable of executing not only a homogeneous command operating system but also a heterogeneous command operating system.

일 실시예에 따른 하이퍼바이저 시스템은, 호스트 컴퓨터에 설치되는 하이퍼바이저 시스템으로서, 상기 호스트 컴퓨터에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키도록 마련되는 하이퍼바이저를 포함하고, 상기 동종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제이고, 상기 이종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제이다.A hypervisor system according to an embodiment is a hypervisor system installed in a host computer, and includes a hypervisor configured to execute at least one of a homogeneous instruction operating system and a heterogeneous instruction operating system in the host computer, and The command operating system is an operating system having the same command system as that of the host computer, and the heterogeneous command operating system is an operating system having a command system different from that of the host computer.

상기 하이퍼바이저는, 각 이종 가상 플랫폼에 대한 가상 프로세서 및 가상 주변 장치들의 라이브러리를 저장하는 가상 플랫폼 라이브러리 DB(Database); 및 상기 호스트 컴퓨터의 하드웨어를 모니터링하여 상기 하이퍼바이저에 자원을 할당하는 자원 관리 도구를 포함할 수 있다.The hypervisor may include a virtual platform library DB (Database) storing libraries of virtual processors and virtual peripheral devices for each heterogeneous virtual platform; and a resource management tool for monitoring hardware of the host computer and allocating resources to the hypervisor.

상기 하이퍼바이저 시스템은, 상기 하이퍼바이저의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 상기 호스트 컴퓨터의 화면에 표시하고, 상기 가상 플랫폼 지원 리스트에서 선택되는 가상 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 상기 확인된 이종 가상 플랫폼에 대한 라이브러리를 상기 가상 플랫폼 라이브러리 DB에서 추출하여 상기 하이퍼바이저로 전달하는 하이퍼바이저 관리도구를 더 포함할 수 있다.The hypervisor system displays a pre-stored virtual platform support list on the screen of the host computer according to the call of the hypervisor, and when the virtual platform selected from the virtual platform support list is a heterogeneous virtual platform, the corresponding heterogeneous virtual platform It may further include a hypervisor management tool that checks the identified heterogeneous virtual platform, extracts the library for the identified heterogeneous virtual platform from the virtual platform library DB, and transfers the extracted library to the hypervisor.

상기 하이퍼바이저 관리도구는, 상기 가상 플랫폼 지원 리스트에서 선택되는 이종 가상 플랫폼과 대응하는 바이너리를 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달할 수 있다.The hypervisor management tool may request and receive a binary corresponding to a heterogeneous virtual platform selected from the virtual platform support list from a virtual platform binary uploader, and transfer the received binary to the hypervisor.

상기 하이퍼바이저는, 상기 이종 가상 플랫폼에 대한 라이브러리의 설정 값에 따라 상기 자원 관리 도구를 통해 이종 가상 플랫폼에 자원을 할당하여 시뮬레이터를 생성하고, 상기 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼을 구성하여 상기 시뮬레이터에 탑재할 수 있다.The hypervisor generates a simulator by allocating resources to the heterogeneous virtual platform through the resource management tool according to the setting value of the library for the heterogeneous virtual platform, and creates a heterogeneous virtual platform based on the library for the heterogeneous virtual platform. It can be configured and mounted on the simulator.

상기 이종 가상 플랫폼은, 가상 프로세서 및 가상 주변 장치를 포함하고, 상기 가상 프로세서는, 상기 호스트 컴퓨터의 ISA(Instructure Set Architecture)와는 다른 ISA의 소프트웨어를 구동하기 위한 가상 프로세서일 수 있다.The heterogeneous virtual platform includes a virtual processor and a virtual peripheral device, and the virtual processor may be a virtual processor for driving software of an ISA (Instructure Set Architecture) different from that of the host computer.

상기 이종 가상 플랫폼은, 상기 수신한 바이너리를 이종 명령어 운영 체제에 대응하는 명령어로 변환한 후 상기 이종 명령어 운영 체제로 전달하여 상기 이종 명령어 운영 체제를 실행시킬 수 있다.The heterogeneous virtual platform may execute the heterogeneous command operating system by converting the received binary into a command corresponding to the heterogeneous command operating system and then passing the binary command to the heterogeneous command operating system.

상기 시뮬레이터는, 상기 이종 명령어 운영 체제가 실행 종료되는 경우, 상기 이종 가상 플랫폼을 통해 상기 이종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득하여 상기 하이퍼바이저 관리도구로 전달하고, 상기 하이퍼바이저 관리도구는, 상기 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환하여 저장할 수 있다.When the heterogeneous command operating system is executed, the simulator acquires execution-related information executed in the heterogeneous command operating system through the heterogeneous virtual platform and transfers it to the hypervisor management tool, and the hypervisor management tool , The execution-related information may be converted into a preset binary format and stored.

상기 하이퍼바이저 관리도구는, 사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 상기 동종 가상 플랫폼과 대응하는 바이너리를 상기 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달할 수 있다.The hypervisor management tool requests and receives a binary corresponding to the homogeneous virtual platform from the virtual platform binary uploader when a user intends to execute a homogeneous command operating system through a homogeneous virtual platform, and transmits the received binary to the virtual platform binary uploader. It can be delivered to the hypervisor.

상기 하이퍼바이저는, 상기 자원 관리 도구를 통해 동종 가상 플랫폼에 자원을 할당하여 더미 시뮬레이터를 생성하고, 동종 가상 플랫폼을 구성하여 상기 더미 시뮬레이터에 탑재시킬 수 있다.The hypervisor may create a dummy simulator by allocating resources to the homogenous virtual platform through the resource management tool, configure the homogeneous virtual platform, and mount the virtual platform on the dummy simulator.

개시되는 일 실시예에 따른 하이퍼바이저 동작 방법은, 하이퍼바이저 및 하이퍼바이저 관리도구를 구비하고 호스트 컴퓨터에 설치되는 하이퍼바이저 시스템에서 수행되는 방법으로서, 상기 하이퍼바이저가 상기 호스트 컴퓨터에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키는 단계를 포함하고, 상기 동종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제이고, 상기 이종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제이다.A method of operating a hypervisor according to an embodiment disclosed herein is a method performed in a hypervisor system equipped with a hypervisor and a hypervisor management tool and installed in a host computer, wherein the hypervisor includes a homogeneous command operating system and Executing one or more of heterogeneous command operating systems, wherein the homogeneous command operating system is an operating system having the same command system as that of the host computer, wherein the heterogeneous command operating system includes commands of the host computer. An operating system that has a command system different from the system.

상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저 관리도구에서, 상기 하이퍼바이저의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 상기 호스트 컴퓨터의 화면에 표시하는 단계; 및 상기 하이퍼바이저 관리도구에서, 상기 가상 플랫폼 지원 리스트에서 선택되는 가상 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 상기 확인된 이종 가상 플랫폼에 대한 라이브러리를 추출하여 상기 하이퍼바이저로 전달하는 단계를 포함할 수 있다.The executing of the heterogeneous command operating system may include displaying a pre-stored virtual platform support list on the screen of the host computer according to a call of the hypervisor by the hypervisor management tool; and in the hypervisor management tool, if the virtual platform selected from the virtual platform support list is a heterogeneous virtual platform, the corresponding heterogeneous virtual platform is identified, and a library for the identified heterogeneous virtual platform is extracted and transmitted to the hypervisor. steps may be included.

상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저 관리도구에서, 상기 가상 플랫폼 지원 리스트에서 선택되는 이종 가상 플랫폼과 대응하는 바이너리를 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는 단계를 더 포함할 수 있다.The step of executing the heterogeneous command operating system may include requesting and receiving a binary corresponding to a heterogeneous virtual platform selected from the virtual platform support list from a virtual platform binary uploader in the hypervisor management tool, and receiving the received binary. The step of transmitting to the hypervisor may be further included.

상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저에서, 상기 이종 가상 플랫폼에 대한 라이브러리의 설정 값에 따라 이종 가상 플랫폼에 자원을 할당하여 시뮬레이터를 생성하는 단계; 및 상기 하이퍼바이저에서, 상기 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼을 구성하여 상기 시뮬레이터에 탑재하는 단계를 더 포함할 수 있다.The executing of the heterogeneous command operating system may include generating a simulator by allocating resources to the heterogeneous virtual platform according to a set value of a library for the heterogeneous virtual platform in the hypervisor; and constructing, in the hypervisor, a heterogeneous virtual platform based on a library for the heterogeneous virtual platform and loading the heterogeneous virtual platform into the simulator.

상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 이종 가상 플랫폼에서, 상기 수신한 바이너리를 이종 명령어 운영 체제에 대응하는 명령어로 변환한 후 상기 이종 명령어 운영 체제로 전달하여 상기 이종 명령어 운영 체제를 실행시키는 단계를 더 포함할 수 있다. The step of executing the heterogeneous command operating system may include converting the received binary into a command corresponding to the heterogeneous command operating system in the heterogeneous virtual platform and then transferring the binary command to the heterogeneous command operating system to execute the heterogeneous command operating system. Further steps may be included.

상기 이종 명령어 운영 체제를 실행시키는 단계는, 상기 시뮬레이터에서, 상기 이종 명령어 운영 체제가 실행 종료되는 경우, 상기 이종 가상 플랫폼을 통해 상기 이종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득하여 상기 하이퍼바이저 관리도구로 전달하는 단계; 및 상기 하이퍼바이저 관리도구에서, 상기 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환하여 저장하는 단계를 더 포함할 수 있다.The step of executing the heterogeneous instruction operating system may include obtaining execution-related information executed in the heterogeneous instruction operating system through the heterogeneous virtual platform when the heterogeneous instruction operating system is executed in the simulator and managing the hypervisor. delivery to the tool; and converting the execution-related information into a predetermined binary format and storing the execution-related information in the hypervisor management tool.

상기 동종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저 관리도구에서, 사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 상기 동종 가상 플랫폼과 대응하는 바이너리를 상기 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는 단계를 포함할 수 있다.The step of executing the homogeneous command operating system may include, in the hypervisor management tool, when a user intends to execute the homogeneous command operating system through a homogeneous virtual platform, a binary corresponding to the homogeneous virtual platform is uploaded to the virtual platform binary uploader. Requesting and receiving the binary, and transmitting the received binary to the hypervisor.

상기 동종 명령어 운영 체제를 실행시키는 단계는, 상기 하이퍼바이저에서, 동종 가상 플랫폼에 자원을 할당하여 더미 시뮬레이터를 생성하는 단계; 및 동종 가상 플랫폼을 구성하여 상기 더미 시뮬레이터에 탑재시키는 단계를 더 포함할 수 있다.The executing of the homogeneous command operating system may include generating a dummy simulator by allocating resources to a homogeneous virtual platform in the hypervisor; and constructing a virtual platform of the same kind and mounting the virtual platform on the dummy simulator.

개시되는 실시예에 의하면, 하이퍼바이저 시스템을 통해 동종 명령어 운영 체제뿐만 아니라 이종 명령어 운영 체제도 실행시킬 수 있으며, 그로 인해 ICT 융합 인프라와 같이 다양한 이기종 프로세서들이 실행되는 환경에 하이퍼바이저 서비스를 제공할 수 있게 된다. 그리고, ICT 융합 환경에서 다양한 악성 코드 침입에 대응하기 위한 함정을 배포하고 공격을 유도하여 다양한 공격 유형을 탐지하고 대응할 수 있게 된다. According to the disclosed embodiment, not only homogeneous command operating systems but also heterogeneous command operating systems can be executed through a hypervisor system, thereby providing hypervisor services to an environment in which various heterogeneous processors are executed, such as an ICT convergence infrastructure. there will be In addition, it is possible to detect and respond to various attack types by distributing traps and inducing attacks to respond to various malicious code intrusions in the ICT convergence environment.

도 1은 본 발명의 일 실시예에 따른 하이퍼바이저 시스템의 구성을 나타낸 도면
도 2는 본 발명의 일 실시예에 따른 하이퍼바이저 동작 방법을 나타낸 흐름도
도 3은 개시되는 일 실시예에 따른 이종 가상 플랫폼에서 명령어 변환을 위한 구성을 개략적으로 나타낸 도면
도 4는 본 발명의 다른 실시예에 따른 하이퍼바이저 동작 방법을 나타낸 흐름도
도 5는 본 발명의 일 실시예에 따른 시뮬레이터 및 이종 가상 플랫폼과 더미 시뮬레이터 및 동종 가상 플랫폼을 개략적으로 나타낸 도면
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
1 is a diagram showing the configuration of a hypervisor system according to an embodiment of the present invention;
2 is a flowchart illustrating a method of operating a hypervisor according to an embodiment of the present invention.
3 is a diagram schematically illustrating a configuration for command conversion in a heterogeneous virtual platform according to an embodiment disclosed herein;
4 is a flowchart illustrating a method of operating a hypervisor according to another embodiment of the present invention.
5 schematically shows a simulator and a heterogeneous virtual platform, a dummy simulator, and a homogeneous virtual platform according to an embodiment of the present invention.
6 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in example embodiments.

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The detailed descriptions that follow are provided to provide a comprehensive understanding of the methods, devices and/or systems described herein. However, this is only an example and the present invention is not limited thereto.

본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.In describing the embodiments of the present invention, if it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to the intention or custom of a user or operator. Therefore, the definition should be made based on the contents throughout this specification. Terminology used in the detailed description is only for describing the embodiments of the present invention and should in no way be limiting. Unless expressly used otherwise, singular forms of expression include plural forms. In this description, expressions such as "comprising" or "comprising" are intended to indicate any characteristic, number, step, operation, element, portion or combination thereof, one or more other than those described. It should not be construed to exclude the existence or possibility of any other feature, number, step, operation, element, part or combination thereof.

또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.Also, terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention.

도 1은 본 발명의 일 실시예에 따른 하이퍼바이저 시스템의 구성을 나타낸 도면이다. 설명의 편의상, 도 1에서는 하이퍼바이저 시스템(100)에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제를 실행시키기 위한 구성에 대해서도 도시하였다. 1 is a diagram showing the configuration of a hypervisor system according to an embodiment of the present invention. For convenience of description, FIG. 1 also illustrates a configuration for executing a homogeneous instruction operating system and a heterogeneous instruction operating system in the hypervisor system 100 .

도 1을 참조하면, 하이퍼바이저 시스템(100)은 하이퍼바이저(110), 하이퍼바이저 관리도구(120), 가상 플랫폼 바이너리 업로더(130), 가상 플랫폼 라이브러리 추가도구(140), 및 실행 바이너리 DB(150)를 포함할 수 있다. Referring to FIG. 1, the hypervisor system 100 includes a hypervisor 110, a hypervisor management tool 120, a virtual platform binary uploader 130, a virtual platform library addition tool 140, and an executable binary DB ( 150) may be included.

하이퍼바이저 시스템(100)은 호스트 컴퓨터(50)에 설치될 수 있다. 예시적인 실시예에서, 호스트 컴퓨터(100)는 X86 기반의 하드웨어(200)를 갖는 컴퓨팅 장치일 수 있다. X86 기반의 하드웨어(200)는 X86 멀티 프로세서를 포함할 수 있다. The hypervisor system 100 may be installed in the host computer 50 . In an exemplary embodiment, host computer 100 may be a computing device having X86-based hardware 200 . The X86-based hardware 200 may include an X86 multi-processor.

예시적인 실시예에서, 호스트 컴퓨터(50)는 다양한 이기종 프로세서들을 갖는 복수 개의 디바이스들과 통신 가능하게 연결될 수 있다. 호스트 컴퓨터(50)는 클라우드 서버 컴퓨팅 장치일 수 있으며, 다양한 이기종 프로세서들을 갖는 복수 개의 디바이스들과 통신하여 이들을 제어하는 역할을 할 수 있다. In an exemplary embodiment, the host computer 50 may be communicatively coupled with a plurality of devices having various heterogeneous processors. The host computer 50 may be a cloud server computing device, and may communicate with and control a plurality of devices having various heterogeneous processors.

예를 들어, 호스트 컴퓨터(50)는 빌딩에 설치되는 복수 개의 센서들과 통신 가능하게 연결되고, 복수 개의 센서들로부터 수집되는 데이터를 기반으로 빌딩 전력 제어를 수행할 수 있으며, 그 이외에도 상하수도 제어, 철도 신호 제어, 오수 펌프 제어 등을 수행할 수 있다. 호스트 컴퓨터(50)는 하이퍼바이저 시스템(100)을 구비함으로써, 다양한 종류의 프로세서들을 갖는 복수 개의 디바이스들을 제어할 수 있게 된다.For example, the host computer 50 is communicatively connected to a plurality of sensors installed in a building, and can perform building power control based on data collected from the plurality of sensors, in addition to controlling water and sewage, It can perform railroad signal control, sewage pump control, etc. The host computer 50 can control a plurality of devices having various types of processors by including the hypervisor system 100 .

하이퍼바이저(110)는 호스트 컴퓨터(50)에서 동종 명령어 운영 체제를 실행시킬 수도 있고, 하나 이상의 이종 명령어 운영 체제를 실행시킬 수도 있다. 또한, 하이퍼바이저(110)는 동종 명령어 운영 체제 및 이종 명령어 운영 체제를 동시에 실행시킬 수도 있다. The hypervisor 110 may execute a homogeneous command operating system or one or more heterogeneous command operating systems in the host computer 50 . Also, the hypervisor 110 may simultaneously execute a homogeneous instruction operating system and a heterogeneous instruction operating system.

여기서, 동종 명령어 운영 체제는 호스트 컴퓨터(50)의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제를 의미할 수 있다. 즉, 호스트 컴퓨터(50)가 X86 기반의 하드웨어(200)를 가지는 바, 동종 명령어 운영 체제는 X86 기반의 명령어 체계를 갖는 운영 체제를 의미한다. 예를 들어, 동종 명령어 운영 체제는 윈도우(Windows)와 리눅스(Linux)가 있을 수 있다. Here, the homogeneous command operating system may mean an operating system having the same command system as that of the host computer 50 . That is, since the host computer 50 has the X86-based hardware 200, the homogeneous command operating system means an operating system having an X86-based command system. For example, homogeneous command operating systems may include Windows and Linux.

이종 명령어 운영 체제는 호스트 컴퓨터(50)의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제를 의미할 수 있다. 즉, 호스트 컴퓨터(50)가 X86 기반의 하드웨어(200)를 가지는 바, 이종 명령어 운영 체제는 X86 기반의 명령어 체계가 아닌 다른 명령어 체계를 갖는 운영 체제를 의미한다. 예를 들어, 이종 명령어 운영 체제는 ARM, PowerPC, MIPS와 같이 X86과는 다른 종류의 프로세서(즉, 다른 명령어 체계를 갖는) 기반의 운영 체제일 수 있다. The heterogeneous command operating system may refer to an operating system having a command system different from that of the host computer 50 . That is, since the host computer 50 has the X86-based hardware 200, the heterogeneous command operating system means an operating system having a command system other than the X86-based command system. For example, the heterogeneous instruction operating system may be an operating system based on a processor (ie, having a different instruction system) different from X86, such as ARM, PowerPC, and MIPS.

하이퍼바이저(110)는 하이퍼바이저 관리도구(120)에서 업로드 되는 바이너리에 따라 시뮬레이터(111) 및 더미시뮬레이터(113) 중 하나 이상을 생성할 수 있다. 하이퍼바이저(110)는 이종 명령어 운영 체제를 실행시키는 경우 시뮬레이터(111)를 생성하고, 이종 가상 플랫폼(112)을 구성하여 시뮬레이터(111)에 탑재시킬 수 있다. 하이퍼바이저(110)는 동종 명령어 운영 체제를 실행시키는 경우 더미 시뮬레이터(113)를 생성하고, 동종 가상 플랫폼(114)을 구성하여 더미 시뮬레이터(113)에 탑재시킬 수 있다. 이에 대한 자세한 설명은 후술하기로 한다.The hypervisor 110 may generate one or more of the simulator 111 and the dummy simulator 113 according to the binary uploaded from the hypervisor management tool 120 . The hypervisor 110 may create a simulator 111 when a heterogeneous command operating system is executed, configure a heterogeneous virtual platform 112, and mount the heterogeneous virtual platform 112 on the simulator 111. The hypervisor 110 may generate a dummy simulator 113 when executing a homogeneous command operating system, configure a homogeneous virtual platform 114, and mount the dummy simulator 113 thereon. A detailed description of this will be described later.

하이퍼바이저(110)는 가상 플랫폼 라이브러리 DB(115) 및 자원 관리 도구(117)를 포함할 수 있다. 가상 플랫폼 라이브러리 DB(115)에는 각 이종 가상 플랫폼에 대한 가상 프로세서(예를 들어, 가상 ARM 프로세서, 가상 PowerPC 프로세서, 가상 RISCV 프로세서 등) 및 가상 주변 장치(예를 들어, 가상 메모리, 가상 시스템 주변 장치, 가상 스토리지, 가상 통신 장치 등)에 대한 라이브러리들이 저장될 수 있다. The hypervisor 110 may include a virtual platform library DB 115 and a resource management tool 117 . The virtual platform library DB 115 includes virtual processors (eg, virtual ARM processors, virtual PowerPC processors, virtual RISCV processors, etc.) and virtual peripherals (eg, virtual memory, virtual system peripherals, etc.) for each heterogeneous virtual platform. , virtual storage, virtual communication device, etc.) may be stored.

자원 관리 도구(117)는 X86 기반의 하드웨어(200)를 모니터링 하여 하이퍼바이저(110)에 자원을 할당할 수 있다. 즉, 자원 관리 도구(117)는 하이퍼바이저(110)에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키는 경우, 그에 대응하는 자원을 하이퍼바이저(110)에 할당할 수 있다. The resource management tool 117 may allocate resources to the hypervisor 110 by monitoring the X86-based hardware 200 . That is, when at least one of a homogeneous command operating system and a heterogeneous command operating system is executed in the hypervisor 110 , the resource management tool 117 may allocate a resource corresponding thereto to the hypervisor 110 .

하이퍼바이저 관리도구(120)는 하이퍼바이저(110)의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 호스트 컴퓨터(50)의 화면에 표시할 수 있다.The hypervisor management tool 120 may display a pre-stored virtual platform support list on the screen of the host computer 50 according to a call from the hypervisor 110 .

여기서, 가상 플랫폼은 동종 명령어 운영 체제를 실행시키기 위한 가상 플랫폼(이하, 동종 가상 플랫폼으로 지칭할 수 있음)일 수도 있고, 이종 명령어 운영 체제를 실행시키기 위한 가상 플랫폼(이하, 이종 가상 플랫폼으로 지칭할 수 있음)일 수도 있다. 각 가상 플랫폼은 주변 장치, 메모리, 버스, CPU 등으로 구성된 가상의 임베디드 시스템일 수 있다. Here, the virtual platform may be a virtual platform for executing a homogeneous instruction operating system (hereinafter referred to as a homogeneous virtual platform), or a virtual platform for executing a heterogeneous instruction operating system (hereinafter referred to as a heterogeneous virtual platform). may be). Each virtual platform can be a virtual embedded system consisting of peripherals, memory, buses, CPUs, etc.

예를 들어, 가상 플랫폼 지원 리스트는 가상 플랫폼 라이브러리 DB(115)에 저장되어 있을 수 있다. 하이퍼바이저 관리도구(120)는 가상 플랫폼 라이브러리 DB(115)에서 가상 플랫폼 지원 리스트를 추출하여 화면에 표시할 수 있다. For example, a virtual platform support list may be stored in the virtual platform library DB 115 . The hypervisor management tool 120 may extract a virtual platform support list from the virtual platform library DB 115 and display it on the screen.

하이퍼바이저 관리도구(120)는 가상 플랫폼 지원 리스트에서 사용자가 선택한 가장 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 해당 이종 가상 플랫폼에 대한 라이브러리를 가상 플랫폼 라이브러리 DB(115)에서 추출하여 하이퍼바이저(110)로 전달할 수 있다. When the virtual platform selected by the user from the virtual platform support list is a heterogeneous virtual platform, the hypervisor management tool 120 checks the heterogeneous virtual platform and extracts a library for the heterogeneous virtual platform from the virtual platform library DB 115. and can be transmitted to the hypervisor 110.

또한, 하이퍼바이저 관리도구(120)는 가상 플랫폼 지원 리스트에서 사용자가 선택한 가상 플랫폼과 대응하는 바이너리(즉, 가상 플랫폼에서 실행시키기 위한 바이너리)를 가상 플랫폼 바이너리 업로더(130)에 요청하여 수신하고 상기 바이너리를 하이퍼바이저(110)로 전달할 수 있다.In addition, the hypervisor management tool 120 requests the virtual platform binary uploader 130 to receive a binary corresponding to the virtual platform selected by the user from the virtual platform support list (ie, a binary to be executed in the virtual platform), and receives the above. The binary may be delivered to the hypervisor 110.

가상 플랫폼 바이너리 업로더(130)는 각 가상 플랫폼과 대응하는 바이너리들을 저장할 수 있으며, 하이퍼바이저 관리도구(120)의 요청에 따라 그에 대응하는 바이너리를 하이퍼바이저 관리도구(120)로 업로드할 수 있다. The virtual platform binary uploader 130 may store binaries corresponding to each virtual platform, and may upload binaries corresponding thereto to the hypervisor management tool 120 according to a request of the hypervisor management tool 120 .

가상 플랫폼 바이너리 업로더(130)에는 타겟 정보, 타겟 바이너리, 및 최종 실행 정보의 파일들이 하나의 세트로 저장될 수 있다. 타겟 정보는 가상 플랫폼에 대한 정보로서, 예를 들어 가상 플랫폼의 구성 정보, 가상 프로세서의 아키텍처 등이 포함될 수 있다. 타겟 바이너리는 가상 플랫폼에서 실행시키기 위한 바이너리이다. 최종 실행 정보는 최종 실행 상태 복구를 위한 정보로서, 가상 플랫폼에서 메모리 최신 상태, CPU Register, Program Counter, Stack 정보 등을 포함할 수 있다. Files of target information, target binary, and final execution information may be stored as a set in the virtual platform binary uploader 130 . The target information is information about the virtual platform, and may include, for example, configuration information of the virtual platform and architecture of the virtual processor. A target binary is a binary to run on a virtual platform. The final execution information is information for restoring the final execution state, and may include the latest memory state, CPU register, program counter, and stack information in the virtual platform.

가상 플랫폼 라이브러리 추가도구(140)는 하이퍼바이저(110)에서 지원 가능한 이종 가상 플랫폼의 종류가 추가될 수 있도록 이종 가상 플랫폼 라이브러리를 추가하는 역할을 할 수 있다. 가상 플랫폼 라이브러리 추가도구(140)는 신규 추가되는 이종 가상 플랫폼에 대한 라이브러리를 가상 플랫폼 라이브러리 DB(115)에 업로드 할 수 있다. The virtual platform library addition tool 140 may serve to add a heterogeneous virtual platform library so that types of heterogeneous virtual platforms supported by the hypervisor 110 may be added. The virtual platform library addition tool 140 may upload a library for a newly added heterogeneous virtual platform to the virtual platform library DB 115 .

실행 바이너리 DB(150)는 하이버파이저(100)에서 실행되는 동종 명령어 운영 체제 및 이종 명령어 운영 체제에서 실행된 실행 관련 정보가 저장될 수 있다. 여기서, 실행 관련 정보는 동종 명령어 운영 체제 및 이종 명령어 운영 체제에서 실행된 실행 정보(예를 들어, 실행 코드, 레지스터, 메모리 등), 실행 바이너리, 및 하드웨어 설정 값 등을 포함할 수 있다. The execution binary DB 150 may store execution-related information executed in a homogeneous instruction operating system and a heterogeneous instruction operating system executed in the hypervisor 100 . Here, the execution-related information may include execution information (eg, execution codes, registers, memory, etc.) executed in the homogeneous instruction operating system and the heterogeneous instruction operating system, execution binaries, and hardware setting values.

개시되는 실시예에 의하면, 하이퍼바이저 시스템(100)을 통해 동종 명령어 운영 체제뿐만 아니라 이종 명령어 운영 체제도 실행시킬 수 있으며, 그로 인해 ICT(Information and Communications Technology) 융합 인프라와 같이 다양한 이기종 프로세서들이 실행되는 환경에 하이퍼바이저 서비스를 제공할 수 있게 된다. 그리고, ICT 융합 환경에서 다양한 악성 코드 침입에 대응하기 위한 함정을 배포하고 공격을 유도하여 다양한 공격 유형을 탐지하고 대응할 수 있게 된다. According to the disclosed embodiment, not only a homogeneous command operating system but also a heterogeneous command operating system can be executed through the hypervisor system 100, whereby various heterogeneous processors such as ICT (Information and Communications Technology) convergence infrastructure are executed. You will be able to provide hypervisor services to your environment. In addition, it is possible to detect and respond to various attack types by distributing traps and inducing attacks to respond to various malicious code intrusions in the ICT convergence environment.

도 2는 본 발명의 일 실시예에 따른 하이퍼바이저 동작 방법을 나타낸 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.2 is a flowchart illustrating a method of operating a hypervisor according to an embodiment of the present invention. In the illustrated flowchart, the method is divided into a plurality of steps, but at least some of the steps are performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, or not shown. One or more steps may be added and performed.

여기서는, 하이퍼바이저 시스템(100)에서 이종 명령어 운영 체제를 실행시키기 위한 동작 방법을 일 예로 설명하기로 한다. 이를 위해, 하이퍼바이저 시스템(100)은 시뮬레이터(111)를 생성하고, 이종 가상 플랫폼(112)을 구성하여 시뮬레이터(111) 상에 탑재하게 된다. Here, an operating method for executing a heterogeneous command operating system in the hypervisor system 100 will be described as an example. To this end, the hypervisor system 100 creates a simulator 111, configures a heterogeneous virtual platform 112, and mounts it on the simulator 111.

도 2를 참조하면, 호스트 컴퓨터(50)에서 사용자의 명령에 의해 하이퍼바이저(110)가 실행되는 경우, 하이퍼바이저(110)는 하이퍼바이저 관리도구(120)를 호출할 수 있다(S 101). 이때, 하이퍼바이저(110)는 쉘 화면을 통해 명령어 방식으로 하이퍼바이저 관리도구(120)를 호출하거나 GUI(Graphic User Interface) 프로그램을 통해 하이퍼바이저 관리도구(120)를 호출할 수 있다. Referring to FIG. 2 , when the hypervisor 110 is executed by a user's command in the host computer 50, the hypervisor 110 may call the hypervisor management tool 120 (S 101). At this time, the hypervisor 110 may call the hypervisor management tool 120 using a command method through a shell screen or call the hypervisor management tool 120 through a GUI (Graphic User Interface) program.

다음으로, 하이퍼바이저 관리도구(120)는 기 저장된 가상 플랫폼 지원 리스트를 호스트 컴퓨터(50)의 화면에 표시할 수 있다(S 103). 즉, 하이퍼바이저 관리도구(120)는 호스트 컴퓨터(50)에서 지원 가능한 가상 플랫폼의 리스트를 화면에 표시할 수 있다. Next, the hypervisor management tool 120 may display the previously stored virtual platform support list on the screen of the host computer 50 (S103). That is, the hypervisor management tool 120 may display a list of virtual platforms supported by the host computer 50 on the screen.

예를 들어, 가상 플랫폼 지원 리스트는 가상 플랫폼 라이브러리 DB(115)에 저장되어 있을 수 있다. 하이퍼바이저 관리도구(120)는 가상 플랫폼 라이브러리 DB(115)에서 가상 플랫폼 지원 리스트를 추출하여 화면에 표시할 수 있다. For example, a virtual platform support list may be stored in the virtual platform library DB 115 . The hypervisor management tool 120 may extract a virtual platform support list from the virtual platform library DB 115 and display it on the screen.

다음으로, 하이퍼바이저 관리도구(120)는 가상 플랫폼 지원 리스트에서 사용자가 선택하는 가상 플랫폼과 관련된 명령어 운영 체제를 확인할 수 있다(S 105). Next, the hypervisor management tool 120 may check the command operating system related to the virtual platform selected by the user from the virtual platform support list (S105).

즉, 하이퍼바이저 관리도구(120)는 가상 플랫폼 지원 리스트에서 사용자가 선택하는 가상 플랫폼이 동종 명령어 운영 체제를 실행시키기 위한 것인지(동종 가상 플랫폼인지) 아니면 이종 명령어 운영 체제를 실행시키기 위한 것인지(이종 가상 플랫폼인지) 여부를 확인할 수 있다. That is, the hypervisor management tool 120 determines whether the virtual platform selected by the user from the virtual platform support list is for executing a homogeneous instruction operating system (homogeneous virtual platform) or for executing a heterogeneous instruction operating system (heterogeneous virtual platform). platform).

단계 S 105에서, 사용자가 선택한 가상 플랫폼이 이종 가상 플랫폼인 경우, 하이퍼바이저 관리도구(120)는 해당 이종 가상 플랫폼을 확인하고, 해당 이종 가상 플랫폼에 대한 라이브러리를 가상 플랫폼 라이브러리 DB(115)에서 추출하여 하이퍼바이저(110)로 전달할 수 있다(S 107). 여기서, 라이브러리는 이종 가상 플랫폼을 구성하기 위한 메모리, 프로세서, 버스, 주변 장치 등의 설정 값을 포함하는 파일일 수 있다. In step S105, if the virtual platform selected by the user is a heterogeneous virtual platform, the hypervisor management tool 120 checks the heterogeneous virtual platform and extracts a library for the heterogeneous virtual platform from the virtual platform library DB 115. and can be transmitted to the hypervisor 110 (S 107). Here, the library may be a file including setting values of a memory, processor, bus, peripheral device, etc. for constituting a heterogeneous virtual platform.

다음으로, 하이퍼바이저 관리도구(120)는 사용자가 선택한 이종 가상 플랫폼과 대응하는 바이너리(즉, 이종 가상 플랫폼에서 실행시키기 위한 바이너리)를 가상 플랫폼 바이너리 업로더(130)에 요청하여 수신하고 상기 바이너리를 하이퍼바이저(110)로 전달할 수 있다(S 109). Next, the hypervisor management tool 120 requests and receives a binary corresponding to the heterogeneous virtual platform selected by the user (ie, a binary to be executed in the heterogeneous virtual platform) from the virtual platform binary uploader 130 and receives the binary. It can be delivered to the hypervisor 110 (S 109).

즉, 가상 플랫폼 바이너리 업로더(130)는 각 가상 플랫폼과 대응하는 바이너리들을 저장할 수 있으며, 하이퍼바이저 관리도구(120)의 요청에 따라 그에 대응하는 바이너리를 하이퍼바이저 관리도구(120)로 업로드할 수 있다. That is, the virtual platform binary uploader 130 may store binaries corresponding to each virtual platform, and may upload binaries corresponding thereto to the hypervisor management tool 120 upon request from the hypervisor management tool 120. have.

다음으로, 하이퍼바이저(110)는 이종 가상 플랫폼에 대한 라이브러리 및 바이너리를 각각 수신하는 경우, 자원 관리 도구(117)를 통해 이종 가상 플랫폼에 자원을 할당하여 해당 이종 가상 플랫폼을 위한 시뮬레이터(111)를 생성할 수 있다(S 111). Next, when the hypervisor 110 receives the libraries and binaries for the heterogeneous virtual platform, the simulator 111 for the heterogeneous virtual platform is operated by allocating resources to the heterogeneous virtual platform through the resource management tool 117. It can be created (S 111).

여기서, 시뮬레이터(111)는 이종 가상 플랫폼(112)과 하이퍼바이저(110) 및 하이퍼바이저 관리도구(120) 사이에 인터페이스 역할을 하면서 후술하는 이종 가상 플랫폼(112)을 실행시키기 위한 계층일 수 있다. 그리고, 자원 관리 도구(117)는 X86 기반의 하드웨어(200)를 모니터링 하여 이종 가상 플랫폼(112)의 라이브러리 설정 값(예를 들어, 메모리, 저장 공간, CPU의 설정 등)에 따라 그에 대응하는 자원을 이종 가상 플랫폼에 할당할 수 있다. Here, the simulator 111 may be a layer for executing the heterogeneous virtual platform 112 described below while serving as an interface between the heterogeneous virtual platform 112, the hypervisor 110, and the hypervisor management tool 120. In addition, the resource management tool 117 monitors the X86-based hardware 200 and provides corresponding resources according to library setting values (eg, memory, storage space, CPU setting, etc.) of the heterogeneous virtual platform 112. can be assigned to heterogeneous virtual platforms.

다음으로, 하이퍼바이저(110)는 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼(112)을 구성하여 시뮬레이터(111) 상에 탑재시킬 수 있다(S 113). Next, the hypervisor 110 may configure the heterogeneous virtual platform 112 based on the library for the heterogeneous virtual platform and mount it on the simulator 111 (S 113).

이종 가상 플랫폼(112)은 가상 플랫폼 라이브러리 DB(115)에서 추출한 가상 프로세서 및 가상 주변 장치들의 라이브러리를 통해 구성될 수 있다. 이종 가상 플랫폼(112)은 호스트 컴퓨터(100)의 ISA(Instructure Set Architecture)와는 다른 ISA의 소프트웨어를 구동하기 위해 가상 프로세서를 포함하게 된다. The heterogeneous virtual platform 112 may be configured through a library of virtual processors and virtual peripheral devices extracted from the virtual platform library DB 115 . The heterogeneous virtual platform 112 includes a virtual processor to drive software of an ISA (Instructure Set Architecture) different from that of the host computer 100 .

다음으로, 이종 가상 플랫폼(112)은 상기 업로드 된 바이너리를 이종 명령어 운영 체제(A)에 대응하는 명령어로 변환한 후 이종 명령어 운영 체제(A)로 전달하여 이종 명령어 운영 체제(A)를 실행시킬 수 있다(S 115). Next, the heterogeneous virtual platform 112 converts the uploaded binary into a command corresponding to the heterogeneous command operating system (A) and transfers it to the heterogeneous command operating system (A) to execute the heterogeneous command operating system (A). It can (S 115).

도 3은 개시되는 일 실시예에 따른 이종 가상 플랫폼에서 명령어 변환을 위한 구성을 개략적으로 나타낸 도면이다. 여기서, 이종 가상 플랫폼(112)은 가상 ARM 프로세서(112a)를 구비하는 것으로 한다. 가상 ARM 프로세서(112a)는 명령어 해석기(112a-1) 및 명령어 수행기(112a-2)를 포함할 수 있다. 이 경우, 업로드 된 바이너리는 ARM 바이너리 일 수 있다. 3 is a diagram schematically illustrating a configuration for command conversion in a heterogeneous virtual platform according to an embodiment disclosed herein. Here, it is assumed that the heterogeneous virtual platform 112 includes a virtual ARM processor 112a. The virtual ARM processor 112a may include an instruction interpreter 112a-1 and an instruction executor 112a-2. In this case, the uploaded binary may be an ARM binary.

업로드 된 바이너리는 실행 코드가 들어있는 코드 영역이 있고, 이 코드 영역에는 일련의 명령어가 들어 있게 된다. 가상 ARM 프로세서(112a)는 업로드 된 바이너리의 코드 영역에 포함된 각 명령어를 실행 흐름에 따라 순차적으로 가져와 명령어 해석기(112a-1)에서 각 명령어가 어떤 명령어인지를 식별하게 된다. 그리고, 가상 ARM 프로세서(112a)는 명령어 수행기(112a-2)에서 해당 명령어의 기능을 에뮬레이션(emulation) 하게 된다. The uploaded binary has a code area containing executable code, and this code area contains a series of instructions. The virtual ARM processor 112a sequentially imports each instruction included in the code region of the uploaded binary according to the execution flow, and identifies which instruction each instruction is in the instruction interpreter 112a-1. And, the virtual ARM processor 112a emulates the function of the corresponding command in the command executor 112a-2.

예를 들어, ARM 바이너리로부터 32비트 명령어를 읽어왔을 때 명령어 해석기(112a-1)에서 해당 명령어를 add(더하기) 명령어로 식별하는 경우, 명령어 수행기(112a-2)에서 명령어의 오퍼런드(operand) 형식에 맞추어 더하기 연산을 수행하고, 가상 ARM 프로세서(112a)의 레지스터에 결과 값을 저장하게 된다.For example, when a 32-bit instruction is read from an ARM binary and the instruction interpreter 112a-1 identifies the instruction as an add instruction, the instruction executor 112a-2 recognizes the operand of the instruction ) form, the addition operation is performed, and the resulting value is stored in the register of the virtual ARM processor 112a.

다음으로, 이종 명령어 운영 체제(A)가 실행 종료되는 경우, 시뮬레이터(111)는 이종 가상 플랫폼(112)을 통해 이종 명령어 운영 체제(A)에서 실행된 실행 관련 정보를 획득할 수 있다(S 117). 여기서, 실행 관련 정보는 이종 명령어 운영 체제(A)에서 실행된 실행 정보(예를 들어, 실행 코드, 레지스터, 메모리 등), 실행 바이너리, 및 하드웨어 설정 값 등을 포함할 수 있다. Next, when the heterogeneous instruction operating system (A) is executed, the simulator 111 may obtain execution-related information executed in the heterogeneous instruction operating system (A) through the heterogeneous virtual platform 112 (S 117 ). Here, the execution-related information may include execution information (eg, execution codes, registers, memory, etc.) executed in the heterogeneous instruction operating system (A), execution binaries, and hardware setting values.

다음으로, 시뮬레이터(111)는 이종 명령어 운영 체제(A)에서 실행된 실행 관련 정보를 하이퍼바이저 관리도구(120)로 전달할 수 있다(S 119). Next, the simulator 111 may transfer execution-related information executed in the heterogeneous command operating system A to the hypervisor management tool 120 (S 119).

다음으로, 하이퍼바이저 관리도구(120)는 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환한 후 실행 바이너리 DB(150)에 저장할 수 있다(S 121). Next, the hypervisor management tool 120 may convert the execution-related information into a preset binary format and store it in the execution binary DB 150 (S 121).

다음으로, 하이퍼바이저(110)는 시뮬레이터(111) 및 이종 가상 플랫폼(112)을 순차적으로 종료시키고, 이종 가상 플랫폼(112)에 할당된 자원을 회수할 수 있다(S 123). Next, the hypervisor 110 may sequentially terminate the simulator 111 and the heterogeneous virtual platform 112 and recover resources allocated to the heterogeneous virtual platform 112 (S 123).

도 4는 본 발명의 다른 실시예에 따른 하이퍼바이저 동작 방법을 나타낸 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.4 is a flowchart illustrating a method of operating a hypervisor according to another embodiment of the present invention. In the illustrated flowchart, the method is divided into a plurality of steps, but at least some of the steps are performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, or not shown. One or more steps may be added and performed.

여기서는, 하이퍼바이저 시스템(100)에서 동종 명령어 운영 체제를 실행시키기 위한 동작 방법을 일 예로 설명하기로 한다. 이를 위해, 하이퍼바이저 시스템(100)은 더미 시뮬레이터(113)를 생성하고, 동종 가상 플랫폼(114)을 구성하여 더미 시뮬레이터(113) 상에 탑재하게 된다. Here, an operating method for executing a homogeneous command operating system in the hypervisor system 100 will be described as an example. To this end, the hypervisor system 100 creates a dummy simulator 113, configures a homogeneous virtual platform 114, and mounts it on the dummy simulator 113.

도 4를 참조하면, 호스트 컴퓨터(50)에서 사용자의 명령에 의해 하이퍼바이저(110)가 실행되는 경우, 하이퍼바이저(110)는 하이퍼바이저 관리도구(120)를 호출할 수 있다(S 201).Referring to FIG. 4 , when the hypervisor 110 is executed by a user's command in the host computer 50, the hypervisor 110 may call the hypervisor management tool 120 (S201).

다음으로, 하이퍼바이저 관리도구(120)는 사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 동종 가상 플랫폼과 대응하는 바이너리(예를 들어, X86 바이너리)를 가상 플랫폼 바이너리 업로더(130)에 요청하여 수신하고 상기 바이너리를 하이퍼바이저(110)로 전달할 수 있다(S 203).Next, the hypervisor management tool 120, when the user tries to run the homogeneous command operating system through the homogeneous virtual platform, the virtual platform binary uploader (eg, X86 binary) corresponding to the homogeneous virtual platform 130), the binary may be transmitted to the hypervisor 110 (S203).

다음으로, 하이퍼바이저(110)는 자원 관리 도구(117)를 통해 동종 가상 플랫폼에 자원을 할당하여 동종 가상 플랫폼을 위한 더미 시뮬레이터(113)를 생성할 수 있다(S 205). Next, the hypervisor 110 may create a dummy simulator 113 for the homogeneous virtual platform by allocating resources to the homogeneous virtual platform through the resource management tool 117 (S205).

여기서, 더미 시뮬레이터(113)는 시뮬레이터(111)와 계층 구조를 맞추기 위한 것으로, 동종 가상 플랫폼(114)과 하이퍼바이저(110) 및 하이퍼바이저 관리도구(120) 사이에 인터페이스 역할을 할 수 있다. 즉, 더미 시뮬레이터(113)는 시뮬레이터(111)와 인터페이스를 동일하게 하기 위한 것일 수 있다. Here, the dummy simulator 113 is to match the simulator 111 and the hierarchical structure, and can serve as an interface between the homogeneous virtual platform 114, the hypervisor 110, and the hypervisor management tool 120. That is, the dummy simulator 113 may have the same interface as the simulator 111 .

다음으로, 하이퍼바이저(110)는 동종 가상 플랫폼(114)을 구성하여 더미 시뮬레이터(113) 상에 탑재시킬 수 있다(S 207). 여기서, 동종 가상 플랫폼(114)은 호스트 컴퓨터(50)와 동일한 명령어 체계를 가지므로 이종 가상 플랫폼을 구성할 때와는 달리 별도의 라이브러리 없이도 구성할 수 있다. 예를 들어, 동종 가상 플랫폼(114)은 Virtual Box를 이용한 가상 머신일 수 있으나, 이에 한정되는 것은 아니다. Next, the hypervisor 110 may configure the homogeneous virtual platform 114 and mount it on the dummy simulator 113 (S207). Here, since the homogeneous virtual platform 114 has the same command system as the host computer 50, it can be configured without a separate library, unlike when configuring a heterogeneous virtual platform. For example, the homogenous virtual platform 114 may be a virtual machine using Virtual Box, but is not limited thereto.

다음으로, 동종 가상 플랫폼(114)은 업로드 된 바이너리(예를 들어, X86 바이너리)를 동종 명령어 운영 체제로 전달하여 동종 명령어 운영 체제를 실행시킬 수 있다(S 209). 여기서, 업로드 된 바이너리는 호스트 컴퓨터(50)와 동일한 명령어 체계를 가지므로, 이종 명령어 운영 체제를 실행시킬 때와는 달리 명령어를 변환할 필요가 없다. Next, the homogeneous virtual platform 114 may execute the homogeneous command operating system by transferring the uploaded binary (eg, X86 binary) to the homogeneous command operating system (S209). Here, since the uploaded binary has the same command system as that of the host computer 50, there is no need to convert the command unlike when executing a heterogeneous command operating system.

다음으로, 동종 명령어 운영 체제가 실행 종료되는 경우, 더미 시뮬레이터(113)는 동종 가상 플랫폼(114)을 통해 동종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득할 수 있다(S 211). Next, when the execution of the homogeneous command operating system is terminated, the dummy simulator 113 may obtain execution-related information executed in the homogeneous command operating system through the homogeneous virtual platform 114 (S211).

다음으로, 더미 시뮬레이터(113)는 동종 명령어 운영 체제에서 실행된 실행 관련 정보를 하이퍼바이저 관리도구(120)로 전달할 수 있다(S 213). Next, the dummy simulator 113 may transfer execution-related information executed in the operating system of the same command to the hypervisor management tool 120 (S213).

다음으로, 하이퍼바이저 관리도구(120)는 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환한 후 실행 바이너리 DB(150)에 저장할 수 있다(S 215). Next, the hypervisor management tool 120 may convert execution-related information into a preset binary format and store it in the execution binary DB 150 (S215).

다음으로, 하이퍼바이저(110)는 더미 시뮬레이터(113) 및 동종 가상 플랫폼(114)을 순차적으로 종료시키고, 동종 가상 플랫폼(114)에 할당된 자원을 회수할 수 있다(S 217). Next, the hypervisor 110 may sequentially terminate the dummy simulator 113 and the homogeneous virtual platform 114 and recover resources allocated to the homogeneous virtual platform 114 (S217).

도 5는 본 발명의 일 실시예에 따른 시뮬레이터 및 이종 가상 플랫폼과 더미 시뮬레이터 및 동종 가상 플랫폼을 개략적으로 나타낸 도면이다. 여기서는, 5 is a diagram schematically illustrating a simulator and a heterogeneous virtual platform and a dummy simulator and a homogeneous virtual platform according to an embodiment of the present invention. Here,

도 5를 참조하면, 시뮬레이터(111)는 이종 가상 플랫폼(112)과 하이퍼바이저(110) 간 통신 인터페이스 역할을 할 수 있다. 이종 가상 플랫폼(112)에는 ARM 바이너리가 업로드 될 수 있다. 이종 가상 플랫폼(112)은 가상 프로세서 및 가상 주변 장치들의 라이브러리를 통해 구성될 수 있다. Referring to FIG. 5 , the simulator 111 may serve as a communication interface between the heterogeneous virtual platform 112 and the hypervisor 110 . An ARM binary may be uploaded to the heterogeneous virtual platform 112 . The heterogeneous virtual platform 112 may be configured through a library of virtual processors and virtual peripherals.

더미 시뮬레이터(113)는 동종 가상 플랫폼(114)과 하이퍼바이저(110) 간 통신 인터페이스 역할을 할 수 있다. 동종 가상 플랫폼(114)에는 X86 바이너리가 업로드될 수 있다. 동종 가상 플랫폼(114)은 Virtual Box Engine으로 구성될 수 있다. The dummy simulator 113 may serve as a communication interface between the homogenous virtual platform 114 and the hypervisor 110 . X86 binaries may be uploaded to the homogeneous virtual platform 114 . The homogeneous virtual platform 114 may consist of a Virtual Box Engine.

도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.6 is a block diagram illustrating and describing a computing environment 10 including a computing device suitable for use in example embodiments. In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components other than those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 하이퍼바이저 시스템(100)일 수 있다. The illustrated computing environment 10 includes a computing device 12 . In one embodiment, computing device 12 may be hypervisor system 100 .

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.Computing device 12 includes at least one processor 14 , a computer readable storage medium 16 and a communication bus 18 . Processor 14 may cause computing device 12 to operate according to the above-mentioned example embodiments. For example, processor 14 may execute one or more programs stored on computer readable storage medium 16 . The one or more programs may include one or more computer-executable instructions, which when executed by processor 14 are configured to cause computing device 12 to perform operations in accordance with an illustrative embodiment. It can be.

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. Program 20 stored on computer readable storage medium 16 includes a set of instructions executable by processor 14 . In one embodiment, computer readable storage medium 16 includes memory (volatile memory such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, other forms of storage media that can be accessed by computing device 12 and store desired information, or any suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communications bus 18 interconnects various other components of computing device 12, including processor 14 and computer-readable storage medium 16.

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide interfaces for one or more input/output devices 24 . An input/output interface 22 and a network communication interface 26 are connected to the communication bus 18 . Input/output device 24 may be coupled to other components of computing device 12 via input/output interface 22 . Exemplary input/output devices 24 include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touchscreen), a voice or sound input device, various types of sensor devices, and/or a photographing device. input devices, and/or output devices such as display devices, printers, speakers, and/or network cards. The exemplary input/output device 24 may be included inside the computing device 12 as a component constituting the computing device 12, or may be connected to the computing device 12 as a separate device distinct from the computing device 12. may be

이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Although representative embodiments of the present invention have been described in detail above, those skilled in the art will understand that various modifications are possible to the above-described embodiments without departing from the scope of the present invention. . Therefore, the scope of the present invention should not be limited to the described embodiments and should not be defined, and should be defined by not only the claims to be described later, but also those equivalent to these claims.

50 : 호스트 컴퓨터
100 : 하이퍼바이저 시스템
110 : 하이퍼바이저
120 : 하이퍼바이저 관리도구
130 : 가상 플랫폼 바이너리 업로더
140 : 가상 플랫폼 라이브러리 추가도구
150 : 실행 바이너리 DB
111 : 시뮬레이터
112 : 이종 가상 플랫폼
113 : 더미 시뮬레이터
114 : 동종 가상 플랫폼
115 : 가상 플랫폼 라이브러리 DB
117 : 자원 관리 도구
50: host computer
100: hypervisor system
110: hypervisor
120: Hypervisor management tool
130: virtual platform binary uploader
140: Virtual Platform Library Additional Tool
150: executable binary DB
111: simulator
112: heterogeneous virtual platform
113: dummy simulator
114: homogenous virtual platform
115: virtual platform library DB
117: resource management tool

Claims (18)

호스트 컴퓨터에 설치되는 하이퍼바이저 시스템으로서,
상기 호스트 컴퓨터에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키도록 마련되는 하이퍼바이저를 포함하고,
상기 동종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제이고,
상기 이종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제이며,
상기 하이퍼바이저는, 각 이종 가상 플랫폼에 대한 가상 프로세서 및 가상 주변 장치들의 라이브러리를 저장하는 가상 플랫폼 라이브러리 DB(Database) 및 상기 호스트 컴퓨터의 하드웨어를 모니터링하여 상기 하이퍼바이저에 자원을 할당하는 자원 관리 도구를 포함하고,
상기 하이퍼바이저 시스템은,
상기 하이퍼바이저의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 상기 호스트 컴퓨터의 화면에 표시하고, 상기 가상 플랫폼 지원 리스트에서 선택되는 가상 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 상기 확인된 이종 가상 플랫폼에 대한 라이브러리를 상기 가상 플랫폼 라이브러리 DB에서 추출하여 상기 하이퍼바이저로 전달하는 하이퍼바이저 관리도구를 더 포함하는, 하이퍼바이저 시스템.
As a hypervisor system installed on a host computer,
A hypervisor configured to execute at least one of a homogeneous instruction operating system and a heterogeneous instruction operating system in the host computer;
The homogeneous command operating system is an operating system having the same command system as that of the host computer,
The heterogeneous command operating system is an operating system having a command system different from that of the host computer,
The hypervisor includes a virtual platform library DB (Database) for storing a library of virtual processors and virtual peripheral devices for each heterogeneous virtual platform and a resource management tool for allocating resources to the hypervisor by monitoring the hardware of the host computer. include,
The hypervisor system,
According to the call of the hypervisor, a pre-stored virtual platform support list is displayed on the screen of the host computer, and if the virtual platform selected from the virtual platform support list is a heterogeneous virtual platform, the corresponding heterogeneous virtual platform is identified, and the confirmation is made. The hypervisor system further includes a hypervisor management tool for extracting a library for a heterogeneous virtual platform from the virtual platform library DB and transferring the library to the hypervisor.
삭제delete 삭제delete 청구항 1에 있어서,
상기 하이퍼바이저 관리도구는,
상기 가상 플랫폼 지원 리스트에서 선택되는 이종 가상 플랫폼과 대응하는 바이너리를 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는, 하이퍼바이저 시스템.
The method of claim 1,
The hypervisor management tool,
and requesting and receiving a binary corresponding to a heterogeneous virtual platform selected from the virtual platform support list from a virtual platform binary uploader, and forwarding the received binary to the hypervisor.
청구항 4에 있어서,
상기 하이퍼바이저는,
상기 이종 가상 플랫폼에 대한 라이브러리의 설정 값에 따라 상기 자원 관리 도구를 통해 이종 가상 플랫폼에 자원을 할당하여 시뮬레이터를 생성하고, 상기 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼을 구성하여 상기 시뮬레이터에 탑재하는, 하이퍼바이저 시스템.
The method of claim 4,
The hypervisor,
A simulator is created by allocating resources to a heterogeneous virtual platform through the resource management tool according to the setting value of the library for the heterogeneous virtual platform, and a heterogeneous virtual platform is configured based on the library for the heterogeneous virtual platform, so that the simulator mounted hypervisor system.
청구항 5에 있어서,
상기 이종 가상 플랫폼은, 가상 프로세서 및 가상 주변 장치를 포함하고,
상기 가상 프로세서는, 상기 호스트 컴퓨터의 ISA(Instructure Set Architecture)와는 다른 ISA의 소프트웨어를 구동하기 위한 가상 프로세서인, 하이퍼바이저 시스템.
The method of claim 5,
The heterogeneous virtual platform includes a virtual processor and a virtual peripheral device,
The virtual processor is a virtual processor for driving software of an ISA (Instructure Set Architecture) different from that of the host computer, the hypervisor system.
청구항 5에 있어서,
상기 이종 가상 플랫폼은,
상기 수신한 바이너리를 이종 명령어 운영 체제에 대응하는 명령어로 변환한 후 상기 이종 명령어 운영 체제로 전달하여 상기 이종 명령어 운영 체제를 실행시키는, 하이퍼바이저 시스템.
The method of claim 5,
The heterogeneous virtual platform,
The hypervisor system converts the received binary into a command corresponding to the heterogeneous command operating system and then transfers the binary command to the heterogeneous command operating system to execute the heterogeneous command operating system.
청구항 7에 있어서,
상기 시뮬레이터는,
상기 이종 명령어 운영 체제가 실행 종료되는 경우, 상기 이종 가상 플랫폼을 통해 상기 이종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득하여 상기 하이퍼바이저 관리도구로 전달하고,
상기 하이퍼바이저 관리도구는, 상기 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환하여 저장하는, 하이퍼바이저 시스템.
The method of claim 7,
The simulator,
When the heterogeneous instruction operating system is terminated, obtaining execution-related information executed in the heterogeneous instruction operating system through the heterogeneous virtual platform and transferring the information to the hypervisor management tool;
The hypervisor system, wherein the hypervisor management tool converts the execution-related information into a preset binary format and stores it.
청구항 5에 있어서,
상기 하이퍼바이저 관리도구는,
사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 상기 동종 가상 플랫폼과 대응하는 바이너리를 상기 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는, 하이퍼바이저 시스템.
The method of claim 5,
The hypervisor management tool,
When a user intends to execute a homogeneous command operating system through a homogeneous virtual platform, requesting and receiving a binary corresponding to the homogeneous virtual platform from the virtual platform binary uploader, and transferring the received binary to the hypervisor, hypervisor system.
청구항 9에 있어서,
상기 하이퍼바이저는,
상기 자원 관리 도구를 통해 동종 가상 플랫폼에 자원을 할당하여 더미 시뮬레이터를 생성하고, 동종 가상 플랫폼을 구성하여 상기 더미 시뮬레이터에 탑재시키는, 하이퍼바이저 시스템.
The method of claim 9,
The hypervisor,
A hypervisor system configured to generate a dummy simulator by allocating resources to a homogeneous virtual platform through the resource management tool, configure the homogeneous virtual platform, and mount the virtual platform on the dummy simulator.
하이퍼바이저 및 하이퍼바이저 관리도구를 구비하고 호스트 컴퓨터에 설치되는 하이퍼바이저 시스템에서 수행되는 방법으로서,
상기 하이퍼바이저가 상기 호스트 컴퓨터에서 동종 명령어 운영 체제 및 이종 명령어 운영 체제 중 하나 이상을 실행시키는 단계를 포함하고,
상기 동종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 동일한 명령어 체계를 갖는 운영 체제이고,
상기 이종 명령어 운영 체제는, 상기 호스트 컴퓨터의 명령어 체계와 다른 명령어 체계를 갖는 운영 체제이며,
상기 이종 명령어 운영 체제를 실행시키는 단계는,
상기 하이퍼바이저 관리도구에서, 상기 하이퍼바이저의 호출에 따라 기 저장된 가상 플랫폼 지원 리스트를 상기 호스트 컴퓨터의 화면에 표시하는 단계; 및
상기 하이퍼바이저 관리도구에서, 상기 가상 플랫폼 지원 리스트에서 선택되는 가상 플랫폼이 이종 가상 플랫폼인 경우, 해당 이종 가상 플랫폼을 확인하고, 상기 확인된 이종 가상 플랫폼에 대한 라이브러리를 추출하여 상기 하이퍼바이저로 전달하는 단계를 포함하는, 하이퍼바이저 동작 방법.
A method performed in a hypervisor system equipped with a hypervisor and a hypervisor management tool and installed in a host computer,
Executing, by the hypervisor, at least one of a homogeneous instruction operating system and a heterogeneous instruction operating system on the host computer;
The homogeneous command operating system is an operating system having the same command system as that of the host computer,
The heterogeneous command operating system is an operating system having a command system different from that of the host computer,
The step of executing the heterogeneous command operating system,
displaying, in the hypervisor management tool, a previously stored virtual platform support list on the screen of the host computer according to a call from the hypervisor; and
In the hypervisor management tool, if the virtual platform selected from the virtual platform support list is a heterogeneous virtual platform, the heterogeneous virtual platform is identified, and a library for the identified heterogeneous virtual platform is extracted and delivered to the hypervisor. A method of operating a hypervisor, comprising steps.
삭제delete 청구항 11에 있어서,
상기 이종 명령어 운영 체제를 실행시키는 단계는,
상기 하이퍼바이저 관리도구에서, 상기 가상 플랫폼 지원 리스트에서 선택되는 이종 가상 플랫폼과 대응하는 바이너리를 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
The method of claim 11,
The step of executing the heterogeneous command operating system,
In the hypervisor management tool, requesting and receiving a binary corresponding to a heterogeneous virtual platform selected from the virtual platform support list from a virtual platform binary uploader, and forwarding the received binary to the hypervisor. , how the hypervisor works.
청구항 13에 있어서,
상기 이종 명령어 운영 체제를 실행시키는 단계는,
상기 하이퍼바이저에서, 상기 이종 가상 플랫폼에 대한 라이브러리의 설정 값에 따라 이종 가상 플랫폼에 자원을 할당하여 시뮬레이터를 생성하는 단계; 및
상기 하이퍼바이저에서, 상기 이종 가상 플랫폼에 대한 라이브러리를 기반으로 이종 가상 플랫폼을 구성하여 상기 시뮬레이터에 탑재하는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
The method of claim 13,
The step of executing the heterogeneous command operating system,
generating a simulator by allocating resources to a heterogeneous virtual platform according to a set value of a library for the heterogeneous virtual platform in the hypervisor; and
In the hypervisor, configuring a heterogeneous virtual platform based on a library for the heterogeneous virtual platform and mounting the heterogeneous virtual platform on the simulator.
청구항 14에 있어서,
상기 이종 명령어 운영 체제를 실행시키는 단계는,
상기 이종 가상 플랫폼에서, 상기 수신한 바이너리를 이종 명령어 운영 체제에 대응하는 명령어로 변환한 후 상기 이종 명령어 운영 체제로 전달하여 상기 이종 명령어 운영 체제를 실행시키는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
The method of claim 14,
The step of executing the heterogeneous command operating system,
In the heterogeneous virtual platform, converting the received binary into a command corresponding to the heterogeneous command operating system and then transferring the received binary into a command corresponding to the heterogeneous command operating system to execute the heterogeneous command operating system.
청구항 15에 있어서,
상기 이종 명령어 운영 체제를 실행시키는 단계는,
상기 시뮬레이터에서, 상기 이종 명령어 운영 체제가 실행 종료되는 경우, 상기 이종 가상 플랫폼을 통해 상기 이종 명령어 운영 체제에서 실행된 실행 관련 정보를 획득하여 상기 하이퍼바이저 관리도구로 전달하는 단계; 및
상기 하이퍼바이저 관리도구에서, 상기 실행 관련 정보를 기 설정된 바이너리 포맷으로 변환하여 저장하는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
The method of claim 15
The step of executing the heterogeneous command operating system,
obtaining execution-related information executed in the heterogeneous command operating system through the heterogeneous virtual platform and transmitting the information to the hypervisor management tool when the heterogeneous command operating system is executed in the simulator; and
The hypervisor operating method further comprising converting and storing the execution-related information in a predetermined binary format in the hypervisor management tool.
청구항 14에 있어서,
상기 동종 명령어 운영 체제를 실행시키는 단계는,
상기 하이퍼바이저 관리도구에서, 사용자가 동종 가상 플랫폼을 통해 동종 명령어 운영 체제를 실행시키려고 하는 경우, 상기 동종 가상 플랫폼과 대응하는 바이너리를 상기 가상 플랫폼 바이너리 업로더에 요청하여 수신하고, 상기 수신한 바이너리를 상기 하이퍼바이저로 전달하는 단계를 포함하는, 하이퍼바이저 동작 방법.
The method of claim 14,
The step of executing the homogeneous command operating system,
In the hypervisor management tool, when a user intends to execute a homogeneous command operating system through a homogeneous virtual platform, a binary corresponding to the homogeneous virtual platform is requested and received from the virtual platform binary uploader, and the received binary is received. A method of operating a hypervisor comprising transmitting to the hypervisor.
청구항 17에 있어서,
상기 동종 명령어 운영 체제를 실행시키는 단계는,
상기 하이퍼바이저에서, 동종 가상 플랫폼에 자원을 할당하여 더미 시뮬레이터를 생성하는 단계; 및
동종 가상 플랫폼을 구성하여 상기 더미 시뮬레이터에 탑재시키는 단계를 더 포함하는, 하이퍼바이저 동작 방법.
The method of claim 17
The step of executing the homogeneous command operating system,
generating a dummy simulator by allocating resources to a homogeneous virtual platform in the hypervisor; and
The hypervisor operating method further comprising constructing a homogeneous virtual platform and mounting it on the dummy simulator.
KR1020220066142A 2022-05-30 2022-05-30 Hypervisor system and operating method of hypervisor KR102465953B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220066142A KR102465953B1 (en) 2022-05-30 2022-05-30 Hypervisor system and operating method of hypervisor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220066142A KR102465953B1 (en) 2022-05-30 2022-05-30 Hypervisor system and operating method of hypervisor

Publications (1)

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

Family

ID=84042857

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220066142A KR102465953B1 (en) 2022-05-30 2022-05-30 Hypervisor system and operating method of hypervisor

Country Status (1)

Country Link
KR (1) KR102465953B1 (en)

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 (en) * 2006-10-26 2008-05-08 Internatl Business Mach Corp <Ibm> Method, computer system and computer program for providing operating system service of policy base in hypervisor on computer system
US20100138828A1 (en) * 2008-12-01 2010-06-03 Vincent Hanquez Systems and Methods for Facilitating Virtualization of a Heterogeneous Processor Pool
KR20100066405A (en) * 2008-12-08 2010-06-17 엔비디아 코포레이션 Centralized device virtualization layer for heterogeneous processing units
KR101606212B1 (en) 2009-11-17 2016-03-24 인터내셔널 비지네스 머신즈 코포레이션 Hypervisor file system

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 (en) * 2006-10-26 2008-05-08 Internatl Business Mach Corp <Ibm> Method, computer system and computer program for providing operating system service of policy base in hypervisor on computer system
US20100138828A1 (en) * 2008-12-01 2010-06-03 Vincent Hanquez Systems and Methods for Facilitating Virtualization of a Heterogeneous Processor Pool
KR20100066405A (en) * 2008-12-08 2010-06-17 엔비디아 코포레이션 Centralized device virtualization layer for heterogeneous processing units
KR101606212B1 (en) 2009-11-17 2016-03-24 인터내셔널 비지네스 머신즈 코포레이션 Hypervisor file system

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 (en) Architectural mode configuration
TWI639090B (en) Common boot sequence for control utility able to be initialized in multiple architectures
US20190334765A1 (en) Apparatuses and methods for site configuration management
US8332848B2 (en) Mechanism for staged upgrades of a virtual machine system
JP6388455B2 (en) Expansion of services to virtual data center guests
WO2020015447A1 (en) Consensus mechanism deployment method and apparatus, and device and storage medium
US20110125979A1 (en) Migrating Logical Partitions
KR20170022028A (en) Method and apparatus for security checking of image for container
JP7386882B2 (en) Transparent interpretation of guest instructions in a secure virtual machine environment
WO2017183565A1 (en) Network system, patch file application method, and recording medium
JP5346405B2 (en) Network system
JP2016515267A5 (en)
CN110968392B (en) Method and device for upgrading virtualized simulator
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 (en) Computer implement method, computer system and computer program product starting a secure guest using an initial program load mechanism
CN114651233A (en) Instant container
WO2018003020A1 (en) Control device, container starting method, and program
CN103995733A (en) Lightweight nested virtualization implementation method based on physical resource penetration mechanism
JP7388804B2 (en) Secure virtual machine dispatch
CN114816665B (en) Hybrid arrangement system and virtual machine container resource hybrid arrangement method under super-fusion architecture
WO2013145434A1 (en) Network system and method for controlling same
KR20120068573A (en) Apparatus and method for seamless application integration
TW202101209A (en) Inject interrupts and exceptions into secure virtual machine

Legal Events

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