4 ms·
No offense, but nobody in their right mind is going to use any of this in a production environment. For instance, what will your hypersonic rocket do while gar
by pdelbarba 9y ago
No offense, but nobody in their right mind is going to use any of this in a production environment.
For instance, what will your hypersonic rocket do while garbage collection is running instead of it's real-time control loops?
- analognoise 9y agoHypersonic rockets are probably already running Ada.
- pdelbarba 9y agoGood point :) I probably should have stuck to picking on Java. Ada is a pretty good example of a language that handles real time use cases with concurrency and memory pools well. That said, it's fallen out of favor in "recent" years.
- pjmlp 9y agoHow many examples from military systems using real time Java do you want me to provide? I can also provide examples for energy motoring, copiers, factory control systems and phone infrastructures.
- derefr 9y agoI've never heard of "real time Java" before—is it soft real-time, like Erlang; or hard real-time, like QNX? What are the concurrency primitives? (Threads? Actors?)
- nickpsecurity 9y agoFollow this link... https://www.google.com/#q=real-time+java https://www.google.com/#q=real-time+java ...to get a Wikipedia summary, standards body, a tutorial, and probably some products. It's more useful than Google usually is on some terms like this that might muddy up search results.
- analognoise 9y agoOne mission critical system, where failure is not an option, such as on a hypersonic rocket. One actual combat system - not a terminal for use on base, but something you have to rely on when people are shooting at you. One.
- nickpsecurity 9y agoThose go through certification processes. It's been against the rules to use a GC even if it's hard-real-time. Here's an example where the author points out the real-time Java was designed for DO-178B (safety-critical aerospace) but it wasn't until DO-178C that they even considered allowing a GC: http://www.aicas.com/papers/EmbeddedWorld2009-Andy-Walter.pdf http://www.aicas.com/papers/EmbeddedWorld2009-Andy-Walter.pd... The companies that develop reusable solutions for multiple markets tend to pick something easy to certify or sell to all of them. So, if Java wasn't allowed, they'd lean toward something else in their products targeting highest-assurance just to reduce costs. That's mostly been assembly, C and Ada that I've seen. Meanwhile, we do have proof it can be done in things such as the Sandia Secure Processor that they'll use for some of highest-assurance applications. The first-pass silicon they got was also nice. The best articles by Wickstrom et al on SSP are paywalled in ACM and IEEE if you have access. If not, there's a link below on how they built it with brief description of it under "Score processor," another name. http://www.sandia.gov/LabNews/LN01-11-02/key01-11-02_stories.html http://www.sandia.gov/LabNews/LN01-11-02/key01-11-02_stories... https://www.researchgate.net/publication/236425094_Sandia_secure_processor_a_native_Java_processor https://www.researchgate.net/publication/236425094_Sandia_se... ftp://ftp.cs.kent.ac.uk/people/staff/phw/.old-1999/tmp2/443-cpa2007-wickstrom.pdf
- pjmlp 9y agoThanks for making my life easy. USS Bunker Hill ballistic missile defense system weapons control. http://www.militaryaerospace.com/articles/2010/04/aonix-perc-ultra-virtual-machine-supports-lockheed-martins-java-components-in-aegis-weapon-system-aboard-guided-missile-cruiser-uss-bunker-hill.html http://www.militaryaerospace.com/articles/2010/04/aonix-perc... "The Aegis Weapon System is the premier naval defense system and the sea-based element of the U.S. Ballistic Missile Defense System. Its precision SPY-1 radar and integrated command and control system guides the interceptor and uplinks target track information to the missile for terminal homing. Its ability to detect, track, and engage targets ranging from sea-skimming cruise missiles to ballistic missiles in space is proven." Good enough for mission critical system, hypersonic rockets, combat system firing at me? If not, I can provide other ones, better suited to your use cases.
- pjmlp 9y agoI guess the French and US military using Aonix real time JVMs for weapons control and monitoring are the right set of persons to answer your question. Also some military think memory leaks are irrelevant on missiles, given the ultimate garbage collector.
- bigiain 9y agoHeh - saw that on Twitter last week: https://twitter.com/pomeranian99/status/858856994438094848 https://twitter.com/pomeranian99/status/858856994438094848 "Memory leaks on missiles don't matter, so long as the missile explodes before too much leaks."
- nickpsecurity 9y agoIt's called real-time, garbage collection. It occurs predictably on regular intervals before enough leaks happen to blow missiles up or whatever other tragedy. Aonix and some other vendors have had it for a long time now. Meanwhile, mainstream found out in the past, few years that Go could achieve "low-latency" garbage collection. The field can do more than many of them think given the countless person-years invested in so much GC research and product development. I can't even track all of the GC's especially once they started using genetic algorithms and such to automatically make them. EDIT to add: It says "Ada" and "Rational." That's an Ada forum. That language has little protection for temporal safety in the 1990's. More than many but not at Rust level or full leak prevention.
- touisteur 9y agoSeems AdaCore is working to add some form of borrow-checker to Spark :-) https://cps-vo.org/node/34575 https://cps-vo.org/node/34575
- nickpsecurity 9y agoI don't see anything about safety for dynamic, memory management in that link. It just talks about correctness. I'm specifically wanting affine types and ownership system that let SPARK go from static to dynamic. I do like them splitting it into several levels, though. That worked under Orange Book for security.
- nickpsecurity 9y agoThere's a lot of them: https://en.wikipedia.org/wiki/Embedded_Java https://en.wikipedia.org/wiki/Embedded_Java A particular vendor (formerly Aonix) that always had interesting innovations in runtimes, tradeoffs, FFI's, and so on: http://www.businesswire.com/news/home/20050307005203/en/Aonix-Proves-Hard-Real-Time-Java-Technology-Reaches http://www.businesswire.com/news/home/20050307005203/en/Aoni... https://www.ptc.com/developer-tools/perc https://www.ptc.com/developer-tools/perc Each of them is a company making serious money in embedded systems. A few do safety-critical. I'll let you wonder whether they were in their right mind for building Java apps and using Java runtimes that don't seem to fail in high-stakes circumstances.