首页 | 注册 | 登陆
首页 >> 技术专栏 >> java文章 >> java基础 

KVMPorting指南⑴


作者java 来源java 加入时间:2006年02月21日
摘要:
KVMPorting指南⑴
>英文原名:KVM Porting Guide (KVM 1.0.3)

   翻译:Ding
 
 E-mail:[email protected]
 
   本文是j2me_cldc-1_0_3附带的KVM Porting Guide的翻译,对移植KVM到特定

的平台上很有参考价值…


转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info3/a_0ec9d96c6b8147c4.htm




KVMPorting指南⑴


站点:爱心种子小博士 关键字:KVMPorting指南⑴




KVM Porting 指南⑴
>英文原名:KVM Porting Guide (KVM 1.0.3)

   翻译:Ding
 
 E-mail:[email protected]
 
   本文是j2me_cldc-1_0_3附带的KVM Porting Guide的翻译,对移植KVM到特定

的平台上很有参考价值。原书有100多页,我尽量把它译完,但时间有限,能否完

成我也无法确保。希望对有志于port KVM的朋友有所帮助。如果有什么错漏之处,

或是您觉得不妥的地方,欢迎您email我,讨论商榷。

如您要转贴,请保留原出处,并勿做删改。谢谢。    


1。KVM简介

   KVM(K Virtual Machine 或称 KJava Virtual Machine)是一种小巧,易于

移植的JVM,被专门设计用来支持小型的,资讯有限的设备,例如手机,PDA等。

   KVM团队的最高设计目标是开发一个最小的且完整"的JVM,它必须能提供对

核心Java语言的支持并能运行在资源有限的设备上(例如只有几十到几百Kb)。

更规范的说, KVM的设计要点有:

   ·小型,VM的核心只占据大约60Kb的静态内存空间。(根据不同的平台或编译
   
    选项有所不同)

   ·轻巧易于移植。

   ·模块化,易于定制。

   ·尽量做到既完整又快速。

   KVM是用C语言实现的,因此可以方便的移植到许多平台上,只要你能找到该平

台的C compiler。KVM是J2ME的一部分,KVM通常被作为CLDC和MIDP构架的底层实现。

KVM是由sun实验室最初的Spotless系统发展而来。(注:sun最初提出KJava是用来

开发palm os的,那时Palm上的Kjava程序称为Spotlet,类似于今天的MIDlet。)


2。KVM1.0.2与KVM1.0.3的区别

主要包括:
   
   ·性能优化-重新设计了显示/同步操作(monitor/synchronization),优化了
   
    JavaCodeCompact工具的代码产生方式。优化了字符串操作(string)。

   ·增强了事件(even)处理系统,异步输入输出模式(asynchronousI/O)以及
   
    networking库(用来使CLDC和MIDP联系的更加紧密)。

   ·增强了Java级的debug接口,预检验器(preverifier)和紧缩的垃圾收集器
   
   (garbage collector)。

   ·更有效的JAM(Java Application Manager)。

   ·Windows/Unix版的KVM可以在命令行中调整堆(heap)的大小。


3。对编译器的要求

   你的C compiler 必须兼容ANSI-C(这好像不算什么要求^-^)你的compiler必

须定义基本数据类型如下:

表1-基本数据类型
------------------------------
Type                Description
------------------------------
char                8-bit

signed char         8-bit

unsigned char       8-bit

short               signed ,16-bit

unsigned short      unsigned 16-bit

int                 signed,16 or 32 bits.

unsigned int        16 or 32 bits.

long                signed, 32-bit

unsigned long       32-bit(注:注意在Java语言里long为64bit)

void *              32-bit pointer
------------------------------

   如果你的J2ME configuration或profile支持浮点数,那你的编译器还必须支持

浮点类型如下:

----------------------
Type      Description
----------------------
float     32-bit floating point value

double    64-bit floating point value
----------------------

   我们的参考实现(referenceimplementation)只在指针长度为32bit的机器上做

了测试,我们并不能保证在具有长指针(far pointer)或其他类型的指针的平台上

运行。

下列compiler已被证实可以成功编译KVM:

■Sun C Compiler 5.0, 5.2 and 5.3 on Solaris,

■GNU C 2.91.66 (egcs-1.1.2) compiler on Red Hat Linux,

■GNU C 2.95.2 compiler on Solaris and Windows NT 4.0,

■Microsoft Visual C++ 6.0 Professional on Windows NT 4.0 and Windows2000


----------待续------------




发布人:love
→ 推荐给我的好友 → 报告错误链接
上篇文章:MySQL数据库技术(18)
下篇文章:使用Hibernate来实现持久对象
〖文章打印〗
〖关闭窗口〗
发表评论
查看评论
中“KVMPorting指南⑴”相关内容 中“KVMPorting指南⑴”相关内容
中“KVMPorting指南⑴”相关内容 中“KVMPorting指南⑴”相关内容
中“KVMPorting指南⑴”相关内容 中“KVMPorting指南⑴”相关内容

关于我们网站留言友情链接与我在线与我聊天领取红包管理TOP