<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5684389242714865804</id><updated>2012-02-05T18:46:00.794-08:00</updated><category term='embedded'/><category term='case study'/><category term='helloworld'/><category term='introduction'/><category term='collision algorithm'/><category term='tutorial'/><category term='safety-critical'/><category term='RTEMS tutorial'/><category term='ARM'/><category term='SCJ memory-safety'/><category term='benchmark'/><category term='event'/><category term='RT VM'/><category term='real-time'/><category term='conference'/><category term='PhD defense'/><category term='real-time Java'/><category term='real-time garbage collection'/><category term='presentation'/><category term='barehardware'/><category term='VM'/><category term='safety-critical Java'/><category term='software'/><category term='reading-list'/><category term='garbage collection'/><category term='SCJ'/><category term='CBSE'/><category term='GC'/><category term='CDx'/><category term='compiler'/><category term='RTSJ'/><title type='text'>Real-Time Java</title><subtitle type='html'>Blogging about Real-time Java Programming, RTSJ, Safety-Critical Java, RT Garbage Collection, etc.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-5002759943730822226</id><published>2011-07-27T12:52:00.000-07:00</published><updated>2011-07-27T15:03:58.686-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ARM'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='RTEMS tutorial'/><title type='text'>Running a C HelloWorld on ARM BeagleBoard</title><content type='html'>In this simple tutorial I will show you howto prepare your linux distribution for compiling and running C code on a BeagleBoard (ARM architecture). In short, you will need to install the cross-compiler, connect the board with your computer, load the compiled binaries to the board and finally execute them. Here we go in more details:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;0.&amp;nbsp;Prerequisites&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Linux OS distribution (Ubuntu or Fedora should do)&lt;/li&gt;&lt;li&gt;&lt;a href="http://beagleboard.org/hardware-xM"&gt;BeagleBoard-xm&lt;/a&gt; with ARM A7 processor (or higher)&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;1. Install the ARM compiler&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dIKvK3680mM/Ti7xWn2DTbI/AAAAAAAAEXw/qTKQnZn-3mY/s1600/beagleboardXM.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="150" src="http://2.bp.blogspot.com/-dIKvK3680mM/Ti7xWn2DTbI/AAAAAAAAEXw/qTKQnZn-3mY/s200/beagleboardXM.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;You will need to install a&amp;nbsp;compiler for ARMv7 / Linux. See for example &lt;a href="http://www.codesourcery.com/sgpp/portal/datasheet?target_arch=ARM&amp;amp;target_os=GNU%2FLinux"&gt;ARM/GNU Linux&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Let's assume you have installed the compiler into the following location: /opt/CodeSourcery/Sourcery_G++_Lite.&lt;br /&gt;&lt;br /&gt;Then add the location into your PATH:&lt;br /&gt;&lt;div&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="color: white; line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ export&lt;/span&gt;  PATH=$PATH:/opt/CodeSourcery/Sourcery_g++_Lite/bin&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;And test your compile by executing:&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="color: white; line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ arm-none-linux-gnueabi-gcc&lt;/span&gt;  -o hello.arm hello.c&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;This should work, later on we will use the generated hello.arm to run it on the beagle-board.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Connecting the BeagleBoard&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here is a nice manual on setting up the BeagleBoard on a linux-server machine:&lt;br /&gt;&lt;a href="http://elinux.org/BeagleBoardBeginners"&gt;http://elinux.org/BeagleBoardBeginners&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After going through the manul, your board should be sitting on your network at some IP address, it may be for example&amp;nbsp;192.168.0.2&lt;br /&gt;&lt;br /&gt;To connect to the board:&lt;br /&gt;&lt;div&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="color: white; line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ shh &lt;/span&gt;root@192.168.90.2&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Tip: If you reboot your linux desktop, you probably want to do the following to re-enable the connection with the board:&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="color: white; line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ sudo ifconfig &lt;/span&gt;usb0 192.168.0.3&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;3. Running HelloWorld on BeagleBoard&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;First, we need to copy the executable to the BeagleBoard:&lt;br /&gt;&lt;div&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="color: white; line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ scp &lt;/span&gt;hello.arm root@192.168.0.3&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;And then just login to the board and run the executable:&lt;br /&gt;&lt;div&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="color: white; line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ shh &lt;/span&gt;root@192.168.90.2&lt;/pre&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; line-height: normal; white-space: normal;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span class="Apple-style-span" style="color: #40ffff;"&gt;&lt;span class="Apple-style-span" style="color: white; font-family: Times; line-height: normal; white-space: normal;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;./hello.arm &lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="color: white; line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;Hello World!&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;And that should be all.&lt;br /&gt;&lt;br /&gt;[Note: This tutorial is based on my notes when working with the beagle-board, so it may omit some details. Hope it will help anyway.]&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-5002759943730822226?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/5002759943730822226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2011/07/running-c-helloworld-on-arm-beagleboard.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5002759943730822226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5002759943730822226'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2011/07/running-c-helloworld-on-arm-beagleboard.html' title='Running a C HelloWorld on ARM BeagleBoard'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-dIKvK3680mM/Ti7xWn2DTbI/AAAAAAAAEXw/qTKQnZn-3mY/s72-c/beagleboardXM.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-2951434781393434948</id><published>2011-07-26T08:39:00.000-07:00</published><updated>2011-07-27T12:02:46.241-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='real-time Java'/><category scheme='http://www.blogger.com/atom/ns#' term='helloworld'/><category scheme='http://www.blogger.com/atom/ns#' term='RT VM'/><title type='text'>Real-time Embedded Java HelloWorld with FijiVM</title><content type='html'>&lt;a href="http://rtjava.blogspot.com/2011/07/fijivm-real-time-java-vm-overview.html"&gt;The previous post&lt;/a&gt; introduced FijiVM. In this follow up we show how to compile and run simple Java programs with FijiVM.&lt;br /&gt;&lt;br /&gt;Consider a classical HelloWorld Java Program :&lt;br /&gt;&lt;pre style="background: #000000; color: #d1d1d1;"&gt;&lt;span style="color: #e66170; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #e66170; font-weight: bold;"&gt;class&lt;/span&gt; HelloWorld &lt;span style="color: #b060b0;"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #e66170; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #e66170; font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: #bb7977;"&gt;void&lt;/span&gt; main&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;String&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;[&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;]&lt;/span&gt; args&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt; &lt;span style="color: #b060b0;"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #bb7977; font-weight: bold;"&gt;System&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;out&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;println&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;&lt;span style="color: #00c4c4;"&gt;"Hello World."&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #b060b0;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b060b0;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;1. Compile &lt;i&gt;.java&lt;/i&gt; files&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Running a Java compiler on this program will produce HelloWorld.class – a Java byte code representation of this program. In most Java implementations HelloWorld.class would then be provided as input to a Java VM. The program’s main method would be interpreted or JIT-compiled and run.&lt;br /&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; color: white; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ javac &lt;/span&gt;-d build/ HelloWorld.java&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Java2C generation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Instead, to run this program in the Fiji JVM, HelloWorld.class would be provided as input to Fiji’s AOT compiler fivmc. The Fiji compiler then creates a native executable for the target platform as well as a build directory containing the generated code and the resources required to build this executable.&lt;br /&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; color: white; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ $(FIJI_HOME)/bin/fivmc&lt;/span&gt;  -o HelloWorld ./build/*.class&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;This command will then execute the Fiji Java2C compiler that translates the bytecode from the .build/ dir to a C source code and then generates a binary executable file "HelloWorld".&lt;br /&gt;&lt;br /&gt;Notable compiler options and runtime variables are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;--more-opt&amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;- enable maximal possible performance optimizations&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;--max-threads 5&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;- max number of threads running in the application&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;--g-def-max-mem=1200k &amp;nbsp; &amp;nbsp;&lt;/b&gt;- set up the heap size&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;--g-def-trigger=850k &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;- &amp;nbsp;set up the trigger for the GC&lt;/li&gt;&lt;li&gt;&lt;b&gt;export FIVMR_LOG_FILE=log.txt &amp;nbsp;&amp;nbsp;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- log file to document fiji runtime&lt;/li&gt;&lt;li&gt;&lt;b&gt;export FIVMR_LOG_LEVEL=3 &amp;nbsp;&lt;/b&gt;- filter the log messages, the level 3 will give you the most information&lt;/li&gt;&lt;li&gt;&lt;b&gt;export FIVMR_FAKE_RT_PRIORITIES=true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;/b&gt;make FijiVM run on an OS that does not provide real-time guarantees&lt;/li&gt;&lt;li&gt;&lt;b&gt;FIVMR_GC_COMPILE_INFO=true&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;FIVMR_GC_MAX_MEM=1m&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;FIVMR_TRIGGER_LOG_GC=true&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;FIVMR_SHOW_COMPILE_INFO=true&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;--no-inline &lt;/b&gt;- disable inlining of the C methods, useful when hacking the Java2C compiler or debugging the generated code.&lt;/li&gt;&lt;li&gt;&lt;b&gt;--c-debug yes &amp;nbsp;- &lt;/b&gt;enables C debug mode&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;3. Running HelloWorld&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;And, to&amp;nbsp;&lt;b&gt;run&lt;/b&gt;:&lt;/div&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; color: white; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;./HelloWorld&lt;/pre&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #00c4c4;"&gt;Hello World!&lt;/span&gt; &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. FijiVM generated content&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Inspection of the build directory after successful compilation gives us some insight into how Fiji works. The build directory contains five types of files:&lt;br /&gt;&lt;br /&gt;XML files — one which contains the mapping from Java method to generated C function and two containing configuration for the Java component of the compiler;&lt;br /&gt;- text files containing analysis of the Java program including string literals, referenced methods, types and classes;&lt;br /&gt;- the generated, OS-independent C code representation of the program; • a copy of the Fiji runtime for the target platform;&lt;br /&gt;- a generated Makefile used to build the executable, as well as build scripts to rebuild without regenerating content.&lt;br /&gt;&lt;br /&gt;There are in effect two “main” functions, the C main function in the Fiji runtime and the generated C representation of the Java program’s main method. The runtime main invokes the generated Java main after it has completed its initial setup.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Cross-compiling with FijiVM&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;You an also use FijiVM running on your x86 machine to generate executables for other platforms. For example RTEMS running on LEON3 processor or ARM processor running on BeagleBoard.&amp;nbsp;Setting up the FijiVM to cross-compile to a desired platform is very straightforward:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Example #1&lt;/i&gt;: adding a Mac OS X PowerPC target on OS X:&lt;br /&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; color: white; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ bin/add-target&lt;/span&gt; --name ppc --cc "gcc -arch ppc"&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;This will create a target called 'ppc' that will build a Fiji VM compiler and runtime that will generate a OS X PowerPC executables. &amp;nbsp;You can run such executables on almost all Macs, since they have a built-in emulator. &amp;nbsp;This is great for validating our PowerPC support. &amp;nbsp;Note that the argument to '--name' can be anything you like. &amp;nbsp;In many cases, the name is automatically inferred; but specifying one explicitly is often a good idea. &amp;nbsp;You can then run fivmc as follows to create a binary for PowerPC:&lt;br /&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; color: white; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ bin/fivmc&lt;/span&gt; --target ppc &lt;stuff&gt;&lt;/stuff&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;i&gt;Example #2&lt;/i&gt;: adding an RTEMS target:&lt;br /&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; color: white; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ bin/add-target&lt;/span&gt; --rtems-build /path/to/rtems/bsp/build/dir&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This will automatically infer everything it needs to know about the BSP, architecture, RTEMS version, etc. &amp;nbsp;It will also automatically name the target something like RTEMS-sis-rtems4.9-sparc-32, with useful aliases such as sis, rtems4.9, sparc, and sparc-rtems4.9. &amp;nbsp;So you can then run fivmc using any of the following --target options; whatever you like best:&lt;br /&gt;&lt;div style="background-attachment: scroll; background-clip: initial; background-color: black; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 0.1em; border-left-color: gray; border-left-style: solid; border-left-width: 0.8em; border-right-color: gray; border-right-style: solid; border-right-width: 0.1em; border-top-color: gray; border-top-style: solid; border-top-width: 0.1em; overflow-x: auto; overflow-y: auto; padding-bottom: 0.2em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.2em; text-align: justify; width: auto;"&gt;&lt;pre style="color: white; line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ bin/add-target&lt;/span&gt; --target sis &lt;stuff&gt;&lt;/stuff&gt;&lt;/pre&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; line-height: normal; white-space: normal;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span class="Apple-style-span" style="color: #40ffff;"&gt;&lt;span class="Apple-style-span" style="color: white; font-family: Times; line-height: normal; white-space: normal;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ bin/add-target&lt;/span&gt; --target sparc-rtems4.9 &lt;stuff&gt;&lt;/stuff&gt;&lt;/pre&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; line-height: normal; white-space: normal;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ bin/add-target&lt;/span&gt; --target sparc &lt;stuff&gt;&lt;/stuff&gt;&lt;/pre&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; line-height: normal; white-space: normal;"&gt;&lt;pre style="line-height: 16px; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ bin/add-target&lt;/span&gt; --target RTEMS-sis-rtems4.9-sparc-32 &lt;stuff&gt;&lt;/stuff&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And that's it. You should be now able to play with the FijiVM, target various platforms and use specific compile options to tailor the generated executables to your specific needs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-2951434781393434948?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/2951434781393434948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2011/07/real-time-embedded-java-helloworld-with.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/2951434781393434948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/2951434781393434948'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2011/07/real-time-embedded-java-helloworld-with.html' title='Real-time Embedded Java HelloWorld with FijiVM'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-4320792531202547321</id><published>2011-07-14T06:08:00.000-07:00</published><updated>2011-07-14T10:59:49.143-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='real-time Java'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>FijiVM - A Real-time Java VM Overview</title><content type='html'>FijiVM is a real-time Java implementation which runs on RTEMS (a real-time OS for embedded devices) and a number of POSIX-compliant operating systems. It has the following components:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;AOT Java2C Compiler:&lt;/b&gt; An ahead-of-time compiler written in Ruby and Java. This compiler takes in Java byte code and produces machine independent C. The Java component performs the code generation whilst the Ruby component acts as a harness for the Java component — providing configuration, marshalling input files, directing output to the appropriate location and finally invoking the C compiler on the generated code.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Fiji Runtime:&lt;/b&gt; A Java run-time written in C and Java. The runtime includes a real-time garbage collector as described in Section 2.5.2. The C code is invoked by the Java code by calling methods marked with Java’s native keyword.&lt;/li&gt;&lt;li&gt;&lt;b&gt;FijiCore lib:&lt;/b&gt; A Java class library called FijiCore written in C and Java. Similarly to the run-time, C and Java code is bridged by the native keyword.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Real-time Garbage Collector - &lt;/b&gt;a set of GC algorithms offering both performance and real-time guarantees.&lt;/li&gt;&lt;li&gt;&lt;b&gt;SCJ and RTSJ libraries&lt;/b&gt; (RTSJ is supported only partially) - SCJ and RTSJ libraries are distributed with FijiVM to offer alternatives to regular Java and Java+RTGC.&lt;/li&gt;&lt;/ul&gt;Let's look at some of these components in detail.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Garbage Collector&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The key part of the FijiVM is a set of garbage collector algorithms that offer various performance characteristics and real-time guarantees. You can find more information about FijiVM's GC in  &lt;a href="http://www.cs.purdue.edu/homes/jv/pubs/pldi10b.pdf"&gt;Schism: Fragmentation-Tolerant Real-Time Garbage Collection. PLDI'10&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;FijiVM Compilation Process&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Since the FijiVM is based on an AOT compiler that translates the application from its Java byte-code to native C code, the compilation process is different from what we are used to in regular Java VMs. It is best illustrated on the following picture:&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-kVRkH8PPUCw/Th7jMU1ZD4I/AAAAAAAAEXQ/KZa_sMBUtBM/s1600/fiji.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://2.bp.blogspot.com/-kVRkH8PPUCw/Th7jMU1ZD4I/AAAAAAAAEXQ/KZa_sMBUtBM/s640/fiji.png" width="490" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;AOT Java2C Compiler&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The Java2C compiler not only translates byte-code to C code but it performs number of tasks. There is several level of transformation, each introducing various code optimization techniques known from standard compilers. The byte-code is translated into Fiji's specific intermediate representation (IR) where the code is optimized further again. Until the final transformation generating the C-code, several phases of transformation+optimization is performed, each closer to the final product which is the generated C code. Again, illustrated on the following picture:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xi8u-ilNGWM/Th7kUmVwuMI/AAAAAAAAEXU/4M2yUc7vud8/s1600/fiji2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="295" src="http://2.bp.blogspot.com/-xi8u-ilNGWM/Th7kUmVwuMI/AAAAAAAAEXU/4M2yUc7vud8/s400/fiji2.png" width="490" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fiji Libraries&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;FijiCore contains a subset of the standard Java class library, including generic collections and events from java.util, I/O and character set support from java.nio and java.io, arbitrary-sized arithmetic from java.math and all of java.lang, including annotations and reflections.&lt;br /&gt;&lt;br /&gt;Instead of FijiCore, developers may also elect to use GNU Classpath (an open source implementation of the standard Java library). A second Fiji-specific class library called HardRTJ is currently in development. HardRTJ is intended to provide a library option with a smaller memory footprint than FijiCore, and a yet smaller feature set (note that to use any alternate library the library must be supported on the target platform).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SCJ and RTSJ support &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Apart from the FijiVM libraries that replace a standard Java library known from a regular JavaVM distributions, FijiVM offers a support for extending libraries focused on real-time and safety-critical systems. The FijiVM comes with a distribution of oSCJ - an open-source Safety-critical Java implementation based on the JSR-302. Further, FijiVM offers a basic RTSJ (the JSR-1 implementation) support.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Resources&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;See my previous post : &lt;a href="http://rtjava.blogspot.com/2011/07/is-java-ready-for-real-time.html"&gt;Is Java ready for Real-time?&lt;/a&gt;&lt;/li&gt;&lt;li&gt; James Hatherly's thesis: Native real-time Java on seL4&lt;/li&gt;&lt;li&gt;FijiVM research publications:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cs.purdue.edu/homes/jv/pubs/pldi10b.pdf"&gt;Schism: Fragmentation-Tolerant Real-Time Garbage Collection. PLDI'10&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cs.purdue.edu/homes/jv/pubs/eurosys10.pdf"&gt; High-level Programming of Embedded Hard Real-Time Devices. EuroSys'10&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cs.purdue.edu/homes/jv/pubs/jtres09a.pdf"&gt;Real Time Java on resource-constrained platforms with Fiji VM. JTRES'09&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;oSCJ Project:&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cs.purdue.edu/homes/jv/pubs/jtres10b.pdf"&gt;Developing Safety Critical Java applications with oSCJ/L0. JTRES'10&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ovmj.net/oscj/"&gt;oSCJ project web-page&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;In the next post, I plan to show you how to use FijiVM to compile basic Java programs and how to use the VM in practice.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-4320792531202547321?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/4320792531202547321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2011/07/fijivm-real-time-java-vm-overview.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/4320792531202547321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/4320792531202547321'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2011/07/fijivm-real-time-java-vm-overview.html' title='FijiVM - A Real-time Java VM Overview'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-kVRkH8PPUCw/Th7jMU1ZD4I/AAAAAAAAEXQ/KZa_sMBUtBM/s72-c/fiji.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-7106797451107541781</id><published>2011-07-08T13:04:00.000-07:00</published><updated>2011-07-14T05:34:52.439-07:00</updated><title type='text'>Is Java ready for Real-Time?</title><content type='html'>"Is Java ready for Real-Time?" is a title of an invited talk given by Prof. Jan Vitek&amp;nbsp;at&amp;nbsp;&lt;a href="http://goedel.cs.uiowa.edu/MVD/program.html"&gt;MVD'10 - Midwest Verification Day&lt;/a&gt;, [&lt;a href="http://goedel.cs.uiowa.edu/MVD/talks/Vitek.pdf"&gt;slides&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;The talk reviews advances of Java technology for hard real-time and safety-critical systems as of September 2010. Its a nice summary of the state of the art of Real-time Java and that's why I am linking it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-7106797451107541781?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/7106797451107541781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2011/07/is-java-ready-for-real-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7106797451107541781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7106797451107541781'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2011/07/is-java-ready-for-real-time.html' title='Is Java ready for Real-Time?'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-6708318612903138107</id><published>2011-06-20T14:01:00.000-07:00</published><updated>2011-06-20T14:01:08.244-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJ memory-safety'/><title type='text'>SCJ Checker : A new release, v2.0</title><content type='html'>We have just released a new version of the Safety-Critical Java Annotations Checker. The checker introduces an improved checking of memory-safety annotations along with a lot of other improvements and bug-fixes.&lt;br /&gt;&lt;br /&gt;Along with the Checker, we have produced &lt;a href="http://scj-jsr302.googlecode.com/files/Checker-Tutorial.pdf"&gt;a short tutorial [PDF]&lt;/a&gt;, &amp;nbsp;the document contains:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Checker installation and running instructions,&amp;nbsp;&lt;/li&gt;&lt;li&gt;the essential concepts and ideas behind the annotation system,&amp;nbsp;&lt;/li&gt;&lt;li&gt;various examples to illustrate the basic features of all the annotations,&amp;nbsp;&lt;/li&gt;&lt;li&gt;the key restrictions and rules enforced by the annotation system.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The document is written with the motivation to give the reader the basic  understanding of programming SCJ applications with the annotations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-6708318612903138107?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/6708318612903138107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2011/06/scj-checker-new-release-v20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/6708318612903138107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/6708318612903138107'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2011/06/scj-checker-new-release-v20.html' title='SCJ Checker : A new release, v2.0'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-3489361342495429939</id><published>2011-05-27T08:36:00.000-07:00</published><updated>2011-05-27T08:36:03.761-07:00</updated><title type='text'>Safety-Critical Java Case Studies</title><content type='html'>We have recently put together a set of Safety-Critical Java applications. The implementation of these applications is open source, you can find them in our &lt;a href="http://code.google.com/p/scj-jsr302/"&gt;oSCJ repository&lt;/a&gt;, in directories &lt;a href="http://code.google.com/p/scj-jsr302/source/browse/#hg%2FoSCJ%2Fexamples"&gt;oSCJ/examples&lt;/a&gt;&amp;nbsp;and &lt;a href="http://code.google.com/p/scj-jsr302/source/browse/#hg%2FoSCJ%2Ftools%2Fchecker%2Fexamples"&gt;oSCJ/tools/checker/examples&lt;/a&gt;. The directories now contain more than 3O KLOC of Safety-Critical Java application code, here is a description of the most interesting case studies:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Quicksort&lt;/b&gt; is benchmark based on the quicksort algorithm. The application&amp;nbsp;periodically sorts an array of objects that are allocated in an upper-scope,&amp;nbsp;thus introducing a cross-scope manipulation of objects into the algorithm.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Thruster&amp;nbsp;&lt;/b&gt;case-study simulates a spacecraft&amp;nbsp;thruster engine. Control of the engine requires a 100-millisecond periodic&amp;nbsp;activity to adjust the valve settings to avoid mechanical drift and,&amp;nbsp;therefore, obtain an even fuel flow. Inspired by &lt;a href="http://portal.acm.org/citation.cfm?doid=1850771.1850778"&gt;[Wellings-JTRES10]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fast-MD5&lt;/b&gt; implements a periodic execution of the Fast-MD5 encryption algorithm&amp;nbsp;of a fixed string within its most inner memory area.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Webserver&lt;/b&gt; is an application handling http requests and was developed as a&amp;nbsp;case study within the SquawkVM project to evaluate SCJ implementation&amp;nbsp;running on SUN SPOTS embedded devices.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CDx-SCJ&lt;/b&gt; is an open-source family of benchmarks that can be&amp;nbsp;used to measure performance of various hard and soft real-time&amp;nbsp;platforms. The CDx benchmark consists of a periodic task that takes air&amp;nbsp;traffic radar frames as input and predicts potential collisions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Railsegment&lt;/b&gt;, developed by Kelvin Nilsen at Atego, is a complex simulator of a train control&amp;nbsp;software that is responsible for collecting the data about speed and&amp;nbsp;position of the train, analyzing them in real-time and adjusting the train&amp;nbsp;speed according to the route plan.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Jpapabench&lt;/b&gt; is a SCJ benchmark based on the Paparazzi project&amp;nbsp;which provides an open-source implementation of an autopilot for unmanned&amp;nbsp;aerial vehicles (UAVs). The autopilot has been successfully tested on&amp;nbsp;several real devices. The JPapabench is developed by Michal Malohlava at MFF UK, see the &lt;a href="http://d3s.mff.cuni.cz/~malohlava/projects/jpapabench/"&gt;JPapabench webpage&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;We believe that these applications are a representative set of SCJ case studies that demonstrate many SCJ concepts on real examples.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-3489361342495429939?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/3489361342495429939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2011/05/safety-critical-java-case-studies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3489361342495429939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3489361342495429939'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2011/05/safety-critical-java-case-studies.html' title='Safety-Critical Java Case Studies'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-7842582897698507953</id><published>2011-05-02T14:06:00.000-07:00</published><updated>2011-05-05T11:27:40.161-07:00</updated><title type='text'>A family of real-time Java benchmarks</title><content type='html'>Be sure not to miss a new publication on the Collision Detector (CDx) benchmark &lt;a href="http://www.cs.purdue.edu/homes/jv/pubs/ccpe11.pdf"&gt;[PDF]&lt;/a&gt;. Tomas Kalibera and his team put together an updated journal publication on CDx.&lt;br /&gt;&lt;br /&gt;The article also reports on our performance comparison of the oSCJ platform running on LEON3 boards. Although the paper reports 50% overhead of the oSCJ in comparison to the C version of the benchmark, we are happy to announce that in the last few months we have been able to further decrease the overhead to ~28%.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-S10q-wRtHB4/Tb8cYhlLg0I/AAAAAAAAEUQ/VHiFsbQ18Lk/s1600/p95-plsek.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://4.bp.blogspot.com/-S10q-wRtHB4/Tb8cYhlLg0I/AAAAAAAAEUQ/VHiFsbQ18Lk/s400/p95-plsek.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The figure shows are new measurement of the improved performance of oSCJ. Further, our most recent experiments suggest that we can do even better.&amp;nbsp;Stay tuned.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-7842582897698507953?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/7842582897698507953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2011/05/family-of-real-time-java-benchmarks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7842582897698507953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7842582897698507953'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2011/05/family-of-real-time-java-benchmarks.html' title='A family of real-time Java benchmarks'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-S10q-wRtHB4/Tb8cYhlLg0I/AAAAAAAAEUQ/VHiFsbQ18Lk/s72-c/p95-plsek.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-890994434138750302</id><published>2011-04-19T08:45:00.000-07:00</published><updated>2011-04-20T11:04:03.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJ'/><category scheme='http://www.blogger.com/atom/ns#' term='RTSJ'/><category scheme='http://www.blogger.com/atom/ns#' term='real-time Java'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>JPapaBench : A new benchmark was born.</title><content type='html'>A new real-time Java benchmark - &lt;b&gt;&lt;a href="http://d3s.mff.cuni.cz/~malohlava/projects/jpapabench/"&gt;JPapabench&lt;/a&gt;,&lt;/b&gt;&amp;nbsp;was developed by a team lead by Michal Malohlava at Charles University in Prague.&lt;br /&gt;&lt;br /&gt;The most exciting facts about this benchmark are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;jPapabench is based on the &lt;a href="http://paparazzi.enac.fr/wiki/Main_Page"&gt;&lt;b&gt;Paparazi&lt;/b&gt;&lt;/a&gt; project which provides an actual implementation of an unmanned aerial vehicles (UAV)&amp;nbsp;autopilot. Therefore, the benchmark is trully reflecting an autopilot software that is used in real life UAVs.&lt;/li&gt;&lt;li&gt;JPapabench is available in several versions: regular Java, Real-time Java, and Safety-Critical Java.&lt;/li&gt;&lt;li&gt;the project is open-source and available at&amp;nbsp;&lt;a href="http://code.google.com/p/jpapabench/"&gt;&lt;b&gt;http://code.google.com/p/jpapabench/&lt;/b&gt;&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://paparazzi.enac.fr/wiki_images/thumb/800px-ScreenShot.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="115" src="http://paparazzi.enac.fr/wiki_images/thumb/800px-ScreenShot.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Paparazi project screenshot.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-890994434138750302?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/890994434138750302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2011/04/jpapabench-new-benchmark-was-born.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/890994434138750302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/890994434138750302'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2011/04/jpapabench-new-benchmark-was-born.html' title='JPapaBench : A new benchmark was born.'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-4880473137085538086</id><published>2011-02-13T11:41:00.000-08:00</published><updated>2011-02-13T11:41:41.162-08:00</updated><title type='text'>Safety-Critical Java Specification : First Draft Released</title><content type='html'>The moment we all have been waiting for is here.&lt;br /&gt;&lt;br /&gt;The first public version of the Safety-Critical Java Specification (JSR-302) was released. The draft can be downloaded from &lt;a href="http://jcp.org/en/jsr/detail?id=302"&gt;JSR-302 webpage&lt;/a&gt;, go to the &lt;a href="http://jcp.org/aboutJava/communityprocess/edr/jsr302/index.html"&gt;Download Section&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To make a good picture of what SCJ is about, read the first two chapters. And if you want to know what we have been contributing to, read the &lt;b&gt;Chapter 9 : Java Metadata Annotations&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-4880473137085538086?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/4880473137085538086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2011/02/safety-critical-java-specification.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/4880473137085538086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/4880473137085538086'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2011/02/safety-critical-java-specification.html' title='Safety-Critical Java Specification : First Draft Released'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-5318220819420906772</id><published>2010-11-08T13:47:00.000-08:00</published><updated>2011-04-19T08:08:36.627-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTSJ'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Real-Time Java HelloWorld</title><content type='html'>Are you starting with Real-time Java and don't know where to look first? Here is a step-by-step tutorial showing you how to install and run simple RT Java programs. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Install Real-time Java VM&lt;/b&gt;&lt;br /&gt;There is a bunch of RT VMs that you can donwload and use but perhaps the one that is the easiest to install and to play with is&lt;a href="http://java.sun.com/javase/technologies/realtime/index.jsp"&gt; Oracle's Java RTS&lt;/a&gt;. The current version is Java RTS 2.2. After filling the download form, you should be able to download it to your desktop. The name of the donwloaded file will be something like :&amp;nbsp;&lt;b&gt;&lt;i&gt; java_rts-2_2-fcs-bin-b19-linux-i586-eval_academic.zip&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;1.0 Requirements&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RT Linux - if you want to really run with real-time priorities. However, for starting and learning how to work with RT VMs, a regular linux should do - try eg. Ubuntu or Fedora OS.&lt;/li&gt;&lt;/ul&gt;&lt;i&gt;&lt;b&gt;1.1&amp;nbsp; Install the RTJ VM&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;untar downloaded distributable into&lt;i&gt;&lt;b&gt; /opt/jrts2.2&lt;/b&gt;&lt;/i&gt; directory. Let's call it RTJAVA_HOME. &lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #40ffff;"&gt;export RTJAVA_HOME=/opt/jrts2.2/&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For more details, see &lt;a href="http://download.oracle.com/javase/realtime/rts_productdoc_2.2u1.html"&gt;SUN Java RTS Technical Documentation&lt;/a&gt;. Java RTS is distributed under restricted &lt;i&gt;&lt;b&gt;academic license&lt;/b&gt;&lt;/i&gt; that expires after 365 days but don't worry, you can just dowload a new distribution and re-install it. &lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;1.2. Verify the Installation&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;Type: &lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #40ffff;"&gt;$RTJAVA_HOME/bin/java -version&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;You should see:&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;java version "1.5.0_20"&lt;br /&gt;Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_20_Java-RTS-2.2_fcs-b19_RTSJ-1.0.2)&lt;br /&gt;Java Real-Time System HotSpot(TM) 64-Bit Client VM (build 1.5.0_20-b19, mixed mode)&lt;/span&gt;&lt;span style="color: #40ffff;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;In case you are not running in a real-time environment or your linux does not have the rt-kernel extensions, you will also see the following warning:&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;Java Real-Time System HotSpot(TM) 64-Bit Client VM warning: Unable to lock pages into memory: insufficient privileges&lt;br /&gt;Java Real-Time System HotSpot(TM) 64-Bit Client VM warning: Cannot use the real-time scheduling class.&lt;/span&gt;&lt;span style="color: #40ffff;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;You can safely ignore this one for testing RTSJ.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;1.3. A missing libcap.so problem&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;However, a problem can occur when running the "./bin/java" on some systems:   &lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$RTJAVA_HOME/bin/java -version&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;dl failure on line 824Error: failed /opt/sunrts-2.2/jre/lib/i386/server/libjvm.so,&lt;br /&gt;because libcap.so.1: cannot open shared object file: No such file or directory&lt;span style="color: #40ffff;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;This happened to me both on Ubuntu and Fedora OS. There is a detailed description of this problem &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=1902543&amp;amp;tstart=0"&gt;here&lt;/a&gt; (as it appears, I was the first person to identify this issue). &lt;br /&gt;&lt;br /&gt;Solution to the missing libcap.so.1 lib is to locate a libcap.so.2 and rename it as libcap.so.1&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ locate &lt;/span&gt;libcap.so.2&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ sudo cp &lt;/span&gt;/lib/libcap.so.2 /lib/libcap.so.1 &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Runnig a Real-time HelloWorld program&lt;/b&gt;&lt;br /&gt;Now we can finally run some real-time Java code. A classical real-time Java hello world example is below:&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="background: none repeat scroll 0% 0% rgb(0, 0, 0); color: #d1d1d1;"&gt;&lt;span style="color: #e66170; font-weight: bold;"&gt;import&lt;/span&gt;&lt;span style="color: #008073;"&gt; javax&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;&lt;span style="color: #008073;"&gt;realtime&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;&lt;span style="color: #008073;"&gt;RealtimeThread&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #e66170; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #e66170; font-weight: bold;"&gt;class&lt;/span&gt; HelloRealtimeWorld &lt;span style="color: #e66170; font-weight: bold;"&gt;extends&lt;/span&gt; RealtimeThread &lt;span style="color: #b060b0;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #bb7977; font-weight: bold;"&gt;String&lt;/span&gt; message&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #e66170; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #bb7977;"&gt;void&lt;/span&gt; run&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;{&lt;/span&gt;&lt;br /&gt;      message &lt;span style="color: #d2cd86;"&gt;=&lt;/span&gt; &lt;span style="color: #00c4c4;"&gt;"Hello Realtime World"&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #b060b0;"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: #e66170; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #e66170; font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: #bb7977;"&gt;void&lt;/span&gt; main&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;String&lt;/span&gt; args&lt;span style="color: #d2cd86;"&gt;[&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;]&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;{&lt;/span&gt;&lt;br /&gt;      HelloRealtimeWorld thread &lt;span style="color: #d2cd86;"&gt;=&lt;/span&gt; &lt;span style="color: #e66170; font-weight: bold;"&gt;new&lt;/span&gt; HelloRealtimeWorld&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;      thread&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;start&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #e66170; font-weight: bold;"&gt;  try&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;{&lt;/span&gt;&lt;br /&gt;        thread&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;join&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #b060b0;"&gt;  }&lt;/span&gt; &lt;span style="color: #e66170; font-weight: bold;"&gt;catch&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;InterruptedException&lt;/span&gt; ie&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #bb7977; font-weight: bold;"&gt;System&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;err&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;println&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;&lt;span style="color: #00c4c4;"&gt;"got interrupted"&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #e66170; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #b060b0;"&gt;  }&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #bb7977; font-weight: bold;"&gt;System&lt;/span&gt;&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;out&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;println&lt;span style="color: #d2cd86;"&gt;(&lt;/span&gt;thread&lt;span style="color: #d2cd86;"&gt;.&lt;/span&gt;message&lt;span style="color: #d2cd86;"&gt;)&lt;/span&gt;&lt;span style="color: #b060b0;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #b060b0;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b060b0;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;To &lt;i&gt;&lt;b&gt;compile&lt;/b&gt;&lt;/i&gt; the Real-Time HelloWorld class&lt;b&gt;:&lt;/b&gt;&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ $RTJAVA_HOME/bin/javac &lt;/span&gt;-classpath $RTJAVA_HOME/jre/lib/rt2.jar&amp;nbsp;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;-d build/  HelloRealtimeWorld.java&lt;span style="color: #40ffff;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;And, to &lt;b&gt;run&lt;/b&gt;:&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #40ffff;"&gt;$RTJAVA_HOME/&lt;/span&gt;&lt;span style="color: #40ffff;"&gt;bin/java &lt;/span&gt;-cp build/ HelloRealtimeWorld&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #00c4c4;"&gt;Hello Realtime World!&lt;/span&gt; &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;And we are done!&lt;br /&gt;&lt;br /&gt;Further resources on RT Java: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Concurrent-Real-Time-Programming-Andrew-Wellings/dp/047084437X"&gt;Concurrent and Real-time Java Programming book&lt;/a&gt;,&lt;/li&gt;&lt;li&gt;try our &lt;a href="http://sss.cs.purdue.edu/projects/cdx/"&gt;CDx - Real-Time Java Benchmark&lt;/a&gt;,&lt;/li&gt;&lt;li&gt;&lt;a href="http://java.sun.com/developer/technicalArticles/Programming/rt_pt1/"&gt;Oracle's RTSJ Introduction&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://web.me.com/vitekj/590vf09/Schedule.html"&gt;Embedded and Real-time Computing class taught by Prof. Vitek&lt;/a&gt; (check out the slides for selected topics)&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Further blog-post on the same topic:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;http://viswanathj.wordpress.com/2011/04/09/installing-java-rts-on-ubuntu-2/&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-5318220819420906772?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/5318220819420906772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/11/real-time-java-helloworld.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5318220819420906772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5318220819420906772'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/11/real-time-java-helloworld.html' title='Real-Time Java HelloWorld'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-3759268092272392888</id><published>2010-11-03T15:34:00.000-07:00</published><updated>2010-11-03T15:35:54.232-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reading-list'/><title type='text'>October Reading List</title><content type='html'>The list of papers, books, and other articles that caught my attention during the last month.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Papers&lt;/b&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.di.ens.fr/%7Ecousot/projets/ASTREE/"&gt;ASTREE project&lt;/a&gt;: Proving the Absence of Runtime Errors [&lt;a href="http://www.di.ens.fr/%7Emine/publi/kastner-al-erts10.pdf"&gt;PDF&lt;/a&gt;] &lt;/li&gt;&lt;ul&gt;&lt;li&gt; Static Analysis and Verification of Aerospace Software by Abstract Interpretation [&lt;a href="http://www.di.ens.fr/%7Emine/publi/bertrane-al-aiaa10.pdf"&gt;PDF&lt;/a&gt;] &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;NASA : &lt;a href="http://www.cs.indiana.edu/%7Elepike/pubs/survey.pdf"&gt;Monitoring Distributed Real-Time Systems: A Survey and Future Directions&lt;/a&gt; &lt;/li&gt;&lt;li&gt;OOPSLA papers:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://portal.acm.org/citation.cfm?id=1869517&amp;amp;CFID=108608126&amp;amp;CFTOKEN=42575072"&gt;SPUR: a trace-based JIT compiler for CIL&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://portal.acm.org/citation.cfm?id=1869509&amp;amp;CFID=108608126&amp;amp;CFTOKEN=42575072"&gt;Ownership and Immutability in Generic Java&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://portal.acm.org/citation.cfm?id=1869470&amp;amp;CFID=108608126&amp;amp;CFTOKEN=42575072"&gt;From OO to FPGA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://portal.acm.org/citation.cfm?id=1869478&amp;amp;CFID=108608126&amp;amp;CFTOKEN=42575072"&gt;HERA-JVM : a runtime system for heterogeneous multi-core architectures&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;b&gt;Books&lt;/b&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Revisiting some chapters in &lt;a href="http://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811"&gt;Compilers: Principles, Techniques, and Tools&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Neal Stephenson : Snow Crash (finally!)&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Others:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://hackermonthly.com/"&gt;Hacker Monthly&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://highfrequencytradingreview.com/the-hft-interviews-manoj-narang-tradeworx/"&gt;High-Frequency Trading Interview : TradeWorkx&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://matt.might.net/#blog"&gt;Matt Might's blog&lt;/a&gt; (as usually)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-3759268092272392888?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/3759268092272392888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/11/october-reading-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3759268092272392888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3759268092272392888'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/11/october-reading-list.html' title='October Reading List'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-1958221862996457994</id><published>2010-10-22T13:40:00.000-07:00</published><updated>2010-10-22T13:43:57.561-07:00</updated><title type='text'>oSCJ News</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_6rID2UJ0Yv4/TMHu2G0eNwI/AAAAAAAAEO4/GQldcZG29cI/s1600/activity.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_6rID2UJ0Yv4/TMHu2G0eNwI/AAAAAAAAEO4/GQldcZG29cI/s1600/activity.png" width="130" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Recently, there has been a lot of activity around the oSCJ project, here is a short summary. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We currently develop several new features in parallel:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;b&gt;SCJ benchmarks &lt;/b&gt;- we have added a set of new SCJ programs to compare performance and memory usage of the SCJ memory management againts real-time garbage collection algorithms&lt;/li&gt;&lt;li&gt;&lt;b&gt;SCJ Annotations&lt;/b&gt; - soon, our annotation checker will be extended to cover a full-scale of different allocation scenarios to guarantee memory safety of the applications running on oSCJ. Furthermore, this feature will allow us to disable the runtime scope checks in the underlying VM, achieving 5-10% speed-up!&lt;/li&gt;&lt;li&gt;&lt;b&gt;SCJ library extensions&lt;/b&gt; - as JSR-302 is nearing to its completion, we extend the set of supported features.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Also, the installation and running of oSCJ is now super-easy! First, you can get an academic version of FijiVM - our major platform for running oSCJ. &lt;b&gt;Just contact us so we can send you the Fiji VM distribution&lt;/b&gt;! &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Installation procedure:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ wget&lt;/span&gt; fivm&lt;span style="color: #508050; font-weight: bold;"&gt;.&lt;/span&gt;tar&lt;span style="color: #508050; font-weight: bold;"&gt;.&lt;/span&gt;gz&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #40ffff;"&gt;untar &lt;/span&gt;fivm&lt;span style="color: #508050; font-weight: bold;"&gt;.&lt;/span&gt;tar&lt;span style="color: #508050; font-weight: bold;"&gt;.&lt;/span&gt;gz&amp;nbsp;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$&amp;nbsp;&lt;/span&gt;&lt;span style="color: #24909d;"&gt;cd&lt;/span&gt; fivm&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #24909d;"&gt;hg clone &lt;/span&gt;https&lt;span style="color: #808030;"&gt;:&lt;/span&gt;&lt;span style="color: #40015a;"&gt;/&lt;/span&gt;&lt;span style="color: #40015a;"&gt;/scj&lt;/span&gt;-jsr302&lt;span style="color: #508050; font-weight: bold;"&gt;.&lt;/span&gt;googlecode&lt;span style="color: #508050; font-weight: bold;"&gt;.&lt;/span&gt;&lt;span style="color: #40015a;"&gt;com/hg&lt;/span&gt;&lt;span style="color: #40015a;"&gt;/&lt;/span&gt; scj&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;and then compile FijiVM, which will also compile the oSCJ as well:&lt;/div&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ autoreconf -i&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ ./configure&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ make&lt;/span&gt;&lt;span style="color: #40ffff;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To update oSCJ:&lt;/div&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ cd&amp;nbsp;&lt;/span&gt;fivm/scj&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ hg pull&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ hg update&lt;/span&gt;&lt;span style="color: #40ffff;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;For your better orientation in the distribution directory, here is a structure of the distribution directory&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; text-align: justify; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;fivm/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;fivm/scj&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp; ...&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp; lib/&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;this is where "scj.jar" is&lt;span style="color: #40ffff;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp; scj/&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oSCJ/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;oSCJ root dir&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Documenation &lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; examples/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;oSCJ examples and benchmarks dir&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minicdx/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;our CDx benchmark implemented in SCJ&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hello/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SCJ helloworld example&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scj/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;oSCJ library implementation&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ri/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SCJ library source codes&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tools/&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; our SCJ tools&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; checker/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Static Checker for SCJ&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tck/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;TCK for SCJ&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp; scjruntime/&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;See our &lt;a href="http://code.google.com/p/scj-jsr302/"&gt;oSCJ Code base&lt;/a&gt; for the most recent updates.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span id="goog_1149413012"&gt;&lt;/span&gt;&lt;span id="goog_1149413013"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span id="goog_1149413012"&gt;&lt;/span&gt;&lt;span id="goog_1149413013"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span id="goog_1149413012"&gt;&lt;/span&gt;&lt;span id="goog_1149413013"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-1958221862996457994?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/1958221862996457994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/10/oscj-news.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/1958221862996457994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/1958221862996457994'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/10/oscj-news.html' title='oSCJ News'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6rID2UJ0Yv4/TMHu2G0eNwI/AAAAAAAAEO4/GQldcZG29cI/s72-c/activity.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-3026477401531985929</id><published>2010-10-18T07:53:00.000-07:00</published><updated>2010-10-22T08:01:10.579-07:00</updated><title type='text'>Azul@Purdue Project</title><content type='html'>Recently, our team acquired a revolutionary Azul appliance platform. I had a great opportunity to play with this exciting hardware a little when installing and running the first helloworld programs both in Java and C. This was the first time ever that this machine was used in an academic institution. Here is some more info: &lt;br /&gt;&lt;br /&gt;Azul appliance is built around the Vega 3 chip and is a unique virtualization platform that features 54 cores pre processor giving users the power to run up to 800 Java threads in parallel.&amp;nbsp; Futhermore, the appliance offers ~700GB of memory while running a concurrent GC that achieves garbage collection without any pauses in the host application. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_6rID2UJ0Yv4/TMGkIaPZFFI/AAAAAAAAEOs/s6bHiGQzgFc/s1600/7200_med.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;u&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_6rID2UJ0Yv4/TMGkIaPZFFI/AAAAAAAAEOs/s6bHiGQzgFc/s1600/7200_med.gif" /&gt;&lt;/u&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Find more at our webpage: &lt;a href="http://sss.cs.purdue.edu/projects/azul/"&gt;http://sss.cs.purdue.edu/projects/azul/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-3026477401531985929?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/3026477401531985929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/10/azulpurdue-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3026477401531985929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3026477401531985929'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/10/azulpurdue-project.html' title='Azul@Purdue Project'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6rID2UJ0Yv4/TMGkIaPZFFI/AAAAAAAAEOs/s6bHiGQzgFc/s72-c/7200_med.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-931479033146081864</id><published>2010-09-26T17:48:00.000-07:00</published><updated>2011-02-21T16:00:00.246-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introduction'/><category scheme='http://www.blogger.com/atom/ns#' term='GC'/><category scheme='http://www.blogger.com/atom/ns#' term='real-time garbage collection'/><category scheme='http://www.blogger.com/atom/ns#' term='garbage collection'/><title type='text'>Garbage Collection and Real-time Garbage Collection Introduction</title><content type='html'>Here are some documents and slides you may find useful when studying Garbage Collection and Real-time Garbage Collection:&lt;br /&gt;&lt;br /&gt;First, look at SUN's &lt;br /&gt;&lt;a href="http://www.cs.purdue.edu/homes/plsek/downloads/gc/memorymanagement_whitepaper.pdf"&gt;Memory Management in the Java HotSpotTM Virtual Machine&lt;/a&gt;. Its from 2006 but contains a very nice introduction to GC, even parallel and small-pause collection algorithms are mentioned.&lt;br /&gt;&lt;br /&gt;An another introduction slides are: &lt;br /&gt;&lt;a href="http://www.cs.purdue.edu/homes/plsek/downloads/gc/intro.pdf"&gt;GC Introduction Presentation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When looking at performance of GCs, look at a nice study &lt;br /&gt;&lt;a href="http://www.cs.purdue.edu/homes/plsek/downloads/gc/Myths.pdf"&gt;Myths &amp;amp; Realities The Performance Impact of Garbage Collection&lt;/a&gt; from Steve Blackburn, Perry Cheng and Kathryn McKinley.&lt;br /&gt;&lt;br /&gt;For interesting implementation details, I recommend:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;a href="http://portal.acm.org/citation.cfm?id=286863"&gt;Barrier techniques for incremental tracing&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;And &lt;a href="http://www.cs.purdue.edu/homes/jv/pubs/pldi10b.pdf"&gt;Schism GC paper &lt;/a&gt;presented at PLDI (2010), contains also a very nice performance statistics.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.iecc.com/gclist/GC-algorithms.html"&gt;GC FAQ&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-931479033146081864?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/931479033146081864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/09/garbage-collection-and-real-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/931479033146081864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/931479033146081864'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/09/garbage-collection-and-real-time.html' title='Garbage Collection and Real-time Garbage Collection Introduction'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-8222432317783133629</id><published>2010-09-16T10:27:00.000-07:00</published><updated>2010-09-16T10:27:08.765-07:00</updated><title type='text'>Static Checker for SCJ: Paper and its Presentation</title><content type='html'>Presentation of our Static SCJ Checker is now available online:&lt;br /&gt;&lt;br /&gt;&lt;div style="width:375px" id="__ss_5215335"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/aplsek/jtres-checker" title="Static Checker for Safety-Critical Java Annotations"&gt;Static Checker for Safety-Critical Java Annotations&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse5215335" width="375" height="300"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jtres-checker-100916094940-phpapp02&amp;stripped_title=jtres-checker" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse5215335" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jtres-checker-100916094940-phpapp02&amp;stripped_title=jtres-checker" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="375" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The paper itself can be downloaded from &lt;a href="http://doi.acm.org/10.1145/1850771.1850792"&gt;JTRES2010 webpage&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-8222432317783133629?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/8222432317783133629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/09/static-checker-for-scj-paper-and-its.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/8222432317783133629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/8222432317783133629'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/09/static-checker-for-scj-paper-and-its.html' title='Static Checker for SCJ: Paper and its Presentation'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-3831373979345935938</id><published>2010-08-20T05:46:00.000-07:00</published><updated>2010-08-20T05:46:33.816-07:00</updated><title type='text'>Developing Safety-Critical Java Applications with oSCJ : Presentation</title><content type='html'>Our oSCJ slides presented at JTRES:&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_5018602" style="width: 400px;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/aplsek/oscj" title="oSCJ : Safety Critical Java Virtual Machine Development"&gt;oSCJ : Safety Critical Java Virtual Machine Development&lt;/a&gt;&lt;/b&gt;&lt;object height="355" id="__sse5018602" width="400"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oscj-pdf-100820073910-phpapp01&amp;amp;stripped_title=oscj" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse5018602" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oscj-pdf-100820073910-phpapp01&amp;amp;stripped_title=oscj" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0pt 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;our presentations&lt;/a&gt;.&lt;a href="http://www.slideshare.net/aplsek"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-3831373979345935938?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/3831373979345935938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/08/developing-safety-critical-java_20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3831373979345935938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3831373979345935938'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/08/developing-safety-critical-java_20.html' title='Developing Safety-Critical Java Applications with oSCJ : Presentation'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-6572388088834076622</id><published>2010-08-15T09:08:00.000-07:00</published><updated>2010-08-15T09:08:01.720-07:00</updated><title type='text'>Developing Safety-Critical Java Applications with oSCJ</title><content type='html'>Read our oSCJ paper:&lt;br /&gt;&lt;div id="__ss_4973796" style="width: 400px;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/aplsek/developing-4973796" title="Developing Safety-Critical Java Applications with oSCJ "&gt;Developing Safety-Critical Java Applications with oSCJ &lt;/a&gt;&lt;/b&gt;&lt;object height="510" id="__sse4973796" width="477"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/doc_player.swf?doc=oscj-100815103911-phpapp01&amp;stripped_title=developing-4973796" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse4973796" src="http://static.slidesharecdn.com/swf/doc_player.swf?doc=oscj-100815103911-phpapp01&amp;stripped_title=developing-4973796" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0pt 12px;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Abstract: &lt;/div&gt;&lt;div style="text-align: justify;"&gt;We present oSCJ, an implementation of the draft of S&lt;b style="color: blue;"&gt;afety Critical Java (SCJ)&lt;/b&gt; specification. SCJ is designed to make Java amenable to writing mission- and safety-critical software. It does this by defining a subset of the Real-time Specification for Java that trades expressiveness for verifiability.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This paper gives &lt;b&gt;a high-level description&lt;/b&gt; of our implementation of the first compliance level of the SCJ speci- fication, a library called oSCJ, and reports on &lt;b&gt;performance evaluation&lt;/b&gt; on the Ovm real-time Java virtual machine. We compare SCJ to C on both a real-time operating system on the RTEMS/LEON3 platform and Linux on a x86. Our results suggest that a high-degree of predictability and competitive performance can indeed be achieved.&lt;/div&gt;&lt;br /&gt;The paper will be presented at &lt;b style="color: blue;"&gt;JTRES'10&lt;/b&gt; in Prague.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: blue;"&gt;Download&lt;/b&gt; the paper in &lt;a href="http://www.slideshare.net/aplsek/developing-4973796/download"&gt;[PDF]&lt;/a&gt;. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-6572388088834076622?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/6572388088834076622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/08/developing-safety-critical-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/6572388088834076622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/6572388088834076622'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/08/developing-safety-critical-java.html' title='Developing Safety-Critical Java Applications with oSCJ'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-2738741539900291326</id><published>2010-08-09T08:32:00.000-07:00</published><updated>2010-08-09T08:32:08.511-07:00</updated><title type='text'>JTRES'10: Advance Program</title><content type='html'>The advance program of the JTRES conference, held next week in Prague, is already availabe at &lt;a href="http://d3s.mff.cuni.cz/jtres2010/program.html"&gt;JTRES Webpage&lt;/a&gt;. Here are some highlights.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;The keynotes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Greg Bollella (ORACLE)&lt;/i&gt; : &lt;b&gt;Some Recent Developments Around The RTSJ and Oracle.&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Marc Pantel (University of Toulouse) : &lt;/em&gt;&lt;b&gt;Certification and qualification concerns in the development of safety critical systems.&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Rainer Trummer (University of Salzburg) :&lt;/em&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;The JAviator Project       &lt;/b&gt;&lt;em&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Marek Prochazka (European Space Agency) : &lt;/em&gt;&lt;b&gt;Java in Space?       &lt;/b&gt;&lt;em&gt;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;Also, do not miss the presentations of our two papers, I will be presenting:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Developing Safety-Critical Java Applications with oSCJ/L0&lt;/b&gt; &lt;i&gt;by&lt;/i&gt; &lt;i&gt;Ales Plsek, Lei Zhao, Veysel H. Sahin, Daniel Tang, Tomas Kalibera, and Jan Vitek&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and &lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Static Checking of Safety-Critical Java Annotations&lt;/b&gt;&lt;i&gt; by Daniel Tang, Ales Plsek, and Jan Vitek&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;See you at JTRES.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-2738741539900291326?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/2738741539900291326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/08/jtres10-advance-program.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/2738741539900291326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/2738741539900291326'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/08/jtres10-advance-program.html' title='JTRES&apos;10: Advance Program'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-7256079440049196043</id><published>2010-07-26T10:44:00.000-07:00</published><updated>2010-07-26T13:30:09.529-07:00</updated><title type='text'>Certification challenges for Real-Time Java</title><content type='html'>A very interesting article about recent development in the area of certification for Real-time Java:&amp;nbsp;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.militaryaerospace.com/index/display/avi-article-display/0367079392/articles/avionics-intelligence/features-and-analysis/2010/6/do-178b-certification.html"&gt;DO-178B certification challenges for real-time Java applications&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;Its exciting to see that Safety-Critical Java (JSR-302) is in the middle of these efforts!&lt;br /&gt;&lt;br /&gt;See our implementation of safety-critical Java here: &lt;a href="http://www.ovmj.net/oscj/"&gt;oSCJ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-7256079440049196043?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/7256079440049196043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/07/certification-challenges-for-real-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7256079440049196043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7256079440049196043'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/07/certification-challenges-for-real-time.html' title='Certification challenges for Real-Time Java'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-4361863103556605955</id><published>2010-06-23T13:12:00.000-07:00</published><updated>2010-07-25T11:49:10.014-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTEMS tutorial'/><title type='text'>RTEMS HelloWorld Tutorial</title><content type='html'>&lt;span style="background-color: black;"&gt;&lt;/span&gt;Let's go embedded.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RTEMS&lt;/b&gt; is a &lt;i&gt;real-time executive&lt;/i&gt; which provides a &lt;i&gt;high  performance environment&lt;/i&gt; for &lt;b&gt;embedded applications&lt;/b&gt; on a range  processors and embedded hardware. &lt;b style="color: blue;"&gt;In this tutorial&lt;/b&gt; you will learn howto:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;install RTEMS and build RTEMS tools&lt;/li&gt;&lt;li&gt;run RTESM applications on TSIM simulator&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;We leave the topic of compiling RTEMS applications for a separe howto article. &amp;nbsp;Check the blog for updates.&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;i&gt;Note:&lt;/i&gt; This tutorial is focused on the following platforms : &lt;b&gt;SPARC LEON3&lt;/b&gt; and &lt;b&gt;ERC32/SIS.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: blue; font-size: small;"&gt;1) Prerequisities&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;First, you will need a linux distribution supporting RTEMS. Try &lt;b&gt;Fedora 11 &lt;/b&gt;or higher or &lt;b&gt;SUSE 11 &lt;/b&gt;or higher.&lt;br /&gt;This tutorial is using the &lt;b&gt;RTEMS version 4.9.&lt;/b&gt; RTEMS 4.10 is not officially distributed, but the instructions here in general should be valid once this new distribution is released. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;2) RTEMS OS installation&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;As part of the installation, we need to install the RTEMS prebuilt tools first.&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Browse &lt;a href="http://www.rtems.org/ftp/pub/rtems/linux/4.9/suse/11.2/i586/"&gt;http://www.rtems.org/ftp/pub/rtems/linux/4.9/suse/11.2/i586/&lt;/a&gt; (Suse)&lt;/li&gt;&lt;li&gt;Browse &lt;a href="http://www.rtems.org/ftp/pub/rtems/linux/4.9/fedora/11/i586/"&gt;http://www.rtems.org/ftp/pub/rtems/linux/4.9/fedora/11/i586/&lt;/a&gt; (for Fedora)&lt;/li&gt;&lt;li&gt; Download and istall the following packages (for Suse, Fedora packages will have similar names)&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #666666;"&gt;rtems-4.9-autoconf-2.62-4.suse11.2.noarch.rpm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-automake-1.10.3-1.suse11.2.noarch.rpm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-binutils-common-2.19-3.suse11.2.i586.rpm&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-gcc-common-4.3.2-24.suse11.2.i586.rpm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-gdb-common-6.8-11.suse11.2.noarch.rpm&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-newlib-common-1.16.0-24.suse11.2.i586.rpm&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-sparc-rtems4.9-binutils-2.19-3.suse11.2.i586.rpm&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-sparc-rtems4.9-gcc-4.3.2-24.suse11.2.i586.rpm&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-sparc-rtems4.9-gcc-c++-4.3.2-24.suse11.2.i586.rpm&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-sparc-rtems4.9-gdb-6.8-11.suse11.2.i586.rpm&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rtems-4.9-sparc-rtems4.9-newlib-1.16.0-24.suse11.2.i586.rpm&lt;/span&gt;&lt;br /&gt;Install (SUSE):&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;$ rpm -Uvh &amp;lt;package name&amp;gt;.rpm&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Install (Fedora):&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;$ yum install &lt;span style="color: #ed9d13;"&gt;"installation_package_name"&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Notes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;All the packages will be installed in &lt;b&gt;/opt/rtems-4.9/&lt;/b&gt; by default.&lt;/li&gt;&lt;li&gt;During installation you can get some warnings about keys. Don't worry about them.&lt;/li&gt;&lt;li&gt;During installation you can get some dependency errors. Find the required packages from suse repositories and install them.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;3. Build RTEMS&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;In this step we will build RTEMS for two different configurations - &lt;b&gt;LEON3&lt;/b&gt; and &lt;b&gt;ERC32/SIS&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;3.1 &lt;b&gt;Build RTEMS with&amp;nbsp;&lt;/b&gt;LEON3 support&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;1. Become root&lt;br /&gt;2.&amp;nbsp;Browse &lt;a href="http://www.rtems.org/ftp/pub/rtems/4.9.3/"&gt;http://www.rtems.org/ftp/pub/rtems/4.9.3/&lt;/a&gt;&lt;br /&gt;3.&amp;nbsp;Download &lt;b&gt;rtems-4.9.3.tar.bz2&lt;/b&gt;. Extract archive in the &lt;span style="font-family: inherit;"&gt;&lt;b&gt;/opt/&lt;/b&gt; &lt;/span&gt;directory. This will create&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &lt;/b&gt;&lt;b&gt;/opt/rtems-4.9.3/&lt;/b&gt;&lt;br /&gt;4.&amp;nbsp;Execute the following:&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ cd&lt;/span&gt; /opt/rtems-4.9/&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #24909d;"&gt;export &lt;/span&gt;&lt;span style="color: #40ffff;"&gt;PATH&lt;/span&gt;&lt;span style="color: #d0d0d0;"&gt;=&lt;/span&gt;/opt/rtems-4.9/bin:&lt;span style="color: #40ffff;"&gt;$PATH&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;./bootstrap&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;mkdir leon3&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #24909d;"&gt;cd &lt;/span&gt;leon3&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;../../rtems-4.9.3/configure --target&lt;span style="color: #d0d0d0;"&gt;=&lt;/span&gt;sparc-rtems4.9 &lt;br /&gt;         --enable-rtemsbsp&lt;span style="color: #d0d0d0;"&gt;=&lt;/span&gt;leon3 --enable-posix&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;make&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;make install        &lt;/pre&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;3.2 Build RTEMS with ERC32/SIS support (optional)&lt;/b&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;The same approach as above, only the configuration during the building is different:&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #24909d;"&gt;cd&lt;/span&gt; /opt/rtems-4.9/&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #24909d;"&gt;export &lt;/span&gt;&lt;span style="color: #40ffff;"&gt;PATH&lt;/span&gt;&lt;span style="color: #d0d0d0;"&gt;=&lt;/span&gt;/opt/rtems-4.9/bin:&lt;span style="color: #40ffff;"&gt;$PATH&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;./bootstrap&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;mkdir bsis&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;&lt;span style="color: #24909d;"&gt;cd &lt;/span&gt;bsis&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;../../rtems-4.9.3/configure --target&lt;span style="color: #d0d0d0;"&gt;=&lt;/span&gt;sparc-rtems4.9&amp;nbsp;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;--enable-rtemsbsp&lt;span style="color: #d0d0d0;"&gt;=&lt;/span&gt;sis --enable-posix&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;make&lt;br /&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;make install    &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b style="color: blue;"&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b style="color: blue;"&gt;3.3 TSIM simulator&lt;/b&gt;&lt;br /&gt;Go to &lt;a href="http://www.gaisler.com/cms/index.php?option=com_content&amp;amp;task=view&amp;amp;id=38&amp;amp;Itemid=56"&gt;TSIM distribution at Gaisler Inc.&lt;/a&gt; &lt;br /&gt;&amp;nbsp;- install the TSIM simulator, eg. in &lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/opt/tsim&amp;nbsp;&lt;/b&gt;&lt;br /&gt;- the simulator will allow you to execute RTEMS binnaries on your x86&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;4. RTEMS Helloworld with TSIM:&lt;/b&gt;&lt;/div&gt;First, you need to compile RTEMS C application. We will however not address this step here, we will dedicate a separate tutorial for this step. But, in order to verify that your installation is correct, RTEMS distribution contains many pre-compiled examples that you can use to run out of the box.&lt;br /&gt;You can also download it here: &lt;a href="http://www.cs.purdue.edu/homes/plsek/downloads/rtemshello.tar.gz"&gt;RTEMS HelloWorld binnary&lt;/a&gt; (compiled for SPARC LEON3).&lt;br /&gt;&lt;br /&gt;And then load the binnary file into the TSIM simulator and run it: &lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #40ffff;"&gt;$ &lt;/span&gt;/opt/tsim/linux/tsim-eval&lt;br /&gt;tsim&amp;gt; load hello&lt;br /&gt;tsim&amp;gt; go&lt;br /&gt;resuming at 0x40000000&lt;br /&gt;Hello World!&lt;br /&gt;&lt;br /&gt;Program exited normally.&lt;br /&gt;tsim&amp;gt; quit&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="background-color: white; color: blue;"&gt;&lt;b&gt;5. RTEMS installation - Building a toolchain and target C library &amp;nbsp;(optional)&lt;/b&gt;&lt;/div&gt;First, fetch &lt;b&gt;gcc-core&lt;/b&gt; and &lt;b&gt;gcc-c++ 4.3.2, binutils 2.19, newlib 1.16.0&lt;/b&gt;, and related patches from &lt;a href="http://www.rtems.org/ftp/pub/rtems/SOURCES/4.9/"&gt;http://www.rtems.org/ftp/pub/rtems/SOURCES/4.9/&lt;/a&gt;. You need only the newest patch (the filenames include the date) for each component. Extract and patch each component from the same directory (we'll call it&lt;b&gt; $TOP&lt;/b&gt;), so that you have &lt;b&gt;$TOP/gcc-4.3.2/, $TOP/binutils-2.19/&lt;/b&gt;, and &lt;b&gt;$TOP/newlib-1.16.0/&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Link &lt;b&gt;$TOP/newlib-1.16.0/newlib&lt;/b&gt; to &lt;b&gt;$TOP/gcc-4.3.2/newlib&lt;/b&gt;:&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;ln -s &lt;span style="color: #40ffff;"&gt;$TOP&lt;/span&gt;/newlib-1.16.0/newlib &lt;span style="color: #40ffff;"&gt;$TOP&lt;/span&gt;/gcc-4.3.2&lt;/pre&gt;&lt;/div&gt;Create a build directory for each of binutils and gcc, indicating the architecture; something like &lt;b&gt;binutils-2.19-$ARCH&lt;/b&gt;, where &lt;b&gt;$ARCH&lt;/b&gt; is i386, sparc, etc.&lt;br /&gt;&lt;br /&gt;Pick an install directory; we will call it &lt;b&gt;$PREFIX&lt;/b&gt; -- I use &lt;b&gt;/opt/rtems-4.9&lt;/b&gt;.&lt;br /&gt;Configure and build binutils:&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #24909d;"&gt;cd&lt;/span&gt; &lt;span style="color: #40ffff;"&gt;$TOP&lt;/span&gt;/binutils-2.19-&lt;span style="color: #40ffff;"&gt;$ARCH&lt;/span&gt;&lt;br /&gt;../binutils-2.19/configure --target&lt;span style="color: #d0d0d0;"&gt;=&lt;/span&gt;&lt;span style="color: #40ffff;"&gt;$ARCH&lt;/span&gt;-rtems4.9&amp;nbsp;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;--prefix&lt;span style="color: #d0d0d0;"&gt;=&lt;/span&gt;&lt;span style="color: #40ffff;"&gt;$PREFIX&lt;/span&gt; --disable-werror&lt;br /&gt;make&lt;br /&gt;make install&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Configure and build gcc; this may require some platform-specific arguments:&lt;br /&gt;&lt;div style="background: none repeat scroll 0% 0% black; border-color: gray; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; color: white; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0pt;"&gt;&lt;span style="color: #24909d;"&gt;cd&lt;/span&gt; &lt;span style="color: #40ffff;"&gt;$TOP&lt;/span&gt;/gcc-4&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;6. Other Tips (optional)&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;RTEMS  on x86:&lt;/i&gt;&lt;br /&gt;If you wish to boot &lt;b&gt;RTEMS using grub&lt;/b&gt; (as for qemu),  provide &lt;b&gt;--enable-rtems-grub&lt;/b&gt;. This forces the binary to load up above the  1MB mark.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;FPU support:&lt;/i&gt;&lt;br /&gt;In case your RTEMS configuration is not FPU-friendly, when building your tools, provide &lt;b&gt;--with-float=soft&lt;/b&gt; to the  gcc configuration.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;References:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;1) Another &lt;i&gt;&lt;a href="http://bozosort.com/content/2009/11/building-rtems/"&gt;RTEMS installation tutorial&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;2) RTEMS:&amp;nbsp;&lt;a href="http://www.rtems.com/"&gt;http://www.rtems.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Acknowledgment: Thanks to Petr Maj and Ethan Blanton for help with this tutorial!&amp;nbsp; &lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-4361863103556605955?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/4361863103556605955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/06/rtems-helloworld-tutorial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/4361863103556605955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/4361863103556605955'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/06/rtems-helloworld-tutorial.html' title='RTEMS HelloWorld Tutorial'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-5257279973484170113</id><published>2010-06-14T12:20:00.000-07:00</published><updated>2010-06-18T11:52:39.555-07:00</updated><title type='text'>Static Checker for SCJ released!</title><content type='html'>We have released a new version of our &lt;b&gt;&lt;span style="color: blue;"&gt;Static Checker for SCJ&lt;/span&gt;&lt;/b&gt;. The checker is based on the Checker framework that will be shipped with Java 7 and is able to statically verify various SCJ properties.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Here you can see an &lt;b style="color: blue;"&gt;example SCJ code&lt;/b&gt; and possible errors that the checker will identify:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_6rID2UJ0Yv4/TBZ-skNanUI/AAAAAAAAEKs/5lQ17MV9Toc/s1600/big-example.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://1.bp.blogspot.com/_6rID2UJ0Yv4/TBZ-skNanUI/AAAAAAAAEKs/5lQ17MV9Toc/s200/big-example.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="font-size: x-small;"&gt;(click to enlarge)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We now support all the &lt;b style="color: blue;"&gt;SCJ annotations&lt;/b&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;@SCJAllowed&lt;/li&gt;&lt;li&gt;@SCJRestricted&lt;/li&gt;&lt;li&gt;@DefineScope&lt;/li&gt;&lt;li&gt;@Scope&lt;/li&gt;&lt;li&gt;@RunsIn&lt;/li&gt;&lt;/ul&gt;A typical example of a checker output can be seen here:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_6rID2UJ0Yv4/TBaAPM1zAsI/AAAAAAAAEK0/ae96lFncCVs/s1600/Screen+shot+2010-06-14+at+3.16.11+PM+%282%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="138" src="http://4.bp.blogspot.com/_6rID2UJ0Yv4/TBaAPM1zAsI/AAAAAAAAEK0/ae96lFncCVs/s200/Screen+shot+2010-06-14+at+3.16.11+PM+%282%29.png" width="200" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-size: x-small;"&gt;(click to enlarge)&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You can find more information about the Checker at &lt;a href="http://www.ovmj.net/oscj/"&gt;oSCJ Home Page&lt;/a&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;The checker is &lt;b&gt;&lt;span style="color: blue;"&gt;open-source&lt;/span&gt;&lt;/b&gt; and can be &lt;b&gt;&lt;span style="color: blue;"&gt;downloaded&lt;/span&gt;&lt;/b&gt; from &lt;a href="http://www.ovmj.net/oscj/checker/checker.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-5257279973484170113?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/5257279973484170113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/06/static-checker-for-scj-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5257279973484170113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5257279973484170113'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/06/static-checker-for-scj-released.html' title='Static Checker for SCJ released!'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6rID2UJ0Yv4/TBZ-skNanUI/AAAAAAAAEKs/5lQ17MV9Toc/s72-c/big-example.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-1666341608955225129</id><published>2010-06-01T14:05:00.000-07:00</published><updated>2010-06-04T11:10:21.220-07:00</updated><title type='text'>Comparator: An AST Parser for SCJ</title><content type='html'>Keeping specification and its corresponding implementation in sync is often a huge hasle.&lt;br /&gt;&lt;br /&gt;In our case, the situation is even more complex since we have several different implementations of the same Specification. Moreover, the Spec. itself is being constantly updated.&lt;br /&gt;&lt;br /&gt;Therefore, we introduce &lt;b&gt;&lt;span style="color: blue;"&gt;Comparator&lt;/span&gt;&lt;/b&gt; -- our new tool that is able to automatically determine all the differences between a specification class and its corresponding implementation. &lt;br /&gt;&lt;br /&gt;Comparator creates AST trees both from the spec and from the implementation and compares them, simple yet powerful. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_6rID2UJ0Yv4/TAV0BvclS1I/AAAAAAAAEKc/lAYj_jWlzew/s1600/comparator.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="140" src="http://3.bp.blogspot.com/_6rID2UJ0Yv4/TAV0BvclS1I/AAAAAAAAEKc/lAYj_jWlzew/s320/comparator.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;You can see a typical report log produced by the Comparator :&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_6rID2UJ0Yv4/TAlBfKHauoI/AAAAAAAAEKk/9wgEx7lXkiU/s1600/Screen+shot+2010-06-04+at+2.07.29+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://2.bp.blogspot.com/_6rID2UJ0Yv4/TAlBfKHauoI/AAAAAAAAEKk/9wgEx7lXkiU/s200/Screen+shot+2010-06-04+at+2.07.29+PM.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Comparator will be shipped with the updated version of SCJ TCK soon, stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-1666341608955225129?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/1666341608955225129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/06/comparator-ast-parser-for-scj.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/1666341608955225129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/1666341608955225129'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/06/comparator-ast-parser-for-scj.html' title='Comparator: An AST Parser for SCJ'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6rID2UJ0Yv4/TAV0BvclS1I/AAAAAAAAEKc/lAYj_jWlzew/s72-c/comparator.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-3531471779396880961</id><published>2010-06-01T07:58:00.000-07:00</published><updated>2010-06-01T07:59:59.953-07:00</updated><title type='text'>JTRES Workshop</title><content type='html'>As every year,&lt;b style="color: blue;"&gt; JTRES'10&lt;/b&gt; : &lt;i&gt;International Workshop on Java Technologies for Real-time and Embedded Systems&lt;/i&gt; is coming.&lt;br /&gt;&lt;br /&gt;This year in Prague, Czech Republic, August 19-21.&lt;br /&gt;Research Paper Deadline : June 7th (firm).&lt;br /&gt;&lt;br /&gt;For more info, see:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_6rID2UJ0Yv4/TAUf8Woe8vI/AAAAAAAAEKU/-8cmS3I0IeU/s1600/Screen+shot+2010-06-01+at+10.57.04+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="164" src="http://3.bp.blogspot.com/_6rID2UJ0Yv4/TAUf8Woe8vI/AAAAAAAAEKU/-8cmS3I0IeU/s320/Screen+shot+2010-06-01+at+10.57.04+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-3531471779396880961?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/3531471779396880961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/06/jtres-workshop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3531471779396880961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3531471779396880961'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/06/jtres-workshop.html' title='JTRES Workshop'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6rID2UJ0Yv4/TAUf8Woe8vI/AAAAAAAAEKU/-8cmS3I0IeU/s72-c/Screen+shot+2010-06-01+at+10.57.04+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-8468476950029238807</id><published>2010-05-13T16:06:00.000-07:00</published><updated>2010-05-21T07:53:34.139-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='real-time Java'/><category scheme='http://www.blogger.com/atom/ns#' term='collision algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='CDx'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>CDx Benchmark : Update</title><content type='html'>We have released a new version of the CDx benchmark: Version 1.2!&lt;br /&gt;&lt;br /&gt;Version 1.2 unifies the CDx implementation across all the platforms  and implementations languages.&lt;br /&gt;&lt;br /&gt;We now provide the same CDx  algorithm implemented in:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;&lt;span style="color: blue;"&gt;CDj-Java&lt;/span&gt;&lt;/b&gt; - CDx in regular Java,&lt;/li&gt;&lt;li&gt; &lt;b style="color: blue;"&gt;CDj-RTSJ&lt;/b&gt; - CDx in RTSJ,&lt;/li&gt;&lt;li&gt;&lt;b style="color: blue;"&gt;CDj-SCJ&lt;/b&gt; - CDx in SCJ, &lt;/li&gt;&lt;li&gt; &lt;b style="color: blue;"&gt;CDj-Fiji&lt;/b&gt; - a specific-FijiVM-implementation,&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;CDc&lt;/span&gt;&lt;/b&gt; - language C implementation.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;We specifically paid attention to implementation of each version so that all the provided CDx applications and computationally identical, the only difference is the programming language used for their implementation.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ovmj.net/cdx/"&gt;Download the CDx benchmark.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-8468476950029238807?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/8468476950029238807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/05/cdx-benchmark-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/8468476950029238807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/8468476950029238807'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/05/cdx-benchmark-update.html' title='CDx Benchmark : Update'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-2878630160463734371</id><published>2010-04-24T13:20:00.001-07:00</published><updated>2010-04-24T13:20:58.200-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJ'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='RT VM'/><category scheme='http://www.blogger.com/atom/ns#' term='safety-critical'/><title type='text'>Open Safety-Critical Java Presentation</title><content type='html'>Presenting our &lt;b&gt;&lt;span style="color: blue;"&gt;oSCJ Project&lt;/span&gt;&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_3842232" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/aplsek/open-safetycritical-java-3842232" title="Open Safety-Critical Java"&gt;Open Safety-Critical Java&lt;/a&gt;&lt;/b&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oscj-100424151643-phpapp02&amp;stripped_title=open-safetycritical-java-3842232" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oscj-100424151643-phpapp02&amp;stripped_title=open-safetycritical-java-3842232" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0pt 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/aplsek"&gt;Ales Plsek&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-2878630160463734371?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/2878630160463734371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/04/open-safety-critical-java-presentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/2878630160463734371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/2878630160463734371'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/04/open-safety-critical-java-presentation.html' title='Open Safety-Critical Java Presentation'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-1524252928783891856</id><published>2010-04-13T17:42:00.000-07:00</published><updated>2010-04-13T17:42:04.243-07:00</updated><title type='text'>oSCJ on GoogleCode!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_6rID2UJ0Yv4/S8UPT5oO6wI/AAAAAAAAEI4/QJb8Zci3vZw/s1600/logo.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="77" src="http://1.bp.blogspot.com/_6rID2UJ0Yv4/S8UPT5oO6wI/AAAAAAAAEI4/QJb8Zci3vZw/s200/logo.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;We have set up a GoogleCode project for oSCJ.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;See the project here: &lt;a href="http://code.google.com/p/scj-jsr302/"&gt;http://code.google.com/p/scj-jsr302/&lt;/a&gt;&lt;br /&gt;This move allows you to closely follow updates on oSCJ. We now introduce new features almost every day!&lt;br /&gt;&lt;br /&gt;You can now easily check-out oSCJ from our Mercurial repository:&lt;br /&gt;&lt;b&gt;&lt;span id="goog_387867830"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;hg clone https://scj-jsr302.googlecode.com/hg/ scj-jsr302&lt;/span&gt; &lt;span id="goog_387867831"&gt;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-1524252928783891856?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/1524252928783891856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/04/oscj-on-googlecode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/1524252928783891856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/1524252928783891856'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/04/oscj-on-googlecode.html' title='oSCJ on GoogleCode!'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6rID2UJ0Yv4/S8UPT5oO6wI/AAAAAAAAEI4/QJb8Zci3vZw/s72-c/logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-2072446893387092154</id><published>2010-03-31T09:48:00.000-07:00</published><updated>2010-03-31T09:53:10.687-07:00</updated><title type='text'>oSCJ Released!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="www.omvj.net/oscj"&gt;&lt;a href="www.omvj.net/oscj" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="77" src="http://4.bp.blogspot.com/_6rID2UJ0Yv4/S7N7N6E3RwI/AAAAAAAAEIs/2clx3BIpZHY/s200/logo.jpg" width="200" /&gt;&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;We are happy to announce &lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b style="color: blue;"&gt;oSCJ : open Safety-Critical Java&lt;/b&gt;&lt;span style="color: blue;"&gt; &lt;span style="color: black;"&gt;implementation&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;has been &lt;b style="color: blue;"&gt;released&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;The &lt;b style="color: blue;"&gt;oSCJ&lt;/b&gt; distribution contains:&lt;br /&gt;&lt;ul&gt;&lt;li style="color: blue;"&gt;&lt;b&gt;Library&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;SCJ Level 0 library implementation&lt;/li&gt;&lt;li&gt; an RTSJ-compatible implementation for evaluating SCJ on top of RTSJ VMs&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;b&gt;&lt;span style="color: blue;"&gt;SCJ-compliant VM&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;our VM is based on OVM&lt;/li&gt;&lt;li&gt; we provide support also for FijiVM&lt;/li&gt;&lt;/ul&gt;&lt;li style="color: blue;"&gt;&lt;b&gt;Tools&amp;nbsp;&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt; &lt;b style="color: blue;"&gt;Checker&lt;/b&gt; - a static checker for proving memory safety of SCJ programs and other properties&lt;/li&gt;&lt;li&gt;&lt;b style="color: blue;"&gt;TCK&lt;/b&gt; - Technology Compatibility Kit for SCJ&lt;/li&gt;&lt;/ul&gt;&lt;li style="color: blue;"&gt;&lt;b&gt;Benchmark Suite&amp;nbsp;&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;HelloWorld&lt;/span&gt;&lt;/b&gt; example for experimenting with SCJ&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;miniCDj&lt;/span&gt;&lt;/b&gt; - SCJ implementation of our CDx benchmark&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Download the distribution from &lt;a href="http://sss.cs.purdue.edu/projects/oscj/download/download.html"&gt;oSCJ webpage&lt;/a&gt;. &lt;br /&gt;&lt;ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;Enjoy and we are looking forward to your feedback!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-2072446893387092154?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/2072446893387092154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/03/oscj-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/2072446893387092154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/2072446893387092154'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/03/oscj-released.html' title='oSCJ Released!'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6rID2UJ0Yv4/S7N7N6E3RwI/AAAAAAAAEIs/2clx3BIpZHY/s72-c/logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-5349750750243672221</id><published>2010-03-07T15:13:00.000-08:00</published><updated>2010-03-07T15:14:06.513-08:00</updated><title type='text'>Collision Detector Benchmark : A New Version Released</title><content type='html'>We have just released &lt;b style="color: blue;"&gt;a new version of CDx&lt;/b&gt; : Open-source Realtime Collision Detector benchmark. &lt;br /&gt;Download our CDx benchmark version 1.1 &lt;a href="http://sss.cs.purdue.edu/projects/cdx/Download/cdx1.1.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This new version is largely simplified, specially the simulation of the input Frames is changed, now each frame is computed on-the-fly. The version 1.1 of the benchmark is used in two research papers recently published at EuroSys'10 and PLDI'10, &lt;a href="http://sss.cs.purdue.edu/projects/cdx/publications/"&gt;see our list of publications&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The CDx benchmark is now distributed under  the&lt;a href="http://sss.cs.purdue.edu/projects/cdx/license.txt"&gt; New BSD License&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-5349750750243672221?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/5349750750243672221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/03/collision-detector-benchmark-new.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5349750750243672221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5349750750243672221'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/03/collision-detector-benchmark-new.html' title='Collision Detector Benchmark : A New Version Released'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-4786533327684152646</id><published>2010-02-03T08:08:00.000-08:00</published><updated>2010-02-04T08:38:34.551-08:00</updated><title type='text'>ROOTs'10 Workshop Announcement</title><content type='html'>ROOTs 2010 stands for 1st International &lt;b style="color: blue;"&gt;Workshop on Real-time Object-Oriented Technologies. &lt;/b&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: black;"&gt;Workshop will be &lt;b style="color: blue;"&gt;collocated with ECOOP 2010&lt;/b&gt; in Slovenia in June.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: black;"&gt;Briefly, the workshop will be concentrated around &lt;b&gt;object-oriented desing and development of real-time, embedded and safety-critical applications&lt;/b&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: black;"&gt;The &lt;/span&gt;&lt;/span&gt;&lt;b style="color: blue;"&gt;Program Committee comprises 16 independent specialists both from academia and industry. &lt;/b&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: black;"&gt;See more at our webpage:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.cs.purdue.edu/roots10/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="196" src="http://2.bp.blogspot.com/_6rID2UJ0Yv4/S2mfQYFV0MI/AAAAAAAAEHg/2zPCYzeh6c4/s200/roots.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: black;"&gt;Feel free to propose participation. We are looking for your papers, demos submissions, etc.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: black;"&gt;See you at &lt;a href="http://ecoop2010.uni-mb.si/"&gt;ECOOP 2010&lt;/a&gt;!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-4786533327684152646?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/4786533327684152646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/02/roots10-workshop-announcement.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/4786533327684152646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/4786533327684152646'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/02/roots10-workshop-announcement.html' title='ROOTs&apos;10 Workshop Announcement'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6rID2UJ0Yv4/S2mfQYFV0MI/AAAAAAAAEHg/2zPCYzeh6c4/s72-c/roots.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-469604984025565595</id><published>2010-01-31T19:29:00.000-08:00</published><updated>2010-01-31T19:30:25.510-08:00</updated><title type='text'>oSCJ White Paper</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;oSCJ : &lt;b&gt;&lt;span style="color: #351c75;"&gt;Open Safety-Critical Java white paper&lt;/span&gt;&lt;/b&gt; will be part of annual report of Computer Science department at Purdue University. See the paper here:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.cs.purdue.edu/homes/plsek/soft/scj/publications/Documents/oSCJ-Report.pdf" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_6rID2UJ0Yv4/S2ZKLzKWyTI/AAAAAAAAEG0/HzwlWLI-REs/s200/oSCJ-Report-1.png" width="154" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-469604984025565595?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/469604984025565595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2010/01/oscj-white-paper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/469604984025565595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/469604984025565595'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2010/01/oscj-white-paper.html' title='oSCJ White Paper'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6rID2UJ0Yv4/S2ZKLzKWyTI/AAAAAAAAEG0/HzwlWLI-REs/s72-c/oSCJ-Report-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-3888265488180481281</id><published>2009-12-19T20:31:00.000-08:00</published><updated>2009-12-19T20:31:54.221-08:00</updated><title type='text'>Safety-Critical Java Introduction</title><content type='html'>Safety-Critical Java is a new JSR-302 specification for a Safety-Critical standard on the Java platform. &lt;br /&gt;&lt;br /&gt;A good introductory paper to the Safety-Critical Java implementation is &lt;b&gt;&lt;a class="l" done="done" href="http://www.jopdesign.com/doc/safecert2009.pdf" onmousedown="return clk(this.href,'','','res','2','','0CBMQFjAB')"&gt;&lt;em&gt;Java for Safety&lt;/em&gt;-&lt;em&gt;Critical Applications.&lt;/em&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;em&gt;&lt;/em&gt;&lt;/b&gt;Look also at &lt;b style="color: #0b5394;"&gt;&lt;a href="http://a%20technology%20compatibility%20kit%20for%20safety%20critical%20java/"&gt; TCK for SCJ paper&lt;/a&gt;&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-3888265488180481281?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/3888265488180481281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/12/safety-critical-java-introduction.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3888265488180481281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3888265488180481281'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/12/safety-critical-java-introduction.html' title='Safety-Critical Java Introduction'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-554643184044257753</id><published>2009-12-11T11:56:00.000-08:00</published><updated>2009-12-11T11:58:26.368-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJ'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='RT VM'/><category scheme='http://www.blogger.com/atom/ns#' term='real-time'/><category scheme='http://www.blogger.com/atom/ns#' term='safety-critical Java'/><title type='text'>oSCJ Webpage Launched</title><content type='html'>Recently, we have launched our&lt;b style="color: #20124d;"&gt; &lt;span style="color: #073763;"&gt;Open Safety-Critical Java&lt;/span&gt;&lt;/b&gt; (oSCJ) Project. This project is based on the JSR302 Safety-Critical Java Specification,&amp;nbsp; &lt;br /&gt;&lt;br /&gt;As the first result, an &lt;b&gt;&lt;span style="color: #073763;"&gt;oSCJ Home Page&lt;/span&gt;&lt;/b&gt; was launched:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.blogger.com/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span id="goog_1260560821799"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.cs.purdue.edu/homes/plsek/soft/scj/index.html"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_6rID2UJ0Yv4/SyKiRgmLpSI/AAAAAAAAEEw/qKKOCrszYbc/s200/oSCJ.png" /&gt;&lt;/a&gt;&lt;span id="goog_1260560821800"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;More news to come soon, &lt;b style="color: #073763;"&gt;the first release is coming January 2010&lt;/b&gt;. Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-554643184044257753?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/554643184044257753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/12/oscj-webpage-launched.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/554643184044257753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/554643184044257753'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/12/oscj-webpage-launched.html' title='oSCJ Webpage Launched'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6rID2UJ0Yv4/SyKiRgmLpSI/AAAAAAAAEEw/qKKOCrszYbc/s72-c/oSCJ.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-7056533157651641005</id><published>2009-11-16T16:46:00.001-08:00</published><updated>2009-11-16T16:48:40.563-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='barehardware'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='real-time'/><title type='text'>A New Real-time VM Was Born - Fiji VM</title><content type='html'>The new virtual machine for real-time world is here. Fiji VM technology enables developers to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Seamlessly integrate &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;pure Java&lt;/span&gt; code &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;into real-time&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;, &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;safety-critical&lt;/span&gt;, and &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;mission-critical &lt;/span&gt;systems.&lt;/li&gt;&lt;li&gt;Deploy on a broad range of hardware and operating systems, ranging from ARM and ERC32 to PowerPC and x86/x86_64, from &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;RTEMS&lt;/span&gt; to Linux or Darwin.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Boot&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Java from bare hardware&lt;/span&gt;&lt;/span&gt; - for small footprint (100KB) applications, Fiji VM provides the unique ability to boot Java from bare hardware.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Execute Java with &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;deterministic garbage collection&lt;/span&gt;, as well as full support for safe GC-less allocation.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Achieve&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;high performance&lt;/span&gt;&lt;/span&gt; execution. From the peformance perspective, Fiji VM seems very promising, having only 40% slow down comparing to C.&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://www.fiji-systems.com/libdiagram.gif" style="margin: 0pt auto 10px; display: block; text-align: center; width: 282px; height: 211px;" title="Fiji VM library choices" alt="Fiji VM library choices" /&gt;Fiji VM technology offers a variety of &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;footprint&lt;/span&gt; and library options to the developer, if extremely small footprint (100KB) is desired, Fiji offers Fiji HardRTJ library.&lt;br /&gt;&lt;br /&gt;To give you a better picture, here is how FijiVM fits into the whole stuck:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.fiji-systems.com/fvmdiagram.gif" style="margin: 0pt auto 10px; display: block; text-align: center; width: 348px; height: 229px;" title="http://www.fiji-systems.com/fvmdiagram.gif" alt="fiji diagram" /&gt;&lt;br /&gt;Fiji VM 1.0 release is coming in December 2009. More at &lt;a style="font-weight: bold;" href="http://www.fiji-systems.com/index.html"&gt;Fiji Systems LLC home page&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-7056533157651641005?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/7056533157651641005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/11/new-real-time-vm-was-born-fiji-vm.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7056533157651641005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7056533157651641005'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/11/new-real-time-vm-was-born-fiji-vm.html' title='A New Real-time VM Was Born - Fiji VM'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-6418535822523458953</id><published>2009-09-22T14:02:00.001-07:00</published><updated>2009-09-22T16:45:25.689-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTSJ'/><category scheme='http://www.blogger.com/atom/ns#' term='PhD defense'/><category scheme='http://www.blogger.com/atom/ns#' term='CBSE'/><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><title type='text'>A Component Framework for RTSJ</title><content type='html'>The following slides are presenting &lt;span style="font-weight: bold; color: rgb(51, 0, 153);"&gt;SOLEIL&lt;/span&gt; - a component framework for RTSJ-based systems.&lt;br /&gt;&lt;br /&gt;These &lt;span style="font-weight: bold; color: rgb(51, 0, 153);"&gt;slides&lt;/span&gt; were used also during my &lt;span style="font-weight: bold; color: rgb(51, 0, 153);"&gt;PhD defense&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_2043436"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/aplsek/phd-defense-2043436" title="Soleil: A Component Framework for RTSJ"&gt;Soleil: A Component Framework for RTSJ&lt;/a&gt;&lt;object style="margin: 0px;" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20090914defense-090922141617-phpapp01&amp;amp;stripped_title=phd-defense-2043436"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20090914defense-090922141617-phpapp01&amp;amp;stripped_title=phd-defense-2043436" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/aplsek"&gt;aplsek&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-6418535822523458953?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/6418535822523458953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/09/component-framework-for-rtsj.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/6418535822523458953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/6418535822523458953'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/09/component-framework-for-rtsj.html' title='A Component Framework for RTSJ'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-6976708012908859544</id><published>2009-08-27T03:52:00.001-07:00</published><updated>2009-08-27T03:55:57.750-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTSJ'/><category scheme='http://www.blogger.com/atom/ns#' term='event'/><title type='text'>A PhD thesis about RTSJ</title><content type='html'>&lt;p&gt;My PhD thesis focused on RTSJ is titled: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#0000a0"&gt;SOLEIL : An Integrated Approach for Designing and Developing Component-based Real-time Java Systems&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The defense of this thesis will take plate at INRIA Lille, France on September 14, 1:30 pm. Visitors are welcomed.&lt;/p&gt;  &lt;p&gt;The thesis can be downloaded from: &lt;a href="http://researchers.lille.inria.fr/~plsek/thesis-plsek.pdf"&gt;SOLEIL thesis download&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-6976708012908859544?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/6976708012908859544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/08/phd-thesis-about-rtsj.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/6976708012908859544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/6976708012908859544'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/08/phd-thesis-about-rtsj.html' title='A PhD thesis about RTSJ'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-5487035837792661551</id><published>2009-08-24T03:54:00.000-07:00</published><updated>2009-08-27T03:56:52.968-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTSJ'/><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>A New Real-time Java Book</title><content type='html'>&lt;p&gt;Recently, &lt;strong&gt;&lt;font color="#0000ff"&gt;a new book about RTSJ&lt;/font&gt;&lt;/strong&gt; has been published:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="92"&gt;&lt;a href="http://lh3.ggpht.com/_6rID2UJ0Yv4/SpZl2YafI8I/AAAAAAAADwc/7QB26l6KoEI/s1600-h/book%5B4%5D.jpg"&gt;&lt;img title="book" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="129" alt="book" src="http://lh4.ggpht.com/_6rID2UJ0Yv4/SpZl3Kdh8MI/AAAAAAAADwg/WMcj-sXQcFI/book_thumb%5B2%5D.jpg?imgmax=800" width="129" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="308"&gt;         &lt;p&gt;&lt;strong&gt;Real-Time Java™ Programming with Java RTS &lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;by &lt;a href="http://www.informit.com/authors/author_bio.aspx?ISBN=9780137142989"&gt;Eric J. Bruno; Greg Bollella&lt;/a&gt;, Prentice Hall, 2009&lt;/p&gt;          &lt;p&gt;Read it online &lt;a href="http://sunlibrary.safaribooksonline.com/9780137153626"&gt;here&lt;/a&gt;.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-5487035837792661551?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/5487035837792661551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/08/new-book-about-real-time-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5487035837792661551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5487035837792661551'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/08/new-book-about-real-time-java.html' title='A New Real-time Java Book'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_6rID2UJ0Yv4/SpZl3Kdh8MI/AAAAAAAADwg/WMcj-sXQcFI/s72-c/book_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-5804685512588040912</id><published>2009-08-12T13:38:00.000-07:00</published><updated>2009-08-13T06:25:18.781-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Real-time Java Programming - Introduction</title><content type='html'>New to the world of real-time and real-time Java programming?&lt;br /&gt;&lt;br /&gt;Look at my &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Real-time Java programming in 10 minutes&lt;/span&gt; presentation:&lt;br /&gt;&lt;div style="width: 300px; text-align: center;" id="__ss_1098875"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/aplsek/20081112CZJug" title="Real-time Programming in Java"&gt;Real-time Programming in Java&lt;/a&gt;&lt;object style="margin: 0px;" height="295" width="340p"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20081112CZJug-123616162802-phpapp01&amp;amp;stripped_title=20081112CZJug"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20081112CZJug-123616162802-phpapp01&amp;amp;stripped_title=20081112CZJug" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="295" width="340px"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/aplsek"&gt;aplsek&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;When searching for more information about real-time programming in general, try the&lt;br /&gt;&lt;a href="http://www.real-time.org/java.htm"&gt;Douglas E. Jensen Tutorial.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-5804685512588040912?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/5804685512588040912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/08/real-time-java-programming-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5804685512588040912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/5804685512588040912'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/08/real-time-java-programming-introduction.html' title='Real-time Java Programming - Introduction'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-191682151343688176</id><published>2009-08-06T01:10:00.001-07:00</published><updated>2009-08-06T01:34:34.809-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTSJ'/><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><title type='text'>JTRES’09 Workshop</title><content type='html'>&lt;p align="center"&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;em&gt;“This is &lt;strong&gt;the place&lt;/strong&gt; to be.”&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/em&gt;&lt;/p&gt;  &lt;p align="center"&gt;Greg Bollella&lt;/p&gt;  &lt;p&gt;JTRES is a workshop of &lt;strong&gt;&lt;font color="#0000ff"&gt;Java Technologies for Real-Time and Embedded Systems&lt;/font&gt;&lt;/strong&gt;. Annually, RTSJ professionals, researchers and fans are meeting to discuss, exchange…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;We will be there too&lt;/font&gt;&lt;/strong&gt;, presenting our CDx paper - an open-source RTSJ benchmark.&lt;/p&gt;  &lt;p&gt;This year in Madrid, Spain. See more at &lt;a href="http://pan.vmars.tuwien.ac.at/jtres2009/"&gt;JTRES Home Page&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-191682151343688176?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/191682151343688176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/08/jtres09-conference.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/191682151343688176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/191682151343688176'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/08/jtres09-conference.html' title='JTRES’09 Workshop'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-3364282590867081922</id><published>2009-07-07T03:26:00.000-07:00</published><updated>2009-07-13T02:12:15.508-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTSJ'/><category scheme='http://www.blogger.com/atom/ns#' term='case study'/><title type='text'>CDx : A Family of Real-time Java Benchmarks</title><content type='html'>&lt;div  style="text-align: left; font-family: arial;font-family:georgia;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;Collision Detector (CDx)&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; is our new open-source Real-time Java&lt;br /&gt;benchmark. &lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;T&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;he key features of the CDx benchmark are:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: justify; font-family: arial;font-family:georgia;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;the first &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;open-source&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; RTSJ benchmark,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;highly configurable&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; for different VMs,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;provides &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;various workflows&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;a large &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;case study&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; suitable for learning and experimenting with RTSJ.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: justify; font-family: arial;font-family:georgia;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Find more at our new webpage presenting CDx: &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: center; font-family: arial;font-family:georgia;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;a href="http://adam.lille.inria.fr/soleil/rcd"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;CDx : A Family of Real-time Java Benchmarks&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-3364282590867081922?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/3364282590867081922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/07/cdx-family-of-real-time-java-benchmarks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3364282590867081922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/3364282590867081922'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/07/cdx-family-of-real-time-java-benchmarks.html' title='CDx : A Family of Real-time Java Benchmarks'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-7932869746785315857</id><published>2009-06-30T02:03:00.000-07:00</published><updated>2011-07-14T08:45:09.200-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTSJ'/><category scheme='http://www.blogger.com/atom/ns#' term='RT VM'/><title type='text'>Real-time Java VMs</title><content type='html'>&lt;div style="text-align: justify;"&gt;Although real-time Java is becoming well known, the specific Virtual Machines implementing its functionalities are still known only to the community. There is no list of VMs supporting real-time features, furthermore, every VM is implementing a different subset of RTSJ.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Therefore, I am posting a list of RTSJ-compatible VMs that are available up to this date (sorted by first release date). &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;strong&gt;TimeSys RTSJ Reference Implementation&lt;/strong&gt; Only licensed for non-commercial use. Runs on     X86/Linux. Available at &lt;a href="http://www.timesys.com/"&gt;www.timesys.com&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Java RTS Sun - Java SE Real-time (Java RTS).&lt;/strong&gt; Runs on Sparc/Solaris (Beta for SUSE Linux     Enterprise Realtime 10, and Red Hat Enterprise MRG 1.0.). Available at &lt;a href="http://java.sun.com/javase/technologies/realtime/rts/"&gt;http://java.sun.com/javase/technologies/realtime/rts/&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;IBM WebSphere Real Time&lt;/strong&gt;. IBM WebSphere Real Time V2 for Real Time Linux, running     on main-line real-time Linux distributions (Red Hat MRG and Novell SLERT). However, there are limitations on the hardware supported. The main reason for the hardware limitation     is that the supported models have modified firmware to allow better control over SMI     event prioritization, in order to achieve determinism of the underlying hardware. Availale     at &lt;a href="http://www.ibm.com/software/webservers/realtime/"&gt;www.ibm.com/software/webservers/realtime/&lt;/a&gt;. &lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Furthermore, other real-time, Java-like platforms have been developed, either commercial or&amp;nbsp;academic projects. Usually, these VMs are not fully compliant with RTSJ.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;strong&gt;OVM&lt;/strong&gt; is an academia research project at Purdue University that implements RT VM. Available     at &lt;a href="http://www.ovmj.org/"&gt;http://www.ovmj.org&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;strong&gt;JamaicaVM&lt;/strong&gt; implements RTSJ and a deterministic garbage collector. Runs on various platforms. Available at &lt;a href="http://www.aicas.com/jamaica.html"&gt;http://www.aicas.com/jamaica.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;jRate&lt;/strong&gt; (Java Real-Time Extension) is an extension of the GNU GCJ compiler front-end and runtime system which adds support for most of the features required by the RTSJ. Available at &lt;a href="http://jrate.sourceforge.net/"&gt;http://jrate.sourceforge.net/&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Aonix PERC&lt;/strong&gt; is a commercial project targeting many hard real-time, safety critical and embedded systems. The PERC platform is introducing many trade-offs and therefore is not fully compliant with RTSJ, however, allows developers to target a broader scope of applications rather than having strict limitations as it is the case of RTSJ. Available at &lt;a href="http://www.aonix.com/perc"&gt;www.aonix.com/perc&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;aJ100&lt;/strong&gt; is a hardware coded JVM. Available at &lt;a href="http://www.ajile.com/"&gt;www.ajile.com&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;JRockit Real-Time&lt;/strong&gt; JRockit Enterprise Java Runtime provided by ORACLE is a Java VM featuring real-time garbage collection suitable for soft real-time systems. Available at &lt;a href="http://www.oracle.com/jrockit"&gt;www.oracle.com/jrockit&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;IBM/Apogee Aphelion&lt;/strong&gt; is comprised of reliable and high performance JREs for deploying Java applications on devices based on embedded systems. Supports many OS platforms, further details at &lt;a href="http://www.apogee.com/"&gt;http://www.apogee.com/&lt;/a&gt; &lt;/li&gt;&lt;li&gt;[UPDATE: 07/2011] &lt;b&gt;LJRT&lt;/b&gt; - Lund Java based Real-Time, http://www.robot.lth.se/java&lt;/li&gt;&lt;li&gt;[UPDATE: 07/2011]&amp;nbsp;&lt;b&gt;FijiVM&lt;/b&gt;&amp;nbsp;- FijiVM, http://www.fiji-systems.com/, more also &lt;a href="http://rtjava.blogspot.com/2011/07/fijivm-real-time-java-vm-overview.html"&gt;at this post.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Source: Real-time Java programming book, discussions in the Real-time Java Group. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Please, let me know if there is any VM missing in this list.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-7932869746785315857?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/7932869746785315857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/07/real-time-java-vms.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7932869746785315857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/7932869746785315857'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/07/real-time-java-vms.html' title='Real-time Java VMs'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5684389242714865804.post-570787992322853679</id><published>2009-06-29T13:38:00.000-07:00</published><updated>2009-07-15T13:39:09.472-07:00</updated><title type='text'>Why This Blog?</title><content type='html'>&lt;p align="justify"&gt;The goal of this blog is to inform about the new &lt;strong&gt;&lt;span style="color:#0000ff;"&gt;technologies and trends&lt;/span&gt;&lt;/strong&gt; in the domain of Real-time Java programming. Currently, there is no consistent source of information about RT Java, this blog will try to close this gap.&lt;/p&gt;  &lt;p align="justify"&gt;During the past few years, I have gathered some &lt;span style="color:#0000ff;"&gt;&lt;strong&gt;links&lt;/strong&gt;&lt;/span&gt;, &lt;strong&gt;&lt;span style="color:#0000ff;"&gt;documents&lt;/span&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;span style="color:#0000ff;"&gt;experience&lt;/span&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;span style="color:#0000ff;"&gt;knowledge&lt;/span&gt;&lt;/strong&gt; about Real-time Java. I would like &lt;strong&gt;&lt;span style="color:#0000ff;"&gt;to&lt;/span&gt;&lt;/strong&gt; &lt;span style="color:#0000ff;"&gt;&lt;strong&gt;share&lt;/strong&gt;&lt;/span&gt; them in this blog. &lt;/p&gt;  &lt;p align="justify"&gt;Anyone who would like to &lt;strong&gt;&lt;span style="color:#0000ff;"&gt;contribute and become a co-author&lt;/span&gt;&lt;/strong&gt; is welcomed!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5684389242714865804-570787992322853679?l=rtjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtjava.blogspot.com/feeds/570787992322853679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtjava.blogspot.com/2009/07/why-this-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/570787992322853679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5684389242714865804/posts/default/570787992322853679'/><link rel='alternate' type='text/html' href='http://rtjava.blogspot.com/2009/07/why-this-blog.html' title='Why This Blog?'/><author><name>Ales Plsek</name><uri>http://www.blogger.com/profile/13115252574849748848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_6rID2UJ0Yv4/SlMG-FvG0rI/AAAAAAAADto/dHLNx_2urmo/S220/ja-link.jpg'/></author><thr:total>0</thr:total></entry></feed>
