여태까지 배운 것은 물리적으로 존재하는 컴퓨터입니다. 논리 회로, CPU, I/O Device, 버스 등 이것들은 실제로 존재하는 것들입니다. 이번 포스팅에서 배울 것은 컴퓨터가 만들어내는 가상의 컴퓨터인 "가상 머신"에 대해서 배워보고 여러가지 가상 머신의 종류들에 대해 알아보겠습니다.
가상 머신 (Virtual Machines)
가상 머신은 최근 "가상화"라는 이름으로 각광받고 있습니다. 이는 다양한 운영체제(OS)에서 프로그램을 개발하거나 테스트를 해야할 때 활용 가능합니다. 즉, 가상 머신을 통해 OS별로 운영체제 이미지를 올려 가상 머신 상에서 프로그램을 테스트할 수 있습니다.
이를 사용하면 가상화 솔루션 비용만으로 프로그램 개발이 가능하기에 많은 비용 절감이 가능하고 가상 머신을 이용할 시 시스템 자원들에 대한 보호가 이루어지기에 높은 수준의 보안을 제공받을 수 있습니다.
가상 머신의 종류
지금부터 여러 가상 머신의 종류에 대해서 알아보도록 하겠습니다.
NOX: 안드로이드 가상 머신
NOX(녹스)는 PC에서 수행되는 안드로이드 에뮬레이터입니다.
VirtualBox
오라클 사의 가상머신 소프트웨어로 기본 운영체제인 "호스트 OS" 위에 가상 OS인 "게스트 OS"를 올리는 방식입니다. 하나의 물리적인 하드웨어 위에 호스트OS가 있고 그 호스트 OS 위에 여러 게스트 OS를 올릴 수 있습니다. 현존하는 거의 대부분의 OS (Window, Mac, Linux 등)를 사용할 수 있습니다.
Parallels Desktop
Parallels사의 MacOS 전용 가상화 프로그램입니다. MacOS 사용자들이 주로 윈도우 운영체제를 사용하고자 할 때 주로 사용합니다.
자바 가상 머신 (JVM)
자바 가상 머신은 Java 언어로 개발한 프로그램을 컴파일하여 만들어지는 바이트 코드를 실행시키기 위한 가상머신입니다. Java의 컴파일러는 자바 소스 프로그램을 컴파일할 때, 하드웨어 상에서 수행 가능한 기계어를 바로 생성하지 않고 "자바 바이트 코드"를 생성하는데, 이 자바 바이트 코드가 자바 가상 머신(JVM) 상에서 수행됩니다.
자바 가상 머신의 규칙을 지킨다면 자바 프로그램은 운영체제의 종류에 상관없이 동작할 수 있습니다.
https://www.oracle.com/java/technologies/downloads/#java8
댓글