HOME

TheInfoList



An operating system (OS) is
system software System software is software designed to provide a platform for other software. Examples of system software include operating systems like macOS macOS (; previously Mac OS X and later OS X) is a Proprietary software, proprieta ...
that manages
computer hardware Computer hardware includes the physical parts of a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operations ...
,
software Software is a collection of instructions that tell a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operatio ...
resources, and provides common
services Service may refer to: Activities :''(See the Religion section for religious activities)'' * Administrative service, a required part of the workload of Faculty (academic staff), university faculty * Civil service, the body of employees of a governm ...
for
computer program A computer program is a collection of instructions that can be executed by a computer to perform a specific task. A computer program is usually written by a computer programmer in a programming language A programming language is a formal ...
s.
Time-sharing In computing, time-sharing is the sharing of a computing resource among many users at the same time by means of multiprogramming and computer multitasking, multi-tasking.DEC Timesharing (1965), by Peter Clark, The DEC Professional, Volume 1, Numb ...
operating systems schedule tasks for efficient use of the system and may also include accounting software for cost allocation of processor time,
mass storage In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and softwa ...
, printing, and other resources. For hardware functions such as
input and output In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and softwa ...

input and output
and
memory allocation Memory management is a form of resource management applied to computer memory In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of a ...
, the operating system acts as an intermediary between programs and the computer hardware, although the application code is usually executed directly by the hardware and frequently makes
system call In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and soft ...
s to an OS function or is
interrupt In digital computer A computer is a machine A machine is a man-made device that uses power to apply forces and control movement to perform an action. Machines can be driven by animals and people A people is a plurality of per ...

interrupt
ed by it. Operating systems are found on many devices that contain a computer from cellular phones and video game consoles to
web server A web server is computer software and underlying Computer hardware, hardware that accepts requests via Hypertext Transfer Protocol, HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, com ...
s and
supercomputer A supercomputer is a computer with a high level of performance as compared to a general-purpose computer. The performance of a supercomputer is commonly measured in floating-point operations per second (FLOPS) instead of million instructions p ...

supercomputer
s. The dominant general-purpose
personal computer File:Crystal Project computer.png, upright=0.9, An artist's depiction of a 2000s-era desktop-style personal computer, which includes a metal case with the computing components, a display monitor and a keyboard (mouse not shown) A personal com ...
operating system is
Microsoft Windows Microsoft Windows, commonly referred to as Windows, is a group of several Proprietary software, proprietary graphical user interface, graphical operating system families, all of which are developed and marketed by Microsoft. Each family caters ...
with a market share of around 76.45%.
macOS macOS (; previously Mac OS X and later OS X) is a Proprietary software, proprietary graphical user interface, graphical operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for A ...
by
Apple Inc. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, that designs, develops, and sells consumer electronics, computer software Software is a collection of Instruction (computer science), ...
is in second place (17.72%), and the varieties of
Linux Linux ( or ) is a family of free and open-source software, open-source Unix-like operating systems based on the Linux kernel, an Kernel (computing), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is t ...

Linux
are collectively in third place (1.73%). In the mobile sector (including smartphones and tablets), Android's share is up to 72% in the year 2020. According to third quarter 2016 data, Android's share on smartphones is dominant with 87.5 percent with also a growth rate of 10.3 percent per year, followed by Apple's
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone and iPod Touch; the t ...

iOS
with 12.1 percent with per year decrease in market share of 5.2 percent, while other operating systems amount to just 0.3 percent.
Linux distribution A Linux distribution (often abbreviated as distro) is an operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (computing), services for c ...
s are dominant in the server and supercomputing sectors. Other specialized classes of operating systems (special-purpose operating systems), such as embedded and real-time systems, exist for many applications. Security-focused operating systems also exist. Some operating systems have low system requirements (e.g.
light-weight Linux distribution A light-weight Linux distribution is a Linux distribution that uses lower memory and/or has less processor-speed requirements than a more "feature-rich" Linux distribution. The lower demands on hardware ideally result in a more responsive mach ...
). Others may have higher system requirements. Some operating systems require installation or may come pre-installed with purchased computers (
OEM An original equipment manufacturer (OEM) is generally perceived as a company that produces parts and equipment that may be marketed by another manufacturer. However, the term is also used in several other ways, which causes ambiguity Ambig ...

OEM
-installation), whereas others may run directly from media (i.e.
live CD A live CD (also live DVD, live disc, or live operating system) is a complete booting, bootable computer installation including operating system which runs directly from a CD-ROM or similar storage device into a computer's memory, rather than loa ...
) or flash memory (i.e.
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables and connectors and protocols for connection, communication and power supply (Interface (computing), interfacing) between computers, peripherals and ...

USB
stick).


Types of operating systems


Single-tasking and multi-tasking

A single-tasking system can only run one program at a time, while a multi-tasking operating system allows more than one program to be running in concurrency. This is achieved by
time-sharing In computing, time-sharing is the sharing of a computing resource among many users at the same time by means of multiprogramming and computer multitasking, multi-tasking.DEC Timesharing (1965), by Peter Clark, The DEC Professional, Volume 1, Numb ...
, where the available processor time is divided between multiple processes. These processes are each interrupted repeatedly in
time slice In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and softwa ...
s by a task-scheduling subsystem of the operating system. Multi-tasking may be characterized in preemptive and co-operative types. In preemptive multitasking, the operating system slices the
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuit File:PExdcr01CJC.jpg, 200px, A circuit built on a printed circuit board (PCB). An electronic circuit is composed of ...
time and dedicates a slot to each of the programs.
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-like Ap ...
operating systems, such as
Linux Linux ( or ) is a family of free and open-source software, open-source Unix-like operating systems based on the Linux kernel, an Kernel (computing), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is t ...

