473,883 Members | 1,659 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Mars Rover Controlled By Java

Java, the software developed by Sun Microsystems in the mid-1990s as a
universal operating system for Internet applications, gave NASA a low-cost
and easy-to-use option for running Spirit, the robotic rover that rolled
onto the planet's surface on Thursday in search of signs of water and life.

http://news.com.com/2100-1007_3-5142...l?tag=nefd_top

l8r, Mike N. Christoff

Jul 17 '05
198 18451
> In embedded software, we frequently write to memory addresses that are
in turn mapped to hardware control registers. Early optimizer design
was frequently done by software folk not familiar with this practices,
often optimizing out writes to address that they didn't see being
later read.


...which is the correct thing to do, IMO. If you want such dead stores or
loads to happen in any case, you need to tell the compiler the changed
semantics of that value in any case. In fact, on a modern processor, even
if the compiler did not optimize the memory operation away, it is quite
likely it wouldn't happen at all or in time.

Crippling the optimizer is the wrong solution to this problem.

Jan
Jul 17 '05 #71
> d) There is no reason to believe a real time system cannot be virtual
machine based. It is technicaly feasible and all the benefits of seperating
code from hardware/OS are just as relevant on embedded systems as they are
on desktops. Just look at cell phones.


Or, indeed, some smart cards (for instance, from GEMplus or axalto).

Their advantage is that you need to certify the JVM only once as to its
sandbox guarantees, and can then put new applications on the card and
certify them without regard to what else is running on the card, while the
current practice would require a re-certification of all the software on
the card as a whole. Megabucks saved.

Jan
Jul 17 '05 #72
> d) There is no reason to believe a real time system cannot be virtual
machine based. It is technicaly feasible and all the benefits of seperating
code from hardware/OS are just as relevant on embedded systems as they are
on desktops. Just look at cell phones.


Or, indeed, some smart cards (for instance, from GEMplus or axalto).

Their advantage is that you need to certify the JVM only once as to its
sandbox guarantees, and can then put new applications on the card and
certify them without regard to what else is running on the card, while the
current practice would require a re-certification of all the software on
the card as a whole. Megabucks saved.

Jan
Jul 17 '05 #73
)> In embedded software, we frequently write to memory addresses that are
)> in turn mapped to hardware control registers. Early optimizer design
)> was frequently done by software folk not familiar with this practices,
)> often optimizing out writes to address that they didn't see being
)> later read.

Jan wrote:

) ..which is the correct thing to do, IMO. If you want such dead stores or
) loads to happen in any case, you need to tell the compiler the changed
) semantics of that value in any case. In fact, on a modern processor, even
) if the compiler did not optimize the memory operation away, it is quite
) likely it wouldn't happen at all or in time.
)
) Crippling the optimizer is the wrong solution to this problem.

Correct me if I'm wrong, but isn't it true that most compilers have some
kind of flag (like volatile) to indicate that such writes are not to be
optimized away ? And if not, that would be the way to go, wouldn't it ?
SaSW, Willem
--
Disclaimer: I am in no way responsible for any of the statements
made in the above text. For all I know I might be
drugged or something..
No I'm not paranoid. You all think I'm paranoid, don't you !
#EOT
Jul 17 '05 #74
)> In embedded software, we frequently write to memory addresses that are
)> in turn mapped to hardware control registers. Early optimizer design
)> was frequently done by software folk not familiar with this practices,
)> often optimizing out writes to address that they didn't see being
)> later read.

Jan wrote:

) ..which is the correct thing to do, IMO. If you want such dead stores or
) loads to happen in any case, you need to tell the compiler the changed
) semantics of that value in any case. In fact, on a modern processor, even
) if the compiler did not optimize the memory operation away, it is quite
) likely it wouldn't happen at all or in time.
)
) Crippling the optimizer is the wrong solution to this problem.

Correct me if I'm wrong, but isn't it true that most compilers have some
kind of flag (like volatile) to indicate that such writes are not to be
optimized away ? And if not, that would be the way to go, wouldn't it ?
SaSW, Willem
--
Disclaimer: I am in no way responsible for any of the statements
made in the above text. For all I know I might be
drugged or something..
No I'm not paranoid. You all think I'm paranoid, don't you !
#EOT
Jul 17 '05 #75
<reply satirical_mode= "on">
Actually, the use of Java on the Mars rover is quite brilliant because of
Java's write once run anywhere model.

This means that NASA can re-license the code to run forklifts, golf
carts,wheelchai rs, or any conveyance that could have its own on board
JVM.

Just think of how all that extra licensing revenue will enable us to meet
the President's goal of landing the Democratic candidate for President on
the moon before the election and returning him within four years. More or
less.

Unless the rover was developed under the GPL?
</reply>

Actually, academic debate aside, the success of the rover so far is a
welcome shot in the arm for the space program, especially after the
shuttle tragedy and previous Mars mission failures. In the cold harsh
light of the pragmatic dawn, if the rover works to spec, then using java
was a good decision, if not, then it was a poor decision. To quote the
scribe: all else is commentary.
--
............... ............... ............... .....
99 percent of lawyers give the rest a bad name.

