| ▲ | underlipton 5 hours ago |
| First thing I thought of, too. "Who? ...Wait, not the cool book chick!" Tangential: the software documented in the books next to her were likely developed with a level of rigor that consumer software can only dream of, per the seminal article on similar matters: https://www.eng.auburn.edu/~kchang/comp6710/readings/They%20... |
|
| ▲ | da_chicken 5 hours ago | parent | next [-] |
| The term she coined for it was "man-rated". Meaning that it had been tested rigorously enough to be trusted to keep humans alive. During the Apollo 11 descent to the lunar surface, Buzz Aldarin pressed a button to display altitude and position during the landing sequence. As it turns out, this was the 8th task the Apollo 11 lander's guidance computer was asked to run, and it was only capable of running 7 tasks in real-time. Thanks to Hamilton and her team's priority scheduler, the guidance computer threw an alarm, killed the lowest priority task, and then resumed the execution of the other 7. If that hadn't been programmed to rescue itself like that, the computer would have crashed, and the Apollo 11 lander would not likely not have been the success that it was. |
| |
| ▲ | setr 4 hours ago | parent [-] | | That does not seem like particularly notable example of foresight & robustness, given that it’s such a low number of maximum tasks, and such a fundamental & frequently used element of its operation. Like it wouldn’t even be describable as a “rescue itself” if the response was simply “No. Too many jobs running. Please kill one to continue” | | |
| ▲ | jacquesm 3 hours ago | parent | next [-] | | At that time running that many concurrent tasks on such anemic hardware was a small miracle. This wasn't your average linux kernel. | |
| ▲ | delamon 27 minutes ago | parent | prev | next [-] | | It is infinitely harder to be first. Once it is known that viable path exists, the task becomes a lot easier | |
| ▲ | jonstewart 3 hours ago | parent | prev | next [-] | | The Apollo Guidance Computer had 4KB of RAM and 16KB of ROM. Can you write a scheduler that would execute 8 programs related to landing on the moon in 4KB? | | |
| ▲ | da_chicken 2 hours ago | parent | next [-] | | An asynchronous scheduler with task priority, interrupts, and real-time response. That goes on a spaceship with less than 70 Watts of power available for the computer. That weighed about 70 pounds. When there has never been that sort of a multi-tasking computer controlled avionics before. At a time when the contemporary computer systems that used asynchronous, priority-scheduled multitasking operating systems were things like IBM OS/360 mainframes and DEC PDP-6/PDP-10 minicomputers. It was like having an Apple II in mid 1960s with double the word size. | | |
| ▲ | Gibbon1 an hour ago | parent [-] | | I used san RTOS written in assembly for the Atmel AVR. AvrX (by John Barello) You can look at the code here. https://github.com/kororos/AvrX Compiles down under 2k. The thing is while actually doing that isn't crazy hard, they did that with hardly any existing examples to go by. And without modern tools. |
| |
| ▲ | bronson 3 hours ago | parent | prev [-] | | And it ran at 0.043 MIPS. Each task would get maybe 5000 instructions per second, minus scheduler overhead. |
| |
| ▲ | coffeefirst 3 hours ago | parent | prev [-] | | You’re forgetting this had never been done before. |
|
|
|
| ▲ | robbs 5 hours ago | parent | prev | next [-] |
| That is an excellent article and I’d like to read more. Are there other resources about the shuttle software development or projects with a similar level of software engineering? |
|
| ▲ | jonstewart 3 hours ago | parent | prev [-] |
| “Cool book chick”? “Cool book chick”?!? I’m sorry, I thought this was Hacker News, not Bros R Us. Ms. Hamilton worked on three seminal software projects: Ed Lorenz’s meteorology programs which led to the Lorenz attractor, SAGE, and Apollo. It is hard for me to square your first paragraph with your second, but I’d submit she’s deserving of far more respect than “cool book chick.” |
| |
| ▲ | pstjean 3 hours ago | parent [-] | | It is possible to respect someone and also give them a silly nickname. At least I sincerely hope it is, considering some of the things my children call me. |
|