If you've heard of "operating system", but nothing comes to mind beyond "Mac and Windows?", then this post is for you!
"Mac, Windows, or Linux?"
This has go to be one of the most frequently debated topics on the Internet. These are a reference to the most popular operating systems in the world.
But what do we mean by an operating system?
Before we get into it, let's talk briefly about the three most popular desktop operating systems you're likely familiar with!
macOS (previously known as OS X)
macOS is a unix-based operating system owned and distributed by Apple Inc. The first Mac OS was introduced back in 1984. In fact, it was introduced during the super bowl with this extremely eerie commercial which alludes to George Orwell's 1984...
As Apple states on their website, macOS is designed specifically to run with Apple hardware. While Windows and Linux can run on a variety of PC hardware, macOS must run on Apple hardware, giving it exclusivity and a higher cost barrier.
While there are tutorials out there that may teach you how to configure macOS on a PC, Apple does not want you to. In fact, it's technically illegal π ...
Windows
Windows refers to the series of operating systems developed by Microsoft first released in 1985. Here's another VERY interesting ad from 1986...
While macOS and Linux can be traced back to unix, Windows is an entirely separate family.
Most PC computers come pre-installed with Windows. This can be traced back to the Wintel alliance. This was an alliance between Windows and Intel where the two pretty much joined forces in an effort to be at the forefront of personal computers, and get Windows software & Intel hardware into every house, school, and workplace...
Windows is by far the most popular desktop operating system in the world! This site estimates that Windows accounts for 77% of desktop operating systems worldwide.
Linux
Linux refers to a family of unix-like open-source operating systems based on the Linux kernel. You can think of a kernel as one of the most important component of an operating system! This kernel was developed by a Finnish engineering student named Linus Torvalds in 1991.
What sets linux apart is it's open-source nature and community backing. You might've heard of linux being very popular with hackers. Anyone can view and contribute to the linux kernel, or modify it as they please. In fact here's the linux kernel repo on Github! Look at the crazy number of pull requests and contributor count....π
When people talk about linux, they are referring to either:
- The different distributions, or flavors of linux operating systems which use the linux kernel.
- the linux kernel itself
Individuals and businesses can take this kernel code for free and use it as basis for their own operating system. Funfact: Android and Chrome OS use a modified version of the linux kernel!
Linux kernel can be found in mobile and server operating systems as well. While linux-based operating systems account for less than 2% of desktop operating systems, they DOMINATE web servers with estimates ranging from 60%-98%.
Popular distributions of the linux operating system include Ubuntu, CentOS, Debian, Fedora, Red Hat, Arch Linux, Kubuntu, Deepin...
Of course, there's a LOT more to the history of how these operating systems were developed, what is meant by unix, and the various similarities and differences, but that is impossible to cover in one blog post, so let's move on for now!
So what actually is an operating system?
From Wikipedia,
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Though I've focus more on desktop operating systems, operating systems are core to mobile phones, smart watches, tablets, and web servers.
An interesting analogy I've come across a few times is that
An operating system is like the government.
For a moment, set aside your thoughts about the current state of government and how well you think the government is actually working... and just think about all the things government is tasked to do.
Government:
- allocates money to different sectors of society like healthcare, education, scientific research, unemployment...
- enforces laws that tell us what we can and canβt do.
- provides public services like public transportation, DMV, environmental protection... They're also in charge of maintaining infrastructures like traffic lights, roads, bridges so that people can get from place to place.
There's a lot of behind-the-scenes things government is tasked with taking care of so individuals don't have to.
Now... operating systems have a very similar function, but within the realms of a computer.
An operating system:
- allocates resources including memory and storage, and sets the schedules to allow tasks to run.
- enforces rules that regulate the behavior of different processes. They also enforce security mechanisms to prevent misuse of computer.
- provides common services and functionalities that allow application softwares to run. This makes writing application software easier.
See the similarity?
Operating systems take care of a lot of details so that people don't have to.
Operating systems provide a layer of abstraction between people and hardware.
The earliest computers didn't have operating systems. In fact, getting a computer to work was an extremely manual process where multiple people would be tasked with toggling switches and punch paper cards just to get the computer to work. You can read more about it here.
But today, when you're opening Chrome, you're not thinking about memory allocation or how the click of your mouse has to get interpreted and communicated to the computer hardware. You don't have to understand how microprocessors and chips work. Even if you're an application software developer for say, Slack, you're not worrying about how your user is going to switch between your application and something else they have running like Excel or Chrome or Spotify.
Let's dig into these last points a bit more.
What is an application software?
Application software refers to software that is designed for a for a specific end-user purpose. These include browsers like Firefox, Safari, Internet Explorer, Google Chrome, and music listening programs like Spotify, and editing tools like Photoshop, Lightroom, or computer games like Minecraft...
Whenever you're installing anything onto your computer, you're probably checking whether it's compatible with the operating system you're running on.
The reason we have to do this is because application software rely on the core services provided by the operating system. Therefore, application software developers develop for a specific OS.
Good luck trying to install the first release of Microsoft Paint intended for Windows 1.0 in 1985 on your macOS. Heck, good luck running that release of Microsoft Paint on any recent Windows OS version!!!
If you've been skipping your computer's OS updates, you might have trouble running new applications. This all boils down to application software being dependent on a particular operating system environment.
You can't stick a VCR tape into a DVD player and expect a movie to play...
You can't attach bike wheels to a car and expect the car to run...
You get the idea!
Main Takeaway
β
Operating systems take care of a lot of behind-the-scenes operations.
β
Operating systems bridge the communication between human users and hardware.
β
Operating systems provide a common set of services and functionalities that enable application software developers to write programs easily.
Thanks for giving this a read! I've never taken an operating systems course, nor have I really taken time to dig into what we mean by operating system. This post is my understanding of operating systems as someone very new to this topic...
Even digging into the history, there's a lot of nuance! If there's anything that seems off, please let me know.
Side note: anyone remember this Epic Rap Battles of History Steve Jobs vs Bill Gates episode from 2012...?
Top comments (6)
good job, thats some nice reading for the end of evening :) amazing post
That means a lot! Thanks Lan Iβm glad you enjoyed it! :-)
Hey Kate,
My name is Erik O'Bryant and I'm trying to assemble a team of people to help me develop the first ever intelligent operating system. This would be an OS that would use AI to interpret and execute commands that the user could make in basic English.
You seem to know a lot about operating systems and how they're structured so I'd love to have you on my team! Let me know it you're interested in working with me (my email is erockthefrog@gmail.com).
Great Job, well written! I enjoyed reading this; I'm sure this will be useful to many : )
Hi @kateh ,
Nice Post with a subtle comparison with how government works.
the post is concise and to the point, really Enjoyed reading it.
Best Regards
There is no old computer running Linux image.