Skip to content
Tech News
← Back to articles

Hooray for the Sockets Interface

read original more articles
Why This Matters

The introduction of the sockets interface in 1983 marked a pivotal moment in the tech industry, enabling standardized network communication that laid the foundation for the modern internet. This development transformed how systems connect and share data, making networked services more reliable and accessible for consumers and developers alike.

Key Takeaways

Generated with AI.

In 1983, the University of California, Berkeley campus (UCB) released version 4.2 of its UNIX operating system, the Berkeley Standard Distribution (BSD). For many people, this is the ‘epoch event’ that defines the birth of online services, because it is the version that released the BSD ‘sockets’ model of networking into the world. In effect, the ‘right place, right time’ combined for computing systems and an operating system to run on them. This led to a massive increase in access to network services worldwide.

The installation of this first ubiquitous network approach was by tape, which you got in the mail.

To modern eyes, this may seem strange, given that modern operating system installation is most often a network-driven event. If you do not download a full ISO image or bootable VMDK disk image from the network, you tend to download a smaller system that bootstraps from the network. This is normal — the network is assumed.

Back in the 1980s, while ‘a network’ might exist, it was both too narrow — dial-up telephone at speeds as low as 1200 or 2400 baud — and lacked common protocols to specify how to find and fetch content. Even if you had access to ‘the network’, it was difficult to reliably retrieve something like the binary code of a new operating system. It looked different almost everywhere.

Sockets are a large part of the story that changed this. After sockets, networked UNIX systems began to look broadly consistent. We arrived at a more standardized model of network access.

Prior versions of BSD for PDP-11 minicomputers, dating back to 1978, had been released to the research community worldwide on tape: 30 copies of the code for version 1, and 75 copies for version 2. The system was released under a licence issued on behalf of ‘the Regents of the University of California’, and it carefully limited liability and user rights. You received the code in the post on a reel of tape.

If you wanted to update your code, the Regents required continuity of the people signing the licences. This caused problems, as academic roles often shifted between department members in ways the Regents’ lawyers did not anticipate.

When you received an operating system like this on tape, it consisted of a linear series of recordings. Each was denoted by an ‘End of Transmission’ (EOT) marker, which you could skip to reach the next block. In effect, a stream of bytes was read in a fixed format.

To begin, you were provided with minimal hex code to enter by hand at a switch console. This depended on your computer architecture. The code bootstrapped by reading the first tape block into memory, after which you jumped into memory to run it as a bootstrap loader.

... continue reading