8 ms·
The last mars rover and its drone run embedded Linux, the JWST runs javascript (not node.js though!). NASA is already working with much more powerful and capab
by qbasic_forever 4y ago
The last mars rover and its drone run embedded Linux, the JWST runs javascript (not node.js though!). NASA is already working with much more powerful and capable software stacks.
- deelowe 4y ago> the JWST runs javascript What?! I'd like to know more about this. Does it have GC? I just can't fathom that being the case...
- lifthrasiir 4y agoSee [1] (HN discussion: [2]). According to the paper [3] it looks like that it does have a GC and its resource usage is limited by other means. [1] https://www.theverge.com/2022/8/18/23206110/james-webb-space-telescope-javascript-jwst-instrument-control https://www.theverge.com/2022/8/18/23206110/james-webb-space... [2] https://news.ycombinator.com/item?id=32519918 https://news.ycombinator.com/item?id=32519918 [3] https://www.jwst.nasa.gov/resources/ISIMmanuscript.pdf#page=17 https://www.jwst.nasa.gov/resources/ISIMmanuscript.pdf#page=...
- acchow 4y ago> If you’re still worried, do note that the Space Telescope Science Institute’s document mentions that the script processor itself is written in C++ So they decided on Javascript back in 2006 and it uses an interpreter/runtime written in C++. Which runtime is this?
- deelowe 4y agoWow. Thanks!
- dotnet00 4y agoIts scripting engine for running commands sent from the ground is based on Javascript. So all the important stuff is done in native code, but the orders are taken in JS.
- nequo 4y agoIn an earlier era, NASA also sent Lisp to Mars.[1] And my understanding is that they sent it with GC. [1] https://corecursive.com/lisp-in-space-with-ron-garret/ https://corecursive.com/lisp-in-space-with-ron-garret/
- brucehoult 4y agoI can't fathom deploying anything critical WITHOUT GC. It's far too easy with malloc/free to make errors such as replacing a pointer with a pointer to another object and forgetting to free the original, freeing something that is still referred to somewhere else and then the other place using it and corrupting any new object allocated in that space, or freeing something that has already been freed, again potentially corrupting a new object reusing that memory. None of those is possible with GC. The only problem GC is subject to is allocating more data than you have physical memory for, and that is equally as much a problem with malloc/free so GC is no worse for that error, and better for the others.
- deleted 4y ago[deleted]
- gwd 4y ago> The only problem GC is subject to is allocating more data than you have physical memory for... On the contrary, the big issue with the GC is what happens when the actual collection happens. There's an apocryphal story about a research team that was making a table-tennis playing robot; but every 5 minutes the robot would randomly pause; in then end they discovered it was the Java garbage collector pausing the entire thing to run. Much less apocryphal, and more recently, Discord rewrote one of their services from Golang to Rust specifically because of the garbage collector [1]. Yes, misusing pointers is a potential problem; but when you're talking about situations where precise timing of maneuvering thrusters or stepper motors can make or break your mission, a garbage collector is arguably a much bigger problem if you don't have a way to make it predictable. [1] https://discord.com/blog/why-discord-is-switching-from-go-to-rust https://discord.com/blog/why-discord-is-switching-from-go-to...
- cestith 4y agoThere are predictable garbage collectors, though. Not every GC is a stop-the-world type. A good reference-counting system with the ability to weak-reference a variable can be pretty predictable and avoid loops as just one example.
- 4y ago
- tibbydudeza 4y agoThe rover still uses the radiation hardened PowerPC (RAD750 circa 2001 = 301K per CPU) but the drone uses a Snapdragon 801 SoC - it was not considered mission critical so the team could use off the shelf hardware. https://en.wikipedia.org/wiki/RAD750 https://en.wikipedia.org/wiki/RAD750
- UltraViolence 4y agoThe MARCO Mars satellites also used COTS components and computers, all running Linux. The worked great AFAIK. They even had a cheap COTS breakout-board camera which snapped a couple of pictures of Mars!
- tibbydudeza 4y agoThey are experimental and low cost (183 million USD) Cubesats - a great way to get educational institutions involved in space exploration without the backing of a NASA budget.
- ThinkBeat 4y agoexcept that the more complexity you add and make available the more things can break and go wrong. I imagine it is an interesting balancing act.
- _joel 4y agoMore over, Inginuity uses COTS altimeter from Sparkfun, it's still working!
- robocat 4y agoCOTS = Commercial Off The Shelf
- lizknope 4y agoWhere are you reading that? The Perseverance rover uses the VxWorks real time OS from Wind River Systems and the same RAD750 PowerPC processor that NASA has been using for the last 20 years. The rover is designed to last and operate a long time. The Ingenuity drone helicopter uses an off the shelf Qualcomm Snapdragon 801 and Linux. While NASA wants it to last a long time that was not part of its main design. https://www.pcmag.com/news/linux-is-now-on-mars-thanks-to-nasas-perseverance-rover https://www.pcmag.com/news/linux-is-now-on-mars-thanks-to-na...
- pkaye 4y agoThe helicopter uses an RAD hardened FPGA for handling the flight computation while the Snapdragon handles the less critical stuff. I'm guessing if the Snapdragon faults out, the flight computer will slowly descent and go idle.
- dontlaugh 4y agoI remember reading there is a system for detecting crashes and restarting it.
- _joel 4y agoIt's not hardened, they have 2 synced systems effectively that can pick up from each other, such that, if there's a bitflip, it can restart and switch over in less that the time it takes for a loop (kinda) so it can easily do this is mid-air with no loss of alititude or positioning.
- noselasd 4y agoWell almost. The Perseverance rover runs vxworks, like most if not all of its predecessors. Ingenuity (the drone/helicopter) does indeed run linux.
- deleted 4y ago[deleted]