Since the days of antiquity, epic rivalries have been part of the human story. Early civilizations warred for dominance over enormous empires. In the age of exploration, nations sent out brave people to discover and lay claim to distant lands. The Cold War between the United States and the Soviet Union spawned the space race and the remarkable achievement of landing humans on the Moon. And then there's the battle between operating systems.
We all know that a computer's operating system (OS) is important. Some people become loyal supporters of one operating system over all others. A few may go further and enter the realm of the fanboy -- anyone who thinks the fanboy's operating system isn't clearly superior to all others must be an idiot.
Most people are familiar with the major operating systems on the market. Microsoft Windows and Apple's Mac OS have celebrity status. The various flavors of the Linux operating system are less-well known, but that doesn't stop Linux fans from passionately defending their favorite distribution. Then there's the host of mobile operating systems on the market including Apple's iOS, Microsoft's Windows Phone and Google's Android operating system.
But once you get beyond specifics, all operating systems share many traits. They may execute functions in a way that's particular to that OS, but in the end, each system has to be able to complete basic tasks. Most of these tasks you won't even notice -- unless things go terribly wrong.
One of the most important jobs an operating system must handle is acting as a go-between for your computer's hardware and software. If you were to crack open your computer, you'd find various circuits, chips, wires and other components. This physical layer of hardware is what does the actual work when you run a program. But a program has to have some way to access these physical components to run.
The operating software acts like a platform for programs. An OS makes sure that the processes running on a computer have access to the appropriate resources. The OS also allows hardware and software to communicate to each other. This includes input/output (I/O) devices.
That's a big job -- there are hundreds of different I/O devices you could potentially hook up to a computer. Take the computer mouse -- there are dozens of manufacturers producing various models of mice. It would be impossible for a software developer to build in native support for every type of mouse on the market. Instead, the operating system handles the differences between various pieces of hardware using special software called drivers. To us, it seems like every computer mouse just works.
In a similar vein, operating systems provide a foundation for programs so that they can run on different types of hardware. This is important because two computers running the same operating system may have different components. This is true even for Apple computers, which tend to be less modular than other personal computers. A Macintosh from several years ago may have different processors and other hardware than a new Mac, but both models might be running the same operating system.
The operating system creates an abstract environment for programs. In a sense, the program tells the OS what it needs in order to work properly. The operating system then can take care of the requirements by allocating the physical resources available on the computer. It doesn't matter what type of hardware the computer has -- the OS handles the details.
Without this feature, software engineers would have tough choices to make. They would have to write programs for specific sets of components. If your computer's hardware didn't match that set selected by the programmers, the program might not work at all on your machine. The operating system keeps things running smoothly across multiple hardware configurations, freeing up software developers to concentrate on making the best program they can write.
Programs need more than physical resources to get the job done. Computers rely upon collections of data called files. These files must follow a specific set of rules so that the computer can make use of them. These rules govern file naming and storage practices. We call the overall set of rules a file management system or simply a file manager.
Different operating systems have different approaches to file management. You can also install additional file management software on most computers. But deep down, the operating system has to keep track of where files are so that software will run on your computer. That way, when a program asks for a file, the operating system knows exactly where to go to get the information.
Without file management, the digital information inside your computer would be a useless jumble of data. It's like piling everything you own into a single room -- you've got everything you need but there's no easy way to lay your hands on any particular item at a given time. Because the operating system follows the rules, we don't have to worry about manually allocating space on specific sections of memory for our files, and we don't have to root around in a huge mess to find what we're looking for.
How can you make your computer work faster? You might think that a more powerful CPU will get the job done. But sometimes, all you need is a little more memory to get things moving at a quicker pace.
Memory is where your computer stores information that it will need when the processor performs calculations. Think of it as a temporary storage facility. As you execute programs, your computer's operating system allocates a certain amount of memory to each task. Data stored in your computer's memory can transfer to and from the CPU quickly. If the CPU needs data that isn't in your computer's memory, it has to look for the information in other places, such as a hard drive. This takes longer than pulling data from memory and slows everything down.
The operating system manages memory allocation to minimize computer delays. There's only a finite amount of memory available at any given time. Depending upon how many programs you're running simultaneously, this can be a demanding and dynamic job. The operating system has to weigh each process's requirements and make adjustments as they change. Ideally, it all goes so smoothly that everything seems to run without a hitch.
A computer's central processing unit (CPU) is what gets things done. At its most basic level, a computer program is a complex series of math problems. The CPU is what performs the calculations that solve these problems and gives you the results you expect. Those results might be anything from making a video game character jump over a flaming barrel to running a spell-check algorithm in a word processor.
Every program you run requires some of the CPU's processing power. Each additional program you run simultaneously means the CPU has to work closer to full capacity. Operating systems coordinate with a CPU to make sure everything runs smoothly. The OS might switch the CPU's focus from one program to another as you switch active sessions on your computer. The OS acts like a resource manager and if it works well, you won't even notice that the CPU is switching between jobs at an incredibly rapid pace.
You might not notice if an operating system is working well. That's sort of the point -- the OS handles complex tasks so that you don't have to worry about them. It's only when things go wrong that you realize how important your computer's OS is to accomplishing tasks.
It's easy to notice the cosmetic differences between various operating systems. Unless you're a programmer, you may not notice how those differences extend below the user interface layer of an OS. Ultimately, when you go down deep enough, every OS has to handle the tasks we've talked about so that computers, mobile gadgets, game consoles and other computing devices perform the way we expect.
Microsoft's new Windows 10 S operating system restricts what users can do. Learn more at HowStuffWorks.
Author's Note: 5 Important Jobs Your Operating System Handles Without You Knowing
I imagine designing an operating system is a lot of hard work. Not only do you need to create software that can interface with numerous components and devices, but also you have to design an interface that's appealing and makes sense. On top of all that, you have to be innovative with your approach so that you aren't copying what someone else has already done. And this is just to build the framework that lets you install and run programs on a computer!
- Breecher, Jerry. "Operating Systems: Memory Management." Worcester Polytechnic Institute, Computer Science Department. 2007. (Aug. 13, 2012) http://web.cs.wpi.edu/~cs3013/c07/lectures/Section08-Memory_Management.pdf
- Bucknall, Julian M. "How your operating system works." PC Plus. Issue 305. March 20, 2011. (Aug. 13, 2012) http://www.techradar.com/us/news/software/operating-systems/how-your-operating-system-works-936273
- Gallert, Peter. "File Management." Aug. 22, 2000. (Aug. 13, 2012) http://www.pgallert.de/english/SysAdmin/OS/file.htm
- Kalinsky, David. "Basic concepts of real-time operating systems." LinuxDevices.com. Nov. 18, 2003. (Aug. 13, 2012) http://www.linuxdevices.com/articles/AT4627965573.html
- Ly, David. "What exactly does an operating system do?" Software Explained. Nov. 20, 2010. (Aug. 13, 2012) http://softwareexplained.info/2010/11/20/what-exactly-does-an-operating-system-do/
- Sakellariou, Rizos. "What does an operating system do?" The University of Manchester, Computer Science Department. 2001. (Aug. 13, 2012) http://www.cs.man.ac.uk/~rizos/CS2051/2001-02/lect02.pdf
- White, Ron and Timothy Edward Downs. How Computers Work. Indiana: Pearson Education, Nov. 9, 2005. (Aug. 13, 2013) http://safari.oreilly.com/0789734249/part01