KR20080079549A - 시스템의 부팅 방법 - Google Patents

시스템의 부팅 방법 Download PDF

Info

Publication number
KR20080079549A
KR20080079549A KR1020070019896A KR20070019896A KR20080079549A KR 20080079549 A KR20080079549 A KR 20080079549A KR 1020070019896 A KR1020070019896 A KR 1020070019896A KR 20070019896 A KR20070019896 A KR 20070019896A KR 20080079549 A KR20080079549 A KR 20080079549A
Authority
KR
South Korea
Prior art keywords
virtual machine
machine monitor
guest
device driver
operating system
Prior art date
Application number
KR1020070019896A
Other languages
English (en)
Inventor
허성관
박찬주
김철연
서상범
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070019896A priority Critical patent/KR20080079549A/ko
Publication of KR20080079549A publication Critical patent/KR20080079549A/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
    • 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

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)

Abstract

본 발명은 시스템을 부팅하는 방법에 관한 것으로, 하드웨어, 적어도 하나의 게스트 운영 체제(guest operating system), 적어도 하나의 어플리케이션(application), 및 하드웨어와 게스트 운영 체제를 인터페이싱하는 가상 머신 모니터(virtual machine monitor)를 포함하는 시스템에 전원이 인가되면 가상 머신 모니터를 초기화하고, 가상 머신 모니터의 초기화가 완료되면 가상 머신 모니터가 게스트 운영 체제 및 적어도 하나의 디바이스와 어플리케이션을 인터페이싱하는 디바이스 드라이버를 초기화함으로써, 시스템의 부팅 속도를 향상시킬 수 있다.

Description

