1. Operating Systems

+

UNIX

UNIX is the grandfather of all modern operating systems, and today it still remains the most powerful and least known. But if you use an Apple computer running macOS, or an iPhone or iPad running iOS, you are using a UNIX operating system. And if you do online banking, somewhere tucked away in the bank is likely a series of UNIX systems running Oracle Solaris UNIX, HP-UX UNIX, or AIX UNIX. Your Internet Service Provider (ISP) likely runs BSD UNIX networking equipment and servers, and you’ll even find QNX UNIX in most cars today as well as running the streetlights in your city.

During the movie Jurassic Park (1993), when the girl (Lex) sat down at the computer near the end to activate the locks and said “This is UNIX, I know this…”, she was actually using the File System Navigator (fsn) in SGI IRIX UNIX to navigate the /usr directory as shown to the right. In fact, many of your favourite movies of the 1990s were likely also created on an SGI IRIX UNIX machine! UNIX has traditionally been my favourite OS, and I even have a UNIX tattoo on my arm!

So where did it all start?

In the early days of computing (1950s), corporations were becoming larger than they have ever been in history due to the post World War II boom. Some companies had more people in their accounting department on adding machines calculating totals than on the factory floor!

Ken Thompson & Dennis Ritchie

In short, business needed computers to solve their accounting problems. It was the day of the mainframe. But mainframe computers were slow and tedious. So, when the MULTICS project (which attempted to create a multitasking, multiuser operating system to solve these problems) failed, the fine folks at AT&T Bell Labs (Ken Thompson and Dennis Ritchie, shown here) invented UNICS (later UNIX) in 1969.

When UNIX was first created, AT&T was under a federal court order preventing them from marketing UNIX. But this didn’t stop AT&T whatsoever.

Instead, AT&T sold the UNIX source code off to several companies which developed their own flavours of UNIX and gave free copies out to several universities, including the University of California at Berkeley from which we have BSD UNIX. Alongside AT&T, these vendors and universities maintained the development of UNIX since the early 1970s. This led to several other developments: the C programming language, Microsoft DOS, and the Internet to name a few.

In the 1980s, UNIX proliferated in large corporations that had enough money to purchase the expensive computing equipment needed to run it. A typical UNIX system in 1985 cost around $600,000US yet performed thousands of tasks for client computers or dumb terminals. Due to the Internet revolution (which was started on and perpetuated by UNIX) alongside the massive rise of Linux, UNIX has only recently become a common word used in computer-related discussions. Most people don’t realize that UNIX ran the world behind the scenes in the 1970’s, 1980’s, 1990’s (and even to some degree today). But these systems weren’t your average Intel-based PC. They often ran on very expensive RISC platforms (except for SCO UNIX):

  • SUN Microsystems Solaris UNIX (now owned by Oracle) ran primarily on the SPARC/UltraSPARC CPU (Oracle has since stopped Solaris development, but the open source community still actively develops it as OpenIndiana UNIX)
  • SGI IRIX UNIX ran on the MIPS CPU (IRIX is no longer developed)
  • BSD UNIX ran on pretty much any CPU (and still does today)
  • NeXTSTEP/OPENSTEP UNIX ran on the Motorola 68000, Intel x86, SPARC and PA-RISC CPUs (this later evolved into the widely used Apple macOS and iOS operating systems used today)
  • SCO UNIX/OpenServer/UnixWare ran on the Intel x86 CPU (SCO products are no longer developed today)
  • Tru64 UNIX ran on the DEC Alpha CPU (Tru64 is no longer developed)
  • AIX UNIX ran on the PowerPC and POWER CPUs (and still does today)
  • QNX UNIX ran on a wide variety of different platforms (and still does today)
  • HP-UX UNIX ran on the PA-RISC CPU (and later the Intel Itanium CPU)

Most UNIX flavours developed in the 1980s and 1990s have been replaced by Linux, but BSD and macOS are still popular and continue to be developed. macOS is also required if you want to look trendy at Starbucks or look credible when giving public presentations. And while you need to have an Apple computer to legally run macOS, at least the hardware can be used long after Apple no longer supports it:

Apple furniture

Finally, it’s important to note that UNIX is much more than an operating system - it’s a philosophy that has pervased in technology fields since the dawn of computing. In his 1999 essay In the Beginning… Was the Command Line, Neal Stephenson said this about UNIX:

