Operating system (OS)

An operating system (OS) is a special computer program that serves as the broker between other software applications and the computer’s hardware. After being loaded into a computer, usually by the manufacturer via a boot program, the OS manages other programs running on the device. It also provides the main interface through which the user interacts with the computer system. Many electronic devices, from personal computers to electronic readers and smartphones, require an OS to process data and commands. Some of the most popular and influential operating systems in the twenty-first century include Microsoft's Windows, Apple’s MacOS and iOS, Google's Android, and Linux.

90558413-100604.jpg

Overview

At a basic level, operating systems allow computers to complete simple tasks such as connecting to a keyboard or mouse, maintaining files on a hard drive, or managing connected devices such as a printer. At a higher level, an OS controls access to a specific computer, ensuring the proper security is in place. For most devices, an OS regulates the flow of competing programs and information, allowing a computer to engage simultaneously in multiple tasks—such as word processing and file downloading—without causing a data traffic jam or crash.

Four general types of OS exist, each with specific tasks and types of users. A real-time OS must perform tasks immediately, processing data in tenths of a second in order to transmit “real-time” information, such as a high-definition live broadcast. A single-user, single-task OS, such as MS-DOS (an influential early OS for personal computers), can run only one program at a particular time. A multitasking OS for a single user is most common for modern personal computers, allowing someone to engage multiple applications at once. In a multiuser OS, more than one person can access hardware and software simultaneously. A corporate content management system is a type of multiuser OS, allowing employees to obtain information remotely and without interruption from other users.

The operating system directs the communication between the computer and any connected input/output devices. In a single-user system, those devices might include a keyboard for input, a monitor for immediate output, a printer for hard-copy output (paper documentation), and an external drive for file storage. In a multiuser computer environment, the system would include several terminals. In a networked environment, the operating system allows the computer to communicate with other computers to share files, computing power, or other resources through network communications devices.

The operating system receives the information as it arrives from these devices and makes these data available to the appropriate applications programs. For each type of device, the operating system typically has a device driver, which is a program that interprets communications codes for that specific device, passes the data between the applications program and that device, and gives commands to the device. For example, the keyboard device driver receives data from a keyboard and passes it to a text-editing program that processes that data to modify a file. The text editor would then make a request for the disk device driver to give commands to the disk system that tell it to modify that data on the disk at a specific position in the file.

Although device drivers can be added and removed from computer memory according to the computer's configuration, the core of the operating system (called the kernel) must reside in memory. It closely supervises the central processing unit (CPU), memory, and disk operations. When a computer is activated, a program called a loader will copy to memory the kernel and all required device drivers from a specific disk called the system residence device, and then pass control to the kernel.

The kernel determines which program runs on the CPU and how long it will run. Since many programs may request the usage of CPU simultaneously, the kernel permits each program to run for a short time (called a time slice). When that time slice ends, the kernel suspends that program and starts the next program's time slice. In this manner, many programs (and users) can share the usage of one CPU. This process of one program being suspended, the kernel resuming control, and then control being passed to another program is called an interrupt. Often, these interrupts are triggered when devices request service. For example, while a user is typing data with a text-editing program, a printer may request more data to print from a file. The kernel suspends the text editor and lets the printer's device driver control the CPU. The printer device driver passes more data to the printer, returns control to the kernel, and the kernel returns control to the text-editing program. All this occurs instantly and without the user's knowledge.

A multiuser or multitasking operating system keeps records on a process table of all programs running on the computer. When a program begins execution, the operating system creates an environment for it by allocating memory, loading it from disk, creating an entry for it on the process table, and establishing links to files and device drivers. Each executing program has a priority. High-priority programs will receive more or longer time slices and will therefore execute more quickly than low-priority programs. When a program completes execution, the operating system must de-allocate all resources used by it, break links, close files, and perform other clean-up activities.

Since the operating system permits many programs to coexist in memory, it should protect programs from interfering with or destroying one another. In memory, programs should not read or write data outside their allocated memory space or to unauthorized devices.

History

Operating systems have evolved significantly alongside general advances in digital computer technology. The earliest computers essentially required human operators to perform all the functions of an OS. In the 1950s, supervisor programs emerged as the forerunners of the OS, and these systems became steadily more sophisticated as processing power increased over the following decades. Notable early operating systems included Atlas, the College Basic System, and the Compatible Time Sharing System (CTSS), all of which were created at major research universities, and OS/360, developed by the company IBM. Another important OS was Multics, developed through a collaboration between MIT researchers and several companies.

The rise of "minicomputers" in the 1970s brought another wave of influential OS development. Influenced by Multics and officially launched by AT&T in 1969, UNIX became the de facto OS for academic institutions during the 1970s. It spawned a grouping of related operating systems, often termed “Unix-like” systems, as exemplified by the widely used Berkeley Software Distribution (BSD). In the 1980s, DOS and the original Mac OS emerged as other major consumer-oriented operating systems. Mac OS and the DOS-based Microsoft Windows gained particular popularity for their groundbreaking graphical user interface (GUI) features. As the personal computer market continued to grow into the 1990s, there was also increased debate about open-source vs. proprietary operating systems. For example, Steve Jobs used BSD as the basis for NeXTSTEP, a proprietary OS released in 1989 and then itself used as a basis for Apple's proprietary Mac OS X (later called MacOS). GNU/Linux, first released in 1991, is an example of a Unix-like OS developed as open-source software.

Windows and MacOS remained the two dominant personal computer operating systems into the twenty-first century, each evolving through various versions. However, as mobile devices such as smartphones proliferated, other specialized operating systems also became influential. The Symbian OS found early success for mobile technology through affiliation with Nokia’s S60 platform. The proprietary OS for BlackBerry devices helped pioneer integration of tasks in a way that became an industry standard. By the 2010s, the Android and iOS operating systems had captured most of the mobile OS market.

Bibliography

Bigelow, Stephen J. "What Is An Operating System (OS)?" TechTarget, www.techtarget.com/whatis/definition/operating-system-OS. Accessed 13 Sept. 2024.

Garrido, José M. Principles of Modern Operating Systems. Jones, 2013.

Hansen, Per Brinch. Classic Operating Systems: From Batch Processing to Distributed Systems. Springer, 2001.

"Operating System." Computer Security Resource Center, National Institute of Standards and Technology, US Dept. of Commerce, csrc.nist.gov/glossary/term/operating‗system. Accessed 13 Sept. 2024.

Peek, Jerry D., Grace Todino, and John Strang. Learning the UNIX Operating System. 5th ed. ProQuest, 2002.

Silberschatz, Abraham, Peter Baer Galvin, and Greg Gagne. Operating System Concepts. 9th ed. Wiley, 2013.

Tanenbaum, Andrew S., and Herbert Bos. Modern Operating Systems. 4th ed. Prentice, 2014.

Tomsho, Greg. Guide to Operating Systems. 5th ed. Cengage Learning, 2017.