티스토리 툴바



2009/06/11 05:50

My Dream Hypervisor

 

  최근 프로그래밍에 대한 열의가 부쩍 줄어든 것 같아 다시 한번 마음을 다잡고 전부터 생각해 두던 Hypervisor를 만들어 보기로 하였습니다. 제가 성격이 급해서 그런지 OS 부팅 타임을 견디기가 힘들더군요. 또한 VMware나 VirtualBox를 사용하면서 가상 머신이 잡아 먹는 높은 CPU 점유율도 마음에 안들었습니다. 그래서 그동안 제가 이상적으로 생각해오던 Hypervisor를 만들어 볼까 합니다. 이 작업은 혼자서 할 예정이고 상업적인 목적으로 쓸 계획이 없기때문에 리눅스 커널이나 VirtualBox등의 소스들을 많이 참고할 예정입니다. (순전히 개발시간을 단축하기 위해 ^^;)

 

앞으로 구현될 Hypervisor의 모습은 다음과 같습니다.

 

  • 컴퓨터 전원이 들어온 후 바이오스 코드들이 모두 수행되고 1초 안에 Hypervisor 부팅 완료

  • Hypervisor 부팅을 끝마친 직후에는 어떤 Guest OS도 동작하지 않습니다.

  • GUI환경을 통해 Guest OS들을 선택하여 부팅하도록 합니다.
    (여기까지 보면 일반적인 부트로더와 차이가 없어보이지만 사용자가 이 상태에서 Guest OS를 설치할 수 있습니다.)

  • Hypervisor는 각 Guest OS들의 스냅샷을 저장할 수 있도록 하여 Instant booting이 가능하도록 합니다.

  • 전가상화만을 염두에 두고 개발할 목적이기 때문에 Intel-VT나 AMD-V지원이 필수적입니다.

  • 최근 트렌드인 Multi-Core, 64Bit CPU환경을 지원합니다.

  • 가상 머신 수행 중 원하는 가상머신의 Performance를 높이기 위하여 특정 가상머신에게 CPU를 모두 부여할 수 있습니다. 예를 들어 Windows, Linux, Mac OS가 동작하고 있는 도중에 Windows에서 Resource 점유율이 높은 게임을 하고 싶은 경우, 해당 가상머신에게 모든 CPU를 부여하여 동작 시킵니다. 이때 다른 OS는 모두 Paused 또는 Suspended됩니다. 이후 All-in 모드라고 칭하도록 하겠습니다. 순전히 제맘대루..^^; (Domain-0로써 동작하는 OS를 두지 않습니다.)

  • Physical Hardware들의 가상화를 지원합니다. 

 

이상이 제가 앞으로 구현하게 될 Hypervisor의 모습이고,물론 갈길이 멀지만  Intel-VT관련해서 학습할 겸 차근차근 해볼까 합니다. ^^

 

이 글은 스프링노트에서 작성되었습니다.

Trackback 0 Comment 0