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 에 의해서 표준화되어있다.
'공부하는 하스씨 > 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 |