가상화와 에뮬레이션, hypervisor, container
일단 에뮬레이션(Emulation)과 가상화(Virtualization)에 대해 알아보자. 에뮬레이션과 가상화 둘다 가상적으로 특정 시스템이 돌아갈 수 있게 하는 것이지만, 에뮬레이션은 기존의 리소스나 하드웨어를 이용하지 않고 소프트웨어적으로 구현하여 특정 시스템을 돌릴 수 있게 하는 것이다. 반면 가상화는 기존의 리소스나 하드웨어를 활용하여 시스템을 돌릴 수 있게 한다. 따라서 성능적인 면에서 가상화가 에뮬레이션보다 뛰어나지만, 가상화가 에뮬레이션보다 범위가 한정되있다고 할 수 있다. 에뮬레이션을 이용하는 것으로는 대표적으로 bochs, qemu가 있다. https://powermore.dell.com/technology/emulation-virtualization-whats-difference/ 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼을 하이퍼바이저(hypervisor)라고 하는데, 두가지로 분류할 수 있다. 첫 번째는 native이다. 이는 호스트OS없이 VMM이 하드웨어 위에서 직접 동작하고, 그 위에 여러개의 가상머신(OS+APP)이 동작하는 방식이다. 즉 하드웨어를 가상화하게 된다. VMware ESXi가 이에 해당한다. 이 경우에는 물리적cpu와 가상머신의 cpu가 architecture가 같아야하는등 하드웨어상의 제약이 생긴다. hosted에 비해 당연히 빠르다. 두 번째는 hosted이다. 이는 호스트OS 위에서 VMM이 동작하는 방식이다. 따라서 이 경우는 물리 컴퓨터의 하드웨어를 에뮬레이트하게 된다. 즉 하드웨어를 에뮬레이션하게 된다. 예를 들면, VMware WorkStation, VirtualBox, Qemu등이 이에 해당한다. 이 경우 호스트pc와 가상머신의 cpu architecture가 같냐 다르냐에 따라 속도가 크게 차이난다. (cpu를 에뮬레이트해야하냐 안해야하냐의 차이가 나므로..) https://superuser.com/questi...