시스템의 부팅 방법{Method for Booting a System}
도 1은 본 발명의 일 실시예에 따른 부팅 시스템을 나타내는 개념도이다.
도 2은 본 발명의 일 실시예에 따른 시스템의 부팅 방법을 나타내는 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 부팅 시스템을 나타내는 개념도이다.
도 4는 본 발명의 다른 실시예에 따른 시스템의 부팅 방법을 나타내는 흐름도이다.
도 5는 본 발명의 또 다른 실시예에 따른 시스템의 부팅 방법을 나타내는 흐름도이다.
본 발명은 부팅 방법에 관한 것이며, 더욱 상세하게는 가상화(virtualization) 기술이 적용된 시스템의 부팅 방법에 관한 것이다.
가상화(virtualization) 기술이란 운영 체제(operating system)에 대하여 프로세서, 메모리, 네트워크, 디바이스, 그래픽스 기능 등의 하드웨어 자원을 가상화하는 것이다. 대부분의 운영 체제는 스스로가 컴퓨터의 자원을 독점적으로 점유하 고 있는 것을 전제로 동작한다. 따라서, 자원을 독점적으로 점유하는 경우 여러 운영 체제를 한대의 컴퓨터 상에서 동시에 실행시키는 것은 설치된 운영 체제 간의 경합을 부르기 때문에 일반적으로 불가능하다. 가상화 기술은 하드웨어와 운영 체제의 사이에 운영 체제에 대해 가상적인 하드웨어 인터페이스를 제공하는 것으로 한대의 컴퓨터 상에서 여러 운영 체제를 동시에 실행 가능하도록 한다.
종래의 가상화 기술이 적용된 시스템은 시스템에 전원이 인가되면 가상 머신 모니터(virtual machine monitor)를 초기화하고, 가상 머신 모니터의 초기화가 완료되면 게스트 운영 체제(guest operating system)를 초기화하며, 게스트 운영 체제에 대한 초기화가 완료되면 디바이스 드라이버(device driver)를 초기화함으로써 시스템에 대한 부팅을 수행하였다.
그러나, 상기 종래 기술에 따라 필요한 디바이스를 사용하기 위해서는 운영 체제에 대한 초기화가 완료되어야 하고, 필요한 디바이스 드라이버(device driver)에 대한 초기화가 완료되어야 하며, 디바이스를 사용하는 어플리케이션이 수행되는 과정이 순차적으로 이루어져야 한다. 특히, 리눅스 또는 윈도우 CE를 운영 체제로 사용하는 임베디드 시스템에서 상기 과정을 수행하는 경우 부팅하여 응용이 동작하는 데에는 상당한 시간이 소요된다. 그러나, 다수의 사용자는 시스템에 전원을 인가한 후 짧은 시간 내에 해당 기기를 사용하기를 원한다.
최근에는 하나의 임베디드 시스템에 다양한 기능을 탑재한 제품이 대중화됨에 따라 사용자는 불필요한 대기 시간을 갖게 된다. 예를 들어, 네비게이터(navigator)에 DMB 및 차량 후방 지원 카메라 기능이 포함된 기기의 경우 사용자 가 후방 지원 카메라의 기능만을 사용하고자 할 때에도, 사용자는 모든 기능의 동작 대기에 소용되는 시간을 갖게 된다.
이와 같이, 시스템의 초기화 단계에서 초기화 시간이 많이 걸리는 부분은 디바이스 드라이버뿐만 아니라 특정 어플리케이션 및 서비스인 경우가 많다. 그러한 시스템의 경우 시스템의 부팅 이후에도 특정 어플리케이션 및 서비스가 수행될 때까지 기다려야 하는 문제가 있다.
본 발명이 이루고자 하는 기술적 과제는 임베디드 시스템의 전체적인 부팅 속도를 향상시키는 부팅 방법을 제공하는 데 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 하드웨어, 적어도 하나의 게스트 운영 체제(guest operating system), 적어도 하나의 어플리케이션(application), 및 상기 하드웨어와 상기 게스트 운영 체제를 인터페이싱하는 가상 머신 모니터(virtual machine monitor)를 포함하는 시스템을 부팅하는 방법은 상기 시스템에 전원이 인가되면, 상기 가상 머신 모니터를 초기화하는 단계, 및 상기 가상 머신 모니터의 초기화가 완료되면, 상기 가상 머신 모니터가 상기 게스트 운영 체제, 및 적어도 하나의 디바이스와 상기 어플리케이션을 인터페이싱하는 디바이스 드라이버를 초기화하는 단계를 포함한다.
또한, 상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 하드웨어, 적어도 하나의 게스트 운영 체제(guest operating system), 적어도 하나의 어플리케이션(application), 및 상기 하드웨어와 상기 게스트 운영 체제를 인터페이싱하는 가상 머신 모니터(virtual machine monitor)를 포함하는 시스템을 부팅하는 방법은 상기 시스템에 전원이 인가되면, 상기 가상 머신 모니터를 초기화하는 단계, 및 상기 가상 머신 모니터의 초기화가 완료되면, 상기 가상 머신 모니터가 상기 게스트 운영 체제, 및 적어도 하나의 디바이스와 상기 어플리케이션을 인터페이싱하는 디바이스 드라이버를 포함하는 디바이스 드라이버 도메인(device driver domain)을 초기화하는 단계를 포함한다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일 치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 부팅 시스템을 나타내는 개념도이다.
도 1을 참조하면, 부팅 시스템은 하드웨어(hardware, 11), 가상 머신 모니터(virtual machine monitor, 12), 적어도 하나 이상의 게스트 운영 체제(guest operating system, 13), 및 적어도 하나 이상의 어플리케이션(application, 14)을 포함한다. 또한, 상기 부팅 시스템은 적어도 하나 이상의 디바이스 드라이버(15)를 포함한다.
가상 머신 모니터(12)는 하드웨어와 적어도 하나의 게스트 운영 체제를 인터페이싱하는 소프트웨어로서, 실제 하드웨어에서 실행되며 다중 프로그래밍을 지원하며, 가상 머신 모니터(12)의 상위 계층에는 다수의 가상 머신이 존재한다. 가상 머신 모니터(12)는 게스트 운영 체제(13) 및 디바이스 드라이버(15)를 초기화할 수 있다.
게스트 운영 체제(13)는 가상 머신 내부에 설치되는 운영 체제로서, 실제 컴퓨터에 설치되어 있는 운영 체제인 호스트 운영 체제(host operating system)과 구별된다. 게스트 운영 체제(13)는 가상 머신 모니터(12) 상에 존재하는 운영 체제로서, 어플리케이션(14)을 동작시킬 수 있다.
디바이스 드라이버(device driver, 15)는 게스트 운영 체제(13) 및 어플리케이션(14)과 하드웨어(11)의 인터페이스를 담당하는 프로그램으로, 제1 디바이스 드라이버(151) 및 제2 디바이스 드라이버(152)를 포함한다. 제1 디바이스 드라이버(151)는 가상 머신 모니터(12)에 존재하는 저 레벨(low level) 디바이스 드라이버로서 하드웨어(11)를 초기화할 수 있다. 또한, 제2 디바이스 드라이버(152)는 게스트 운영 체제(13)에 존재하는 고 레벨(high level) 디바이스 드라이버로서 디바이스를 동작시킬 수 있다.
도 2은 본 발명의 일 실시예에 따른 시스템의 부팅 방법을 나타내는 흐름도이다.
도 2를 참조하면, 시스템의 부팅은 하드웨어, 적어도 하나의 게스트 운영 체제(guest OS), 적어도 하나의 어플리케이션(application) 및 상기 하드웨어와 상기 게스트 운영 체제를 인터페이싱하는 가상 머신 모니터(virtual machine monitor, VMM)를 포함하는 시스템에 전원이 인가됨으로써 시작된다(21). 즉, 시스템에 전원이 인가되면, 시스템의 중앙 처리 장치(central processing unit, CPU) 및 메모리 등과 같은 기본적인 시스템 초기화가 수행된다.
그 다음, 가상적인 하드웨어 인터페이스를 제공하는 가상 머신 모니터(VMM)가 메모리에 로딩되며 초기화된다(22).
상기 초기화된 가상 머신 모니터(VMM)는 게스트 운영 체제(guest OS) 및 어플리케이션과 하드웨어의 인터페이스를 담당하는 디바이스 드라이버(device driver, DD) 및 가상 머신 모니터(VMM) 상에 생성되는 게스트 운영 체제(guest OS) 를 초기화시킨다(23).
구체적으로, 상기 가상 머신 모니터(VMM)는 한편으로는 상기 게스트 운영 체제(guest OS)를 초기화하면서 동시에 다른 한편으로는 상기 디바이스 드라이버(DD)에 대한 초기화를 수행할 수 있다. 즉, 상기 가상 머신 모니터(VMM)를 이용하여 상기 디바이스 드라이버(DD)의 초기화와 상기 게스트 운영 체제(guest OS)의 초기화는 독립적으로 병렬로 수행될 수 있다.
실시예에 따라, 상기 가상 머신 모니터(VMM)는 상기 게스트 운영 체제(guest OS)의 초기화 및 상기 디바이스 드라이버(DD)의 초기화를 순차적으로 수행할 수 있다. 다시 말해, 상기 가상 머신 모니터(VMM)는 상기 게스트 운영 체제(guest OS)를 먼저 초기화한 후에, 상기 디바이스 드라이버(DD)에 대한 초기화를 수행할 수 있다. 또한, 상기 가상 머신 모니터(VMM)는 상기 디바이스 드라이버(DD)를 먼저 초기화한 후에, 상기 게스트 운영 체제(guest OS)에 대한 초기화를 수행할 수 있다.
또한, 실시예에 따라, 시스템 내의 부가 디바이스 중에는 초기화 시간이 오래 걸리는 경우도 있고, 짧게 걸리는 경우도 있다. 상기 가상 머신 모니터(VMM)는 전체 디바이스 드라이버(DD)를 초기화할 수도 있지만, 전체 디바이스 드라이버(DD)를 초기화하는 대신에 초기화 시간이 소정의 값 이상인 특정한 디바이스 드라이버(DD)만을 초기화할 수도 있다.
그리고, 실시예에 따라, 상기와 같이 가상 머신 모니터(VMM)가 이미 초기화를 수행 중이거나 초기화가 완료된 디바이스 드라이버(DD)에 대해서는 게스트 운영 체제(guest OS)는 부팅 과정에서 그러한 디바이스 드라이버의 초기화 단계를 생략 할 수도 있다.
상기 디바이스 드라이버(DD) 및 게스트 운영 체제(guest OS)의 초기화가 종료되면, 상기 가상 머신 모니터(VMM)는 상기 게스트 운영 체제(guest OS)가 구동하고자 하는 디바이스에 해당하는 디바이스 드라이버(DD)의 상태를 상기 게스트 운영 체제(guest OS)에 전달한다(24). 상기 게스트 운영 체제(guest OS)는 전달받은 디바이스 드라이버(DD)의 상태를 기초로 상기 디바이스 드라이버(DD)를 동작시킨다.
즉, 게스트 운영 체제(guest OS)는 별도의 초기화 과정을 다시 수행하지 않고, 전달받은 디바이스 드라이버(DD)의 상태를 기초로 디바이스 드라이버(DD)를 구동한다. 게스트 운영 체제(guest OS)가 부팅되는 동안에 필요한 디바이스 드라이버(DD)들이 초기화될 수 있기 때문에, 게스트 운영 체제(guest OS)는 디바이스 드라이버(DD)의 초기화에 따른 추가 시간 없이 디바이스 드라이버(DD)를 구동할 수 있으므로, 사용자는 디바이스를 곧바로 동작시킬 수 있다.
실시예에 따라, 멀티 프로세서(multi-processor)를 가지는 시스템의 경우 각각의 프로세서에서 디바이스 드라이버(DD) 및 게스트 운영 체제(guest OS)를 병행하여 초기화시켜 부팅 시간을 줄일 수 있다.
도 3은 본 발명의 다른 실시예에 따른 부팅 시스템을 나타내는 개념도이다.
도 3을 참조하면, 부팅 시스템은 하드웨어(31), 가상 머신 모니터(virtual machine monitor, 32), 적어도 하나의 게스트 운영 체제(guest OS, 33), 적어도 하나의 디바이스 드라이버 도메인(device driver domain, 34) 및 적어도 하나의 어플리케이션(application, 35)을 포함한다. 어플리케이션(35)은 제1 어플리케이 션(351) 및 제2 어플리케이션(352)을 포함할 수 있다.
도 1의 부팅 시스템에서 디바이스 드라이버는 게스트 운영 체제(guest OS)의 일부분이었지만, 도 3의 부팅 시스템에서는 디바이스 드라이버들이 게스트 운영 체제(guest OS)와 독립적인 디바이스 드라이버 도메인을 구성한다.
가상 머신 모니터(32)는 하드웨어와 적어도 하나의 게스트 운영 체제를 인터페이싱하는 소프트웨어로서, 실제 하드웨어에서 실행되며 다중 프로그래밍을 지원하며, 가상 머신 모니터(32)의 상위 계층에는 다수의 가상 머신이 존재한다. 가상 머신 모니터(32)는 게스트 운영 체제(33)와 디바이스 드라이버 도메인(34)을 초기화할 수 있다.
게스트 운영 체제(33)는 가상 머신 내부에 설치되는 운영 체제로서, 가상 머신 모니터(12) 상에 존재하며, 어플리케이션(35)을 동작시킬 수 있다.
디바이스 드라이버 도메인(34)은 게스트 운영 체제(33) 및 어플리케이션(35)과 하드웨어(31)의 인터페이스를 담당하는 프로그램인 디바이스 드라이버로 구성되는 도메인으로, 하드웨어(31)를 초기화하는 저 레벨(low level) 디바이스 드라이버 및 디바이스를 직접 구동하는 고 레벨(high level) 디바이스 드라이버를 포함할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 시스템의 부팅 방법을 나타내는 흐름도이다.
도 4를 참조하면, 시스템의 부팅은 하드웨어, 적어도 하나의 게스트 운영 체제(guest OS), 적어도 하나의 어플리케이션(application), 및 상기 하드웨어와 상 기 게스트 운영 체제를 인터페이싱하는 가상 머신 모니터(virtual machine monitor, VMM)를 포함하는 시스템에 전원을 인가함으로써 시작된다(41). 즉, 시스템에 전원이 인가되면, 시스템의 중앙 처리 장치(CPU) 및 메모리 등과 같은 기본적인 시스템 초기화가 수행된다.
그 다음, 가상적인 하드웨어 인터페이스를 제공하는 가상 머신 모니터(VMM)가 메모리에 로딩되며 초기화된다(42).
상기 초기화된 가상 머신 모니터(VMM)는 게스트 운영 체제(guest OS) 및 어플리케이션과 하드웨어의 인터페이스를 담당하는 디바이스 드라이버 도메인(device driver domain, DDD)을 구성(construction) 및 초기화하고, 게스트 운영 체제(guest OS)를 초기화한다(43).
구체적으로, 상기 가상 머신 모니터(VMM)는 한편으로는 상기 디바이스 드라이버 도메인(DDD)을 구성하고 초기화하면서 동시에 다른 한편으로는 상기 게스트 운영 체제(guest OS)에 대한 초기화를 수행할 수 있다. 즉, 상기 가상 머신 모니터(VMM)을 이용하여 상기 디바이스 드라이버 도메인(DDD)의 초기화와 상기 게스트 운영 체제(guest OS)의 초기화는 독립적으로 병렬로 수행될 수 있다.
실시예에 따라, 상기 가상 머신 모니터(VMM)는 상기 디바이스 드라이버 도메인(DDD)을 구성하기 전에 상기 게스트 운영 체제(guest OS)를 초기화할 수 있다. 또한, 실시예에 따라, 상기 가상 머신 모니터(VMM)는 상기 디바이스 드라이버 도메인(DDD)을 구성하는 동안에 상기 게스트 운영 체제(guest OS)를 초기화할 수 있다. 그리고, 실시예에 따라, 상기 가상 머신 모니터(VMM)는 상기 디바이스 드라이버 도 메인(DDD)을 구성한 후에 상기 게스트 운영 체제(guest OS)를 초기화할 수 있다.
다시 말해, 상기 가상 머신 모니터(VMM)는 상기 디바이스 드라이버 도메인(DDD)에 대한 초기화를 직접 수행할 수 있고, 이와 동시에 또는 그 이후나 그 이전에 상기 게스트 운영 체제(guest OS)에 대한 초기화를 병행할 수 있다.
실시예에 따라, 상기 가상 머신 모니터(VMM)는 상기 디바이스 드라이버 도메인(DDD)에서 빠른 구동이 필요한 디바이스의 해당 드라이버를 선택적으로 먼저 구성하고 먼저 초기화함으로써 상기 디바이스를 짧은 시간 안에 사용자가 사용 가능한 상태로 만들 수 있다.
상기 디바이스 드라이버 도메인(DDD) 및 게스트 운영 체제(guest OS)에 대한 초기화가 완료되면, 상기 게스트 운영 체제(guest OS)는 구동하고자 하는 디바이스에 상응하는 가상 드라이버(virtual driver)를 통해 상기 초기화된 디바이스 드라이버 도메인(DDD)의 실제 드라이버를 구동한다(44).
구체적으로, 상기 가상 드라이버는 실제 하드웨어를 구동시키지 않고, 상기 디바이스 드라이버 도메인(DDD)의 실제 드라이버와 도메인간 통신(inter-domain communication)을 통해 디바이스를 구동할 수 있다.
이와 같이, 가상 머신 모니터(VMM)가 디바이스 드라이버 도메인(DDD)을 초기화하고, 게스트 운영 체제(guest OS)는 가상 드라이버를 이용하여 디바이스 드라이버와 연동하는 방식을 통해, 가상 머신 모니터(VMM)를 이용하는 환경에서 디바이스를 빠른 시간 내에 사용자가 사용 가능한 상태로 만들 수 있다.
실시예에 따라, 다중의 게스트 운영 체제(guest OS)의 동작 시, 디바이스 드 라이버 도메인(DDD)에서 다중의 운영 체제들이 가상 머신 모니터(VMM)에 의해 미리 초기화된 디바이스 드라이버들을 사용할 수 있으므로 게스트 운영 체제들이 드라이버에 대한 초기화 시간을 생략할 수 있다.
실시예에 따라, 멀티 프로세스(multi-processor)를 가지는 시스템에서 각각의 프로세서 상에서 디바이스 드라이버 도메인(DDD) 및 게스트 운영 체제(guest OS)를 병행하여 초기화시켜 부팅 시간을 줄일 수 있다.
도 5는 본 발명의 또 다른 실시예에 따른 시스템의 부팅 방법을 나타내는 흐름도이다.
도 5를 참조하면, 가상 머신 모니터(virtual machine monitor, VMM)는 가상적인 하드웨어 인터페이스를 제공하는 소프트웨어로서, 별도의 어플리케이션 도메인(application domain)을 가진다.
시스템의 부팅은 하드웨어, 적어도 하나의 게스트 운영 체제(guest OS), 적어도 하나의 어플리케이션(application) 및 상기 하드웨어와 상기 게스트 운영 체제를 인터페이싱하는 가상 머신 모니터(VMM)를 포함하는 시스템에 전원을 인가함으로써 시작된다(51). 즉, 시스템에 전원이 인가되면, 시스템의 중앙 처리 장치(CPU) 및 메모리 등과 같은 기본적인 시스템 초기화가 수행된다.
그 다음, 가상적인 하드웨어 인터페이스를 제공하는 가상 머신 모니터(VMM)가 메모리에 로딩되며 초기화된다(52).
상기 가상 머신 모니터(VMM)는 게스트 운영 체제(guest OS) 및 어플리케이션 및 하드웨어의 인터페이스를 담당하는 드라이버 도메인(driver domain), 상응하는 디바이스 드라이버를 이용하여 사용자가 필요로 하는 동작을 수행하는 어플리케이션들을 가지는 어플리케이션 도메인(application domain) 및 게스트 운영 체제(guest OS)에 대한 초기화를 수행한다(53).
구체적으로, 상기 가상 머신 모니터(VMM)에 사용자가 즉시 동작시키고자 하는 디바이스를 사용하는 어플리케이션 도메인(application domain)이 탑재되어 있는 경우, 상기 가상 머신 모니터(VMM)는 드라이버 도메인을 초기화하고, 시스템에서 가장 먼저 수행해야 하는 어플리케이션 도메인(application domain)을 초기화 한다. 다시 말해, 어플리케이션들은 운영 체제가 아닌 상기 가상 머신 모니터(VMM)에 의해 실행되며 제어될 수 있다. 한편, 상기 가상 머신 모니터(VMM)는 이와 동시에 상기 게스트 운영 체제(guest OS)에 대한 초기화를 수행한다.
실시예에 따라, 상기 가상 머신 모니터(VMM)는 상기 드라이버 도메인 및 어플리케이션 도메인을 초기화하기 전에 상기 게스트 운영 체제(guest OS)를 초기화할 수 있다. 또한, 상기 가상 머신 모니터(VMM)는 상기 게스트 운영 체제(guest OS)를 초기화한 후에 상기 드라이버 도메인 및 어플리케이션 도메인을 초기화할 수 있다.
상기 게스트 운영 체제(guest OS)의 초기화가 종료되면, 상기 가상 머신 모니터(VMM)는 상기 게스트 운영 체제(guest OS)가 앞서 초기화된 디바이스 드라이버들을 구동할 수 있도록 한다(54).
이때, 상기 가상 머신 모니터(VMM)의 어플리케이션 도메인에서 동작 중인 어플리케이션이 있는 경우에 상기 게스트 운영 체제(guest OS)에서도 이미 동작 중인 기존의 어플리케이션에 해당하는 새 어플리케이션을 수행해야 하는 경우에는 기존의 어플리케이션의 기능을 그대로 이전(migration)할 수 있다. 물론, 기존의 어플리케이션을 이전하지 않고 기존의 어플리케이션을 언로딩(unloading)하여 상기 게스트 운영 체제(guest OS)가 새로 로딩하여 수행할 수도 있다.
실시예에 따라, 멀티 프로세서(multi-processor)를 가지는 시스템에서 해당 어플리케이션에 대한 초기화를 별도의 프로세서에서 각각 수행하도록 하여 초기화 속도를 향상시킬 수 있다.
본 발명은 상술한 실시예에 한정되지 않으며, 본 발명의 사상 내에서 당업자에 의한 변형이 가능함은 물론이다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드디스크, 플로피디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
상술한 바와 같이 본 발명에 의한 시스템의 부팅 방법에 의하면, 가상화 기술이 적용된 시스템에서 특정 디바이스에 대한 초기화가 수행되는 동안 필요한 다 른 운영 체제 및 서비스가 가상 머신 모니터에 의하여 초기화됨으로써 전체적인 부팅 속도를 향상시킬 수 있다.
또한, 본 발명에 의한 시스템의 부팅 방법에 의하면, 가상화 기술이 적용된 시스템에서 특정 어플리케이션이 게스트 운영 체제와 같이 별도의 도메인에서 수행됨으로써 전체적인 부팅 속도를 향상시킬 수 있다.
예를 들어, 네비게이터(navigator)에 DMB 및 차량 후방 지원 카메라 기능이 포함된 기기의 경우 후방 지원 카메라의 기능만을 사용하고자 할 때에는 후방 지원 카메라 기능의 동작을 위한 어플리케이션이 별도의 도메인에서 수행될 수 있도록 하여 빠른 시간 내에 필요한 동작을 수행할 수 있다.
결과적으로 시스템에서 부팅 속도의 향상에 따라 부팅 시간이 감소함으로써, 사용자가 기기에 전원을 인가하고 부팅이 완료될 때까지 소요되는 시간이 감소됨에 따라 사용자가 체감적으로 기기 성능이 향상을 느낄 수 있게 되고, 그에 따라 기기 성능에 대한 신뢰성 증가를 이끌어낼 수 있다.
또한, 멀티 프로세서를 사용하는 것과 같은 물리적인 자원의 증가에 따른 추가적인 비용 없이 시스템의 부팅 속도를 향상시킬 수 있다.