UNIX, by contrast, is not so much a product as it is a painstakingly compiled oral history of the hacker subculture. It is our Gilgamesh epic.

What made old epics like Gilgamesh so powerful and so long-lived was that they were living bodies of narrative that many people knew by heart, and told over and over again–making their own personal embellishments whenever it struck their fancy. The bad embellishments were shouted down, the good ones picked up by others, polished, improved, and, over time, incorporated into the story. Likewise, UNIX is known, loved, and understood by so many hackers that it can be re-created from scratch whenever someone needs it.


Linux

Linux finds its roots in the UNIX community. In 1983, one famous hacker named Richard Stallman started the Free Software Foundation (FSF) to encourage computer science students and freelance software programmers worldwide to develop free software for the UNIX platform. Richard had seen success because of collaboration between software developers in the Artificial Intelligence Labs at the Massachusetts Institute of Technology (MIT) earlier and believed that the sharing of ideas would result in faster software development.

During the mid 1980s, the collaboration seen by UNIX vendors was starting to diminish; thus, the FSF quickly developed the GNU Project. The GNU Project aimed to create a free UNIX-like operating system (GNU stands for GNUs Not UNIX). Unfortunately, the GNU Project never came to fruition. Several great products came from this GNU community such as the GNU emacs editor, but most of it ran only on the UNIX Platform. By the late 1980s, however, the GNU Project led to the release of the GNU Public License (GPL). The GPL was a legalization of free software. It stated that anyone who develops software and publishes it under the GPL must make the source code for the program freely accessible to anyone who wishes to have it. Anyone who modifies the source code to make the program better must then redistribute the modified source code freely in return, keeping the software free forever.

In 1991, a Finnish student named Linus Torvalds created an improved version of MINIX that was eventually called Linux. MINIX (mini UNIX) was a small UNIX for the Intel x86 platform that shipped with Andrew Tannenbaum’s book Operating Systems Design & Implementation used in Universities worldwide. Linus released Linux under the GPL. With a free operating system to develop, programmers worldwide pooled their talent in great numbers to take it further. Because free software development was so popular, a new term was created in 1998 to refer to it: open source software (OSS). Since then, several thousand open source software developers around the globe have transformed Linux into a very sophisticated operating system. Linus Torvalds and his team develop the operating system kernel and libraries in California; however, developers worldwide develop the software packages used with the Linux kernel. You may obtain different distributions of Linux as a result. All distributions share the same kernel and libraries, yet have different software packaged with the kernel. The greatest thing about Linux is that it was made by the UNIX community. Think of Linux as open source UNIX. Consequently, 95% of all commands and concepts (filesystem structure, permissions, users, daemons, networking, etc.) are completely identical between all UNIX flavours and Linux distributions!

Basically, UNIX=Linux. If you know Linux, you know UNIX and vice versa.

There are hundreds of Linux distributions available; some common ones include Red Hat, Fedora, SuSE, Debian, Ubuntu and Arch. Even Google’s Android is just Linux in drag, as is the ChromeOS used on Chromebooks. Linux has been installed on pretty much every hardware platform and has been used in everything from firewall devices to embedded systems to large cluster computing systems. Nearly every cloud technology and all cloud hosts run Linux too. One of the reasons for this diversity is that companies find open source software far more attractive than closed source software. Open source software is collaboratively developed and scrutinized by thousands of developers; bugs and security loopholes are fixed quickly, and high quality software is developed much faster than what a proprietary software company could ever dream of. Because those who ultimately use the software develop it, open source software is maintained and improved at a very fast rate.

I use Linux daily. Nearly all of my servers run Linux, and the cloud app development I do is done primarily on Fedora Asahi Remix Linux and pushed to a complex set of virtual machines and containers for testing that closely approximates the cloud environment that the app will run on.

Clouds are made of Linux


Windows

Microsoft Windows is the most common operating systems found on client computers today. When you walk into any company, most desktop computers will run Microsoft Windows, and when you buy a PC, it will likely come pre-installed with Windows. How did this come to be? Simple. Microsoft had fantastic marketing ability and a strong partner and vendor network. They really are a textbook example of how to sell software well. Microsoft’s co-founder, Bill Gates, had both technical and management skill sets from day one.

Bill Gates on Macintosh

