To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 4899
4898  |  4900
Subject: 
interest in JVM porting effort
Newsgroups: 
lugnet.robotics
Date: 
Thu, 6 May 1999 07:00:48 GMT
Original-From: 
John A. Tamplin <jat@liveonthenetSTOPSPAMMERS.com>
Viewed: 
925 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 (...) (25 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) (...) (25 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. (...) (25 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
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR