-
자바 컴파일러와 JVMJAVA 2019. 7. 4. 23:04
컴파일러는 뭐냐.
특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 말한다.
자바 컴파일러란.
자바 소스코드를 실행하려면. 기계가 알아 들을수 있는 bytecode로 변환을 시켜야한다.
변환하기전의 원본 코드인 source code를, 기계에서 실행할 수 있도록 bytecode로 변환 시키는게
자바 컴파일러의 일이다.
JVM (Java Virtual Machine)
JVM은 자바 컴파일러가 변환한 bytecode를 실행시키는 프로그램이다.
이 프로그램은 bytecode를 읽어서 OS의 코드를 호출하는 일을 한다.
실행되는 과정
1.JVM이 target code를 로딩한다.
*target code : source code를 기계가 알아 들을 수 있는 bytecode로 변환한 코드를 target code 라고 한다.
특정기계가 없으면 실행 할 수가 없다
2.필요한 기능을 OS에게 호출하면
3.OS가 HW를 제어함.
한마디로, 자바 컴파일러가 컴파일한 target code는 os에게 바로 접근할 수 없다.
반드시 JVM을 거쳐야 한다.(위에 서술 했듯이 특정 기계가 없으면 실행할 수가 없다.)
1.JVM의 기능을 호출하는 target code를 JVM이 로딩하면,
2.JVM은 다시 OS의 기능을 호출하고,
3.다시 OS는 HW를 제어하는 것이다.
메모장과 비교해보자.
메모장은 윈도우 운영체제의 native app이므로, natvie code로 되어 있다.
*native code는 특정 os의 기능을 바로 호출하는 코드로 '기계어 코드'라고 부름.
당연히 jvm 없어도 실행 가능.
바로 OS기능을 호출하고 OS는 HW를 제어한다.
또 다른 예로 Adobe Flash Player가 있다.
웹사이트에서 영상을 보려고 할 때, 컴퓨터에 Flash Player가 설치되어 있지 않으면
동영상을 볼 수 없는 일을 경험해본적 있을 것이다.
해당 동영상은 Flash Player라는 실행 프로그래만 읽어들일 수 있는 targetcode로 되어 있기 떄문에
Flash Player가 없이는 실행되지 않는다.
*위 글은 아래 블로그의 글을 개인공부겸 따라 쓴 글입니다.
https://wanzargen.tistory.com/9?category=700063
'JAVA' 카테고리의 다른 글
JVM에 대하여 (0) 2021.04.09 JVM 메모리 구조 (0) 2021.04.08 자바스크립트 객체 복사하는 방법 (0) 2019.08.06 자바에서 객체 파일에 저장하고 읽는 방법 (0) 2019.07.21 jar파일이란 (0) 2019.07.02