Claims (5)

  1. 하드웨어, 적어도 하나의 게스트 운영 체제(guest operating system), 적어도 하나의 어플리케이션(application), 및 상기 하드웨어와 상기 게스트 운영 체제를 인터페이싱하는 가상 머신 모니터(virtual machine monitor)를 포함하는 시스템을 부팅하는 방법에 있어서,
    상기 시스템에 전원이 인가되면, 상기 가상 머신 모니터를 초기화하는 단계; 및
    상기 가상 머신 모니터의 초기화가 완료되면, 상기 가상 머신 모니터가 상기 게스트 운영 체제, 및 적어도 하나의 디바이스와 상기 어플리케이션을 인터페이싱하는 디바이스 드라이버를 초기화하는 단계를 포함하는 것을 특징으로 하는 부팅 방법.
  2. 제1항에 있어서,
    상기 게스트 운영 체제 및 상기 디바이스 드라이버의 초기화가 완료되면, 상기 가상 머신 모니터는 상기 게스트 운영 체제가 구동하고자 하는 디바이스에 해당하는 디바이스 드라이버의 상태를 상기 게스트 운영 체제에 전달하는 단계를 더 포함하는 부팅 방법.
  3. 하드웨어, 적어도 하나의 게스트 운영 체제(guest operating system), 적어 도 하나의 어플리케이션(application), 및 상기 하드웨어와 상기 게스트 운영 체제를 인터페이싱하는 가상 머신 모니터(virtual machine monitor)를 포함하는 시스템을 부팅하는 방법에 있어서,
    상기 시스템에 전원이 인가되면, 상기 가상 머신 모니터를 초기화하는 단계; 및
    상기 가상 머신 모니터의 초기화가 완료되면, 상기 가상 머신 모니터가 상기 게스트 운영 체제, 및 적어도 하나의 디바이스와 상기 어플리케이션을 인터페이싱하는 디바이스 드라이버를 포함하는 디바이스 드라이버 도메인(device driver domain)을 초기화하는 단계를 포함하는 것을 특징으로 하는 부팅 방법.
  4. 제3항에 있어서,
    상기 게스트 운영 체제 및 상기 디바이스 드라이버 도메인의 초기화가 완료되면, 상기 게스트 운영 체제는 구동하고자 하는 디바이스에 상응하는 가상 드라이버를 통해 상기 초기화된 디바이스 드라이버 도메인의 실제 드라이버를 구동하는 단계를 더 포함하는 부팅 방법.
  5. 제3항에 있어서,
    상기 가상 머신 모니터는 어플리케이션 도메인(application domain)을 가지며, 상기 디바이스 드라이버 도메인의 초기화가 완료되면, 사용자가 즉시 사용하고자 하는 디바이스를 이용하는 어플리케이션이 포함된 도메인을 초기화하는 단계를 더 포함하는 것을 특징으로 하는 부팅 방법.
