Subject:
|
interest in JVM porting effort
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Thu, 6 May 1999 07:00:48 GMT
|
Original-From:
|
John A. Tamplin <JAT@LIVEONTHENET.COMnospam>
|
Viewed:
|
1141 times
|
| |
| |
I realize there is still ongoing discussion about the "next generation" OS
for the RCX, but it appears there are two immovable camps. One camp wants
to do the minimum work possible and come up with an incremental upgrade to
the existing firmware. Another group wants something that provides
everything they can get by writing native C/C++ code under something like
legOS but gain the advantages of an interpreted environment (compact size,
avoid relocation issues, error checking, easier development environment).
I think continued discussion is unlikely to merge these two camps. Thus,
I expect there will be two projects.
I remain convinced that implementing a Java virtual machine subset is the
best approach as this leverages exsting development tools and millions of
manhours of work developing the language specification. I have spent some
time looking at Sun's reference implementation and it is clear that
implementing the full JVM with the reference code is too large to fit in
the constraints of the RCX. However, there are several implementations
that fit in smaller machines than the RCX. I have been talking with
Peter Gasparik who implemented a JVM subset on a 68HC11 in only 6.5k, and
that includes the underlying OS. The H8 is a faster and more powerful
processor, so I am certain we can achieve a similar result on the RCX.
However, this project is too large for the spare time I have available.
I would like to hear from people with similar views, appropriate skills,
and available time to work on such a project. If we can get 3-4 competent
programmers who have embedded experience, I think this is a doable project.
Assuming we can get a development team together, here is what I propose:
1) develop requirements for the underlying OS. Since JVM will be the
sole interface to application code, the OS doesn't have to be full
featured, but must support rich multithreading mechanisms. Besides
that, it will have to handle memory management and have interrupt
handlers for the various peripherals. The remainder would be written
in RCX-specific Java classes, using native methods where necessary.
2) design a class structure for abstracting the RCX hardware facilities
for use by application code and libraries. This would be the lowest
level interface by application code, but should be designed with the
idea of having higher-level interfaces built transparently on top of
them. An example of what would be included here would be an interface
to the raw sensor value. Interpreting that sensor value would be left
to a class on top of the raw sensor class.
3) develop the RCX class libraries designed above using a desktop JVM.
This will allow us to test class partitioning ideas while the port is
underway and refine the design based on expected application code.
It will also give us an RCX emulator to aid development when the
project is completed.
4) design and implement a host-side bytecode verifier and class loader.
It should be written entirely in Java so that any development system
which could be used to compile the code could also be used to prepare
the code for loading in the RCX. There are several implementations of
this approach already, including the previously mention 68HC11 port and
the JavaCard API.
5) implement the OS and port the JVM code. I believe the target JVM subset
should include all of the core functionality except for 64-bit integers
and 64-bit floats. I believe garbage collection is mandatory for proper
operation of the Java environment (while you can write Java code that
doesn't depend on it, you are writing very different code), as is full
thread support.
I am aware that some of you think this project is foolhardy. You are
welcome to your opinion -- the beauty of an open system is that everyone
can build their favorite tools on top of it.
I welcome comments from anyone, but especially from those who might be
interested in working on this project.
John A. Tamplin Traveller Information Services
jat@LiveOnTheNet.COM 2104 West Ferry Way
256/705-7007 - FAX 256/705-7100 Huntsville, AL 35801
--
Did you check the web site first?: http://www.crynwr.com/lego-robotics
|
|
Message has 3 Replies: | | Re: interest in JVM porting effort
|
| Oh, I guess I should say hello first. Hello. I've been lurking for months now, but haven't joined in because school has been kicking my butt timewise, hence an inability to build. Wicked, evil university. Anyways, the semester ends next week (...) (26 years ago, 6-May-99, to lugnet.robotics)
| | | Re: interest in JVM porting effort
|
| (...) - I agree there will be two projects - if both projects get off the ground in the first place - Partly I disagree with your characterization of the other project; I do not think the goals are quite as stated. The other group wants to (I think) (...) (26 years ago, 6-May-99, to lugnet.robotics)
| | | Re: interest in JVM porting effort
|
| In message <Pine.A32.3.91.99050...iveonthene t.com>, John A. Tamplin <jat@liveonthenet.com> writes (...) Good for you! If you have an achievable goal then get cracking. I would offer help but my HelloWorld applet skills are not really the ticket. (...) (26 years ago, 7-May-99, to lugnet.robotics)
|
13 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
Active threads in Robotics
|
|
|
|