An Entire Computer In ICMP Packets

The earliest stored program computer in the modern sense was not one of the names such as ENIAC or Colossus that you might expect, but the Manchester Baby, an experimental prototype computer built at the University of Manchester in 1948. Its 550 tubes gave it the multi-rack room-filling size common to 1940s machines, but its architecture makes it a comparatively simple processor by the standards of today. So simple in fact, that [Hrvoje Čavrak] has recreated it using ICMP packets as its storage, and a custom packet filter as its processor emulation. It’s a project that’s simultaneously both elegant and gloriously pointless, but as he says, “It’s still better than doing drugs or JavaScript”.

The result simulates the Baby’s combined storage and display tube in a dump of the network traffic, and gives an excellent excuse to read up about its operation. The tiny instruction set brings to mind today’s RISC architectures, but this is illusory as the designers of 1948 would have had less of an eye towards clock cycles than they would have towards the machine working at all in the first place.

If early computers tickle your fancy it may be worth taking a while to read about the UK’s National Museum of Computing, and then about Colossus, the primordial electronic computer.

Header: Geni, CC BY-SA 4.0.

19 thoughts on “An Entire Computer In ICMP Packets

  1. Back in 2013 at Manchester Maker faire I volunteered on the badge soldering workshop area.. we got over 1000 kits soldered that year, almost all the rest of the volunteers on that station were the amazing voluteer crew who kept Baby functional. Really great dedicated bunch.

  2. I worked on the LEO III around 1963. Attended a Zoom meeting yesterday of the LEO Computers Society about the LEO archive. The LEO I was the world’s first commercial computer, running it’s first program in 1951.

    1. It was a pretty close run thing, as the Ferranti Mk1 ran in Feb 1951 after 5 months of commissioning at Manchester University. LEO didn’t run the Lyons Bakery Valuations until Nov 1951. The Ferranti Mk1 was on sale as a commercial product by this time, but more for scientific and industrial purposes.

  3. I’m sure everybody already knows what the abbreviation ICMP stands for, but I needed to look it up. To prevent me from looking it up again (if I ever was to encounter this hackaday page again), I make this little note here and if anybody else was also wondering, feel free to use this information. If I had to guess, I think it’s the first one…

    ICMP Internet Control Message Protocol
    ICMP International Commission on Missing Persons (International Criminal Police Organization)
    ICMP Institute of Contemporary Music Performance (UK)
    ICMP International Confederation of Music Publishers (Switzerland)
    ICMP International Congress on Mathematical Physics
    ICMP Intensive Case Management Program
    ICMP Institute for Condensed Matter Physics (National Academy of Sciences of Ukraine)
    ICMP Integrated Comprehensive Monitoring Program (US Navy)
    ICMP Ischemic Cardiomyopathy
    ICMP Integrated Catchment Management Plan
    ICMP Integrated Class Maintenance Plan
    ICMP Interface Control Management Protocol
    ICMP Intrusion Countermeasure Procedure
    ICMP Interface Control Management Plan
    ICMP Integrated Communications Management Platform

    But seriously now, regarding the project, now I know what it means… cool… very cool!
    Is this the first step in the process of the internet becoming self aware? (that was a joke, sorry could not resist)

    1. Yes, this is a good point. In the past, I’ve looked at old architectures, like the Data General Nova series, as architectures that could possibly be reconsidered with the application of newer technologies, like CPLDs and smaller FPGAs. In many cases, though, (and I’ll admit I haven’t studied the Baby architecture), I find that this leads to problems, like being difficult and inefficient to implement a stack, for use with modern compiler approaches. And then there’s the address space: one thing that newer technologies mean is cheap implementations of big RAM, that an older architecture didn’t have, and therefore had limitations baked into its registers and instruction set, that would require implementing a segmented memory space, which to my thinking, we’ve only just recently gotten away from. (I’m thinking the 32-bit architectures here, not 64-bit!)

      But yeah, I was thinking the same thing: maybe this architecture, unpolluted and unspoiled by later developments, would be a good starting point for a relatively dumb computer.

  4. SSEM/Baby didn’t so much have a REDUCED instruction set as one that had been increased only enough to allow it to work. It’s so minimal, there’s not an ounce of fat on it. e.g No add instruction, just subtract.

    It BARELY ran programs – but BARELY means success, and it could run programs from its memory. The first in the world to do so.

    And if you are lucky enough to be in Manchester, come and see the very accurate replica – you might even catch us running it.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.