Unix Rewritten in C (1973)

The earliest versions of Unix were written in assembly language for a particular computer, which meant that moving the system to different hardware was slow and difficult. In his history “The Evolution of the Unix Time-sharing System,” Dennis Ritchie describes how the system was reworked in the new C language during this early period, with the kernel itself rewritten in C in 1973.

This rewrite was the turning point that made Unix portable. The Computer History Museum notes that once Unix was rewritten in C it “became a truly portable operating system capable of running on many different hardware platforms,” rather than being tied to a single line of machines.

The choice mattered because most operating systems of the era were written in assembly and effectively locked to their hardware. Writing the kernel in a high-level language was an unusual decision at the time, and it traded a small amount of efficiency for a large gain in flexibility.

The result reshaped the software industry. Because Unix could be carried to new computers by recompiling rather than rewriting, it spread to universities, companies, and eventually to the descendants used everywhere today, from servers to phones.