KR1020070019896A 2007-02-27 2007-02-27 시스템의 부팅 방법 KR20080079549A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070019896A KR20080079549A (ko) 2007-02-27 2007-02-27 시스템의 부팅 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070019896A KR20080079549A (ko) 2007-02-27 2007-02-27 시스템의 부팅 방법

Publications (1)

Publication Number Publication Date
KR20080079549A true KR20080079549A (ko) 2008-09-01

Family

ID=40020461

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070019896A KR20080079549A (ko) 2007-02-27 2007-02-27 시스템의 부팅 방법

Country Status (1)

Country Link
KR (1) KR20080079549A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013419B1 (ko) * 2008-08-29 2011-02-14 주식회사 안철수연구소 시스템 보호 장치 및 방법
WO2012025361A1 (en) * 2010-08-23 2012-03-01 International Business Machines Corporation Enabling control to a hypervisor in a cloud computing environment
US9886295B2 (en) 2009-12-21 2018-02-06 Samsung Electronics Co., Ltd. Setting server operating system as main domain to provide integrated user interface for a plurality of client operating system set as sub-domains

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013419B1 (ko) * 2008-08-29 2011-02-14 주식회사 안철수연구소 시스템 보호 장치 및 방법
US9886295B2 (en) 2009-12-21 2018-02-06 Samsung Electronics Co., Ltd. Setting server operating system as main domain to provide integrated user interface for a plurality of client operating system set as sub-domains
WO2012025361A1 (en) * 2010-08-23 2012-03-01 International Business Machines Corporation Enabling control to a hypervisor in a cloud computing environment
GB2497458A (en) * 2010-08-23 2013-06-12 Ibm Enabling control to a hypervisor in a cloud computing environment
US8904159B2 (en) 2010-08-23 2014-12-02 International Business Machines Corporation Methods and systems for enabling control to a hypervisor in a cloud computing environment
GB2497458B (en) * 2010-08-23 2018-12-19 Ibm Enabling control to a hypervisor in a cloud computing environment

