Channels ▼

Eric Bruno

Dr. Dobb's Bloggers

Java Real-Time System v2.1 Released

July 28, 2008

Today, Sun released the Java Real-Time System, version 2.1. This version adds support for Linux with real-time kernels (namely SUSE Linux Enterprise Real-Time 10, and the soon-to-be-released Red Hat MRG), in addition to Solaris 10 on x86/x64 and SPARC. You can download an evaluation copy at http://java.sun.com/javase/technologies/realtime/index.jsp.

To see me talking about Java RTS 2.1 for Linux, and running a demonstration application on it, take a look at this video from this year's JavaOne: http://blogs.sun.com/SDNChannel/entry/real_time_java_is_predictable

In summary, Java RTS 2.1 provides the following enhancements to the previous version:

  • Support for applications running on the Linux Operating System, as well as Solaris 10. Officially supported are SUSE Linux Enterprise Real-Time (http://www.novell.com/products/realtime/) and Red Hat MRG (http://www.redhat.com/mrg/). 
  • Support for several of the Java SE Serviceability Agent (SA) tools. They are described in the Java RTS Tools, Tuning, and Troubleshooting Guide
  • Several new probes in the DTrace probe provider (named jrts) for Java RTS. The document Java RTS DTrace Provider contains a detailed description of these probes and how to use them, as well as several sample scripts. 
  • The new Thread Scheduling Visualizer tool, which is described in the Java RTS Thread Scheduling Visualizer Guide
  • The new Java™ VisualVM tool can display information about an application running with Java RTS. See http://java.sun.com/javase/6/docs/technotes/guides/visualvm/index.html
  • Additional command-line parameters to allow finer user-controlled tuning of the RTGC activity. See the "Command-Line Options" section in the Java RTS Garbage Collection Guide for a detailed explanation. 
  • Improved tooling to track immortal memory allocation, including a new MBean (for coarse-grained analysis) and a new DTrace probe (for fine-grained analysis). The new MBean is visible in JConsole as Immortal MemoryPool. The new DTrace probe is one of many new probes in the jrts probe provider. 
  • New Initialization-Time-Compilation (ITC) API. With the ITC compilation mode, you specify methods to be compiled when their classes are initialized, classes to be preloaded, and classes to be preinitialized. Previously, these specifications could only be made on the command line, at VM start-up. This new API allows the Java RTS application to perform these specifications also during run-time. This flexibility is especially useful in user-defined class-loader-based architectures. See the Java RTS Compilation Guide
  • Minor bug fixes and clean-up. 

To see what others, such as Jim Connors from Sun, and Paul Perrone from Perrone Robotics, are doing with Solaris and Java RTS, take a look at http://blogs.sun.com/jtc/entry/fast_booting_solaris. Also, to run Java RTS in secure environment, such as with government or military applications, there is a need to install it into a Solaris zone, such as the one used for Solaris with Trusted Extensions. To understand how to implement this, Jim Connors has an excellent description here: http://blogs.sun.com/jtc/entry/real_time_java_in_a

 

In order to run Java RTS on Linux, and achieve true real-time, deterministic, behavior, you need a Linux kernel with POSIX Real-time support. For the most part, any distribution with a kernel version of 2.6.21 or later is needed. However, for distributions such as Debian and Ubuntu, you should install the complete set of extensions with the following command:

 

$ sudo apt-get install linux-rt

 

Afterwards, you should see the following text when you execute the command, uname -a, on Ubuntu with the RT package installed:

 

Linux ubuntu-desktop 2.6.24-19-rt #1 SMP PREEMPT RT 

 

For details on OS support & new functionality please refer to the 2.1 Release Notes.

 

(Thanks to Gail Yamanaka for the information about this release)

 

Happy Coding!

-EJB 


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 


Video