OS-HW관계 / 자바실행과정

이소연's avatar
Aug 03, 2024
OS-HW관계 / 자바실행과정
 

OS와 HW의 관계

* OS : 운영체제 EX) 리눅스, Window, mac 등 * HW : 하드웨어
-OS와 HW는 2진수로만 소통
-우리가 입력장치(키보드, 마우스, 마이크 등)으로 명령→OS는 Shell로 가서 우리 명령을 이진수로 변환,HW에 입력(EX>PowerShell)
* shell : os에게 명령을 내리는 프로그램 -저차원 언어, shell로 프로그램 짜는 건 어려움. (+ 대표 고차원 언어 : c언어)
 
.class / java 채현 사진 부분은 모르겠음-v
 

자바프로그램 실행과정-v

notion image
C언어는 CPU나 운영체제에 따라 따로 만들어야 함.(OS에 종속)
EX) 윈도우에서 컴파일된 실행파일 → 리눅스에서 실행 X
-c언어는 네이티브 코드

JVM(Java virtual Machine)

: 실제 존재하는 컴퓨터 x, 가상컴퓨터를 시뮬레이션하는 소프트웨
.class 파일이 가상머신 JVM을 통해 OS가 이해할 수 있는 언어로 변환/컴파일 됨.
(+ . JAVA는 인간이 이해하는 언어)
JAVA는 어떤 운영체제든 다 연동 가능
notion image
💡
자바는 하이브리드 언어 :컴파일, 인터프린트 모두 有
1) 컴파일 : 전체 미리 받아서 통으로 번역, 속도가 인터프린트보다 더 빠름(사전 컴파일) 2) 인터프린트 : 동시통역, 실시간번역, 컴파일X
*바이트 코드 : 가상기계에서 실행되는 코드, 특정 cpu에 의존x -바이트 코드 안에는 가상기계를 위한 기계어(ex) 010101)가 있음.
* 네이티브 코드 : 운영체제에서 바로 돌아가는 코드 ex) c언어 (단, 안드로이드에서는 자바가 네이티브코드) ~ 바이트코드보다 네이티브 코드가 당연 빠름 ,but 요즘 발전하여 차이 적음
java 프로그램 1. 클래스의 선언으로 시작 -클래스 안의 모든 변수,함수를 선언해야 함. 2. main()메소드부터 실행
 

특징

-자바는 C언어보다 고차원적 언어.
-하이브리드 언어
-JVM 덕에 한 번 만들면 다양한 OS에 호환 가능
 
Share article

Coding's note