본문

가상머신과 컴파일

반응형

# 가상머신과 컴파일


# 가상머신

일반적으로 프로그램이 실행되는 구조는

1) 하드웨어를 기반으로 2) 운영체제가 3) 프로그램을 동작을 하는 구조를 갖추고 있다.


그러나 자바 프로그램이 실행되는 구조는 다르다.

1) 하드웨어를 기반으로 2) 운영체제가 3) 자바 가상머신(=소프트웨어)을 통해 4) 프로그램을 동작하는 구조를 갖추고 있다.


- JAVA 가상머신을 통해 프로그램을 동작하는 이유

자바 프로그램을 운영체제에 상관없이 실행시키기 위함이다.

프로그램이라는 것은 운영체제에 따라서 달리 구현될 수 밖에 없다.

동일한 기능의 워드프로그램이라도 Linux에서 동작시키려면 Linux를 기반으로 다시 구현해야한다.

즉, 운영체제 별로 존재하는 차이점을 가상머신이 다 해결해준다.


그렇다고해서 Windows에 있는 가상머신을 Linux에서는 사용 할 수 없다.

결론은 운영체제 별로 존재하는 가상머신 설치만 다르게하면 응용프로그램 동작은 신경쓰지 않아도 된다.


- OS에 따라 프로그램을 달리 구현해야 하는 이유 (가상머신이 필요한 이유)

프로그래밍 언어가 동일할지라도, 운영체제에 따라서 완성하는 방식이 다른, 일부 기능이 존재하기 때문이다.

즉, 키보드, 마우스 관련 기능을 하나의 프로그램 코드를 가지고 둘 이상의 운영체제에서 실행시키는 것은 거의 불가능하다.


# 컴파일

자바 컴파일러(java.exe)는 소스 코드를 가상 머신이 이해 할 수 있는 '자바 바이트 코드'로 변환해주는 프로그램이며,

자바 바이트 코드는 코드 명령어 크기가 1byte이기 때문에 붙여진 이름이다.


- javac.exe와 java.exe의 역할

Hello.java -> javac.exe에 의한 컴파일 -> Hello.class -> java.exe -> 가상머신





- 출처 및 참고자료 : http://smilennv.blog.me/220443312153

반응형

공유

댓글