All developers should know UNIX

UNIX is the mother of all modern operating systems. UNIX is like history, and those who attempted to reinvent or mimic it, did so poorly — a prime example is Microsoft Windows.

Though AT&T UNIX was initially conceived in Bell Labs in 1969, in 2022, it is more relevant and dominant than ever. Today, typically, when someone says “UNIX,” they are describing a UNIX-type operating system.

UNIX operating systems are distinguished by a lightweight operating system kernel capable of multi-user and multi-tasking functionality. The UNIX kernel has capabilities to protect applications and users from interference with one another.

On top of that kernel, there is a rich ecosystem of shells, utilities, and commands. This ecosystem has been refined over the past 50+ years. Most importantly, from a day-to-day practical standpoint, all UNIX-like operating systems are similar enough in behavior that skills learned on one apply to the others.

UNIX is the most successful and dominant operating system out there. For example:

  • Darwin is a UNIX-based operating system that forms the core architecture of Apple’s Mac OS X, iOS, WatchOS, iPadOS, and bridgeOS. Among all Darwin-based operating systems, it is more popular than Windows.
  • Mac OS X has been the go-to operating system for developers since it was launched in 2001, and it effectively ended the debate over the viability of UNIX on consumer devices;
  • Linux is the default and most prevalent operating system for deploying applications in the cloud. The overwhelming majority of modern web applications run on Linux backends;
  • Even Microsoft, after decades of deriding UNIX, acknowledged that Linux is the premier development platform and implemented Windows Subsystem for Linux

If you are a developer, you cannot avoid learning UNIX. You may be able to get by day-to-day with graphical tools, but you will not advance your career without learning and understanding the UNIX ecosystem. To be productive as a developer is to know UNIX.