본문 바로가기
공부하는 하스씨/Java

KVM

by 박하스. 2008. 11. 10.
728x90
반응형


KVM은 VM 자체를 줄이기 위해서 ByteCode Verification 을 VM 에 넣지 않고 빼버렸다.

CPU는 16bit/16MHz processor 에 타겟팅 되어있다.

 KVM 을 탑재한 HandHeld Device 은 CoreAPI 와 Heap Memory 을 위한 Static Memory 가 1 ~ 4 MB 정도 되어야 한다.

Heap Size 는 64KB로 되어 있고, Porting 할 때에 HandHeld Device 의 용량에 맞추어 HeapSize 를 4MB 정도까지 늘리는것도 가능하다.

데이터를 위해서는 64 ~ 96 KB 정도의 용량이 필요한데 Palm 의 경우에는 Palm OS 영역을 위해서 20KB 정도가 메모리가 필요하고, 네트워크를 위해서 50KB 정도가 필요하다
지금 20 여개의 회사에서 현재 KVM 을 Porting 하고 있다.

KVM 의 Source code 는 comments을 포함해서 16,000 라인 정도이고 comments 을 제외하면 8,000 라인 정도를 차지한다.

KVM 의 성능은 JDK1.1의 JIT Compiler 를 사용하지 않을 경우에 30% ~ 80% 정도의 실행속도는 낸다.

KVM 의 설계 목적은 크기가 작고 표준화된 자바 VM이 최적화된 크기로 제작되는것이였다. 이를 위해서 VM 자체의 크기를 줄이고,
이식성과 확장성 그리고 Clean Source code 이 정책을 사용하였다.

KVM 은 일반적은 class file 을 사용하고, Standard Java class loading 을 지원한다.
기본 Word 는 32bit 의 Java bytecode full set 을 지원한다.

또한 멀티쓰레드와 가비지 컬렉션을 지원한다.

그리고 NullPointException 과 IndexOutofBoundsException 의 Runtime Exception 은 제거되었다.

KVM 에서는 J2SE 의 Core API 인 Java.lang, java.util, java.io, java.net 의 서브셋을 가지고 있고, AWT, RMI, JINI, Java Native Interface 부분은 제거하였다.

또한 TCP/IP Socket 은 Palm 의 Netlib 라이브러리로 구현되었다.

J2ME 의 라이브러리는 실제로 필요한 JDK의 축소된 classes 로 되어있다.

Small Device 에 맞는 간단한 UI Frame Work 을 제공하고, 필요할 경우에만 플랫폼 Native function 을 제공한다.

이들 라이브러리들은 CLDC 와 관련된 스펙의 일부인 Java Community Process 에 의해서 표준화되어있다.

728x90
반응형

'공부하는 하스씨 > Java' 카테고리의 다른 글

MAT 사용법  (0) 2011.06.22
Chapter 7 : Graphics APIs(1)  (0) 2009.03.05
FP, PBP, PP  (0) 2008.11.10
HAVi 의 정의  (0) 2008.10.29
Eclipse + Tomcat + Lomboz 연동.  (0) 2008.08.27