Similar Documents

Publication Publication Date Title
US10078454B2 (en) Access to storage resources using a virtual storage appliance
CN106537340B (zh) 虚拟化信息操纵系统的输入/输出加速设备和方法
JP5599804B2 (ja) 仮想ストレージの割り当て方法
US8830228B2 (en) Techniques for enabling remote management of servers configured with graphics processors
KR102269452B1 (ko) 컨텐츠 변환 없는 컴퓨팅 디바이스에서의 다중 운영 체제 환경들의 지원
US20120054740A1 (en) Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments
US20070011444A1 (en) Method, apparatus and system for bundling virtualized and non-virtualized components in a single binary
US10620963B2 (en) Providing fallback drivers for IO devices in a computing system
US10235195B2 (en) Systems and methods for discovering private devices coupled to a hardware accelerator
US9557980B2 (en) Seamless application integration apparatus and method
US8402461B2 (en) Switching between direct mode and indirect mode for virtual machine I/O requests
US20170147409A1 (en) Configuration of floating node boundaries
CN110968392B (zh) 一种升级虚拟化模拟器的方法和装置
US20180335956A1 (en) Systems and methods for reducing data copies associated with input/output communications in a virtualized storage environment
US20190391835A1 (en) Systems and methods for migration of computing resources based on input/output device proximity
US11144326B2 (en) System and method of initiating multiple adaptors in parallel
CN117389694B (zh) 基于virtio-blk技术提升虚拟存储IO性能的方法
KR20080079549A (ko) 시스템의 부팅 방법
US9959842B2 (en) On-screen display at thin client
US11797329B2 (en) Pausing deployment of a virtual machine prior to a machine name dependency
US10789082B2 (en) Execution of multiple operating systems without rebooting
US20230195378A1 (en) Smart network interface controller host storage access
US20230205719A1 (en) Dual-mode sideband interface for smart network interface controller
US20230300089A1 (en) Serial console transport offload with smart network interface controller
US20230205671A1 (en) Multipath diagnostics for kernel crash analysis via smart network interface controller

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination