KR101757961B1 - 가상 bios - Google Patents

가상 bios Download PDF

Info

Publication number
KR101757961B1
KR101757961B1 KR1020137027492A KR20137027492A KR101757961B1 KR 101757961 B1 KR101757961 B1 KR 101757961B1 KR 1020137027492 A KR1020137027492 A KR 1020137027492A KR 20137027492 A KR20137027492 A KR 20137027492A KR 101757961 B1 KR101757961 B1 KR 101757961B1
Authority
KR
South Korea
Prior art keywords
vbios
software stack
controller
computing device
virtual machine
Prior art date
Application number
KR1020137027492A
Other languages
English (en)
Other versions
KR20140018933A (ko
Inventor
제임스 엠 맨
Original Assignee
휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. filed Critical 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Publication of KR20140018933A publication Critical patent/KR20140018933A/ko
Application granted granted Critical
Publication of KR101757961B1 publication Critical patent/KR101757961B1/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/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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/4401Bootstrapping
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/45587Isolation or security of virtual machine instances
    • 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

서로 다른 가상 BIOS(basic input output system)로부터 가상 BIOS가 선택될 수 있다. 가상 BIOS의 선택은 컨트롤러에 의하며, 선택은 소프트웨어 스택 또는 사용자 상호 작용에 기초할 수 있다.

Description

가상 BIOS{VIRTUAL BIOS}
가상 머신 모니터 또는 하이퍼바이저(hypervisor)는, 서로 다른 운영 체제를 포함할 수 있는 서로 다른 가상 머신이 컴퓨팅 디바이스 상에서 동시에 실행 가능하게 할 수 있다. 다양한 운영 체제의 다수의 인스턴스는 가상화된 하드웨어 리소스를 공유할 수 있다. 컴퓨팅 디바이스는, 스타트업 시 하드웨어를 테스트하거나, 운영 체제를 개시하거나, 하드웨어 간 데이터의 전달을 지원하는 BIOS(basic input output system)를 포함할 수 있다.
본 발명의 몇몇 실시예들이 다음의 도면들과 함께 설명된다.
도 1은 실시예에 따른 하이퍼바이저를 포함하는 컴퓨팅 디바이스의 블록도.
도 2는 실시예에 따른 하이퍼바이저를 포함하는 컴퓨팅 디바이스의 블록도.
도 3은 사용자 인터페이스의 실시예.
도 4는 실시예에 따른 가상 BIOS를 선택하는 방법의 흐름도.
도 5는 실시예에 따른 가상 BIOS를 선택하는 방법의 흐름도.
도 6은 실시예에 따른 컴퓨팅 디바이스의 블록도.
컴퓨팅 디바이스는, 스타트업 시 하드웨어를 테스트하거나, 운영 체제를 개시하거나 하드웨어 간 데이터의 전달을 지원하는 BIOS(basic input output system)를 포함한다. BIOS는 또한 EFI(Extensible Firmware Interface), UEFI(Unified Extensible Firmware Interface) 또는 컴퓨팅 시스템을 위한 다른 펌웨어를 포함할 수 있다. 컴퓨팅 디바이스는 가상 머신을 제어하는 하이퍼바이저 또는 가상 머신 모니터를 포함할 수 있다. 하이퍼바이저는, 소프트웨어 스택 및 가상 BIOS(vBIOS)를 포함하는 가상 머신을 관리할 수 있다. 소프트웨어 스택은, Unix, Linux, 워드 프로세서 또는 스프레드시트 등과 같이 가상 머신에서 실행될 수 있는 운영 체제 또는 애플리케이션이다. 하이퍼바이저는, 컴퓨터 디바이스 상에서 운영 체제 등의 다수의 가상 머신 또는 동(同)가상 머신의 다수의 인스턴스를 관리하는 하드웨어 또는 소프트웨어일 수 있다. 하이퍼바이저는 각 운영 체제에 할당되는 컴퓨팅 디바이스의 프로세서, 메모리 및 기타 리소스를 관리할 수 있다.
컴퓨팅 디바이스 상의 BIOS는 컴퓨팅 디바이스 상의 하드웨어와 통신할 수 있다. 운영 체제 또는 애플리케이션은 BIOS와 통신할 수 있어야 한다. 컴퓨팅 디바이스와 함께 사용될 수 있는 많은 서로 다른 하드웨어 구성 또는 운영 체제 때문에, BIOS는, 컴포넌트를 포함하지 않는 하드웨어 구성을 갖는 시스템 또는 운영 체제에 필요하지 않은 많은 명령 또는 루틴을 포함할 수 있지만, 가상 BIOS(vBIOS)는 운영 체제 또는 하드웨어 구성에 특정될 수 있다.
가상 BIOS는 특정 운영 체제 또는 특정 하드웨어 구성을 위한 것일 경우, 운영 체제 또는 하드웨어 구성에 특정된 가상 BIOS에 특징이 포함될 수 있다. 실제 BIOS가 운영 체제 또는 가상 어플라이언스에 의해 필요로 되는 특정 BIOS 인터페이스를 지원하지 않을 경우에, 가상 BIOS가 필요한 기능을 에뮬레이션할 수 있다. 실제 BIOS는 디바이스 하드웨어의 부팅 시 실행되는 것이고, 가상 BIOS는 가상 머신 또는 가상 어플라이언스의 부팅 시 실행되는 것이다.
일 실시예에서, 컴퓨팅 디바이스는 소프트웨어 스택 및 소프트웨어 스택의 실행을 관리하는 하이퍼바이저를 포함할 수 있다. 컴퓨팅 디바이스는 또한 소프트웨어 스택에 기초하여 제 1 vBIOS 및 제 2 vBIOS 중 하나를 선택하는 컨트롤러를 포함할 수 있다. 제 1 vBIOS와 제 2 vBIOS는 서로 다르다. 제 1 vBIOS와 제 2 vBIOS간의 차이는 소프트웨어 스택 특징 또는 하드웨어 컴포넌트에 대한 지원일 수 있다.
소프트웨어 스택 특징은 예를 들면 인증일 수 있다. 인증 루틴은 TPM(Trusted Platform Module)을 사용하여 시스템의 하드웨어 및 사용자를 인증할뿐만 아니라, 암호화 및 복호화를 행할 수 있다. 인증은 또한, 사용자가 한 번 인증되면 사용자가 다른 서비스에 대해 자동으로 인증되는 단일 사인온(sign on)을 가능하게 할 수 있다.
일 실시예에서, 일 방법은 가상 BIOS를 가상 머신에 제공할 수 있다. 이 방법은 소프트웨어 스택에 대한 정보를 수신하는 프로세서를 포함할 수 있다. 이 방법은 소프트웨어 스택에 대한 정보에 기초하여 복수의 서로 다른 가상 BIOS로부터 가상 BIOS를 선택할 수 있다. 이 방법은 소프트웨어 스택 및 선택된 가상 BIOS를 포함하는 가상 머신을 생성할 수 있다.
도 1은 실시예에 따른 하이퍼바이저를 포함하는 컴퓨팅 디바이스의 블록도이다. 컴퓨팅 디바이스는 하이퍼바이저(110)를 포함할 수 있다. 하이퍼바이저는 소프트웨어 스택(105)의 실행을 관리할 수 있다. 하이퍼바이저(110)는 제 1 vBIOS(virtual basic input output system)(130) 및 제 2 vBIOS(125)를 포함할 수 있다.
소프트웨어 스택(105)은 하이퍼바이저(110)에 대해 실행될 수 있다. 소프트웨어 스택(105)은 예를 들면 운영 체제 또는 애플리케이션일 수 있다. 예를 들면, 운영 체제는 WebOS, Unix, Linux 또는 다른 운영 체제일 수 있다.
컴퓨팅 시스템은 컨트롤러(120) 등의 컴포넌트를 갖는 하드웨어(115)를 포함한다. 컨트롤러(120)는 소프트웨어 스택(105)에 기초하여 제 1 vBIOS(130) 및 제 2 vBIOS(125)로부터 vBIOS를 선택할 수 있다. 제 1 vBIOS(130) 및 제 2 vBIOS(125)는 서로 다르다.
선택할 vBIOS를 판정하는 데 있어, 컨트롤러(120)는, 소프트웨어 스택(105)이 특징을 가지는지의 여부를 판정하고 vBIOS가 이 특징을 지원하는지 여부에 기초하여 vBIOS를 선택할 수 있다. 예를 들면, 소프트웨어 스택(105)이 단일 로그온 등의 사용자 인증을 지원할 경우, 컨트롤러는 사용자 인증을 지원하는 vBIOS를 선택할 수 있다. 컨트롤러(120)는, 소프트웨어 스택(105)이 특징을 지원하지 않는지의 여부를 판정하고 vBIOS가 그 특징을 지원하는지의 여부에 기초하여 vBIOS를 선택할 수 있다. 예를 들면, 소프트웨어가 광디스크 드라이브를 지원하지 않을 경우, 컨트롤러(120)는 광디스크 드라이브를 지원하지 않는 vBIOS를 선택할 수 있다. 다른 예는, ACPI(Advanced Configuration and Power Interface)를 지원하지 않는 소프트웨어 스택일 수 있고 이에 따라 vBIOS는 ACPI를 지원하지 않는다.
일 실시예에서, 소프트웨어 스택은, 소프트웨어 스택(105)이 컴퓨팅 디바이스의 컴퓨터 판독 가능한 매체에 저장되어 있을 경우, 소프트웨어 스택(105)과 함께 사용되는 vBIOS를 동반할 수 있다. 예를 들면, 소프트웨어 스택(105)이 가상 머신으로서 실행될, 컴퓨팅 디바이스에 설치되는 운영 체제일 경우, vBIOS에는 소프트웨어 스택(105)이 제공될 수 있다. 예를 들면, 소프트웨어 스택은 서버, 외부의 컴퓨터 판독 가능한 매체 또는 다른 소스로부터 다운로드함으로써 설치될 수 있다. 소프트웨어 스택을 위한 vBIOS는 소프트웨어 스택과 동일한 컴퓨터 판독 가능한 매체에 저장될 수 있거나, 또는 소프트웨어 스택(105)을 갖는 가상 머신을 생성한다면 소프트웨어 스택이 컨트롤러(120)에 의해 선택되는 컴퓨팅 시스템에 다운로드 및 설치될 경우 소프트웨어 스택과 함께 포함될 수 있다. 특정 vBIOS가 컨트롤러(120)에 의해 선택되지 않을 경우, 컨트롤러(120)는 소프트웨어 스택 또는 하드웨어 컴포넌트에 특정되지 않는 일반 vBIOS를 선택할 수 있다. 일반 vBIOS가 선택될 경우, 가상 머신의 효율은 소프트웨어 스택 또는 하드웨어에 대해 특정되는 vBIOS에 비해 저하되며, 이는 일반 vBIOS가, 해당 소프트웨어 스택 또는 하드웨어 컴포넌트에 의해 사용되지 않는 루틴을 실행해야만 할 수 있기 때문이다.
도 2는 실시예에 따른 하이퍼바이저(110)를 포함하는 컴퓨팅 디바이스의 블록도이다. 컴퓨팅 시스템의 하드웨어(115)는 컨트롤러(120) 및 실제 BIOS(242)를 포함할 수 있다. 실제 BIOS(242)는 컴퓨팅 디바이스의 물리적 하드웨어(115)를 초기화하는 부팅 시에 실행되는 코드일 수 있다. 컴퓨팅 디바이스는 제 2 소프트웨어 스택(255)을 포함할 수 있다. 제 2 소프트웨어 스택(255)은 제 1 소프트웨어 스택(105)과는 다른 제 2 운영 체제일 수 있거나 제 1 소프트웨어 스택(105)의 제 2 인스턴스일 수 있다. 제 2 소프트웨어 스택(255)은 또한 애플리케이션일 수 있다. 컨트롤러(120)는 제 2 소프트웨어 스택에 기초하여 제 1 vBIOS(130) 및 제 2 vBIOS(125)로부터 vBIOS(virtual basic input output system)를 선택할 수 있다.
컨트롤러(120)가 vBIOS를 선택했을 경우, 하이퍼바이저(110)는 제 1 소프트웨어 스택(105)에 기초하여 가상 머신(235)을 관리할 수 있다. 가상 머신은, 컨트롤러(120)가 가상 머신(235)에 대하여 제 1 vBIOS(130)를 선택했을 경우, 제 1 소프트웨어 스택(105) 및 제 1 vBIOS(130)를 포함할 수 있다. 다른 실시예에서, 제 2 가상 머신(285)은, 컨트롤러가 제 2 vBIOS를 선택했을 경우, 제 2 소프트웨어 스택(255) 및 제 2 vBIOS(125)를 포함할 수 있다.
컨트롤러는 가상 머신을 생성할 경우 vBIOS를 선택하는 서로 다른 기준을 볼 수 있다. 컨트롤러는 소프트웨어 스택이 하드웨어 컴포넌트를 지원하지 않는다고 판정할 수 있다. 소프트웨어 스택이 하드웨어 컴포넌트를 지원하지 않을 경우, 컨트롤러는 해당 하드웨어 컴포넌트를 스캐닝하지 않는 vBIOS를 선택할 수 있다. 예를 들면, 소프트웨어 스택이 광디스크 드라이브를 지원하지 않는 운영 체제일 경우, 컨트롤러는, 가상 머신의 개시 시 또는 컴퓨팅 디바이스의 부팅 시 시간을 절약할 수 있는 소프트웨어 스택에 의해 지원되지 않는 컴포넌트에 대한 스캔(245)을 포함하지 않는 제 2 vBIOS(125) 등의 vBIOS를 선택할 수 있다.
컨트롤러(120)는, 소프트웨어 스택이 인증에 관련된 루틴 또는 컴포넌트를 지원한다고 판정할 수 있다. 예를 들면, 소프트웨어 스택이 인증을 지원할 경우, 컨트롤러는 인증(247) 루틴을 포함하는 제 2 vBIOS(125) 등의 vBIOS를 선택할 수 있다. 가상 머신에 의한 사용을 위해 vBIOS에 특징을 추가하는 능력은, 컴퓨팅 디바이스에서 BIOS 지원을 갖지 않을 수 있지만 가상 머신에서 특정 vBIOS에 의해 지원될 수 있는 소프트웨어 스택에 특징이 추가되게 할 수 있다.
vBIOS는 소프트웨어 스택과 동반될 수 있거나, 컴퓨팅 디바이스에 사전 설치될 수 있거나, 네트워크로부터 다운로드될 수 있다. 컴퓨팅 디바이스는 네트워크 연결부(240)를 포함할 수 있다. 네트워크 연결부(240)는 컴퓨팅 디바이스를, 예를 들면 사설 네트워크 상의 서버 등의 다른 컴퓨팅 디바이스 또는 인터넷에 연결할 수 있다. 서버는 컴퓨팅 디바이스로부터의 요청에 응답하는 컴퓨터 또는 프로그램일 수 있다. 컨트롤러(120)는, 컴퓨팅 디바이스에 로컬 저장되지 않은 vBIOS를 선택할 수 있다. 컨트롤러(120)는 네트워크 연결부(240)를 이용하여 네트워크 또는 인터넷 상의 서버로부터 vBIOS를 요청할 수 있고, 예를 들면 컨트롤러(120)가 제 2 vBIOS(125)를 선택했고 제 2 vBIOS(125)가 컴퓨팅 디바이스에 저장되어 있지 않았을 경우, 컨트롤러는 제 2 vBIOS(125)를 네트워크 상의 서버로부터 요청할 수 있다.
도 3은 사용자 인터페이스의 실시예이다. 사용자 인터페이스(300)는, 소프트웨어 스택에 대해 어느 vBIOS가 컨트롤러에 의해 선택되었는지를 사용자에게 표시하는 데 사용될 수 있다. 예를 들면, 시스템이 제 1 소프트웨어 스택 및 제 2 소프트웨어 스택을 포함할 경우, 사용자 인터페이스는 제 1 운영 체제A(305)에 의해 식별되는 제 1 소프트웨어 스택을 나타내는 박스 및 제 2 운영 체제B(310)에 의해 식별되는 제 2 소프트웨어 스택을 나타내는 박스를 표시할 수 있다. 예를 들면, 컨트롤러가 운영 체제A(305)에 대해 제 1 vBIOS를 선택했을 경우, 이는 예를 들면 무선 버튼 또는 일부 다른 표시기에 의해 지시될 수 있다. 사용자 인터페이스는 사용자가 가상 머신에 의해 사용되는 vBIOS를 선택하게 할 수도 있다. 일 실시예에서, 사용자 인터페이스는, 사용자가 소프트웨어 스택과 호환되지 않는 vBIOS를 선택하는 것을 허용하지 않게 할 수 있으며, 예를 들면 vBIOS가 소프트웨어 스택의 특징의 일부를 지원하지 않을 경우, 사용자 인터페이스는 사용자가 그 소프트웨어 스택을 갖는 가상 머신에 대해 vBIOS를 선택을 허용하지 않게 할 수 있다.
가상 머신이 소프트웨어 스택 및 vBIOS을 갖고 생성될 경우, 하이퍼바이저는 소프트웨어 스택 및 vBIOS의 실행을 관리할 수 있다. 가상 머신 코드를 개시할 경우, vBIOS가 실행되어 제어가 소프트웨어 스택에 전달된다. 예를 들면 소프트웨어 스택이 운영 체제일 경우, vBIOS는 제어를 운영 체제에 전달하고 하이퍼바이저는 컴퓨팅 디바이스 상에서 운영 체제의 실행을 관리할 수 있다.
도 4는 실시예에 따른 가상 BIOS를 선택하는 방법의 흐름도이다. 이 방법은 도 1의 컴퓨팅 디바이스 등의 디바이스에 의해 행해질 수 있다. 405에서, 컨트롤러는 소프트웨어 스택에 대한 정보를 수신할 수 있다. 컨트롤러는 도 1의 컨트롤러(120)일 수 있다. 410에서, 컨트롤러에 의해 수신된 정보를 이용하여, 복수의 서로 다른 가상 BIOS로부터 가상 BIOS를 선택할 수 있다. 그 정보는 소프트웨어 스택에 의해 지원되는 특징의 리스트 또는 소프트웨어 스택의 특징을 지원하는 데 필요한 컴포넌트의 리스트일 수 있다. 예를 들면 소프트웨어 스택의 기능을 지원하는 데 필요한 컴포넌트의 리스트가 제공될 경우, 컨트롤러는 컴퓨팅 디바이스의 물리적 하드웨어에 기초하여 가상 BIOS를 선택할 수 있다. 415에서, 선택된 vBIOS는 소프트웨어 스택 및 vBIOS를 포함하는 가상 머신을 생성하는 데 사용될 수 있다.
도 5는 실시예에 따른 가상 BIOS(vBIOS)를 선택하는 방법의 흐름도이다. 컨트롤러는 405에서 소프트웨어 스택에 대한 정보를 수신하고 그 정보에 기초하여 복수의 서로 다른 vBIOS로부터 vBIOS를 선택할 수 있다. 이 방법은 520에서, 제 1 vBIOS 또는 제 2 vBIOS가 선택되었는지의 여부를 판정할 수 있다. 이 방법은 계속해서 525에서 선택된 vBIOS가 컴퓨팅 디바이스에 있는지의 여부를 확인할 수 있다. 선택된 vBIOS가 컴퓨팅 디바이스에 있지 않을 경우, 이 방법은 530에서, 선택된 vBIOS를 다운로드할 수 있다. 컴퓨팅 시스템은 예를 들면 네트워크 상의 서버로부터 vBIOS를 다운로드할 수 있다. 선택된 vBIOS에 의존하여, vBIOS에 의해 제공되는 특징은 서로 다를 수 있다. 예를 들면, 제 1 vBIOS가 선택될 경우, 535에서 특징 A가 행해질 수 있고, 제 2 vBIOS가 선택될 경우, 545에서 특징 B가 행해질 수 있다. 특징은, 복수의 서로 다른 가상 BIOS로부터 제 1 vBIOS가 선택될 경우 사용자를 인증할 수 있고 복수의 서로 다른 가상 BIOS로부터 제 2 vBIOS가 선택될 경우 사용자를 인증하지 않을 수 있다.
도 6은 실시예에 따른 컴퓨팅 디바이스의 블록도이다. 컴퓨팅 디바이스(600)는 프로세서(605)를 포함할 수 있다. 프로세서(605)는 컨트롤러일 수 있다. 프로세서(605)는 컨트롤러 허브(610)에 연결될 수 있다. 컨트롤러 허브(610)는, 키보드, 마우스, 센서 또는 다른 입력 디바이스 등의 입력 디바이스에 연결될 수 있다. 컨트롤러 허브(610)는 디스플레이(630)에 연결되는 그래픽 컨트롤러(620) 등의 출력 디바이스에 연결될 수도 있다. 컨트롤러 허브는 또한 컴퓨터 판독 가능한 매체(615 또는 616)에 연결될 수 있다. 컴퓨터 판독 가능한 매체는, 실행될 경우에 프로세서(605)가 소프트웨어 스택에 대한 정보를 수신하게 하고 수신된 정보에 기초하여 복수의 서로 다른 가상 BIOS로부터 가상 BIOS를 선택하도록 할 수 있는 코드를 포함할 수 있다. 이어서, 코드는 프로세서가, 소프트웨어 스택 및 선택된 가상 BIOS를 포함하는 가상 머신을 생성하게 할 수 있다. 컴퓨터 판독 가능한 매체(615 또는 616)는 또한, 프로세서에 의해 실행될 경우 프로세서(605)가 서버로부터 선택된 가상 BIOS를 요청하게 할 수 있는 코드를 포함할 수 있다. 컴퓨터 판독 가능한 매체(615 또는 616) 상의 코드는, 실행될 경우 복수의 서로 다른 가상 BIOS로부터 제 1 가상 BIOS가 선택될 경우 프로세서가 사용자를 인증하게 할 수 있고 복수의 서로 다른 가상 BIOS로부터 제 2 vBIOS가 선택될 경우 사용자를 인증하지 않게 할 수 있는 코드를 포함할 수도 있다.
상술한 기술은 상기 방법을 실행하는 컴퓨팅 디바이스를 구성하는 컴퓨터 판독 가능한 매체에서 구현될 수 있다. 컴퓨터 판독 가능한 매체는, 제한이 아닌 예시로서, 몇몇 예를 들면 디스크 및 테이프 저장 매체를 포함하는 자기 저장 매체; 디지털 비디오 디스크 저장 매체 및 콤팩트 디스크 매체(예를 들면, CD-ROM, CD-R 등) 등의 광학 저장 매체; 홀로그래픽 메모리; FLASH 메모리, EEPROM, EPROM, ROM 등의 반도체 기반 메모리 유닛을 포함하는 비휘발성 메모리 저장 매체; 강자성 디지털 메모리; 레지스터, 버퍼 또는 캐시, 메인 메모리, RAM 등을 포함하는 휘발성 저장 매체 등을 포함할 수 있다. 본원에서 논의된 소프트웨어 모듈을 저장하는 데 다양한 유형의 컴퓨터 판독 가능한 매체가 사용될 수 있다. 컴퓨팅 디바이스는 제한이 아닌 예시로서, 몇몇 예를 들면 메인프레임, 미니컴퓨터, 서버, 워크 스테이션, 개인용 컴퓨터, 노트패드, PDA, 다양한 무선 디바이스 및 임베디드 시스템을 포함하여 많은 형태로 발견될 수 있다.
전술한 설명에서, 본 발명의 이해를 돕기 위해 다수의 세부가 제시되어 있다. 그러나, 본 발명은 이러한 세부 없이 실시될 수 있음을 당업자는 이해할 것이다. 본 발명은 한정된 수의 실시예에 관해서 개시되었지만, 당업자는 많은 변경 및 변형을 인식할 것이다. 또한 첨부된 특허청구범위는 본 발명의 진정한 사상 및 범위에 포함되는 변경 및 변형을 포함하는 것을 의도한다.

Claims (15)

  1. 소프트웨어 스택과,
    상기 소프트웨어 스택의 실행을 관리하는 하이퍼바이저(hypervisor)와,
    프로세서를 포함하는 컨트롤러
    를 포함하고, 상기 컨트롤러는,
    상기 소프트웨어 스택에 대한 정보에 기초하여, 상기 소프트웨어 스택이 제 1 vBIOS(virtual basic input output system)에 의해 지원되는 구성을 지원하고, 제 2 vBIOS를 지원하지 않는다고 결정 - 상기 제 1 vBIOS와 상기 제 2 vBIOS는 서로 다름 - 하고,
    상기 결정에 기초하여, 상기 제 1 vBIOS 및 상기 제 2 vBIOS를 포함하는 복수의 vBIOS 중에서 상기 제 1 vBIOS를 선택하고,
    상기 소프트웨어 스택 및 상기 제 1 vBIOS를 포함하는 제 1 가상 머신을 생성하는
    컴퓨팅 디바이스.
  2. 제 1 항에 있어서,
    상기 소프트웨어 스택에 대한 상기 정보는 상기 소프트웨어 스택에 의해 지원되는 구성 또는 컴포넌트 중 적어도 하나를 포함하는
    컴퓨팅 디바이스.
  3. 삭제
  4. 제 1 항에 있어서,
    제 2 소프트웨어 스택을 더 포함하고,
    상기 컨트롤러는 상기 제 2 소프트웨어 스택에 대한 정보에 기초하여 상기 복수의 vBIOS 중에서 상기 제 2 vBIOS를 선택하고,
    상기 제 2 소프트웨어 스택 및 상기 제 2 vBIOS를 포함하는 제 2 가상 머신을 생성하는
    컴퓨팅 디바이스.
  5. 삭제
  6. 제 1 항에 있어서,
    서버로부터 상기 제 2 vBIOS를 요청하는 네트워크 연결부를 더 포함하는
    컴퓨팅 디바이스.
  7. 제 1 항에 있어서,
    상기 제 2 vBIOS는 상기 제 1 vBIOS에서 지원되지 않는 소프트웨어 스택 구성에 대한 지원을 포함하는
    컴퓨팅 디바이스.
  8. 제 1 항에 있어서,
    상기 제 2 vBIOS는 상기 제 1 vBIOS에서 지원되지 않는 하드웨어 컴포넌트에 대한 지원을 포함하는
    컴퓨팅 디바이스.
  9. 가상 BIOS(vBIOS)를 가상 머신에 제공하는 방법으로서,
    프로세서를 포함하는 컨트롤러에 의해, 소프트웨어 스택에 대한 정보를 수신하는 단계와,
    상기 컨트롤러에 의해 상기 소프트웨어 스택에 대한 정보에 기초하여, 상기 소프트웨어 스택이 제 1 vBIOS에 의해 지원되는 구성은 지원하지만 제 2 vBIOS는 지원하지 않는다고 결정하는 단계 - 상기 제 1 vBIOS와 상기 제 2 vBIOS는 서로 다름 - 와,
    상기 컨트롤러에 의해 상기 결정에 기초하여, 복수의 서로 다른 vBIOS들 중에서 상기 제 1 vBIOS를 선택하는 단계와,
    상기 컨트롤러에 의해, 상기 소프트웨어 스택 및 상기 선택된 제 1 vBIOS를 포함하는 상기 가상 머신을 생성하는 단계를 포함하는
    가상 BIOS를 가상 머신에 제공하는 방법.
  10. 삭제
  11. 제 9 항에 있어서,
    상기 방법은, 상기 소프트웨어 스택이 특정 구성을 지원하지 않고 상기 제 2 vBIOS가 상기 특정 구성을 지원하는 루틴을 가지지 않는다는 상기 컨트롤러의 결정에 기초하여, 상기 복수의 서로 다른 vBIOS 중에서 상기 제 2 vBIOS를 선택하는 단계를 더 포함하는
    가상 BIOS를 가상 머신에 제공하는 방법.
  12. 제 9 항에 있어서,
    서버로부터 상기 선택된 제 1 vBIOS를 요청하는 단계를 더 포함하는
    가상 BIOS를 가상 머신에 제공하는 방법.
  13. 코드를 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 코드는 실행될 경우 컨트롤러로 하여금,
    소프트웨어 스택에 대한 정보를 수신하고,
    상기 소프트웨어 스택에 대한 상기 정보에 기초하여, 상기 소프트웨어 스택이 제 1 vBIOS에 의해 지원되는 구성은 지원하지만 제 2 vBIOS는 지원하지 않는다고 결정 - 상기 제 1 vBIOS와 상기 제 2 vBIOS는 서로 다름 - 하고,
    상기 결정에 기초하여, 복수의 서로 다른 vBIOS들 중에서 상기 제 1 vBIOS를 선택하고,
    상기 소프트웨어 스택 및 상기 선택된 제 1 vBIOS를 포함하는 가상 머신을 생성하게 하는
    컴퓨터 판독가능 저장 매체.
  14. 삭제
  15. 삭제
KR1020137027492A 2011-04-21 2011-04-21 가상 bios KR101757961B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/033476 WO2012145006A1 (en) 2011-04-21 2011-04-21 Virtual bios

Publications (2)

Publication Number Publication Date
KR20140018933A KR20140018933A (ko) 2014-02-13
KR101757961B1 true KR101757961B1 (ko) 2017-07-14

Family

ID=47041858

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137027492A KR101757961B1 (ko) 2011-04-21 2011-04-21 가상 bios

Country Status (7)

Country Link
US (3) US9286096B2 (ko)
KR (1) KR101757961B1 (ko)
CN (1) CN103493012B (ko)
BR (1) BR112013027073B1 (ko)
DE (1) DE112011105098T5 (ko)
GB (1) GB2504023B (ko)
WO (1) WO2012145006A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230064825A (ko) * 2021-11-04 2023-05-11 주식회사 테라텍 가상화 기술에 기반한 데이터 센터 장치 통합 관리 시스템 및 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101805627B1 (ko) * 2011-11-28 2017-12-08 삼성전자주식회사 컴퓨터 시스템의 부팅 제어 방법 및 이를 수행하는 부팅 제어 장치
EP3161652B1 (en) * 2014-06-30 2020-06-03 Hewlett-Packard Development Company, L.P. Full virtual machine functionality
CN106687976A (zh) * 2014-07-11 2017-05-17 Pcms控股公司 基于虚拟化的安全设备恢复的系统和方法
US20160019555A1 (en) * 2014-07-15 2016-01-21 Boles Thomas Automated system for rating employee screening practices and corporate management
US10282538B2 (en) * 2014-12-27 2019-05-07 Intel Corporation Technologies for providing hardware subscription models using pre-boot update mechanism
US9785474B2 (en) 2015-07-23 2017-10-10 International Business Machines Corporation Managing a shared pool of configurable computing resources using a set of scaling factors and a set of workload resource data
US10169086B2 (en) 2015-09-13 2019-01-01 International Business Machines Corporation Configuration management for a shared pool of configurable computing resources
GB2546801B (en) * 2016-01-29 2018-12-05 British Telecomm Instantiating a virtual machine using an encrypted disk
CN106293877B (zh) * 2016-08-05 2020-03-03 苏州浪潮智能科技有限公司 一种虚拟机创建方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059556A1 (en) * 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
US20100115315A1 (en) * 2008-11-04 2010-05-06 Lenovo (Singapore) Pte. Ltd. Establishing power save mode in hypervisor system
US20100169629A1 (en) * 2008-12-31 2010-07-01 Lenovo (Beijing) Limited Method for configuring computer by bios, server, computer, system startup method and computer system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0799501B2 (ja) * 1991-11-18 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 複数アプリケーションの同時実行装置
US7032108B2 (en) * 2003-05-02 2006-04-18 Egenera, Inc. System and method for virtualizing basic input/output system (BIOS) including BIOS run time services
US20070204153A1 (en) * 2006-01-04 2007-08-30 Tome Agustin J Trusted host platform
US7676666B2 (en) * 2006-02-02 2010-03-09 Dell Products L.P. Virtual BIOS firmware hub
US8166288B2 (en) * 2009-01-30 2012-04-24 Hewlett-Packard Development Company, L.P. Managing requests of operating systems executing in virtual machines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059556A1 (en) * 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
US20100115315A1 (en) * 2008-11-04 2010-05-06 Lenovo (Singapore) Pte. Ltd. Establishing power save mode in hypervisor system
US20100169629A1 (en) * 2008-12-31 2010-07-01 Lenovo (Beijing) Limited Method for configuring computer by bios, server, computer, system startup method and computer system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230064825A (ko) * 2021-11-04 2023-05-11 주식회사 테라텍 가상화 기술에 기반한 데이터 센터 장치 통합 관리 시스템 및 방법
KR102647728B1 (ko) * 2021-11-04 2024-03-15 주식회사 테라텍 가상화 기술에 기반한 데이터 센터 장치 통합 관리 시스템 및 방법

Also Published As

Publication number Publication date
US10162645B2 (en) 2018-12-25
US20160154668A1 (en) 2016-06-02
US9286096B2 (en) 2016-03-15
US20140047443A1 (en) 2014-02-13
GB2504023B (en) 2020-09-16
DE112011105098T5 (de) 2014-07-17
GB201318024D0 (en) 2013-11-27
GB2504023A (en) 2014-01-15
US9697035B2 (en) 2017-07-04
CN103493012B (zh) 2018-04-27
CN103493012A (zh) 2014-01-01
US20170249159A1 (en) 2017-08-31
KR20140018933A (ko) 2014-02-13
WO2012145006A1 (en) 2012-10-26
BR112013027073A2 (pt) 2016-12-27
BR112013027073B1 (pt) 2021-02-02

Similar Documents

Publication Publication Date Title
KR101757961B1 (ko) 가상 bios
US10621366B2 (en) Chained security systems
US10754952B2 (en) Host software metadata verification during remote attestation
US10242196B2 (en) Secure booting of computer system
US7543150B2 (en) Method and system for setting up hosting environments in safety
US9176752B1 (en) Hardware-based mechanisms for updating computer systems
KR101696131B1 (ko) 가상화 환경에서의 특권 암호화 서비스
US8726269B2 (en) Method to enable application sharing on embedded hypervisors by installing only application context
JP6095796B2 (ja) 「ブリング・ユア・オウン」管理のための起動機構
US8621081B2 (en) Hypervisor controlled user device that enables available user device resources to be used for cloud computing
JP2022522678A (ja) セキュア実行ゲスト所有者環境制御
US9495181B2 (en) Creating a virtual appliance
US9275248B1 (en) Updating processor microcode
US10853494B2 (en) Binding a trusted virtual machine to a trusted host computer
US9424113B2 (en) Virtual appliance deployment
US20220053001A1 (en) Methods and apparatus for automatic configuration of a containerized computing namespace
US9519503B2 (en) Systems and methods for virtual machine attribution with fault resilient memory tag
EP3701411A1 (en) Software packages policies management in a securela booted enclave
US9501316B2 (en) Instantiating virtual appliances of a storage array
US9202058B1 (en) Root volume encryption mechanism in para-virtualized virtual machine

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant