6

The Apollo Guidance Computer had only 2k RAM and 32kb storage.

Also what O.S. did they use, and who made it?

Nathan Tuggy
  • 4,566
  • 5
  • 34
  • 44
Roger
  • 77
  • 5
  • 6
    You'd be surprised how much code in assembly you can squeeze into 32kb of storage, especially if you don't waste any resources on OS (just do without). – SF. Aug 18 '17 at 01:00
  • 2
    There is a lot of information readily available on this topic on the Internet, even on major sites like Wikipedia. Can you summarize the research you have already done, so just the parts you are missing can be filled in? – Organic Marble Aug 18 '17 at 02:02
  • 2
    There are plenty of embedded systems that still do not use an operating system. The controller in your microwave, for example. – David Hammen Aug 18 '17 at 02:12
  • 1
    Very, very carefully. – 0xDBFB7 Aug 18 '17 at 02:20
  • I have seen the evolution of DOS and then Windows grow from something that would fit comfortably in 64k (what came standard with the original PC) to something that won't even boot in less than 2GB, and been repeatedly amazed at how much more memory is supplied on newer computers and how much newer versions of the O/S demand. Coming from that old world, not hard to imagine you can do a lot with very little if a little is all you have.. – Anthony X Aug 18 '17 at 03:45
  • The Apollo Guidance Computer had no printer, no disk or tape drives. There was one user only. A lot of OS functions to administrate the devices were not needed. But there was multiple tasking. – Uwe Aug 18 '17 at 09:39
  • 1
    Early Space Shuttle flights carried an HP-41C calculator which could do all of the calculations needed for them to get home if the main computer failed. https://en.wikipedia.org/wiki/HP-41C#Use_on_the_Space_Shuttle I don't know exactly how many bytes of memory it had, but I think it was only a fraction of what the AGC had. – Solomon Slow Aug 18 '17 at 18:39
  • In the 1960s computers and calculators were analog. Calculations were made with slide rules. The digital revolution had not happened yet. The first personal computer did not come onto market until much latter in 1977. While taking men to the moon is a daunting endeavor, the calculations needed are trivial newtonian physics calculations. – 0tyranny0poverty Aug 19 '17 at 21:06
  • 1
    @ 0tyranny 0poverty: Digital history was better than you kow about. There were digital mechanical calculators in the 1960s, see. And there were transistorized digital electronic computers like the IBM 7090 or the IBM System/360
    There were also digital electronic computers in the 1950s equipped with vacuum tubes like the IBM 701
    But something is true: slide rules were used in the 1960s but also the 1970s.
    – Uwe Dec 03 '17 at 22:41

1 Answers1

25

The equations required for flight to the moon are not all that complicated, particularly given that much of the work was done by larger computers based on the Earth. Some of the computer programs (e.g. P40-P42) run on the Apollo guidance computer simply calculated what direction to point the ship and how long to fire the engine in order to achieve a change in course called for by Mission Control. Others (e.g. P51, P52) computed what the current orientation of the ship was based on what direction various stars were found.

The hardest real-time problem solved by the Apollo computers was probably the landing guidance itself -- pointing and throttling the engine on the Lunar Module over the course of several minutes in order to reach the surface of the moon at a low speed. The central equations for this guidance are not complex at all:

enter image description here

In fact, you could compute one iteration of the guidance loop by hand in a few minutes. The computer was fast enough to run the loop ten times a second, which was more than sufficient to control the lander.

The software was developed by a team at MIT led by Margaret Hamilton, whose work advanced the state of the art of software engineering significantly. The software was based around a simple real-time scheduling kernel for which "operating system" might be too grand a term.

Modern operating systems provide a vast array of complex facilities to software, most of which aren't needed by any single program. With no graphical display, audio output, network connection, disk I/O, support for software written for legacy systems, etc. it's not that difficult to keep a complete system in a few kilobytes.

You can read the assembly source code itself here. The EXECUTIVE module, for example, comes to about 500 lines of heavily-commented assembly, and the maneuvering subroutines P40-P47 come to about five times that.

I personally find the source code very difficult to follow, as the instruction set of the AGC has a very different flavor from that of the modern CPUs I'm more familiar with.

Russell Borogove
  • 168,364
  • 13
  • 593
  • 699