Operating systems are the final piece that ties everything together for a computer. An operating system manages access to hardware devices, the software programs on our computer and how we interface with them. In this article I provide a very high level overview of operating systems and how they work. I also provide my opinions on the impact operating systems have on the way we use computers.
How Operating Systems Work
In the early days of computers there were no operating systems. Each program was hand coded into the computer and the processor only ran one program at a time. There might be different data sets used with the program, but the computer only ran one software program through the CPU.
As improvements were made to the hardware and I/O devices were added, there were common functions used to load and run programs. These common functions were eventually collected together and became part of the first operating systems. There were functions to read files from cards, reel to reel tapes, and tape and send the commands to the CPU. Other functions would write programs to a selected output device or print them out on a printer. When hard and floppy drives were added, functions were added to allow writing and reading computer programs from the drives.
At first these common functions were reloaded each time by hand or from some type of input device. Eventually these common functions became operating systems that were loaded when the computer was started. An operating system is specialized software that manages other software programs and interfaces to the hardware installed on a computer. The first operating systems were relatively simple, with a few commands that allowed reading and writing programs to a disk, editing files and listing files on a disk. As more software programs were developed, additional functions were added to operating systems to handle new functions
For these early operating systems they only allowed one program to run at a time. This was a bottleneck that limited uses of computers. Eventually the concept of multitasking was implemented and computers could appear to run multiple programs at the same time. With only one CPU only one program would run at a time but the operating system would swap out software while it was executing making it appear that multiple software programs were running at the same time.
A multitasking operating system manages software programs that are loaded into RAM. It feeds a set of commands from a software program to a CPU, then shifts to another program and feeds its commands to the CPU. Meanwhile, the first program's state is stored on a hard drive. When the operating system switches back to the first program, it saves the state of the second program and reads in the state of the other program and continues executing instructions based on that state.
With the use of this method, it can appear that multiple programs are running at the same time on the computer. However, if there are too many programs running at once, the operating system may spend too much time swapping programs in and out which does not leave processing time for the software to actually run. Also, if there are bugs in the swap process, the state of a software program may get garbled and cause an error that can crash the software program or possibly the operating system itself. This is part of the cause of errors like the blue screen. When an error like a blue screen occurs it means that the operating system is required to shutdown in order to avoid damaging hardware devices on the computer. So while this type of error is annoying, it is better than the alternative of a trashed computer.
When multitasking was added, this provided a base for allowing multiple users to access the computer. Initially this was performed with multiple terminals connected to a single system. When networking capability was added, this allowed users to login to a system even if they were on a different kind of operating system than the original computer. Cloud computing is an example of multi-user computing, where multiple users connect to a server computer that has a large amount of drive space available. Each user has their own space and it appears like they are the only user on that system. In reality, multiple users are connected to the central system and the operating system manages their access to files and software they can access.
Eventually, operating systems grew more robust and processing speed increased. Now computers have multiple processors embedded on a system which truly allows multiple programs to run at the same time. In this case, the challenge is coordinating the input and output for each program since they have to share the I/O devices. It would be very confusing for your word processor to start your cat pictures while you are trying to type up a report. The operating system manages all of these operations while patiently running in the background, waiting for input from the keyboard, mouse, microphone or other input device you have attached to the computer.
The addition of network capabilities added new functions for operating systems to manage. At this time there is separate software that is run to manage cloud connections for files and folders. I would not be surprised to see this functionality added to operating systems in the future.
The operating system is software and requires loading when the computer starts up. A boot loader of some type is used to load the first part of the operating system. Once the initial functions are loaded the operating system can continue and finish loading itself. The boot loader is usually firmware of some type that reads a specified part of a hard drive or other bootable device and loads the startup for the operating system. These functions could be performed manually but with the complexity and requirements for current software, this would be an error prone process at best and likely to cause more problems than it would solve.
The most well-known operating systems are Windows, Apple OS, and Linux. There are other operating systems that are designed for specific functions. Real Time Operating Systems (RTOS) are operating systems that run software that has to run at specific times no matter what input or output is occurring. An example of the use of an RTOS is in computers that are used to run car engines. It might be a problem if the engine computer chose to delay firing the pistons due to input from the transmission at the wrong time.
The Impact of Operating Systems
Without operating systems, much of our current use of computers would not be possible. Operating systems provide a method for easier use of software. An operating system manages the interaction of software with the CPU, RAM, and other hardware devices that are part of a computer. With an operating system, we can run multiple programs at the same time while the operating system manages each software program so that it doesn't wipe out the memory of another program.
We take for granted that we can power on a computer and it will start up and allow us to run programs. Before basic operating systems, a user might need to type in starting instructions so they could read programs from a disk or other device.
An operating system also allows us to have an interactive experience with a computer. By managing the CPU, RAM, drives and I/O devices for us, we can focus, mostly, on using software tools for our work and not on the mechanics of making the software run while reading data from disk and I/O devices. Operating systems have improved in reliability over the years and most people rarely see the operating system crash or bring up a blue screen as it did years ago.
Part of the added reliability is improved malware and virus protection to help protect our data. While it is convenient to access the internet, this ability opens our computers to possible tampering and data loss. Operating systems are the culmination of many years of development and meld multiple elements together so we can use computers more effectively.
This is the last article of this series about different parts of the computer. I have one more article planned with my opinions and conclusions about my exploration of computer parts. I am taking a break in topics and the next article will be about teams and how they are effectively and ineffectively used in companies. After that will be the final article of this series. In the meantime, I hope everyone has enjoyed the end of summer and is getting a good start for fall and a new school year.
Pictures by J.T. Harpster, prints of selected photos can be found at our Redbubble
Help support our work on , get access to short stories and news about Shell Creek Publishing.
- Log in to post comments