Rod Davison - Critical Knowledge Systems Inc.

Jul 17 '05 #76
<reply satirical_mode= "on">
Actually, the use of Java on the Mars rover is quite brilliant because of
Java's write once run anywhere model.

This means that NASA can re-license the code to run forklifts, golf
carts,wheelchai rs, or any conveyance that could have its own on board
JVM.

Just think of how all that extra licensing revenue will enable us to meet
the President's goal of landing the Democratic candidate for President on
the moon before the election and returning him within four years. More or
less.

Unless the rover was developed under the GPL?
</reply>

Actually, academic debate aside, the success of the rover so far is a
welcome shot in the arm for the space program, especially after the
shuttle tragedy and previous Mars mission failures. In the cold harsh
light of the pragmatic dawn, if the rover works to spec, then using java
was a good decision, if not, then it was a poor decision. To quote the
scribe: all else is commentary.
--
............... ............... ............... .....
99 percent of lawyers give the rest a bad name.

Rod Davison - Critical Knowledge Systems Inc.

Jul 17 '05 #77

hh****@yahoo.co m (Harry Conover) writes:
First of all, obviously Java is not an operating system. It's an
application programming language or tool targeted to the production of
Internet (particularly browser applications). You also cannot
implement a true operating system using Java as your programming
language. If you doubt this, I'll hand you an 80586 chip with 128-Megs
of online memory and chuckle as you try!)


A logical conclusion from this statement is that you can't write a "true"
(wonder what that means?) operating system in Lisp. Oops. Symbolics.

Hint: when you're doing that, you add a few well chosen extensions which
you use in the appropriate places.

--
David Gay
dg**@acm.org
Jul 17 '05 #78

hh****@yahoo.co m (Harry Conover) writes:
First of all, obviously Java is not an operating system. It's an
application programming language or tool targeted to the production of
Internet (particularly browser applications). You also cannot
implement a true operating system using Java as your programming
language. If you doubt this, I'll hand you an 80586 chip with 128-Megs
of online memory and chuckle as you try!)


A logical conclusion from this statement is that you can't write a "true"
(wonder what that means?) operating system in Lisp. Oops. Symbolics.

Hint: when you're doing that, you add a few well chosen extensions which
you use in the appropriate places.

--
David Gay
dg**@acm.org
Jul 17 '05 #79
Jan C. Vorbrüggen <jv**********@m ediasec.de> wrote in message news:<40******* ********@medias ec.de>...

Sorry Jan, I couldn't locate the original source of the text you
quoted and to which I am responding.
d) There is no reason to believe a real time system cannot be virtual
machine based. It is technicaly feasible and all the benefits of seperating
code from hardware/OS are just as relevant on embedded systems as they are
on desktops. Just look at cell phones.


I believe that accuracy of this statement depends entirely on the
degree of reaction latency that can be tollerated in the real time
system. Even at today's fantastic execution rates, critical real-time
must occur within only a few machine execution cycles.

The execution latency penalty imposed by my concept of a virtual
machine will, at least in my mind, knock it from consideration for
anything approaching that which is normally required for critical
real-time performance. Here often anything greater than a few
processor instruction cycle latency leads to a non-recoverable error
situation.

This is precisely why interrupt level service routines, fast device
drivers, and similar time-critical operations are generally
implemented in assembly or other low-level code optimized to minimize
the number and duration of required machine instruction executions.

With today's focus on high-level programming languages and software
implemented virtual machines, many people lose sight of the very
fundamental differences that exist between software that simply
executes quickly and real-time system software where interrupt level
response processing must be assured to be alway less than some
critical latency limit. Couple this with the fact that in most
real-time control and operating systems, these latency requirements
are often only a few microseconds and the need for very tightly coded
software becomes obvious.

For an example of real-time OS design, compare the kernel
implementation in something like Wind River's VxWorks RTOS vs. that of
a non-real-time OS such as early Unix or Microsoft Windows.
Particularly note the fact the the task scheduler in a real-time OS of
any reasonable complexity will be both dynamic priority weighted and
perform pre-emptive scheduling because you can't have a slow process
(like I/O) hogging the system and locking out tasks that need to
execute in milliseconds or microseconds.

The above and other considerations in real-time are what cause me to
believe that the utility of a virtual machine so very unrealistic for
RTOS use.

Harry C.
Jul 17 '05 #80

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

33
3103
by: jacob navia | last post by:
Mankind has now two robots wandering about in the planet Mars. No, it wasn't Mars that invaded Earth, but Earth that landed in Mars more than two years ago. After some initial OS glitches (Chris Torek can comment on those probably) in the Spirit robot, software has done smoothly ever since. All the software is written in C, what is a good decision but also a bad one, C with its warts and all...
0
9934
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9789
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10736
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10840
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10409
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
5795
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4608
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4214
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3230
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.