Notes ·
The Sockets Interface Quietly Connected the Computing World
George Michaelson’s history of the sockets interface is a beautifully told piece of computing history.
Before downloading an operating system was possible, BSD arrived through the mail on reels of magnetic tape. Installing it could begin with manually entering hexadecimal instructions through switches on the front of a computer, one memory address at a time. Getting the system running could take most of a day, while recompiling it for new hardware might take several more.
Then 4.2BSD arrived in 1983 with the Berkeley sockets interface. Its brilliance was that it treated a network connection much like a file. Programs already knew how to read and write through file descriptors, so adapting them to communicate across a network became relatively straightforward. FTP, Telnet, email and many other network services quickly followed.
Sockets were not the only proposed networking interface, and the first implementation was apparently buggy enough to crash UNIX during testing. But BSD was accessible, Sun shipped it with Ethernet and sockets built in, other Unix vendors adopted it, and the interface gradually became the standard way software communicated over TCP/IP. Even modern protocols such as QUIC still ultimately send data through sockets.
It is easy to forget that some of the most important technologies are not flashy products. They are simple abstractions that make an incredibly difficult capability feel ordinary. Sockets gave programmers a consistent way to write networked software, and much of the connected world was built on top of that decision.