Mars becomes the 2nd planet that has more computers running Linux than Windows
twitter.com
twitter.com
Things that stand out to me: It uses mostly off-the-shelf electronic components that are only automotive/industrial grade!
- 2.26 GHz Quad-core Snapdragon 801
- Texas Instruments TMS570LC43x (2x for tolerance)
- Sony 18650 LiIon batteries
- Zig-Bee to communicate with the rover
The only part that is somewhat special is the radiation tolerant FPGA ProASIC3 that ties everything together and takes care of power cycling other components when they lock up.
Too bad that they probably will only fly it a few times as the rover has to move on and it's just a tech demo. I so wish it will follow Perseverance on her mission, that would be so awesome to see. It's certainly capable of doing that!
0: https://trs.jpl.nasa.gov/bitstream/handle/2014/46229/CL%2317...
It doesn't look like Ingenuity is using its GPU for anything, but knowing thet a tiny bit of the work we did is now on another planet fills me with joy.
Congratulations. And thank you.
(reading the pdf, yes it is). I imagine there is not much concern for a urban noise floor or choosing a clean channel, as there might be with city use of zigbee here on the earth. In some places the ISM 900 band can be completely obliterated by smart meters and baby monitors and stuff.
j/k lol ;-)
Nuclear-powered Linux computers on Mars...
Some people really hate Amazon!
I always thought NASA used languages that were easier to verify (functional languages?). Good to see that the common boring languages are good enough!
It's not like NASA is worried someone else is going to steal their software and send their own rover to mars using it...
At least in this case physical access is an extremely improbable attack vector...
Maybe it's not controlled at all... it does say autonomous, after all.
Nah, you can subscribe to big-dishes-on-demand using AWS Ground Station.
Wait, they did exactly that: https://aws.amazon.com/ground-station/
While some innovate, once again AWS reaps the margins of the whole space conquest by discretely providing the infrastructure that everyone needs. Clever!
Than I clicked the link...
Even Journals don't insist on code yet unfortunately.
Typically at NASA it's the more open-ended research projects that have time and support for open sourcing their code. There's less benefit in releasing a specific rover's flight software than there is in releasing the general framework that said software is based on.
Just checked the ebook out from my library to read this weekend. Thanks!
In this case, the software you've written to extend the GPL, is not "infected" by it.
It does not REQUIRE you to use only GPL, it requires you to make it AVAILABLE under GPL.
At least with GPLv2
Recently in the UK we have pundits talking about migrants as "infection vectors". This dehumanisation of humans coincides with the government illegally and immorally banning asylum seekers.
People are entitled to opinions, but we're entitled to call out negative ones.
Nope.
I said "`Infect` accurately describes a particular view of GPL."
This is true, and it says nothing about that point of view being neutral. In fact, quite the opposite.
Maybe I should have said 'legitimate'.
Basically, I disagree with your prior indignation.
To say I was thinking it was about actual arguments the whole time
>I feel X is the solution to Y!
>No! Z is clearly the solution to Y.
Do you really not study that in school ? This is scary
But then, I long for the end of individuality, which may not be your opinion. :-)
1. As far as what I've seen reported.
Claiming that the GPL infects software is very much one of those cases. Worse yet, it is an inaccurate statement since the GPL does not infect software. The most you can say is that some people choose not to modify, extend, or link to GPL software since they do not want the apply the terms of the GPL to their own work. That is a legitimate concern. Implying that the use of GPL software along side proprietary software somehow infects the proprietary software is intended to set up a negative connotation that has no basis in reality.
At any rate it is a rather negative word but I don't think it's fair to say that "infect" is a mis-categorization of the behavior of the GPL. And all this from someone who does personally appreciate MIT licenses more but is quite pro-GPL licensing on code.
The GPL does not "aggressively applies itself to full code bases that adopt it", that sentence is even completely meaningless. I can't even find the beginning of what you wanted to convey regardless of the side I attempt to take it. If a "code base adopts the GPL", then yes ok "it" adopts it, is there a problem? Why would anything attempt to "aggressively" apply the GPL licence to a code base that adopted the GPL? If it is rather than the GPL aggressively applies itself up to the point code bases that adopt it are fully converted to it but were not before, then that still makes no sense obviously because 1. a license is not sentient and won't attempt to aggressively do things by itself, but also 2. because code under other licences exists in code bases and systems containing code licensed under the GPL -- some under licences compatible with the GPL, other under licences not even compatible with the GPL.
To finish with that characterization, please provides the plenty of examples that should surely exists of projects that had to switch to the GPL against their "will" because of its supposed "infectious" or "cancerous" nature (not just dual licence or use some compatible licence, switching). And then please provides among this list, the list of the projects where it happened for another reason than lack of due diligence by the copyright holders of pieces of code supposedly "infected" or tainted with "cancer" against their will.
A final note: there at least 2 more ways (that are not open-sourcing) if somebody did a mistake and based a work on GPL licensed code but should not have done that because the conditions of the GPL are not appropriate for it: rebase the project on non-GPL licensed software; or stop it - or at least stop its distribution. Nobody will even manage to "retroactively" 100% force you to open-source proprietary software. And nobody can force you to change an open-source licensed code compatible with the GPL to the GPL itself, I don't even see what would be the point of asking to do that change.
I would agree to the general point that using GPL'd code is entirely voluntary and using AGPL code is generally not an issue for most software projects but I disagree about it being a miscategorization. If I directly use 10 NPM packages and those pull in an additional 60 and one of those happens to pull in lpad which just happens to be updated from MIT to GPL licensing then I need to realize that and then either hackily re-wire the vendored code to not use lpad, possibly hardwire the packages file to force the pre-GPL version, or else drop the package that depends on it and the package that depends on that one and replace the whole component - this could hit multiple packages as well and all because of a single GPL license change.
I do dislike the connotations of infect but I think it's a fair term for a quality where one of a thing can cause hundreds of other things to suddenly become unusable, the GPL license can cause an exponential growth of packages unsuitable for general commercial use.
https://github.com/microsoft/vscode/issues/100599, https://ffmpeg.org/legal.html
I think it's pretty fair to describe the remains as dead robots similar to folks talking about their coke-bottle decks (recycled plastic) or even a sword forged from the remains of dead robots - I'd still consider that to be made of dead robots even though very little remains outside of the mineral composition.
I mean, aside from most oil being composed of dead plants rather than dinosaurs (if I remember right). Unless you're counting the bits of dinosaur absorbed by those plants before they turned into oil, but I feel like at some point they stopped being dinosaur and started being plant.
PoC or GTFO.
It does have ongoing volcanism, though.
The other machine adventures are not even on planets :)
Pretty sure we're outnumbered.
IP Addresses per person.
I think that by now (2015 --> 2021) and by making smartphone data packages cheaper, we all have a couple of IP addresses. Of course for anyone in an office, or behind a home router, it may look like there is a single IP address, while someone may have a smartphone, laptop, 1-2 tablets, a smart TV.
We are definitely outnumbered.
Can confirm that multiple real time systems are used. They are controlled by a non real time Linux system.
https://en.wikipedia.org/wiki/Comparison_of_embedded_compute...
I recall an early bug in the 2004 MERS duo. They were the first to use flash memory and its new drivers. The file freelist busted and the OS kept on rebooting. Fortunately a fix was uploaded from Earth.
https://en.wikipedia.org/wiki/Spirit_(rover)#Sol_17_flash_me...
> On sol 20, the command team sent it the command SHUTDWN_DMT_TIL ("Shutdown Dammit Until") to try to cause it to suspend itself until a given time.
>
> It seemingly ignored the command.
Mo' files, Mo' problems.
https://www.linuxfoundation.org/en/blog/real-time-linux-cont...
You need a specialized fab manufacturing, etching and packaging process for this and it's not like regular fabs are cheap to begin with. Plus you're working from the start with much larger nodes with dedicated cell libraries so everything has to be designed from scratch to fit that node which means you can't reuse consumer off the shelf designs very easily.
Then there's the lack of economies of scale in building such custom parts in small numbers. I imagine if Apple would only order 100 5nm chips per year from TSMC, the unit price would be equally eye watering.
seriously, that's something I haven't thought much about. when designing rovers, do they calculate solely on the weight of what it will be on the destination, or limit it to weight limits of escaping earth's gravity well?
Launch mass is important as a constraint, but the launch environment is the main design driver for mass. The rover must be much stiffer than the rocket to not “couple” it’s response. The first vibration mode (think tuning fork) of a rocket is about 20Hz so the spacecraft inside needs a first vibration mode higher than 40Hz. Something inside the spacecraft similarly needs a first vibration mode higher than 60Hz or 80Hz, although you can make exceptions based on analysis.
But that’s not all, the sustained load on components during launch can easily be 10 to 30 times gravity (30G) and the instantaneous load can be 100G. You can’t just add material for these kinds of loads, it would be an endless feedback loop because adding mass decreases stiffness. Look closely and you’ll see that every deployable or movable part of the rover is locked down by a mechanism until it has landed.
I'm guessing the faster CPU is just not necessary for the core rover, so via KISS, use the proven chips.
The un-informed usually thinks "real-time" means "hard real-time", but that's seldom necessary, so one can save on additional expense and effort by using a regular linux distro and removing most of the daemons and file location indexing.
I've done real-time development (for Space Shuttle, rocket and balloon projects), and largely all I care about is if a circular buffer can be emptied in time before it fills. That's one technique for avoiding latency variation issues.
The versions of linux that you would normally encounter aim for music real-time, which is about 10 ms latency. 30 ms is considered to be bad.
Most of the pro Yamaha synths use linux as the embedded OS, and some of the code is downloadable (they attempt to comply with the letter of the GPL.) So you can go down to Guitar Center and do a real-time test anytime yourself. :)
The iPhone is pretty good for music, because it was designed to have low latency when playing.
https://www.synthtopia.com/content/2018/02/17/10-years-later...
https://superpowered.com/androidaudiopathlatency
Looks like Wind River discontinued RTLinux, which was hard real-time (a real shame actually, as it removes one of the few hard real-time options):
We went with a 5.33ms quantum on the Xbox 360 (vs. Window's 10ms), and tried to stay out of the way as much as possible to ensure minimal latencies: https://docs.microsoft.com/en-us/windows/win32/xaudio2/xaudi...
https://niklasnisbeth.gitlab.io/mpc-internals/
However I don’t remember the GPL being mentioned anywhere when I had my MPC X. I sold it recently because of not having any money. But I hope to own one again in the future. If I ever do have one again I will probably have a closer look at what it says about the GPL, and then try and get a copy of all of the open source portions of the firmware directly from Akai.
Xenomai is still under somewhat active development.
"This is the last, futile gesture of the disease-ridden apes that foul the sinister blue planet third from our star. We will persevere, no matter the risks, no matter the costs. Our gelsacs swell with pride at the thought of the Enemy's inevitable self-immolation augered by their fitful attempts to travel among the stars."
When Junior Reporter #AXI-1138 of the Celestial News Network attempted to ask the Speaker whether there was any truth to reports of the machine's successful landing, activation, and telemetry transmissions, K'breel called it fake news and ritualistically crushed the reporter's gelsacs with the lectern's Bhan'ammer.
Edit: To be clear, I was noting the simple fact that many probably don't at first think of an Android cellphone as a computer.
32-bit and 64-bit cellphones are made of synchronous VLSI ICs running at gigahertz clock speeds including a few gigabytes of byte-oriented DRAM and superscalar multi-core ARM CPUs with single-user GUIs displayed on an LCD running Linux and software written in C, Java, and JS, plus a GPU running OpenGL, storing their data on Flash, running on a few watts of power and globally networked over Wi-Fi and TCP/IP. They have peripherals connected over USB and the SD card bus, and also CSI.
This 64-bit laptop is made of synchronous VLSI ICs at gigahertz clock speeds including a few gigabytes of byte-oriented DRAM and a superscalar multi-core amd64 CPU with a single-user GUI displayed on an LCD running Linux and software written in C, Java, and JS, plus a GPU running OpenGL, storing its data on Flash and spinning rust, running on a few watts of power and globally networked over Wi-Fi and TCP/IP. It has peripherals connected over USB and the SD card bus, and also SATA.
These are pretty much exactly the same.
The definition of "computer" already has to be a lot broader than that to include both the 24-bit SDS 940 with 192 kibibytes of magnetic cores and 96 megabytes of spinning rust, running an instruction every 5 μs or so, with no GPU and analog video output hardware made out of vacuum tubes and TV cameras, on top of the Berkeley Timesharing System and serving six simultaneous users, on which Engelbart demonstrated The Mother of All Demos in 1968, and this laptop.
It is transparently absurd to suggest that "computer" should include both this laptop and the SDS 940 and its predecessors like the IBM 1401 (vacuum tubes, no transistors, decimal memory, punch card I/O, no operating system, no multitasking, variable-length instruction operands, millions of times slower and less memory), but not cellphones. Compared to the differences between the 1401 and my laptop, the differences between my laptop and the cellphone are totally insignificant.
It is true that the vulgar and ignorant often do not understand that their cellphones are computers. This allows them to be more easily taken advantage of by companies that want to reduce them to consumers instead of participants in creating culture. Instead of aping their errors, we should work to help them understand the true nature of things, because ignorance is not a sin—it's a punishment.
Because sunlight is the best disinfectant.
But you miss the fact that the new generation making movies and documentaries with these iPhones is creating culture! Leaving aside the distinction of computer/cellphone, the iPhone is just a very powerful tool to the new generation, and in some ways, they'd argue they can do more with it than with a mere 'computer'! And, in taking down the barriers of entry and making these computer cellphones easier to use to create new content, one could well argue culture has never before flourished as widely as it does today.
I don't want hand computers to go away. I just want them to be loyal to their owners, not to their manufacturers.
my iPhone runs Windows 3.0 (emulated in JavaScript even!) faster than I remember it being when I used it on a 386 in the early 1990s
- A Long Time Ago
- Dio (Master of the Moon)
Thats surprising since it is a huge pain to get to Mars. I wonder if it can keep up with the rover if it does one or two flights a day?
It’s a technology demonstration. Essentially a throwaway experiment. All they care to prove is whether they can fly on mars. Any extra value they get out of it is a bonus
Linux kernel = Linux.
Linux distro = GNU/Linux
Take away the GUI, and Linux becomes a pretty easy choice.
My teenage job was to train hotel / resort call center agents on using oracle tools and even a CLI tool (if you've ever made a Marriott booking over the phone) then the person on the other end has a terminal open and is entirely using keyboard navigation.
Although different workplaces probably give their staff more autonomy which requires their staff to have prerequisite knowledge.
"Take away the GUI, and Linux becomes a pretty easy choice. " An external machine can become the GUI. It's not because your machine can't render that it can't have an external GUI.
VSCode SSH is popular because it's able to bring a decent GUI to any linux server.
I do a lot of stuff logged in over SSH from my Mac laptop. I run PowerShell scripts. I also have a custom "remote-admin" Windows service (which I wrote myself) which exports functions over HTTP. (I do that to enable/disable my son's laptop account depending on whether he is allowed to use it.) I edit files over SSH using vim netrw. I will still occasionally access the GUI via RDP, but I find myself doing that less and less often.
The good news is that a lot of it is written in CLR-based languages (particularly VB.NET and/or C#), so porting to cross-platform versions of .NET (e.g. .NET Core, .NET 5+, Mono, etc.) is at least theoretically feasible if developers can be assed to do the porting. Barring a solid business case for it, however, it's unlikely.
Point two is that an Operating System is supposed to operate a system, with or without users. Embedded systems frequently operate without any user input.
Win10 has an IoT version (for some reason), so I assume _some_ people find a use case for it.
In summation I cordially disagree with your assertion, with provided reasons.
A lot of industrial equipment has embedded control computers running Windows CE. Prior to Windows CE, DOS and Windows 3.x were also popular choices. Go back 20-30 years ago, Linux was much newer and so you can understand why a lot of vendors felt more comfortable with Microsoft's solution. Now Linux is more mature and a more viable option, but many vendors are used to Microsoft-based development and are happy to stick with it.
Microsoft is phasing out Windows CE, but Windows IOT is the simplest migration path for those vendors. Porting software from CE to mainstream Windows is generally straightforward, since the CE APIs are largely a subset of the mainstream Windows APIs; a lot simpler than porting to a completely different platform like Linux.
(Windows 10 IOT comes in two versions – Core, which is a stripped down Windows 10 with various components removed; Enterprise, which is basically the same as Windows 10 Enterprise LTSC, but with a different licensing model.)
Not having to skim the web to find what mean a certain column in the text output of a simple command.
From my point of view this skimming the web for documentation started with/came from the countless Microsoft users. One still don't need to skim the web with good manpages.
I don't remember which command that displayed MAC/stuff like that, but they laked of details, and 1 colum had no info at all.
Meanwhile the whole structure was documented on windows.
> The mass- and power-constrained rover can achieve high data rates of up to 2 megabits per second on the relatively short-distance relay link to the orbiters overhead. The orbiters then use their much larger antennas and transmitters to relay that data on the long-distance link back to Earth.
> Transmission Rates Up to 2 megabits per second on the rover-to-orbiter relay link.
And using DSN Now, we can also see that the speed from Earth to those orbiters is also 2Mbps.
> 160/500 bits per second or faster to/from the Deep Space Network's 112-foot-diameter (34-meter-diameter) antennas or at 800/3000 bits per second or faster to/from the Deep Space Network's 230-foot-diameter (70 meter-diameter)
> Most often, Mars 2020 uses its ultra-high frequency (UHF) antenna (about 400 megahertz) to communicate with Earth through NASA's orbiters around Mars. Because the rover and orbiter antennas are within close range of each other, they act a little like walky-talkies compared to the long-range telecommunications with Earth provided by the low-gain and high-gain antennas.
Would love to one day communicate with a person on another planet. Maybe this is something 3 or 4 generations from now will be able to do.
The direct X-band transceivers are pretty low bandwidth and are mainly used for rover telemetry. They're low bandwidth because the the antennas are relatively small and the radios aren't super high powered. It takes the 35 and 70 meter dishes of the Deep Space Network just to receiver and send signals to them. The high gain X-band radio (~8GHz) can downlink to Earth at between 160 and 800 bps (yes bits per second) and uplink between 500 to 3000 bps. The low gain radio is mostly receive only and can uplink between 10 and 30 bps. That's enough for densely packed telemetry data and administration commands.
The UHF (~400MHz) transceiver talks to either the MRO and MAVEN orbiters. Because that link is pretty short range (200-300km) it's much higher bandwidth. The rover can uplink to the orbiters at about 2Mbps. MRO (I'm not sure about MAVEN) is able to downlink to Earth between 500Kbps and 6Mbps depending on the distance between Earth and Mars. Typically the rover will send its mission data (images, sensor data, etc) to an orbiter while its overhead which will buffer it and then relay it to Earth when its view of Earth is the clearest. MRO and MAVEN complete multiple orbits per sol (Martian day) so there's several opportunities for the rover to upload its mission data and get it back to Earth.
All the radio signals travel at the speed of light but the distance is what affects the latency. Mars and Earth are many tens of millions of kilometers apart so it just takes a while, even at the speed of light, to cross that distance. Communicating with another person on Mars would be more like sending each other voicemail messages than anywhere close to a real-time conversation.
Latency is indeed a major issue, it's about 11.5 minutes per direction. The newest rover actually has some A.I. for that reason to let it drive autonomously and not always have to wait for next commands from Earth.
The latency is measured in minutes. Obviously something like TCP won't work. Typically they would use something like DTN.
https://www.nasa.gov/directorates/heo/scan/engineering/techn...
Edit: Corrected hours to minutes. Brainfart on my part.
Yep, somethings you just can't have Billy-boy.
¯\_(ツ)_/¯
the 90's is asking for its platform wars back
We need a new model.
I often wonder if people run Windows on a potato to account for all the crashes people seem to have.
Short-term memory loss ;]
For grown-ups who stay on the happy path with well-supported hardware and software, it runs very well, and is my primary development environment. When I need Linux, I run it in a VM on Windows 10.