Michael Hill
mdhillca@gmail.com 2012
Baptiste Mille-Mathias
baptistem@gnome.org 2012
조성호
shcho@gnome.org 2014-2019.

# 박스에서 활용하는 기술은 무엇입니까?

박스에서는 사용자가 가상 머신을 쉽게 관리하고 원격 머신에 연결할 수 있도록 qemu-kvm, libvirt-glib, spice-gtk를 사용합니다.

# KVM과 QEMU

QEMU는 머신 에뮬레이터이자 가상화 수단입니다. 머신 에뮬레이터로서 다른 머신에서(예: 여러분의 PC) 어떤 머신(예: ARM 보드)을 대상으로 OS와 프로그램을 실행할 수 있습니다. 가상화 수단으로서 QEMU는 호스트 CPU에서 KVM을 사용하여 게스트 코드를 바로 실행하여 실제 자체 성능에 가깝게 동작합니다.

KVM (커널 기반 가상 머신)은 리눅스 커널 모듈이며 사용자 영역 프로그램이 다양한 프로세서의 하드웨어 가상화 기능을 활용하도록 합니다.

# libvirt

libvirt는 원격 호스트의 가상머신을 안전하게 다루고(만들고, 삭제하고, 수정) 수정하는 툴킷입니다.

libvirt-glib은 libvirt를 래핑하여 glib 기반 프로그램에 안성맞춤인 고수준 객체지향 API를 제공합니다.

# SPICE

독립 컴퓨팅 환경용 단순 프로토콜 SPICE는 네트워크 너머 원격 데스크톱에 접근하고 제어하는 시스템입니다.

SPICE 서버는 QEMU 라이브러리 안에서 실행하는 라이브러리입니다. 주로 클라이언트 연결 인증, 게스트 운영체제의 그래픽 출력의 클라이언트 방향 전달, 클라이언트로부터 게스트로의 사용자 입력(마우스, 키보드) 전달의 역할을 수행합니다.

spice-gtk는 게스트 운영체제에 뷰를 제공하는 SPICE 클라이언트입니다.

# VNC

가상 네트워크 컴퓨팅 VNC은 원격 디스플레이용으로만 활용하며, 잘 알려진 프로토콜이지만 제한적이고 느립니다.