kvm文档翻译-第三章

说明

翻译KVM的文档,只是为了个人学习以做记录.如果有翻译不周到的地方,请指出,我会修正的.

为何翻译该文档

此KVM不是目前特别火的Kernel-based Virtual Machine(一个开源的系统虚拟化模块).而是一个JAVA 的虚拟机.是J2ME cldc 的一个实现.其源码的难度比hotspot简单多了.因此,想通过研读KVM,以加深对hotspot的理解

编译要求

为了能够编译kvm代码库,您必须有一个能够编译符合ANSI的C文件的C编译器。编译器必须定义基本的C类型,如下所示:

类型
描述
char
8bit,可以是有符号的也可以是无符号的
signed char
有符号的 8bit
unsigned char
无符号的 8bit
short
有符号的16bit
unsigned short
无符号的 16bit
int
有符号,可以是16bit也可以是32bit
unsigned int
无符号,可以是16bit也可以是32bit
long
有符号 32位
unsigned long
无符号 32bit
void *
32bit,指针

如果你的J2ME配置或配置文件支持浮点数字,则编译器必须支持下面所示的浮点类型:

TABLE 2  –  浮点类型
类型
描述
float
32bit的浮点值
double
64bit的浮点值

所有的KVM实现都支持Java类型的long。编译器最好支持64位整数,但是这不是必需的。在第9章“64位支持”中讨论了JavaType的移植。

您的编译器必须有一些方法来指示要搜索的其他目录的“includes”形式:

    #include <filename> 

我们的引用实现只在具有32位指针的机器上进行了测试,而这些机器不需要任何类型的“远”指针。我们不知道它是否能在具有其他大小指针的平台上成功运行。

已使用以下编译器成功编译代码:

  • 在Solaris上使用Sun C Compiler 5.0, 5.2和 5.3
  • 在Red Hat linux 上使用GNU C 2.91.66 (egcs-1.1.2) 编译器
  • 在Solaris和Windows NT 4.0上使用GNU C 2.95.2编译器
  • 在Windows NT 4.0 和 Windows 2000上使用Microsoft Visual C++ 6.0 专业版 进行编译

kvm源代码库中唯一的非ansi c c特性是使用64位整数算法。有关64位支持的更多信息,请参阅第9章。

请注意,在Java编程语言中,类型long始终是64位。表1假定,与大多数当前的C实现一样,long类型表示32位的数量。该文档使用“Java类型long”一词来引用64位含义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值