A Brief History & Evolution of the Operating System
Imagine an age before operating systems…users having to type in codes and commands to even start up the simplest computer functions. A hefty collection of punch data cards acting as codes were needed separately to run the computer, the hardware, and the program. While it meant that users had to be more hands-on, it also meant numerous human errors, mishaps, and frustrations.
In 1956, General Motors created the first operating system to run a single IBM central computer. In the beginning, computers were only able to run one program at a time, but as we experience today, development has allowed computers to process more and more data.
In 1969, computer scientists Ken Thompson and Dennis Ritchie led a team to develop the first Unix operating system on a PDP-7 minicomputer. It was written in C programming language and was released for free in its early years. The rest is history. From text-based terminal interfaces to the modern graphic user interface (GUI) we are used to today, Unix went to inspire and influence modern operating systems such as Windows, macOS, and Linux.
What is an Operating System?
An operating system is a software built to allow users to communicate with the computer without having to speak the computer’s language. It is designed to make the most efficient use of the computer hardware and it does this by managing the computer’s memory, processes, hardware & software resources to provide common services to computer programs. The operating system will coordinate the computer’s central processing unit (CPU), memory, and storage so multiple programs can be running at the same time.
The Functions of an Operating System
The best way to think of an operating system is to see it as a communication method between the hardware (the computer’s pieces) and the software (what the computer user interacts with). But what does that mean in terms of the operating system’s jobs? Let’s take a look at some of its most important roles.
An operating system manages:
- Processor: The operating system determines which processes need the processor, and only certain ones will have it for an allotment of time. It’s best to think of this as a traffic controller since that’s often the best interpretation for its important actions! The operating system is allocating various processes, allowing information to be shared, then protect & synchronize them.
- Memory: Computers have limited memory available to put to use for various functions. It’s the operating system’s job to determine how much is needed for each task, allocate and then take back the memory as processes start and end. This ensures and limits the amount of memory processes have access to.
- Device: The operating system manages and controls all the drives and devices connected to the computer. This includes hard drives, optical disk drives, USB flash drives, printers, monitors, etc. It allows disks to be allocated, formatted, or backed up, while sending appropriate request information to devices such as a printer or a display device to execute functions.
- File: Perhaps one of the most understated functions of an operating system is its organization of files. It helps users create, delete, transfer, copy and store files however they prefer. Users are also able to maintain the integrity of data stored in the files such as file directory structure and protect them against unauthorized access.
- Security: Security is one of the most important functions within an operating system as it assures data integrity and confidentiality. Our computers are responsible for keeping unauthorized interactions out of our computer functions. This means security in logging in as well as in negating possible intrusion from programs and data with an active Firewall.
- Performance: This important function helps the computer to learn where the breakdowns are. If there is a delay between when the user requests something (like clicking the mouse) and the execution of that request (like opening the program), then the computer will record it and then use that good to bad result to help fine-tune its performance for a better one in the future.
How it Works: Shell & Kernel, Simplified
An operating system has 2 components: shell and kernel.
Shell oversees user interactions. It allows users to input prompts into the operating system, then interprets them as an output from the operating system.
Kernel provides essential services as a primary interface between the operating system and the hardware by controlling devices, networks, files, and processor & memory management. The kernel is first to be loaded up into the computer’s memory when the operating system starts running, and from there it starts to manage computer resources and allows software to run. It is a critical part in allocating process, memory, and device management.
In the early days, operating systems only had one kernel called the monolithic kernel. This meant that the kernel had to be recompiled even if a small change had been made to the module. Today, we have micro kernels that are able to dynamically load and unload as needed. There are different types of kernel usage per system, as well as for operating system types, but that is a lesson for another time.
Popular Graphical Operating Systems
- Microsoft Windows: Recognized as the most popular operating system series in the world, it was developed as a graphical operating system for MS-DOS, which was originally called 86-DOS before Microsoft bought and converted its name. Its first standalone version was Windows 95 and it greatly contributed to the popularity of personal computing. Windows is known for having a wide compatibility with all types of software and hardware, as well as being optimized best for Microsoft products.
- MacOS: This is the operating system series for Apple’s Macintosh brand computers, and it boasts user-friendliness, seamless connectivity with other Apple products, and industry standard security. Unlike Windows, it is a Unix-based operating system (since 2001) and because Apple’s products are proprietary, macOS has an advantage of being developed specifically for the hardware the computer runs on. Being Unix-based also means that users can look into the source code of the operating system and tweak changes here and there to fit their personal style of use.
- Linux: This free and open-source operating system is built around the Linux kernel and it is popular for its servers and embedded hardware uses. It is highly efficient in working with most computer hardware and very customizable with support from a large online community sharing and developing codes.
- Android: A mobile operating system based on the Linux kernal developed by Google for phones and tablets. It is the main alternative to Apple’s iOS for mobile operating systems and is used by a large number of mobile phone and tablet manufacturers.
- iOS: Apple’s mobile operating system for its phone and tablet line. It is exclusively made for Apple mobile platforms and its hardware allowing the operating system to maximize its hardware efficiency. Like its computer counterpart, macOS, iOS also allows for swift and easy connection between all Apple products.