In 1971, the USSR delivered to Mars the first in the world planetary “on skis”, which were supposed to probe (dynamic penetrometer and gamma ray density meter) to poke the surface, and say - Mars is solid or liquid dusty. The first vehicle crashed on November 27, the second made a soft landing on December 2, but the Mars rover could not get out of the “shell” of the landing module, so the attempt was not counted.
25 years have passed. On July 4, 1997, an American device flew to Mars and brought the "alien" with the first bug.
A frame from the movie "Martian".The protagonist is holding the Sojourner rover ')
The project was under threat, but the powerful debugging tools of the operating system and the excellent work of programmers on Earth (guys, that’s necessary) made it possible to quickly fix everything quickly.
Sojourner
The cost of the program was relatively low - $ 265 million. The rover worked for 83 sol.
The name of the rover, Sojourner, literally means "temporary resident" or "roadway", it was given by the winner of the vote - a 12-year-old boy from Connecticut, USA. The rover is named after the female fighter against Negro slavery - Sojourner Truth.
Inversion of priority occurs when two or more threads with different priorities are in dispute, which of them should be served by the processor.
The computer on the landing module is a radio-protected IBM Risc 6000 Single Chip (Rad6000 SC) 20 MIPS CPU with 128 MB RAM and 6 MB EEPROM. OS - VxWorks .
The rover was a 0.1 MIPS Intel 80C85 CPU with 512 KB of RAM and 176 KB of solid-state flash memory.
On the 1553 bus hang 3 task with different priorities.
When collecting meteorological data, the rover hung and rebooted. Engineers on Earth got a copy of the software and began to understand what was happening. Delving into the detailed logs, in 18 hours the engineers understood what was the matter.
It remained only to correct a couple of flags for the semaphore.
How to fix the bug
No, we didn’t need to use the shell to change the software (although the shell is usable on the spacecraft). The process of "patching" the software on the spacecraft is a specialized process. It is a transition between a spacecraft and a spacecraft. Custom software on the spacecraft (with a whole bunch of validation) modifies the onboard copy. If you want more info you can send me an email.
The process of "fixing" software on a spacecraft is a specialized process. It involves sending differences between what you have on board and what you want (and have on Earth) a spacecraft.
Software on the spacecraft changes the built-in copy. If anyone wants details, the author of the software offers to write to him at glenn.e.reeves@jpl.nasa.gov.
- Glen Reeves, tmlid developers of software for Mars Pathfinder
How the patch was uploaded?
VxWorks contained a C language interpreter to execute statements during the fly during debugging. Engineers still included. A short time ago, it was the time when it was interpreted. No more system reset occurred!
Glen Reeves against a duplicate of Mars Pathfinder, an engineer who found and fixed a bug
The bug was detected during tests on Earth before launch, but it was assigned a low priority.
Glenn Reeves thanks the developers of OSes from the Wind River company for developing a system that allows debugging even in such emergency situations. It is interesting to note that the bug was discovered on Earth, but the “deadlines” and “priorities” make it necessary to launch spacecraft into space, knowing that there are “weak points”.