Linux
—as well as non-Unix-like, such as
AmigaOS AmigaOS is a family of proprietary native operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (computing), services for computer program ...
—support preemptive multitasking. Cooperative multitasking is achieved by relying on each process to provide time to the other processes in a defined manner.
16-bit 16-bit microcomputers are computers in which 16-bit microprocessors were the norm. A 16-bit register can store 216 different values. The range (computer programming), range of integer values that can be stored in 16 bits depends on the Integer (c ...
versions of Microsoft Windows used cooperative multi-tasking;
32-bit 32-bit microcomputers are computers in which 32-bit microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. ...
versions of both Windows NT and Win9x used preemptive multi-tasking.


Single- and multi-user

Single-user operating systems have no facilities to distinguish users, but may allow multiple programs to run in
tandem Tandem bicycle Tandem, or in tandem, is an arrangement in which a team of machines, animals or people are lined up one behind another, all facing in the same direction. The original use of the term in English was in ''tandem harness'', which is ...

tandem
. A
multi-user Multi-user software is computer software Software is a collection of Instruction (computer science), instructions and data (computing), data that tell a computer how to work. This is in contrast to Computer hardware, physical hardware, from wh ...
operating system extends the basic concept of multi-tasking with facilities that identify processes and resources, such as disk space, belonging to multiple users, and the system permits multiple users to interact with the system at the same time. Time-sharing operating systems schedule tasks for efficient use of the system and may also include accounting software for cost allocation of processor time, mass storage, printing, and other resources to multiple users.


Distributed

A
distributed operating system A distributed operating system is system software over a collection of independent, networked, communicating, and physically separate computational nodes. They handle jobs which are serviced by multiple CPUs. Each individual node holds a specific ...
manages a group of distinct, networked computers and makes them appear to be a single computer, as all computations are
distributedDistribution may refer to: Mathematics *Distribution (mathematics) Distributions, also known as Schwartz distributions or generalized functions, are objects that generalize the classical notion of functions in mathematical analysis. Distr ...
(divided amongst the constituent computers).


Templated

In the distributed and
cloud computing Cloud computing is the on-demand availability of computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operation ...

cloud computing
context of an OS, ''templating'' refers to creating a single virtual machine image as a guest operating system, then saving it as a tool for multiple running virtual machines. The technique is used both in
virtualization In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act of creating a virtual (rather than actual) version of something, including virtual computer hardware Computer hardware includes the physical pa ...
and cloud computing management, and is common in large server warehouses.


Embedded

Embedded operating system An embedded operating system is an operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (computing), services for computer programs. Time- ...
s are designed to be used in embedded computer systems. They are designed to operate on small machines with less autonomy (e.g.
PDA The Palm TX A personal digital assistant (PDA), also known as a handheld PC, is a variety mobile device which functions as a personal information manager. PDAs have been mostly displaced by the widespread adoption of highly capable smartp ...
s). They are very compact and extremely efficient by design, and are able to operate with a limited amount of resources.
Windows CE Windows Embedded Compact, formerly Windows Embedded CE, Windows Powered and Windows CE, is an operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides co ...
and Minix 3 are some examples of embedded operating systems.


Real-time

A
real-time operating systemA real-time operating system (RTOS) is an operating system (OS) intended to serve real-time computing, real-time applications that process data as it comes in, typically without Data buffer, buffer delays. Processing time requirements (including any ...
is an operating system that guarantees to process
events Event may refer to: Gatherings of people * Ceremony, an event of ritual significance, performed on a special occasion * Convention (meeting), a gathering of individuals engaged in some common interest * Event management, the organization of event ...
or data by a specific moment in time. A real-time operating system may be single- or multi-tasking, but when multitasking, it uses specialized scheduling algorithms so that a
deterministic Determinism is the Philosophy, philosophical view that all events are determined completely by previously existing causes. Deterministic theories throughout the history of philosophy have sprung from diverse and sometimes overlapping motives an ...
nature of behavior is achieved. Such an event-driven system switches between tasks based on their priorities or external events, whereas time-sharing operating systems switch tasks based on clock
interrupt In digital computer A computer is a machine A machine is a man-made device that uses power to apply forces and control movement to perform an action. Machines can be driven by animals and people A people is a plurality of per ...

interrupt
s.


Library

A library operating system is one in which the services that a typical operating system provides, such as networking, are provided in the form of
libraries A library is a curated collection of sources of information and similar resources, made accessible to a defined community for reference or borrowing. It provides physical or digital access to material, and may be a physical location or a virt ...
and composed with the application and configuration code to construct a
unikernel A unikernel is a specialised, single address space machine image constructed by using Operating_system#Library, library operating systems. A developer selects, from a modular stack, the minimal set of libraries which correspond to the OS construc ...
: a specialized, single address space, machine image that can be deployed to cloud or embedded environments.


History

Early computers were built to perform a series of single tasks, like a calculator. Basic operating system features were developed in the 1950s, such as
resident monitor In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and software ...
functions that could automatically run different programs in succession to speed up processing. Operating systems did not exist in their modern and more complex forms until the early 1960s. Hardware features were added, that enabled use of runtime libraries,
interrupts In digital computers, an interrupt is a response by the central processing unit, processor to an event that needs attention from the software. An interrupt condition alerts the processor and serves as a request for the processor to interrupt the ...
, and parallel processing. When
personal computer File:Crystal Project computer.png, upright=0.9, An artist's depiction of a 2000s-era desktop-style personal computer, which includes a metal case with the computing components, a display monitor and a keyboard (mouse not shown) A personal com ...
s became popular in the 1980s, operating systems were made for them similar in concept to those used on larger computers. In the 1940s, the earliest electronic digital systems had no operating systems. Electronic systems of this time were programmed on rows of mechanical switches or by jumper wires on
plugboard accounting machine control panel wiring. This board was labeled "profit & loss summary." A plugboard or control panel (the term used depends on the application area) is an array of jack (connector), jacks or sockets (often called hubs) into whic ...
s. These were special-purpose systems that, for example, generated ballistics tables for the military or controlled the printing of payroll checks from data on punched paper cards. After programmable general-purpose computers were invented, machine languages(consisting of strings of the binary digits 0 and 1 on punched paper tape) were introduced that sped up the programming process (Stern, 1981). In the early 1950s, a computer could execute only one program at a time. Each user had sole use of the computer for a limited period and would arrive at a scheduled time with their program and data on punched paper cards or
punched tape file:PaperTapes-5and8Hole.jpg, Five- and eight-hole punched paper tape file:Harwell-dekatron-witch-10.jpg, Paper tape reader on the Harwell computer with a small piece of five-hole tape connected in a circle – creating a physical program loop P ...

punched tape
. The program would be loaded into the machine, and the machine would be set to work until the program completed or
crashed "Crashed" is the third U.S. rock Single (music), single, (the fifth overall), from the band Daughtry (band), Daughtry's debut album. It was released only to U.S. rock stations on September 5, 2007. Upon its release the song got adds at those stati ...
. Programs could generally be debugged via a front panel using toggle switches and panel lights. It is said that
Alan Turing Alan Mathison Turing (; 23 June 1912 – 7 June 1954) was an English mathematician A mathematician is someone who uses an extensive knowledge of mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such to ...

Alan Turing
was a master of this on the early
Manchester Mark 1 The Manchester Mark 1 was one of the earliest stored-program computers, developed at the Victoria University of Manchester from the Manchester Baby (operational in June 1948). Work began in August 1948, and the first version was operational by ...
machine, and he was already deriving the primitive conception of an operating system from the principles of the
universal Turing machine In computer science, a universal Turing machine (UTM) is a Turing machine that simulates an arbitrary Turing machine on arbitrary input. The universal machine essentially achieves this by reading both the description of the machine to be simulate ...

universal Turing machine
. Later machines came with libraries of programs, which would be linked to a user's program to assist in operations such as input and output and
compiling In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and sof ...

compiling
(generating machine code from human-readable symbolic code). This was the genesis of the modern-day operating system. However, machines still ran a single job at a time. At Cambridge University in England, the job queue was at one time a washing line (clothesline) from which tapes were hung with different colored clothes-pegs to indicate job priority. An improvement was the
Atlas Supervisor The Atlas Supervisor was the program which managed the allocation of processing resources of Manchester University's Atlas Computer so that the machine was able to act on many tasks and user programs concurrently. Its various functions included ...
. Introduced with the Manchester
Atlas Blaeu's world map, originally prepared by Joan Blaeu for his ''Atlas Maior">Joan_Blaeu.html" ;"title="world map, originally prepared by Joan Blaeu">world map, originally prepared by Joan Blaeu for his ''Atlas Maior'', published in the first b ...
in 1962, it is considered by many to be the first recognisable modern operating system. Brinch Hansen described it as "the most significant breakthrough in the history of operating systems."


Mainframes

Through the 1950s, many major features were pioneered in the field of operating systems on
mainframe computer A pair of IBM mainframes. On the left is the IBM z Systems z13. On the right is the IBM LinuxONE Rockhopper.">IBM_LinuxONE.html" ;"title="IBM z Systems z13. On the right is the IBM LinuxONE">IBM z Systems z13. On the right is the IBM LinuxONE R ...
s, including
batch processing Computerized batch processing is the running of "jobs that can run without end user interaction, or can be scheduled to run as resources permit." History The term "batch processing" originates in the traditional classification of methods of produc ...
, input/output
interrupt In digital computer A computer is a machine A machine is a man-made device that uses power to apply forces and control movement to perform an action. Machines can be driven by animals and people A people is a plurality of per ...

interrupt
ing, buffering, multitasking,
spooling In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and softw ...
, runtime libraries, link-loading, and programs for
sorting Image:Metal movable type.jpg, 300px, Manual typesetting required all of the type after use to be sorted back into the correct slots in the type case. Sorting is any process of arranging items systematically, and has two common, yet distinct meani ...
records in files. These features were included or not included in application software at the option of application programmers, rather than in a separate operating system used by all applications. In 1959, the
SHARE Operating System The SHARE Operating System (SOS) is an operating system introduced in 1959 by the SHARE user group. It is an improvement on the General Motors GM-NAA I/O operating system, the first operating system for the IBM 704. The main objective was to imp ...
was released as an integrated utility for the
IBM 704 280px, An IBM 704 computer, with IBM 727 tape drives and IBM 780 CRT display The IBM 704, introduced by IBM in 1954, is the first mass-produced computer with floating-point arithmetic hardware. The IBM 704 ''Manual of operation'' states: The t ...
, and later in the
709 __NOTOC__ Year 709 (Roman numerals, DCCIX) was a common year starting on Tuesday (link will display the full calendar) of the Julian calendar. The denomination 709 for this year has been used since the early medieval period, when the Anno Domini ...
and 7090 mainframes, although it was quickly supplanted by
IBSYS IBSYS is the discontinued Magnetic tape data storage, tape-based operating system that IBM supplied with its IBM 709, IBM 7090 and IBM 7094 computers. A similar operating system (but with several significant differences), also called IBSYS, was p ...
/IBJOB on the 709, 7090 and 7094. During the 1960s, IBM's
OS/360 OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBM 7090/94 IB ...
introduced the concept of a single OS spanning an entire product line, which was crucial for the success of the System/360 machines. IBM's current mainframe operating systems are distant descendants of this original system and modern machines are backwards-compatible with applications written for OS/360. OS/360 also pioneered the concept that the operating system keeps track of all of the system resources that are used, including program and data space allocation in main memory and file space in secondary storage, and
file locking File locking is a mechanism that restricts access to a computer file A computer file is a computer resource for recording data Data are units of information Information can be thought of as the resolution of uncertainty; it answers ...
during updates. When a process is terminated for any reason, all of these resources are re-claimed by the operating system. The alternative
CP-67 CP-67 was the ''control program'' portion of CP/CMS, a virtual machine operating system developed for the IBM System/360-67 by IBM's Cambridge Scientific Center. It was a reimplementation of their earlier research system IBM CP-40, CP-40, which ra ...
system for the S/360-67 started a whole line of IBM operating systems focused on the concept of
virtual machine In computing, a virtual machine (VM) is the virtualization In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act of creating a virtual (rather than actual) version of something, including virtual com ...
s. Other operating systems used on IBM S/360 series mainframes included systems developed by IBM:
DOS/360 Disk Operating System/360, also DOS/360, or simply DOS, is the discontinued first member of a sequence of operating systems for IBM System/360, System/370 and later IBM mainframe, mainframes. It was announced by IBM on the last day of 1964, and it ...
(Disk Operating System),
TSS/360 IBM System/360 Model 67-2. This is the computer model on which TSS/360 would have run The IBM Time Sharing System TSS/360 is a discontinued early time-sharing operating system designed exclusively for a special model of the System/360 line of mai ...
(Time Sharing System), TOS/360 (Tape Operating System),
BOS/360 BOS/360 (Basic Operating System/360) was an early IBM System/360 operating system. Origin BOS was one of four System/360 Operating System versions developed by the IBM General Products Division (GPD) in Endicott, New York to fill a gap at the lo ...
(Basic Operating System), and ACP (Airline Control Program), as well as a few non-IBM systems: MTS (Michigan Terminal System),
MUSIC Music is the art of arranging sounds in time through the elements of melody, harmony, rhythm, and timbre. It is one of the universal cultural aspects of all human societies. General definitions of music include common elements such as pit ...
(Multi-User System for Interactive Computing), and ORVYL (Stanford Timesharing System).
Control Data Corporation Control may refer to: Basic meanings Economics and business * Control (management), an element of management * Control, an element of management accounting * Comptroller (or controller), a senior financial officer in an organization * Controlling ...
developed the SCOPE operating system in the 1960s, for
batch processing Computerized batch processing is the running of "jobs that can run without end user interaction, or can be scheduled to run as resources permit." History The term "batch processing" originates in the traditional classification of methods of produc ...
. In cooperation with the University of Minnesota, the Kronos and later the NOS operating systems were developed during the 1970s, which supported simultaneous batch and timesharing use. Like many commercial timesharing systems, its interface was an extension of the Dartmouth
BASIC BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of General-purpose programming language, general-purpose, high-level programming languages whose design philosophy emphasizes ease of use. The original version was designed by ...
operating systems, one of the pioneering efforts in timesharing and programming languages. In the late 1970s, Control Data and the University of Illinois developed the
PLATO Plato ( ; grc-gre, Πλάτων ; 428/427 or 424/423 – 348/347 BC) was an Athenian , image_skyline = File:Athens Montage L.png, center, 275px, alt=Athens montage. Clicking on an image in the picture causes the ...
operating system, which used plasma panel displays and long-distance time sharing networks. Plato was remarkably innovative for its time, featuring real-time chat, and multi-user graphical games. In 1961,
Burroughs Corporation The Burroughs Corporation was a major American manufacturer of business equipment. The company was founded in 1886 as the American Arithmometer Company. In 1986, it merged with Sperry UNIVAC to form Unisys. The company's history paralleled ma ...
introduced the
B5000 The Burroughs Large Systems Group produced a family of large 48-bit mainframes using stack machine instruction sets with dense Syllable (computing), syllables.E.g., 12-bit syllables for B5000, 8-bit syllables for B6500 The first machine in the fami ...
with the MCP (Master Control Program) operating system. The B5000 was a
stack machine In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algori ...
designed to exclusively support high-level languages with no assembler; indeed, the MCP was the first OS to be written exclusively in a high-level language ( ESPOL, a dialect of
ALGOL ALGOL (; short for "Algorithmic Language") is a family of imperative Imperative may refer to: *Imperative mood, a grammatical mood (or mode) expressing commands, direct requests, and prohibitions *Imperative programming, a programming paradigm ...
). MCP also introduced many other ground-breaking innovations, such as being the first commercial implementation of
virtual memory In computing, virtual memory, or virtual storage is a Memory management (operating systems), memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "crea ...

virtual memory
. During development of the
AS/400 The IBM System i is a family of midrange computer Midrange computers, or midrange systems, are a class of computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Mod ...
, IBM made an approach to Burroughs to license MCP to run on the AS/400 hardware. This proposal was declined by Burroughs management to protect its existing hardware production. MCP is still in use today in the
Unisys Unisys Corporation is an American Multinational corporation, multinational information technology (IT) services and consulting company headquartered in Blue Bell, Pennsylvania, Blue Bell, Pennsylvania. It is the legacy proprietor of the Burroughs ...
company's MCP/ClearPath line of computers.
UNIVAC UNIVAC (Universal Automatic Computer) was a line of electronic digital stored-program computers starting with the products of the Eckert–Mauchly Computer Corporation. Later the name was applied to a division of the Remington Rand company and suc ...
, the first commercial computer manufacturer, produced a series of EXEC operating systems. Like all early main-frame systems, this batch-oriented system managed magnetic drums, disks, card readers and line printers. In the 1970s, UNIVAC produced the Real-Time Basic (RTB) system to support large-scale time sharing, also patterned after the Dartmouth BC system.
General Electric General Electric Company (GE) is an American Multinational corporation, multinational Conglomerate (company), conglomerate incorporated in New York State and headquartered in Boston. Until 2021, the company operated through GE Aviation, aviati ...
and
MIT Massachusetts Institute of Technology (MIT) is a private land-grant research university A research university is a university A university ( la, universitas, 'a whole') is an educational institution, institution of higher education, hi ...

MIT
developed General Electric Comprehensive Operating Supervisor (GECOS), which introduced the concept of ringed security privilege levels. After acquisition by
Honeywell Honeywell International Inc. is an American publicly traded, multinational conglomerate headquartered in Charlotte, North Carolina Charlotte () is the List of municipalities in North Carolina, most populous city in the U.S. state of North ...

Honeywell
it was renamed
General Comprehensive Operating System General Comprehensive Operating System (GCOS, ; originally GECOS, General Electric Comprehensive Operating Supervisor) is a family of operating system An operating system (OS) is system software that manages computer hardware, computer software ...
(GCOS). Digital Equipment Corporation developed many operating systems for its various computer lines, including
TOPS-10 TOPS-10 System (''Timesharing / Total Operating System-10'') is a discontinued operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (compu ...
and
TOPS-20 The TOPS-20 operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating syste ...

TOPS-20
time sharing systems for the 36-bit PDP-10 class systems. Before the widespread use of UNIX, TOPS-10 was a particularly popular system in universities, and in the early
ARPANET The Advanced Research Projects Agency Network (ARPANET) was the first wide-area packet-switching In telecommunications, packet switching is a method of grouping data that is transmitted over a digital network into '' packets''. Packets are ...
community.
RT-11 RT-11 ("RT" for ''real-time'') is a discontinued small, low-end, single-user real-time operating systemA real-time operating system (RTOS) is an operating system (OS) intended to serve real-time computing, real-time applications that process data as ...
was a single-user real-time OS for the
PDP-11 The PDP-11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were sold, ...
class minicomputer, and
RSX-11 RSX-11 is a discontinued family of multi-user real-time operating systemA real-time operating system (RTOS) is an operating system (OS) intended to serve real-time computing, real-time applications that process data as it comes in, typically witho ...
was the corresponding multi-user OS. From the late 1960s through the late 1970s, several hardware capabilities evolved that allowed similar or ported software to run on more than one system. Early systems had utilized
microprogramming Microcode is a processor design technique that interposes a layer of computer organization between the CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuit File: ...
to implement features on their systems in order to permit different underlying
computer architecture In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific method, scientific principles to design and build machines, structures, and other items, including bridges, tunn ...
s to appear to be the same as others in a series. In fact, most 360s after the 360/40 (except the 360/44, 360/75, 360/91, 360/95 and 360/195) were microprogrammed implementations. The enormous investment in software for these systems made since the 1960s caused most of the original computer manufacturers to continue to develop compatible operating systems along with the hardware. Notable supported mainframe operating systems include: *
Burroughs MCP The MCP (Master Control Program) is the proprietary operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (computing), services for comput ...
B5000 The Burroughs Large Systems Group produced a family of large 48-bit mainframes using stack machine instruction sets with dense Syllable (computing), syllables.E.g., 12-bit syllables for B5000, 8-bit syllables for B6500 The first machine in the fami ...
, 1961 to
Unisys Unisys Corporation is an American Multinational corporation, multinational information technology (IT) services and consulting company headquartered in Blue Bell, Pennsylvania, Blue Bell, Pennsylvania. It is the legacy proprietor of the Burroughs ...
Clearpath/MCP, present * IBM
OS/360 OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBM 7090/94 IB ...
IBM System/360 The IBM System/360 (S/360) is a family of mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or log ...
, 1966 to IBM
z/OS z/OS is a 64-bit computing, 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn followed a string of MVS versions.Starting with the earli ...
, present * IBM
CP-67 CP-67 was the ''control program'' portion of CP/CMS, a virtual machine operating system developed for the IBM System/360-67 by IBM's Cambridge Scientific Center. It was a reimplementation of their earlier research system IBM CP-40, CP-40, which ra ...
IBM System/360 The IBM System/360 (S/360) is a family of mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or log ...
, 1967 to IBM
z/VM z/VM is the current version in IBM's VM (operating system), VM family of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development . It is directly based on technology and concepts dating ...
* UNIVAC
EXEC 8 OS 2200 is the operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating sy ...
UNIVAC 1108 The UNIVAC 1100/2200 series is a series of compatible 36-bit computer systems, beginning with the UNIVAC 1107 in 1962, initially made by Sperry Rand. The series continues to be supported today by Unisys Corporation as the ClearPath Dorado Seri ...
, 1967, to OS 2200
Unisys Unisys Corporation is an American Multinational corporation, multinational information technology (IT) services and consulting company headquartered in Blue Bell, Pennsylvania, Blue Bell, Pennsylvania. It is the legacy proprietor of the Burroughs ...
Clearpath Dorado, present


Microcomputers

The first microcomputers did not have the capacity or need for the elaborate operating systems that had been developed for mainframes and minis; minimalistic operating systems were developed, often loaded from Read-only memory, ROM and known as ''resident monitor, monitors''. One notable early disk operating system was CP/M, which was supported on many early microcomputers and was closely imitated by Microsoft's MS-DOS, which became widely popular as the operating system chosen for the IBM PC (IBM's version of it was called IBM DOS or PC DOS). In the 1980s, Apple Computer Inc. (now
Apple Inc. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, that designs, develops, and sells consumer electronics, computer software Software is a collection of Instruction (computer science), ...
) abandoned its popular Apple II series of microcomputers to introduce the Apple Macintosh computer with an innovative graphical user interface (GUI) to the Classic Mac OS, Mac OS. The introduction of the Intel 80386 CPU chip in October 1985, with
32-bit 32-bit microcomputers are computers in which 32-bit microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. ...
architecture and paging capabilities, provided personal computers with the ability to run multitasking operating systems like those of earlier minicomputers and mainframe computer, mainframes. Microsoft responded to this progress by hiring Dave Cutler, who had developed the OpenVMS, VMS operating system for Digital Equipment Corporation. He would lead the development of the Windows NT operating system, which continues to serve as the basis for Microsoft's operating systems line. Steve Jobs, a co-founder of
Apple Inc. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, that designs, develops, and sells consumer electronics, computer software Software is a collection of Instruction (computer science), ...
, started NeXT Computer Inc., which developed the NEXTSTEP operating system. NEXTSTEP would later be acquired by
Apple Inc. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, that designs, develops, and sells consumer electronics, computer software Software is a collection of Instruction (computer science), ...
and used, along with code from FreeBSD as the core of macOS, Mac OS X (macOS after latest name change). The GNU Project was started by activist and programmer Richard Stallman with the goal of creating a complete free software replacement to the proprietary UNIX operating system. While the project was highly successful in duplicating the functionality of various parts of UNIX, development of the GNU Hurd kernel proved to be unproductive. In 1991, Finnish computer science student Linus Torvalds, with cooperation from volunteers collaborating over the Internet, released the first version of the Linux kernel. It was soon merged with the GNU user space components and
system software System software is software designed to provide a platform for other software. Examples of system software include operating systems like macOS macOS (; previously Mac OS X and later OS X) is a Proprietary software, proprieta ...
to form a complete operating system. Since then, the combination of the two major components has usually been referred to as simply "Linux" by the software industry, a naming convention that Stallman and the Free Software Foundation remain opposed to, preferring the name GNU/Linux. The Berkeley Software Distribution, known as BSD (operating system), BSD, is the UNIX derivative distributed by the University of California, Berkeley, starting in the 1970s. Freely distributed and ported to many minicomputers, it eventually also gained a following for use on PCs, mainly as FreeBSD, NetBSD and OpenBSD.


Examples


Unix and Unix-like operating systems

File:Unix history-simple.png, 256px, Evolution of Unix systems default Unix was originally written in assembly language. Ken Thompson wrote B (programming language), B, mainly based on BCPL, based on his experience in the MULTICS project. B was replaced by C (programming language), C, and Unix, rewritten in C, developed into a large, complex family of inter-related operating systems which have been influential in every modern operating system (see History of operating systems, History). The ''
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-like Ap ...
'' family is a diverse group of operating systems, with several major sub-categories including System V, Berkeley Software Distribution, BSD, and
Linux Linux ( or ) is a family of free and open-source software, open-source Unix-like operating systems based on the Linux kernel, an Kernel (computing), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is t ...

Linux
. The name "Unix, UNIX" is a trademark of The Open Group which licenses it for use with any operating system that has been shown to conform to their definitions. "UNIX-like" is commonly used to refer to the large set of operating systems which resemble the original UNIX. Unix-like systems run on a wide variety of
computer architecture In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific method, scientific principles to design and build machines, structures, and other items, including bridges, tunn ...
s. They are used heavily for server (computing), servers in business, as well as workstations in academic and engineering environments. Free software, Free UNIX variants, such as
Linux Linux ( or ) is a family of free and open-source software, open-source Unix-like operating systems based on the Linux kernel, an Kernel (computing), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is t ...

Linux
and Berkeley Software Distribution, BSD, are popular in these areas. Four operating systems are certified by The Open Group (holder of the Unix trademark) as Unix. HP's HP-UX and IBM's AIX operating system, AIX are both descendants of the original System V Unix and are designed to run only on their respective vendor's hardware. In contrast, Sun Microsystems's Solaris (operating system), Solaris can run on multiple types of hardware, including x86 and Sparc servers, and PCs. Apple's
macOS macOS (; previously Mac OS X and later OS X) is a Proprietary software, proprietary graphical user interface, graphical operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for A ...
, a replacement for Apple's earlier (non-Unix) Mac OS, is a hybrid kernel-based BSD variant derived from NeXTSTEP, Mach (kernel), Mach, and FreeBSD. Unix interoperability was sought by establishing the POSIX standard. The POSIX standard can be applied to any operating system, although it was originally created for various Unix variants.


BSD and its descendants

for the World Wide Web ran on NeXTSTEP, based on BSD. A subgroup of the Unix family is the Berkeley Software Distribution family, which includes FreeBSD, NetBSD, and OpenBSD. These operating systems are most commonly found on webservers, although they can also function as a personal computer OS. The Internet owes much of its existence to BSD, as many of the protocols now commonly used by computers to connect, send and receive data over a network were widely implemented and refined in BSD. The World Wide Web was also first demonstrated on a number of computers running an OS based on BSD called NeXTSTEP. In 1974, University of California, Berkeley installed its first Unix system. Over time, students and staff in the computer science department there began adding new programs to make things easier, such as text editors. When Berkeley received new VAX computers in 1978 with Unix installed, the school's undergraduates modified Unix even more in order to take advantage of the computer's hardware possibilities. The Defense Advanced Research Projects Agency of the US United States Department of Defense, Department of Defense took interest, and decided to fund the project. Many schools, corporations, and government organizations took notice and started to use Berkeley's version of Unix instead of the official one distributed by AT&T. Steve Jobs, upon leaving Apple Inc. in 1985, formed NeXT, NeXT Inc., a company that manufactured high-end computers running on a variation of BSD called NeXTSTEP. One of these computers was used by Tim Berners-Lee as the first webserver to create the World Wide Web. Developers like Keith Bostic (software engineer), Keith Bostic encouraged the project to replace any non-free code that originated with Bell Labs. Once this was done, however, AT&T sued. After two years of legal disputes, the BSD project spawned a number of free derivatives, such as NetBSD and FreeBSD (both in 1993), and OpenBSD (from NetBSD in 1995).


macOS

macOS (formerly "Mac OS X" and later "OS X") is a line of open core graphical operating systems developed, marketed, and sold by
Apple Inc. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, that designs, develops, and sells consumer electronics, computer software Software is a collection of Instruction (computer science), ...
, the latest of which is pre-loaded on all currently shipping Macintosh computers. macOS is the successor to the original classic Mac OS, which had been Apple's primary operating system since 1984. Unlike its predecessor, macOS is a UNIX operating system built on technology that had been developed at NeXT through the second half of the 1980s and up until Apple purchased the company in early 1997. The operating system was first released in 1999 as Mac OS X Server 1.0, followed in March 2001 by a client version (Mac OS X v10.0, Mac OS X v10.0 "Cheetah"). Since then, six more distinct "client" and "macOS Server, server" editions of macOS have been released, until the two were merged in Mac OS X Lion, OS X 10.7 "Lion". Prior to its merging with macOS, the server edition macOS Server was software architecture, architecturally identical to its desktop counterpart and usually ran on Apple's line of Macintosh server (computing), server hardware. macOS Server included work group management and administration software tools that provide simplified access to key network services, including a Message transfer agent, mail transfer agent, a Samba (software), Samba server, an Lightweight Directory Access Protocol, LDAP server, a Domain Name System, domain name server, and others. With Mac OS X Lion, Mac OS X v10.7 Lion, all server aspects of Mac OS X Server have been integrated into the client version and the product re-branded as "OS X" (dropping "Mac" from the name). The server tools are now offered as an application.


Linux

, desktop
Linux distribution A Linux distribution (often abbreviated as distro) is an operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (computing), services for c ...
, a unix-like operating system was first time released on September 17, 1991, by Linus Torvalds. Picture of Tux (mascot), Tux the penguin, mascot of Linux. The Linux kernel originated in 1991, as a project of Linus Torvalds, while a university student in Finland. He posted information about his project on a newsgroup for computer students and programmers, and received support and assistance from volunteers who succeeded in creating a complete and functional kernel.
Linux Linux ( or ) is a family of free and open-source software, open-source Unix-like operating systems based on the Linux kernel, an Kernel (computing), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is t ...

Linux
is
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-like Ap ...
, but was developed without any Unix code, unlike BSD and its variants. Because of its open license model, the Linux kernel code is available for study and modification, which resulted in its use on a wide range of computing machinery from supercomputers to smart-watches. Although estimates suggest that Linux is Usage share of operating systems, used on only 1.82% of all "desktop" (or laptop) PCs, it has been widely adopted for use in servers and embedded systems such as cell phones. Linux has superseded Unix on many platforms and is used on most supercomputers including the top 385. Many of the same computers are also on Green500 (but in different order), and Linux runs on the top 10. Linux is also commonly used on other small energy-efficient computers, such as smartphones and smartwatches. The Linux kernel is used in some popular distributions, such as Red Hat Enterprise Linux, Red Hat, Debian, Ubuntu (operating system), Ubuntu, Linux Mint and Google's Android (operating system), Android, Chrome OS, and Chromium OS.


Microsoft Windows

Microsoft Windows is a family of proprietary software, proprietary operating systems designed by Microsoft, Microsoft Corporation and primarily targeted to Intel architecture based computers, with an estimated 88.9 percent total usage share on Web connected computers. The latest version is Windows 11. In 2011, Windows 7 overtook Windows XP as most common version in use. Microsoft Windows was first released in 1985, as an operating environment running on top of MS-DOS, which was the standard operating system shipped on most Intel architecture personal computers at the time. In 1995, Windows 95 was released which only used MS-DOS as a bootstrap. For backwards compatibility, Win9x could run real-mode MS-DOS and 16-bit Windows 3.x drivers. Windows ME, released in 2000, was the last version in the Win9x family. Later versions have all been based on the Windows NT kernel (operating system), kernel. Current client versions of Windows run on IA-32, x86-64 and ARM architecture, ARM microprocessors. In addition Itanium is still supported in older server version Windows Server 2008 R2. In the past, Windows NT supported additional architectures. Server editions of Windows are widely used. In recent years, Microsoft has expended significant capital in an effort to promote the use of Windows as a server operating system. However, Windows' usage on servers is not as widespread as on personal computers as Windows competes against Linux and BSD for server market share. ReactOS is a Windows-alternative operating system, which is being developed on the principles of Windows without using any of Microsoft's code.


Other

There have been many operating systems that were significant in their day but are no longer so, such as
AmigaOS AmigaOS is a family of proprietary native operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (computing), services for computer program ...
; OS/2 from IBM and Microsoft; classic Mac OS, the non-Unix precursor to Apple's macOS; BeOS; XTS-400, XTS-300; RISC OS; MorphOS; Haiku (operating system), Haiku; BareMetal and FreeMint. Some are still used in niche markets and continue to be developed as minority platforms for enthusiast communities and specialist applications. OpenVMS, formerly from Digital Equipment Corporation, DEC, is still under active development by VMS Software Inc. Yet other operating systems are used almost exclusively in academia, for operating systems education or to do research on operating system concepts. A typical example of a system that fulfills both roles is MINIX, while for example Singularity (operating system), Singularity is used purely for research. Another example is the Oberon (operating system), Oberon System designed at ETH Zürich by Niklaus Wirth, Jürg Gutknecht and a group of students at the former Computer Systems Institute in the 1980s. It was used mainly for research, teaching, and daily work in Wirth's group. Other operating systems have failed to win significant market share, but have introduced innovations that have influenced mainstream operating systems, not least Bell Labs' Plan 9 from Bell Labs, Plan 9.


Components

The components of an operating system all exist in order to make the different parts of a computer work together. All user software needs to go through the operating system in order to use any of the hardware, whether it be as simple as a mouse or keyboard or as complex as an Internet component.


Kernel

With the aid of the firmware and device drivers, the kernel provides the most basic level of control over all of the computer's hardware devices. It manages memory access for programs in the Random-access memory, RAM, it determines which programs get access to which hardware resources, it sets up or resets the CPU's operating states for optimal operation at all times, and it organizes the data for long-term non-volatile storage with file systems on such media as disks, tapes, flash memory, etc.


Program execution

The operating system provides an interface between an application program and the computer hardware, so that an application program can interact with the hardware only by obeying rules and procedures programmed into the operating system. The operating system is also a set of services which simplify development and execution of application programs. Executing an application program involves the creation of a process by the operating system kernel (operating system), kernel which assigns memory space and other resources, establishes a priority for the process in multi-tasking systems, loads program binary code into memory, and initiates execution of the application program which then interacts with the user and with hardware devices.


Interrupts

Interrupts are central to operating systems, as they provide an efficient way for the operating system to interact with and react to its environment. The alternative having the operating system "watch" the various sources of input for events (polling) that require action can be found in older systems with very small Call stack, stacks (50 or 60 bytes) but is unusual in modern systems with large stacks. Interrupt-based programming is directly supported by most modern CPUs. Interrupts provide a computer with a way of automatically saving local register contexts, and running specific code in response to events. Even very basic computers support hardware interrupts, and allow the programmer to specify code which may be run when that event takes place. When an interrupt is received, the computer's hardware automatically suspends whatever program is currently running, saves its status, and runs computer code previously associated with the interrupt; this is analogous to placing a bookmark in a book in response to a phone call. In modern operating systems, interrupts are handled by the operating system's kernel (operating system), kernel. Interrupts may come from either the computer's hardware or the running program. When a hardware device triggers an interrupt, the operating system's kernel decides how to deal with this event, generally by running some processing code. The amount of code being run depends on the priority of the interrupt (for example: a person usually responds to a smoke detector alarm before answering the phone). The processing of hardware interrupts is a task that is usually delegated to software called a device drivers, device driver, which may be part of the operating system's kernel, part of another program, or both. Device drivers may then relay information to a running program by various means. A program may also trigger an interrupt to the operating system. If a program wishes to access hardware, for example, it may interrupt the operating system's kernel, which causes control to be passed back to the kernel. The kernel then processes the request. If a program wishes additional resources (or wishes to shed resources) such as memory, it triggers an interrupt to get the kernel's attention.


Modes

microprocessor architecture available in protected mode. Operating systems determine which processes run in each mode. Modern computers support multiple modes of operation. CPUs with this capability offer at least two modes: user mode and supervisor mode. In general terms, supervisor mode operation allows unrestricted access to all machine resources, including all MPU instructions. User mode operation sets limits on instruction use and typically disallows direct access to machine resources. CPUs might have other modes similar to user mode as well, such as the virtual modes in order to emulate older processor types, such as 16-bit processors on a 32-bit one, or 32-bit processors on a 64-bit computing, 64-bit one. At power-on or reset, the system begins in supervisor mode. Once an operating system kernel (operating system), kernel has been loaded and started, the boundary between user mode and supervisor mode (also known as kernel mode) can be established. Supervisor mode is used by the kernel for low level tasks that need unrestricted access to hardware, such as controlling how memory is accessed, and communicating with devices such as disk drives and video display devices. User mode, in contrast, is used for almost everything else. Application programs, such as word processors and database managers, operate within user mode, and can only access machine resources by turning control over to the kernel, a process which causes a switch to supervisor mode. Typically, the transfer of control to the kernel is achieved by executing a software interrupt instruction, such as the Motorola 68000 TRAP instruction. The software interrupt causes the processor to switch from user mode to supervisor mode and begin executing code that allows the kernel to take control. In user mode, programs usually have access to a restricted set of processor instructions, and generally cannot execute any instructions that could potentially cause disruption to the system's operation. In supervisor mode, instruction execution restrictions are typically removed, allowing the kernel unrestricted access to all machine resources. The term "user mode resource" generally refers to one or more CPU registers, which contain information that the running program isn't allowed to alter. Attempts to alter these resources generally causes a switch to supervisor mode, where the operating system can deal with the illegal operation the program was attempting, for example, by forcibly terminating ("killing") the program.


Memory management

Among other things, a multiprogramming operating system kernel (operating system), kernel must be responsible for managing all system memory which is currently in use by programs. This ensures that a program does not interfere with memory already in use by another program. Since programs time share, each program must have independent access to memory. Cooperative memory management, used by many early operating systems, assumes that all programs make voluntary use of the kernel (operating system), kernel's memory manager, and do not exceed their allocated memory. This system of memory management is almost never seen any more, since programs often contain bugs which can cause them to exceed their allocated memory. If a program fails, it may cause memory used by one or more other programs to be affected or overwritten. Malicious programs or viruses may purposefully alter another program's memory, or may affect the operation of the operating system itself. With cooperative memory management, it takes only one misbehaved program to crash the system. Memory protection enables the kernel (operating system), kernel to limit a process' access to the computer's memory. Various methods of memory protection exist, including memory segmentation and paging. All methods require some level of hardware support (such as the 80286 MMU), which doesn't exist in all computers. In both segmentation and paging, certain protected mode registers specify to the CPU what memory address it should allow a running program to access. Attempts to access other addresses trigger an interrupt which cause the CPU to re-enter supervisor mode, placing the kernel (operating system), kernel in charge. This is called a segmentation violation or Seg-V for short, and since it is both difficult to assign a meaningful result to such an operation, and because it is usually a sign of a misbehaving program, the kernel (operating system), kernel generally resorts to terminating the offending program, and reports the error. Windows versions 3.1 through ME had some level of memory protection, but programs could easily circumvent the need to use it. A general protection fault would be produced, indicating a segmentation violation had occurred; however, the system would often crash anyway.


Virtual memory

The use of virtual memory addressing (such as paging or segmentation) means that the kernel can choose what memory each program may use at any given time, allowing the operating system to use the same memory locations for multiple tasks. If a program tries to access memory that isn't in its current range of accessible memory, but nonetheless has been allocated to it, the kernel is interrupted in the same way as it would if the program were to exceed its allocated memory. (See section on memory management.) Under UNIX this kind of interrupt is referred to as a page fault. When the kernel detects a page fault it generally adjusts the virtual memory range of the program which triggered it, granting it access to the memory requested. This gives the kernel discretionary power over where a particular application's memory is stored, or even whether or not it has actually been allocated yet. In modern operating systems, memory which is accessed less frequently can be temporarily stored on disk or other media to make that space available for use by other programs. This is called paging, swapping, as an area of memory can be used by multiple programs, and what that memory area contains can be swapped or exchanged on demand. "Virtual memory" provides the programmer or the user with the perception that there is a much larger amount of RAM in the computer than is really there.


Multitasking

Computer multitasking, Multitasking refers to the running of multiple independent computer programs on the same computer; giving the appearance that it is performing the tasks at the same time. Since most computers can do at most one or two things at one time, this is generally done via time-sharing, which means that each program uses a share of the computer's time to execute. An operating system kernel (operating system), kernel contains a scheduling (computing), scheduling program which determines how much time each process spends executing, and in which order execution control should be passed to programs. Control is passed to a process by the kernel, which allows the program access to the
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuit File:PExdcr01CJC.jpg, 200px, A circuit built on a printed circuit board (PCB). An electronic circuit is composed of ...
and memory. Later, control is returned to the kernel through some mechanism, so that another program may be allowed to use the CPU. This so-called passing of control between the kernel and applications is called a context switch. An early model which governed the allocation of time to programs was called cooperative multitasking. In this model, when control is passed to a program by the kernel, it may execute for as long as it wants before explicitly returning control to the kernel. This means that a malicious or malfunctioning program may not only prevent any other programs from using the CPU, but it can hang the entire system if it enters an infinite loop. Modern operating systems extend the concepts of application preemption to device drivers and kernel code, so that the operating system has preemptive control over internal run-times as well. The philosophy governing preemptive multitasking is that of ensuring that all programs are given regular time on the CPU. This implies that all programs must be limited in how much time they are allowed to spend on the CPU without being interrupted. To accomplish this, modern operating system kernels make use of a timed interrupt. A protected mode timer is set by the kernel which triggers a return to supervisor mode after the specified time has elapsed. (See above sections on Interrupts and Dual Mode Operation.) On many single user operating systems cooperative multitasking is perfectly adequate, as home computers generally run a small number of well tested programs. The
AmigaOS AmigaOS is a family of proprietary native operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides common daemon (computing), services for computer program ...
is an exception, having preemptive multitasking from its first version. Windows NT was the first version of
Microsoft Windows Microsoft Windows, commonly referred to as Windows, is a group of several Proprietary software, proprietary graphical user interface, graphical operating system families, all of which are developed and marketed by Microsoft. Each family caters ...
which enforced preemptive multitasking, but it didn't reach the home user market until Windows XP (since Windows NT was targeted at professionals).


Disk access and file systems

Access to data stored on disks is a central feature of all operating systems. Computers store data on Hard disk drive, disks using Computer file, files, which are structured in specific ways in order to allow for faster access, higher reliability, and to make better use of the drive's available space. The specific way in which files are stored on a disk is called a file system, and enables files to have names and attributes. It also allows them to be stored in a hierarchy of directories or folders arranged in a Directory (computing), directory tree. Early operating systems generally supported a single type of disk drive and only one kind of file system. Early file systems were limited in their capacity, speed, and in the kinds of file names and directory structures they could use. These limitations often reflected limitations in the operating systems they were designed for, making it very difficult for an operating system to support more than one file system. While many simpler operating systems support a limited range of options for accessing storage systems, operating systems like Unix, UNIX and
Linux Linux ( or ) is a family of free and open-source software, open-source Unix-like operating systems based on the Linux kernel, an Kernel (computing), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is t ...

Linux
support a technology known as a virtual file system or VFS. An operating system such as UNIX supports a wide array of storage devices, regardless of their design or file systems, allowing them to be accessed through a common application programming interface (API). This makes it unnecessary for programs to have any knowledge about the device they are accessing. A VFS allows the operating system to provide programs with access to an unlimited number of devices with an infinite variety of file systems installed on them, through the use of specific device drivers and file system drivers. A connected data storage, storage device, such as a hard disk drive, hard drive, is accessed through a device driver. The device driver understands the specific language of the drive and is able to translate that language into a standard language used by the operating system to access all disk drives. On UNIX, this is the language of block devices. When the kernel has an appropriate device driver in place, it can then access the contents of the disk drive in raw format, which may contain one or more file systems. A file system driver is used to translate the commands used to access each specific file system into a standard set of commands that the operating system can use to talk to all file systems. Programs can then deal with these file systems on the basis of filenames, and directories/folders, contained within a hierarchical structure. They can create, delete, open, and close files, as well as gather various information about them, including access permissions, size, free space, and creation and modification dates. Various differences between file systems make supporting all file systems difficult. Allowed characters in file names, case sensitivity, and the presence of various kinds of file attributes makes the implementation of a single interface for every file system a daunting task. Operating systems tend to recommend using (and so support natively) file systems specifically designed for them; for example, NTFS in Windows and ReiserFS, Reiser4, ext3, ext4 and Btrfs in Linux. However, in practice, third party drivers are usually available to give support for the most widely used file systems in most general-purpose operating systems (for example, NTFS is available in Linux through NTFS-3G, NTFS-3g, and ext2/3 and ReiserFS are available in Windows through third-party software). Support for file systems is highly varied among modern operating systems, although there are several common file systems which almost all operating systems include support and drivers for. Operating systems vary on file system support and on the disk formats they may be installed on. Under Windows, each file system is usually limited in application to certain media; for example, CDs must use ISO 9660 or Universal Disk Format, UDF, and as of Windows Vista, NTFS is the only file system which the operating system can be installed on. It is possible to install Linux onto many types of file systems. Unlike other operating systems, Linux and UNIX allow any file system to be used regardless of the media it is stored in, whether it is a hard drive, a disc (Compact disc, CD, DVD...), a USB flash drive, or even contained within a file located on another file system.


Device drivers

A device driver is a specific type of computer software developed to allow interaction with hardware devices. Typically this constitutes an interface for communicating with the device, through the specific computer bus or communications subsystem that the hardware is connected to, providing commands to and/or receiving data from the device, and on the other end, the requisite interfaces to the operating system and software applications. It is a specialized hardware-dependent computer program which is also operating system specific that enables another program, typically an operating system or applications software package or computer program running under the operating system kernel, to interact transparently with a hardware device, and usually provides the requisite interrupt handling necessary for any necessary asynchronous time-dependent hardware interfacing needs. The key design goal of device drivers is abstraction (software engineering), abstraction. Every model of hardware (even within the same class of device) is different. Newer models also are released by manufacturers that provide more reliable or better performance and these newer models are often controlled differently. Computers and their operating systems cannot be expected to know how to control every device, both now and in the future. To solve this problem, operating systems essentially dictate how every type of device should be controlled. The function of the device driver is then to translate these operating system mandated function calls into device specific calls. In theory a new device, which is controlled in a new manner, should function correctly if a suitable driver is available. This new driver ensures that the device appears to operate as usual from the operating system's point of view. Under versions of Windows before Vista and versions of Linux before 2.6, all driver execution was co-operative, meaning that if a driver entered an infinite loop it would freeze the system. More recent revisions of these operating systems incorporate kernel preemption, where the kernel interrupts the driver to give it tasks, and then separates itself from the process until it receives a response from the device driver, or gives it more tasks to do.


Networking

Currently most operating systems support a variety of networking protocols, hardware, and applications for using them. This means that computers running dissimilar operating systems can participate in a common computer network, network for sharing resources such as remote procedure call, computing, files, printers, and scanners using either wired or wireless connections. Networks can essentially allow a computer's operating system to access the resources of a remote computer to support the same functions as it could if those resources were connected directly to the local computer. This includes everything from simple communication, to using networked file systems or even sharing another computer's graphics or sound hardware. Some network services allow the resources of a computer to be accessed transparently, such as Secure Shell, SSH which allows networked users direct access to a computer's command line interface. Client/server networking allows a program on a computer, called a client, to connect via a network to another computer, called a server. Servers offer (or host) various services to other network computers and users. These services are usually provided through ports or numbered access points beyond the server's IP address. Each port number is usually associated with a maximum of one running program, which is responsible for handling requests to that port. A daemon, being a user program, can in turn access the local hardware resources of that computer by passing requests to the operating system kernel. Many operating systems support one or more vendor-specific or open networking protocols as well, for example, Systems Network Architecture, SNA on IBM systems, DECnet on systems from Digital Equipment Corporation, and Microsoft-specific protocols (Server message block, SMB) on Windows. Specific protocols for specific tasks may also be supported such as Network File System, NFS for file access. Protocols like ESound, or esd can be easily extended over the network to provide sound from local applications, on a remote system's sound hardware.


Security

A computer being secure depends on a number of technologies working properly. A modern operating system provides access to a number of resources, which are available to software running on the system, and to external devices like networks via the kernel. The operating system must be capable of distinguishing between requests which should be allowed to be processed, and others which should not be processed. While some systems may simply distinguish between "privileged" and "non-privileged", systems commonly have a form of requester ''identity'', such as a user name. To establish identity there may be a process of ''authentication''. Often a username must be quoted, and each username may have a password. Other methods of authentication, such as magnetic cards or biometric data, might be used instead. In some cases, especially connections from the network, resources may be accessed with no authentication at all (such as reading files over a network share). Also covered by the concept of requester identity is ''authorization''; the particular services and resources accessible by the requester once logged into a system are tied to either the requester's user account or to the variously configured groups of users to which the requester belongs. In addition to the allow or disallow model of security, a system with a high level of security also offers auditing options. These would allow tracking of requests for access to resources (such as, "who has been reading this file?"). Internal security, or security from an already running program is only possible if all possibly harmful requests must be carried out through interrupts to the operating system kernel. If programs can directly access hardware and resources, they cannot be secured. External security involves a request from outside the computer, such as a login at a connected console or some kind of network connection. External requests are often passed through device drivers to the operating system's kernel, where they can be passed onto applications, or carried out directly. Security of operating systems has long been a concern because of highly sensitive data held on computers, both of a commercial and military nature. The United States Government of the United States, Government United States Department of Defense, Department of Defense (DoD) created the ''Trusted Computer System Evaluation Criteria'' (TCSEC) which is a standard that sets basic requirements for assessing the effectiveness of security. This became of vital importance to operating system makers, because the TCSEC was used to evaluate, classify and select trusted operating systems being considered for the processing, storage and retrieval of sensitive or classified information. Network services include offerings such as file sharing, print services, email, web sites, and file transfer protocols (FTP), most of which can have compromised security. At the front line of security are hardware devices known as firewall (networking), firewalls or intrusion detection/prevention systems. At the operating system level, there are a number of software firewalls available, as well as intrusion detection/prevention systems. Most modern operating systems include a software firewall, which is enabled by default. A software firewall can be configured to allow or deny network traffic to or from a service or application running on the operating system. Therefore, one can install and be running an insecure service, such as Telnet or FTP, and not have to be threatened by a security breach because the firewall would deny all traffic trying to connect to the service on that port. An alternative strategy, and the only sandbox (computer security), sandbox strategy available in systems that do not meet the Popek and Goldberg virtualization requirements, is where the operating system is not running user programs as native code, but instead either emulator, emulates a processor or provides a host for a p-code machine, p-code based system such as Java. Internal security is especially relevant for multi-user systems; it allows each user of the system to have private files that the other users cannot tamper with or read. Internal security is also vital if auditing is to be of any use, since a program can potentially bypass the operating system, inclusive of bypassing auditing.


User interface

command line. Each command is typed out after the 'prompt', and then its output appears below, working its way down the screen. The current command prompt is at the bottom. Every computer that is to be operated by an individual requires a user interface. The user interface is usually referred to as a shell (computing), shell and is essential if human interaction is to be supported. The user interface views the directory structure and requests services from the operating system that will acquire data from input device, input hardware devices, such as a keyboard (computing), keyboard, mouse (computing), mouse or credit card, credit card reader, and requests operating system services to display Command-line interface#Command prompt, prompts, status messages and such on output device, output hardware devices, such as a computer monitor, video monitor or printer (computing), printer. The two most common forms of a user interface have historically been the command-line interface, where computer commands are typed out line-by-line, and the graphical user interface, where a visual environment (most commonly a WIMP (computing), WIMP) is present.


Graphical user interfaces

File:KDE Plasma 5.16.png, left, 256px, A screenshot of the KDE Plasma 5 graphical user interface. Programs take the form of images on the screen, and the files, folders (directories), and applications take the form of icons and symbols. A mouse is used to navigate the computer. Most of the modern computer systems support graphical user interfaces (GUI), and often include them. In some computer systems, such as the original implementation of the classic Mac OS, the GUI is integrated into the kernel (operating system), kernel. While technically a graphical user interface is not an operating system service, incorporating support for one into the operating system kernel can allow the GUI to be more responsive by reducing the number of context switches required for the GUI to perform its output functions. Other operating systems are modular programming, modular, separating the graphics subsystem from the kernel and the Operating System. In the 1980s UNIX, VMS and many others had operating systems that were built this way. Linux and macOS are also built this way. Modern releases of Microsoft Windows such as Windows Vista implement a graphics subsystem that is mostly in user-space; however the graphics drawing routines of versions between Windows NT 4.0 and Windows Server 2003 exist mostly in kernel space. Windows 9x had very little distinction between the interface and the kernel. Many computer operating systems allow the user to install or create any user interface they desire. The X Window System in conjunction with GNOME or KDE Plasma 5 is a commonly found setup on most Unix and
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-like Ap ...
(BSD, Linux, Solaris) systems. A number of Windows shell replacements have been released for Microsoft Windows, which offer alternatives to the included Windows shell, but the shell itself cannot be separated from Windows. Numerous Unix-based GUIs have existed over time, most derived from X11. Competition among the various vendors of Unix (HP, IBM, Sun) led to much fragmentation, though an effort to standardize in the 1990s to Common Open Software Environment, COSE and Common Desktop Environment, CDE failed for various reasons, and were eventually eclipsed by the widespread adoption of GNOME and KDE, K Desktop Environment. Prior to free software-based toolkits and desktop environments, Motif was the prevalent toolkit/desktop combination (and was the basis upon which CDE was developed). Graphical user interfaces evolve over time. For example, Windows has modified its user interface almost every time a new major version of Windows is released, and the Mac OS GUI changed dramatically with the introduction of Mac OS X in 1999.Poisson, Ken
"Chronology of Personal Computer Software"
. Retrieved on 2008-05-07. Last checked on 2009-03-30.


Real-time operating systems

A real-time operating system (RTOS) is an operating system intended for applications with fixed deadlines (real-time computing). Such applications include some small embedded systems, automobile engine controllers, industrial robots, spacecraft, industrial control, and some large-scale computing systems. An early example of a large-scale real-time operating system was Transaction Processing Facility developed by American Airlines and IBM for the Sabre (computer system), Sabre Airline Reservations System. Embedded systems that have fixed deadlines use a
real-time operating systemA real-time operating system (RTOS) is an operating system (OS) intended to serve real-time computing, real-time applications that process data as it comes in, typically without Data buffer, buffer delays. Processing time requirements (including any ...
such as VxWorks, PikeOS, eCos, QNX, MontaVista, MontaVista Linux and RTLinux.
Windows CE Windows Embedded Compact, formerly Windows Embedded CE, Windows Powered and Windows CE, is an operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, and provides co ...
is a
real-time operating systemA real-time operating system (RTOS) is an operating system (OS) intended to serve real-time computing, real-time applications that process data as it comes in, typically without Data buffer, buffer delays. Processing time requirements (including any ...
that shares similar APIs to desktop Windows but shares none of desktop Windows' codebase. Symbian, Symbian OS also has an RTOS kernel (EKA2) starting with version 8.0b. Some embedded systems use operating systems such as Palm OS, BSD (operating system), BSD, and
Linux Linux ( or ) is a family of free and open-source software, open-source Unix-like operating systems based on the Linux kernel, an Kernel (computing), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is t ...

Linux
, although such operating systems do not support real-time computing.


Operating system development as a hobby

A hobby operating system may be classified as one whose code has not been directly derived from an existing operating system, and has few users and active developers. In some cases, hobby development is in support of a "Homebrew Computer Club, homebrew" computing device, for example, a simple single-board computer powered by a 6502 microprocessor. Or, development may be for an architecture already in widespread use. Operating system development may come from entirely new concepts, or may commence by modeling an existing operating system. In either case, the hobbyist is his/her own developer, or may interact with a small and sometimes unstructured group of individuals who have like interests. Examples of a hobby operating system include Syllable (operating system), Syllable and TempleOS.


Diversity of operating systems and portability

Application software is generally written for use on a specific operating system, and sometimes even for specific hardware. When porting the application to run on another OS, the functionality required by that application may be implemented differently by that OS (the names of functions, meaning of arguments, etc.) requiring the application to be adapted, changed, or otherwise software maintenance, maintained. Unix was the first operating system not written in assembly language, making it very software portability, portable to systems different from its native
PDP-11 The PDP-11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were sold, ...
. This cost in supporting operating systems diversity can be avoided by instead writing applications against software platforms such as Java (software platform), Java or Qt (software), Qt. These abstractions have already borne the cost of adaptation to specific operating systems and their system library, system libraries. Another approach is for operating system vendors to adopt standards. For example, POSIX and operating system abstraction layer, OS abstraction layers provide commonalities that reduce porting costs.


Market share


See also

* Comparison of operating systems * Crash (computing) * Hypervisor * Interruptible operating system * List of important publications in computer science#Operating systems, List of important publications in operating systems * List of operating systems * List of pioneers in computer science * Live CD * Glossary of operating systems terms * Microcontroller * Mobile device * Mobile operating system * Network operating system * Object-oriented operating system * Operating System Projects * System Commander * System image * Timeline of operating systems


Notes


References


Further reading

* * * * * O'Brien, J. A., & Marakas, G. M.(2011). ''Management Information Systems''. 10e. McGraw-Hill Irwin. * *


External links

*
Multics History
and the history of operating systems {{Authority control Operating systems, Computer science