In the early 1980s, Microsoft started making software (such as Microsoft Excel) exclusively for the Apple Macintosh platform (as shown in the 1985 picture of Bill Gates to the left). They also purchased the DOS operating system and marketed it for PC use. Many people mistakenly assume that Microsoft did not like Apple Macintosh and favored IBM PCs. It was the other way around. Bill Gates urged Steve Jobs at Apple to make the Apple hardware open such that other manufacturers could make the components (which would ultimately have led to more software developers, programs and market share). However, Apple ignored the advice and Bill (being the smart entrepreneur he was), made sure his eggs were not in one basket. He created much more software for the IBM PC platform and created a Graphical User Interface (GUI) for DOS called Windows.

Although Windows was nothing special to look at in the 1980s compared to the Macintosh operating system, it started to resemble it in the early 1990s with the release of Windows 3.1 (which I’ve used for years). By that time, nearly all places that sold PCs also sold Windows 3.1. Microsoft was a household word, and it was going places. But their best innovation came in 1995 with the release of Windows 95, the first complete GUI operating system from Microsoft that could do as much as the Apple Macintosh OS could. Thanks to Microsoft, the 1990s were not kind to Apple.

Win95 launch

I remember getting copies of CD-ROMs entitled Arrive in Chicago earlier than expected at the University of Waterloo in 1994 as a student (Chicago was the code name for Windows 95). On the CD-ROMs was a pre-release version of Windows 95/OS2. This was because Windows 95 was initially developed jointly by Microsoft and IBM, but when things fell through, Microsoft released Windows 95 and IBM released OS2 (which went nowhere on the market fast). Windows 95 was beautiful at the time, and I was a real advocate. Microsoft had the innovation in the computing industry then. They used the Rolling Stones song Start me up to advertise Windows 95 and software developers jumped at the ability to create software for the new OS which ran beautifully on the new Pentium chips released at the time. By 1996, there was more Windows 95 software than you could shake a stick at.

At the same time, Microsoft was getting ready to release Windows NT4 (NT stands for New Technology), a full GUI OS that you could easily use in companies as a server (NT4 Server) or a client (NT4 Workstation). If you imagine that Windows 95 took off like an airplane, Windows NT4 took off like a rocket. Now, every business (small, medium and large) could easily implement computer systems without hiring a Ph.D that knew how to use UNIX/Novell/Banyan (Novell and Banyan are ancient history nowadays). Within a few years, Windows NT4 had the most market share of any OS in North American companies.

It is important to note that Windows 95 and Windows NT4 had entirely different structures under the surface. Windows NT4 had a stable structure from ground-up that prevented applications from directly accessing the hardware without first passing through the Hardware Abstraction Layer. As a result, Windows 95 only had 2 successors: Windows 98 (which was widely received and still common) and Windows ME (which did not sell well and was the last Windows 95-based OS).

Windows NT4 led to Windows 2000 (which was NT4 under the surface but had several advancements such as Active Directory). Windows 2000 came in a server (Windows 2000 Server) and client (Windows 2000 Professional) version. In 2002, Windows XP was released as the successor to Windows 2000 Professional, followed by Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2012, Windows 8, Windows Server 2016, Windows 10, Windows Server 2019, Windows 11, and Windows Server 2022. Windows 10 and 11 are phenomenal operating systems from both an architectural, productivity and security perspective.

In the early 2000s, Microsoft was hit hard by critics regarding security and stability. As a result, they’ve had to adjust their focus over the previous decade tremendously. And it worked for the most part - I’d say that Windows 10 and 11 are probably the most stable and secure operating systems on the market today. During this same time, Microsoft also decided to make Windows Server more like Linux by releasing a non-GUI version called Windows Core (part of Windows Server 2008 and later) as well as a powerful scripting language called PowerShell (which I like because it is like UNIX-style scripting). Moreover, if you install the Windows Subsystem for Linux (WSL) 2, you can run full Linux distributions on a real Linux kernel running alongside the Windows kernel (no virtualization necessary). And you can add the Windows Terminal (https://www.youtube.com/watch?v=8gw0rXPMMPE) to get a very flexible shell environment for development and administration.

As for client market share, Windows is still the #1 OS out there. And it probably will be for a while (just imagine the sheer numbers of PCs running Windows). And the thousands of companies that adopted Windows servers in the 1990s and early 2000s will guarantee them a spot in the server market for a long time. I use Windows 11 today for most work-related productivity tasks (e.g., Office), as well as for gaming of course ;-)