注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
LAMP 架构服务器性能优化建议
Postfix + Cyrus-IMAP + Cyrus-S
QMAIL邮件管理篇VmailMgr
Linux下基于web的邮件服务IMP的简
Linux IMAP & POP服务器
oracle Export and Import 简介
关于MySQL中的mysqldump命令的使
在 SQL Server 2K 中实现 大小写
如何向SQL Server中保存bmp图象以
从Access数据库恢复BMP图像并显示
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> Java >> 文章正文
KVM Porting 指南⑴
作者:翻译:Ding  来源:ChinaJavaWorld  点击:  更新:2006-12-19
简介:

英文原名:KVM Porting Guide (KVM 1.0.3)

   翻译:Ding
 
 E-mail:wu_yi_ding@yahoo.com
 
   本文是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


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






  • 上一篇文章:
  • 下一篇文章:
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务