The start of the twenty first century has been a time when we are surrounded by vast amounts of computing power that we take for granted. There are obvious computers in our lives, the laptops we use or the desktops we'll find at work, but also the unobvious ones that we use every day like mobile phones, car navigation systems and set top boxes. In the 1960s things were very different, computers usually filled entire rooms, even the calculator was a bit of a cutting edge invention. Despite this the challenge had been set by President John F. Kennedy in 1961 of "landing a man on the Moon and returning him safely to the Earth". This was going to need some radical computer technology to work and that was realised in the form of the Apollo Guidance Computer which in 1969 was used in the Apollo 11 mission that met this challenge. In June of this year the source code for the AGC that was used in the Apollo 11 Lunar Module was released as open source software and you can experience it thanks to the Virtual AGC project.
The AGC's specifications were very basic compared to what we are used to now, it had 4K of read/write memory and about 64K of read only memory. The read only memory wasn't the ROM chips we are used to today it was instead memory that had been hand woven! This was memory made up of copper wires wrapped though or around tiny cores to indicate a 1 or a 0. The computer also used the the very new technology of integrated circuits. When I first read about the AGC a few days ago I was actually very impressed. The computers I used in school only had about 32K of memory on board, and that was twenty years later. There is an additional factor that wouldn't have helped them too. A couple of years ago I was very lucky to be able to go on a tour of the Planetary and Space Sciences Research Institute at The Open University (the university I work at), which was a fascinating experience. They told us that you can't just send the computer technology that we use on Earth up into space and expect it to work, unfortunately the radiation found in space has a habit of making these machines less than wonderfully. Instead specially designed chips must be sent up as the NASA page on Computer Brains in Space explains, these are more reliable in the extreme conditions they face, but are also more power hungry and much slower than their earthbound cousins.
The AGC was of course just one of the many achievements and breakthroughs that made the Moon landing possible forty years ago. It is however one that is significant to technology enthusiasts that understand that it is history that makes us as we are today. So it is a great opportunity to be able to experience one of these devices, albeit in virtual form though the wonderful Virtual AGC project which was founded by Ron Berkey after he watched the film Apollo 13. Even without running the software the site is fascinating in itself and worth visiting, but the software is an amazing resource. It is not a simulation of landing on the moon or the craft itself, just the AGC system, but as it is open source it could potentially be used as part of a full simulation program of an Apollo spacecraft. You can experience what it was like to use to use the AGC, or even go much deeper and actually reprogram it! To do this though you will need knowledge of dialect of Assembly Language that the AGC used, which I suspect is not a skill in wide circulation.
Installing Virtual AGC on Ubuntu is pretty straightforward, grab a copy of the Linux installer from the download page, and then from the terminal just run (no need to be root):
./VirtualAGC-installer
This will actually run an InstallShield installer which will look a bit like the installers on Windows. You will get a new menu entry of VirtualAGC with the program itself and an uninstaller icon (not as elegant as a native deb file, but it works well enough). Once you launch it you will see a menu to start the simulator with quite a dazzling array of options to use the software from the various Apollo missions. Some of the simulation types are not available. This is because the source code has not been found or converted yet. The AGC itself was a box and had no human interface, this was provided by the DSKY (display/keyboard) unit, additionally the Apollo missions were also equipped with another computer called the Abort Guidance System which was designed to help get the Lunar Module back to an orbit where it could reconnect with the control module in the event of a landing being aborted. Both of these units are simulated by VirtualAGC too. Not being a 1960s astronaut I found the best way to start experimenting with the simulator was to read the excellent "kinder and gentler introductory page" on the site.
As you can imagine the device was not "user friendly" in any sense that we take for granted today! To issue a command or reprogram the AGC you had to input a sequence of "verbs" and "nouns" with numbers, an unusual system, the verb was the command and the noun the data. This could be summarised in shorthand that could be understood by a human to input, e.g. V16N36E means press [verb] then 16 then [noun] then 36 and [enter] (that gets you the current time on the system). This has given me lots of great ideas for the next time someone complains about usability! The VirtualAGC and the source code from the AGC units it runs are a great resource and well worth a look to experience part of the technology that made the Moon landing possible, and also to appreciate how much has been achieved in the years since.
Re: The Virtual Apollo Guidance Computer
Apollo 11 guidance computer compared with a modern day mobile phone.
Which has most processing power?