Huihoo.org - Open Enterprise Foundation

 Last Modified: 2003.05.12

TimeSys Refimp(RTSJ JVM)安装说明


(by huihoo.org Cocia Lin)

概述

实时java虚拟机是专门用来执行符合RTSJ规范的java程序的虚拟机。RTSJ1.0规范刚刚发布。所以支持他的虚拟机还不太多。比较著名的有JRate和TimeSys Refimp。

Jrate是在GCJ的基础上进行的扩展。GCJ的一个特点是,能够将java源代码编译成的本地代码运行,这些编译过得本地代码需要历来CGJ运行库来运行。



Refimp是按照传统得虚拟机运行方式实现的,通过翻译java指令到操作系统指令运行。



因为这两种虚拟机都遵循rtsj1.0规范,所以绝大多数rtsj程序能够兼容着两种虚拟机。不同的只是配置和系统方面。这里只介绍Refimp的配置方法。Jrate的配置方法,请参考相关资源。

操作系统要求

如果要使用refimp全部功能,需要使用TimeSys公司的Realtime Linux:TimeSys Linux.但他也能在通用的Linux上运行,但需要损失一些特性。例如优先级抢占继承机制。笔者已经在Redhat8.0和Mandrake9.0上测试过,可以正常运行。

对于学习要求,建议使用通用的Linux,安装配置都很简单,可以直奔主题。这问使用的是Mandrake9.0

JDK要求

Refimp仅仅是一个rtsj的虚拟机,不包括编译环境。所以它不能处理java源程序。需要JDK将java源程序编译成class,然后Refimp才能执行。

Refimp要求JDK1.2以上版本。本文使用JDK1.4.1。

Linux下JDK的配置,请参考相关资源。本文要求,JDK安装完成之后,设置好系统PATH,将JDK的 bin目录包含其中。设置好JAVA_HOME,CLASSPATH,包含JDK本身需要的信息,并且将realtime包加入到CLASSPATH中,这样才可以编译包含javax.realtime的程序。Realtime包是/home/tjvm/lib/foundation.jar;这是为了便于工作,在任何目录下都可以很容易的编译和执行java程序。



下载解压

按照本文后边的参考,下载得到rtsj_ri-1.0.tar.gz。
将文件拷贝到/home中,准备解压。
解压命令:
cd /home
tar -xzvf rtsj_ri-1.0.tar.gz
新的文件夹名称是refimp-1.0,其中包含所有jvm文件。


为了以后工作的方便,给这个目录做一个链接
ln -s refimp-1.0 tjvm
进入此目录

cd tjvm

基本配置

rtjvm用到很多实时线程特性,而这些特性,普通的linux是不考虑的,所以需要稍微扩展一下linux的功能。

这一步很简单,
cd pthreadrt
make

提示复制文件成功,线程部分完成。

再就是需要配置Heap内存和Immortal(不朽)内存的尺寸。在不做任何调整的情况下,默认的Heap内存为4MB,不修内存为2MB。这里我们不作调整。有兴趣修改此参数,请参阅产品文档。

至此,配置完成。

运行例子程序

Refimp的jvm启动命令在bin目录下。

./tjvm -Djava.class.path= -Xbootclasspath=

是我们的程序存放的位置

是jvm启动的时候需要加载的系统包的存放位置,默认的是../lib

就是你需要启动的程序的类,其中不许包含main()方法

现在tjvm中新建一个目录mytest,便于存放我们将要写的例子程序。现在的目录结构下面这个样子。



假如我的HelloWorld.class现在就放在mytest中,我们就可以这样来运行

cd mytest
../bin/tjvm -Djava.class.path=. HelloWorld

其中使用缺省值../bin,正好符合我们的目录结构。如果你的程序想放在任意的位置,就要加上这个参数。

下面我们来写这个HelloWorld.java,放在mytest目录下。



编译和执行程序



结束

至此,Refimp基本安装成功。还有一些细节的参数调整,请参考相关资源。

参考

Huihoo Power!

企业计算研究中心
http://www.huihoo.com

开放企业基金会
http://www.huihoo.org

Real-Time Java Expert Group
http://www.rtj.org

jRate Web:
http://tao.doc.wustl.edu/~corsaro/jRate

TimeSys Refimp1.0
http://www.timesys.com/index.cfm?hdr=java_header.cfm&bdy=java_bdy_ri.cfm

在Linux上安装JDK
http://www.cn-java.com/target/news.php?news_id=566

Vi 使用说明
http://www.fanqiang.com/a1/b5/20010623/190500648.html