Operating system

From Wikipedia for FEVERv2
Jump to navigation Jump to search

An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Operating system_sentence_0

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. Operating system_sentence_1

For hardware functions such as input and output and memory allocation, 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 calls to an OS function or is interrupted by it. Operating system_sentence_2

Operating systems are found on many devices that contain a computer – from cellular phones and video game consoles to web servers and supercomputers. Operating system_sentence_3

The dominant desktop operating system is Microsoft Windows with a market share of around 76.45%. Operating system_sentence_4

macOS by Apple Inc. is in second place (17.72%), and the varieties of Linux are collectively in third place (1.73%). Operating system_sentence_5

In the mobile sector (including smartphones and tablets), Android's share is up to 72% in the year 2020. Operating system_sentence_6

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 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. Operating system_sentence_7

Linux distributions are dominant in the server and supercomputing sectors. Operating system_sentence_8

Other specialized classes of operating systems, such as embedded and real-time systems, exist for many applications. Operating system_sentence_9

Types of operating systems Operating system_section_0

Single-tasking and multi-tasking Operating system_section_1

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. Operating system_sentence_10

This is achieved by time-sharing, where the available processor time is divided between multiple processes. Operating system_sentence_11

These processes are each interrupted repeatedly in time slices by a task-scheduling subsystem of the operating system. Operating system_sentence_12

Multi-tasking may be characterized in preemptive and co-operative types. Operating system_sentence_13

In preemptive multitasking, the operating system slices the CPU time and dedicates a slot to each of the programs. Operating system_sentence_14

Unix-like operating systems, such as Solaris and Linux—as well as non-Unix-like, such as AmigaOS—support preemptive multitasking. Operating system_sentence_15

Cooperative multitasking is achieved by relying on each process to provide time to the other processes in a defined manner. Operating system_sentence_16

16-bit versions of Microsoft Windows used cooperative multi-tasking; 32-bit versions of both Windows NT and Win9x used preemptive multi-tasking. Operating system_sentence_17

Single- and multi-user Operating system_section_2

Single-user operating systems have no facilities to distinguish users, but may allow multiple programs to run in tandem. Operating system_sentence_18

A multi-user 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. Operating system_sentence_19

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. Operating system_sentence_20

Distributed Operating system_section_3

A distributed operating system manages a group of distinct, networked computers and makes them appear to be a single computer, as all computations are distributed (divided amongst the constituent computers). Operating system_sentence_21

Templated Operating system_section_4

In the distributed and 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. Operating system_sentence_22

The technique is used both in virtualization and cloud computing management, and is common in large server warehouses. Operating system_sentence_23

Embedded Operating system_section_5

Embedded operating systems are designed to be used in embedded computer systems. Operating system_sentence_24

They are designed to operate on small machines with less autonomy (e.g. PDAs). Operating system_sentence_25

They are very compact and extremely efficient by design, and are able to operate with a limited amount of resources. Operating system_sentence_26

Windows CE and Minix 3 are some examples of embedded operating systems. Operating system_sentence_27

Real-time Operating system_section_6

A real-time operating system is an operating system that guarantees to process events or data by a specific moment in time. Operating system_sentence_28

A real-time operating system may be single- or multi-tasking, but when multitasking, it uses specialized scheduling algorithms so that a deterministic nature of behavior is achieved. Operating system_sentence_29

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 interrupts. Operating system_sentence_30

Library Operating system_section_7

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 and composed with the application and configuration code to construct a unikernel: a specialized, single address space, machine image that can be deployed to cloud or embedded environments. Operating system_sentence_31

History Operating system_section_8

Main article: History of operating systems Operating system_sentence_32

See also: Resident monitor Operating system_sentence_33

Early computers were built to perform a series of single tasks, like a calculator. Operating system_sentence_34

Basic operating system features were developed in the 1950s, such as resident monitor functions that could automatically run different programs in succession to speed up processing. Operating system_sentence_35

Operating systems did not exist in their modern and more complex forms until the early 1960s. Operating system_sentence_36

Hardware features were added, that enabled use of runtime libraries, interrupts, and parallel processing. Operating system_sentence_37

When personal computers became popular in the 1980s, operating systems were made for them similar in concept to those used on larger computers. Operating system_sentence_38

In the 1940s, the earliest electronic digital systems had no operating systems. Operating system_sentence_39

Electronic systems of this time were programmed on rows of mechanical switches or by jumper wires on plugboards. Operating system_sentence_40

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. Operating system_sentence_41

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). Operating system_sentence_42

In the early 1950s, a computer could execute only one program at a time. Operating system_sentence_43

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. Operating system_sentence_44

The program would be loaded into the machine, and the machine would be set to work until the program completed or crashed. Operating system_sentence_45

Programs could generally be debugged via a front panel using toggle switches and panel lights. Operating system_sentence_46

It is said that Alan Turing was a master of this on the early Manchester Mark 1 machine, and he was already deriving the primitive conception of an operating system from the principles of the universal Turing machine. Operating system_sentence_47

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 (generating machine code from human-readable symbolic code). Operating system_sentence_48

This was the genesis of the modern-day operating system. Operating system_sentence_49

However, machines still ran a single job at a time. Operating system_sentence_50

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. Operating system_sentence_51

An improvement was the Atlas Supervisor. Operating system_sentence_52

Introduced with the Manchester Atlas in 1962, it is considered by many to be the first recognisable modern operating system. Operating system_sentence_53

Brinch Hansen described it as "the most significant breakthrough in the history of operating systems." Operating system_sentence_54

Mainframes Operating system_section_9

Main article: History of IBM mainframe operating systems Operating system_sentence_55

Through the 1950s, many major features were pioneered in the field of operating systems on mainframe computers, including batch processing, input/output interrupting, buffering, multitasking, spooling, runtime libraries, link-loading, and programs for sorting records in files. Operating system_sentence_56

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. Operating system_sentence_57

In 1959, the SHARE Operating System was released as an integrated utility for the IBM 704, and later in the 709 and 7090 mainframes, although it was quickly supplanted by IBSYS/IBJOB on the 709, 7090 and 7094. Operating system_sentence_58

During the 1960s, IBM's OS/360 introduced the concept of a single OS spanning an entire product line, which was crucial for the success of the System/360 machines. Operating system_sentence_59

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. Operating system_sentence_60

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 during updates. Operating system_sentence_61

When a process is terminated for any reason, all of these resources are re-claimed by the operating system. Operating system_sentence_62

The alternative CP-67 system for the S/360-67 started a whole line of IBM operating systems focused on the concept of virtual machines. Operating system_sentence_63

Other operating systems used on IBM S/360 series mainframes included systems developed by IBM: COS/360 (Compatibility Operating System), DOS/360 (Disk Operating System), TSS/360 (Time Sharing System), TOS/360 (Tape Operating System), BOS/360 (Basic Operating System), and ACP (Airline Control Program), as well as a few non-IBM systems: MTS (Michigan Terminal System), MUSIC (Multi-User System for Interactive Computing), and ORVYL (Stanford Timesharing System). Operating system_sentence_64

Control Data Corporation developed the SCOPE operating system in the 1960s, for batch processing. Operating system_sentence_65

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. Operating system_sentence_66

Like many commercial timesharing systems, its interface was an extension of the Dartmouth BASIC operating systems, one of the pioneering efforts in timesharing and programming languages. Operating system_sentence_67

In the late 1970s, Control Data and the University of Illinois developed the PLATO operating system, which used plasma panel displays and long-distance time sharing networks. Operating system_sentence_68

Plato was remarkably innovative for its time, featuring real-time chat, and multi-user graphical games. Operating system_sentence_69

In 1961, Burroughs Corporation introduced the B5000 with the MCP (Master Control Program) operating system. Operating system_sentence_70

The B5000 was a stack machine designed to exclusively support high-level languages with no machine language or assembler; indeed, the MCP was the first OS to be written exclusively in a high-level language (ESPOL, a dialect of ALGOL). Operating system_sentence_71

MCP also introduced many other ground-breaking innovations, such as being the first commercial implementation of virtual memory. Operating system_sentence_72

During development of the AS/400, IBM made an approach to Burroughs to license MCP to run on the AS/400 hardware. Operating system_sentence_73

This proposal was declined by Burroughs management to protect its existing hardware production. Operating system_sentence_74

MCP is still in use today in the Unisys company's ClearPath/MCP line of computers. Operating system_sentence_75

UNIVAC, the first commercial computer manufacturer, produced a series of EXEC operating systems. Operating system_sentence_76

Like all early main-frame systems, this batch-oriented system managed magnetic drums, disks, card readers and line printers. Operating system_sentence_77

In the 1970s, UNIVAC produced the Real-Time Basic (RTB) system to support large-scale time sharing, also patterned after the Dartmouth BC system. Operating system_sentence_78

General Electric and MIT developed General Electric Comprehensive Operating Supervisor (GECOS), which introduced the concept of ringed security privilege levels. Operating system_sentence_79

After acquisition by Honeywell it was renamed General Comprehensive Operating System (GCOS). Operating system_sentence_80

Digital Equipment Corporation developed many operating systems for its various computer lines, including TOPS-10 and TOPS-20 time sharing systems for the 36-bit PDP-10 class systems. Operating system_sentence_81

Before the widespread use of UNIX, TOPS-10 was a particularly popular system in universities, and in the early ARPANET community. Operating system_sentence_82

RT-11 was a single-user real-time OS for the PDP-11 class minicomputer, and RSX-11 was the corresponding multi-user OS. Operating system_sentence_83

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. Operating system_sentence_84

Early systems had utilized microprogramming to implement features on their systems in order to permit different underlying computer architectures to appear to be the same as others in a series. Operating system_sentence_85

In fact, most 360s after the 360/40 (except the 360/165 and 360/168) were microprogrammed implementations. Operating system_sentence_86

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. Operating system_sentence_87

Notable supported mainframe operating systems include: Operating system_sentence_88

Operating system_unordered_list_0

Microcomputers Operating system_section_10

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 ROM and known as monitors. Operating system_sentence_89

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). Operating system_sentence_90

In the 1980s, Apple Computer Inc. (now Apple Inc.) abandoned its popular Apple II series of microcomputers to introduce the Apple Macintosh computer with an innovative graphical user interface (GUI) to the Mac OS. Operating system_sentence_91

The introduction of the Intel 80386 CPU chip in October 1985, with 32-bit architecture and paging capabilities, provided personal computers with the ability to run multitasking operating systems like those of earlier minicomputers and mainframes. Operating system_sentence_92

Microsoft responded to this progress by hiring Dave Cutler, who had developed the VMS operating system for Digital Equipment Corporation. Operating system_sentence_93

He would lead the development of the Windows NT operating system, which continues to serve as the basis for Microsoft's operating systems line. Operating system_sentence_94

Steve Jobs, a co-founder of Apple Inc., started NeXT Computer Inc., which developed the NEXTSTEP operating system. Operating system_sentence_95

NEXTSTEP would later be acquired by Apple Inc. and used, along with code from FreeBSD as the core of Mac OS X (macOS after latest name change). Operating system_sentence_96

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. Operating system_sentence_97

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. Operating system_sentence_98

In 1991, Finnish computer science student Linus Torvalds, with cooperation from volunteers collaborating over the Internet, released the first version of the Linux kernel. Operating system_sentence_99

It was soon merged with the GNU user space components and system software to form a complete operating system. Operating system_sentence_100

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. Operating system_sentence_101

The Berkeley Software Distribution, known as BSD, is the UNIX derivative distributed by the University of California, Berkeley, starting in the 1970s. Operating system_sentence_102

Freely distributed and ported to many minicomputers, it eventually also gained a following for use on PCs, mainly as FreeBSD, NetBSD and OpenBSD. Operating system_sentence_103

Examples Operating system_section_11

Unix and Unix-like operating systems Operating system_section_12

Main article: Unix Operating system_sentence_104

Unix was originally written in assembly language. Operating system_sentence_105

Ken Thompson wrote B, mainly based on BCPL, based on his experience in the MULTICS project. Operating system_sentence_106

B was replaced by 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). Operating system_sentence_107

The Unix-like family is a diverse group of operating systems, with several major sub-categories including System V, BSD, and Linux. Operating system_sentence_108

The name "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. Operating system_sentence_109

"UNIX-like" is commonly used to refer to the large set of operating systems which resemble the original UNIX. Operating system_sentence_110

Unix-like systems run on a wide variety of computer architectures. Operating system_sentence_111

They are used heavily for servers in business, as well as workstations in academic and engineering environments. Operating system_sentence_112

Free UNIX variants, such as Linux and BSD, are popular in these areas. Operating system_sentence_113

Four operating systems are certified by The Open Group (holder of the Unix trademark) as Unix. Operating system_sentence_114

HP's HP-UX and IBM's AIX are both descendants of the original System V Unix and are designed to run only on their respective vendor's hardware. Operating system_sentence_115

In contrast, Sun Microsystems's Solaris can run on multiple types of hardware, including x86 and Sparc servers, and PCs. Operating system_sentence_116

Apple's macOS, a replacement for Apple's earlier (non-Unix) Mac OS, is a hybrid kernel-based BSD variant derived from NeXTSTEP, Mach, and FreeBSD. Operating system_sentence_117

Unix interoperability was sought by establishing the POSIX standard. Operating system_sentence_118

The POSIX standard can be applied to any operating system, although it was originally created for various Unix variants. Operating system_sentence_119

BSD and its descendants Operating system_section_13

Main article: Berkeley Software Distribution Operating system_sentence_120

A subgroup of the Unix family is the Berkeley Software Distribution family, which includes FreeBSD, NetBSD, and OpenBSD. Operating system_sentence_121

These operating systems are most commonly found on webservers, although they can also function as a personal computer OS. Operating system_sentence_122

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. Operating system_sentence_123

The World Wide Web was also first demonstrated on a number of computers running an OS based on BSD called NeXTSTEP. Operating system_sentence_124

In 1974, University of California, Berkeley installed its first Unix system. Operating system_sentence_125

Over time, students and staff in the computer science department there began adding new programs to make things easier, such as text editors. Operating system_sentence_126

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. Operating system_sentence_127

The Defense Advanced Research Projects Agency of the US Department of Defense took interest, and decided to fund the project. Operating system_sentence_128

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. Operating system_sentence_129

Steve Jobs, upon leaving Apple Inc. in 1985, formed NeXT Inc., a company that manufactured high-end computers running on a variation of BSD called NeXTSTEP. Operating system_sentence_130

One of these computers was used by Tim Berners-Lee as the first webserver to create the World Wide Web. Operating system_sentence_131

Developers like Keith Bostic encouraged the project to replace any non-free code that originated with Bell Labs. Operating system_sentence_132

Once this was done, however, AT&T sued. Operating system_sentence_133

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). Operating system_sentence_134

macOS Operating system_section_14

Main article: macOS Operating system_sentence_135

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., the latest of which is pre-loaded on all currently shipping Macintosh computers. Operating system_sentence_136

macOS is the successor to the original classic Mac OS, which had been Apple's primary operating system since 1984. Operating system_sentence_137

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. Operating system_sentence_138

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 "Cheetah"). Operating system_sentence_139

Since then, six more distinct "client" and "server" editions of macOS have been released, until the two were merged in OS X 10.7 "Lion". Operating system_sentence_140

Prior to its merging with macOS, the server edition – macOS Server – was architecturally identical to its desktop counterpart and usually ran on Apple's line of Macintosh server hardware. Operating system_sentence_141

macOS Server included work group management and administration software tools that provide simplified access to key network services, including a mail transfer agent, a Samba server, an LDAP server, a domain name server, and others. Operating system_sentence_142

With 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). Operating system_sentence_143

The server tools are now offered as an application. Operating system_sentence_144

Linux Operating system_section_15

Main articles: Linux and Linux kernel Operating system_sentence_145

The Linux kernel originated in 1991, as a project of Linus Torvalds, while a university student in Finland. Operating system_sentence_146

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. Operating system_sentence_147

Linux is Unix-like, but was developed without any Unix code, unlike BSD and its variants. Operating system_sentence_148

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. Operating system_sentence_149

Although estimates suggest that Linux is 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. Operating system_sentence_150

Linux has superseded Unix on many platforms and is used on most supercomputers including the top 385. Operating system_sentence_151

Many of the same computers are also on Green500 (but in different order), and Linux runs on the top 10. Operating system_sentence_152

Linux is also commonly used on other small energy-efficient computers, such as smartphones and smartwatches. Operating system_sentence_153

The Linux kernel is used in some popular distributions, such as Red Hat, Debian, Ubuntu, Linux Mint and Google's Android, Chrome OS, and Chromium OS. Operating system_sentence_154

Microsoft Windows Operating system_section_16

Main article: Microsoft Windows Operating system_sentence_155

Microsoft Windows is a family of proprietary operating systems designed by Microsoft Corporation and primarily targeted to Intel architecture based computers, with an estimated 88.9 percent total usage share on Web connected computers. Operating system_sentence_156

The latest version is Windows 10. Operating system_sentence_157

In 2011, Windows 7 overtook Windows XP as most common version in use. Operating system_sentence_158

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. Operating system_sentence_159

In 1995, Windows 95 was released which only used MS-DOS as a bootstrap. Operating system_sentence_160

For backwards compatibility, Win9x could run real-mode MS-DOS and 16-bit Windows 3.x drivers. Operating system_sentence_161

Windows ME, released in 2000, was the last version in the Win9x family. Operating system_sentence_162

Later versions have all been based on the Windows NT kernel. Operating system_sentence_163

Current client versions of Windows run on IA-32, x86-64 and 32-bit ARM microprocessors. Operating system_sentence_164

In addition Itanium is still supported in older server version Windows Server 2008 R2. Operating system_sentence_165

In the past, Windows NT supported additional architectures. Operating system_sentence_166

Server editions of Windows are widely used. Operating system_sentence_167

In recent years, Microsoft has expended significant capital in an effort to promote the use of Windows as a server operating system. Operating system_sentence_168

However, Windows' usage on servers is not as widespread as on personal computers as Windows competes against Linux and BSD for server market share. Operating system_sentence_169

ReactOS is a Windows-alternative operating system, which is being developed on the principles of Windows – without using any of Microsoft's code. Operating system_sentence_170

Other Operating system_section_17

There have been many operating systems that were significant in their day but are no longer so, such as AmigaOS; OS/2 from IBM and Microsoft; classic Mac OS, the non-Unix precursor to Apple's macOS; BeOS; XTS-300; RISC OS; MorphOS; Haiku; BareMetal and FreeMint. Operating system_sentence_171

Some are still used in niche markets and continue to be developed as minority platforms for enthusiast communities and specialist applications. Operating system_sentence_172

OpenVMS, formerly from DEC, is still under active development by VMS Software Inc. Operating system_sentence_173

Yet other operating systems are used almost exclusively in academia, for operating systems education or to do research on operating system concepts. Operating system_sentence_174

A typical example of a system that fulfills both roles is MINIX, while for example Singularity is used purely for research. Operating system_sentence_175

Another example is the 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. Operating system_sentence_176

It was used mainly for research, teaching, and daily work in Wirth's group. Operating system_sentence_177

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. Operating system_sentence_178

Components Operating system_section_18

The components of an operating system all exist in order to make the different parts of a computer work together. Operating system_sentence_179

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. Operating system_sentence_180

Kernel Operating system_section_19

Main article: Kernel (computing) Operating system_sentence_181

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. Operating system_sentence_182

It manages memory access for programs in the 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 on such media as disks, tapes, flash memory, etc. Operating system_sentence_183

Program execution Operating system_section_20

Main article: Process (computing) Operating system_sentence_184

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. Operating system_sentence_185

The operating system is also a set of services which simplify development and execution of application programs. Operating system_sentence_186

Executing an application program involves the creation of a process by the 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. Operating system_sentence_187

Interrupts Operating system_section_21

Main article: Interrupt Operating system_sentence_188

Interrupts are central to operating systems, as they provide an efficient way for the operating system to interact with and react to its environment. Operating system_sentence_189

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 stacks (50 or 60 bytes) but is unusual in modern systems with large stacks. Operating system_sentence_190

Interrupt-based programming is directly supported by most modern CPUs. Operating system_sentence_191

Interrupts provide a computer with a way of automatically saving local register contexts, and running specific code in response to events. Operating system_sentence_192

Even very basic computers support hardware interrupts, and allow the programmer to specify code which may be run when that event takes place. Operating system_sentence_193

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. Operating system_sentence_194

In modern operating systems, interrupts are handled by the operating system's kernel. Operating system_sentence_195

Interrupts may come from either the computer's hardware or the running program. Operating system_sentence_196

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. Operating system_sentence_197

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). Operating system_sentence_198

The processing of hardware interrupts is a task that is usually delegated to software called a device driver, which may be part of the operating system's kernel, part of another program, or both. Operating system_sentence_199

Device drivers may then relay information to a running program by various means. Operating system_sentence_200

A program may also trigger an interrupt to the operating system. Operating system_sentence_201

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. Operating system_sentence_202

The kernel then processes the request. Operating system_sentence_203

If a program wishes additional resources (or wishes to shed resources) such as memory, it triggers an interrupt to get the kernel's attention. Operating system_sentence_204

Modes Operating system_section_22

Main articles: User mode and Supervisor mode Operating system_sentence_205

Modern microprocessors (CPU or MPU) support multiple modes of operation. Operating system_sentence_206

CPUs with this capability offer at least two modes: user mode and supervisor mode. Operating system_sentence_207

In general terms, supervisor mode operation allows unrestricted access to all machine resources, including all MPU instructions. Operating system_sentence_208

User mode operation sets limits on instruction use and typically disallows direct access to machine resources. Operating system_sentence_209

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 one. Operating system_sentence_210

At power-on or reset, the system begins in supervisor mode. Operating system_sentence_211

Once an operating system kernel has been loaded and started, the boundary between user mode and supervisor mode (also known as kernel mode) can be established. Operating system_sentence_212

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. Operating system_sentence_213

User mode, in contrast, is used for almost everything else. Operating system_sentence_214

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. Operating system_sentence_215

Typically, the transfer of control to the kernel is achieved by executing a software interrupt instruction, such as the Motorola 68000 TRAP instruction. Operating system_sentence_216

The software interrupt causes the microprocessor to switch from user mode to supervisor mode and begin executing code that allows the kernel to take control. Operating system_sentence_217

In user mode, programs usually have access to a restricted set of microprocessor instructions, and generally cannot execute any instructions that could potentially cause disruption to the system's operation. Operating system_sentence_218

In supervisor mode, instruction execution restrictions are typically removed, allowing the kernel unrestricted access to all machine resources. Operating system_sentence_219

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. Operating system_sentence_220

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). Operating system_sentence_221

Memory management Operating system_section_23

Main article: Memory management Operating system_sentence_222

Among other things, a multiprogramming operating system kernel must be responsible for managing all system memory which is currently in use by programs. Operating system_sentence_223

This ensures that a program does not interfere with memory already in use by another program. Operating system_sentence_224

Since programs time share, each program must have independent access to memory. Operating system_sentence_225

Cooperative memory management, used by many early operating systems, assumes that all programs make voluntary use of the kernel's memory manager, and do not exceed their allocated memory. Operating system_sentence_226

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. Operating system_sentence_227

If a program fails, it may cause memory used by one or more other programs to be affected or overwritten. Operating system_sentence_228

Malicious programs or viruses may purposefully alter another program's memory, or may affect the operation of the operating system itself. Operating system_sentence_229

With cooperative memory management, it takes only one misbehaved program to crash the system. Operating system_sentence_230

Memory protection enables the kernel to limit a process' access to the computer's memory. Operating system_sentence_231

Various methods of memory protection exist, including memory segmentation and paging. Operating system_sentence_232

All methods require some level of hardware support (such as the 80286 MMU), which doesn't exist in all computers. Operating system_sentence_233

In both segmentation and paging, certain protected mode registers specify to the CPU what memory address it should allow a running program to access. Operating system_sentence_234

Attempts to access other addresses trigger an interrupt which cause the CPU to re-enter supervisor mode, placing the kernel in charge. Operating system_sentence_235

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 generally resorts to terminating the offending program, and reports the error. Operating system_sentence_236

Windows versions 3.1 through ME had some level of memory protection, but programs could easily circumvent the need to use it. Operating system_sentence_237

A general protection fault would be produced, indicating a segmentation violation had occurred; however, the system would often crash anyway. Operating system_sentence_238

Virtual memory Operating system_section_24

Main article: Virtual memory Operating system_sentence_239

Further information: Page fault Operating system_sentence_240

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. Operating system_sentence_241

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. Operating system_sentence_242

(See section on memory management.) Operating system_sentence_243

Under UNIX this kind of interrupt is referred to as a page fault. Operating system_sentence_244

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. Operating system_sentence_245

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. Operating system_sentence_246

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. Operating system_sentence_247

This is called 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. Operating system_sentence_248

"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. Operating system_sentence_249

Multitasking Operating system_section_25

Disk access and file systems Operating system_section_26

Main article: Operating system_sentence_250

Device drivers Operating system_section_27

Main article: Device driver Operating system_sentence_251

Graphical user interfaces Operating system_section_28

Most of the modern computer systems support graphical user interfaces (GUI), and often include them. Operating system_sentence_252

In some computer systems, such as the original implementation of the classic Mac OS, the GUI is integrated into the kernel. Operating system_sentence_253

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. Operating system_sentence_254

Other operating systems are modular, separating the graphics subsystem from the kernel and the Operating System. Operating system_sentence_255

In the 1980s UNIX, VMS and many others had operating systems that were built this way. Operating system_sentence_256

Linux and macOS are also built this way. Operating system_sentence_257

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. Operating system_sentence_258

Windows 9x had very little distinction between the interface and the kernel. Operating system_sentence_259

Many computer operating systems allow the user to install or create any user interface they desire. Operating system_sentence_260

The X Window System in conjunction with GNOME or KDE Plasma 5 is a commonly found setup on most Unix and Unix-like (BSD, Linux, Solaris) systems. Operating system_sentence_261

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. Operating system_sentence_262

Numerous Unix-based GUIs have existed over time, most derived from X11. Operating system_sentence_263

Competition among the various vendors of Unix (HP, IBM, Sun) led to much fragmentation, though an effort to standardize in the 1990s to COSE and CDE failed for various reasons, and were eventually eclipsed by the widespread adoption of GNOME and K Desktop Environment. Operating system_sentence_264

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). Operating system_sentence_265

Graphical user interfaces evolve over time. Operating system_sentence_266

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. Operating system_sentence_267

Real-time operating systems Operating system_section_29

Main article: Real-time operating system Operating system_sentence_268

A real-time operating system (RTOS) is an operating system intended for applications with fixed deadlines (real-time computing). Operating system_sentence_269

Such applications include some small embedded systems, automobile engine controllers, industrial robots, spacecraft, industrial control, and some large-scale computing systems. Operating system_sentence_270

An early example of a large-scale real-time operating system was Transaction Processing Facility developed by American Airlines and IBM for the Sabre Airline Reservations System. Operating system_sentence_271

Embedded systems that have fixed deadlines use a real-time operating system such as VxWorks, PikeOS, eCos, QNX, MontaVista Linux and RTLinux. Operating system_sentence_272

Windows CE is a real-time operating system that shares similar APIs to desktop Windows but shares none of desktop Windows' codebase. Operating system_sentence_273

Symbian OS also has an RTOS kernel (EKA2) starting with version 8.0b. Operating system_sentence_274

Some embedded systems use operating systems such as Palm OS, BSD, and Linux, although such operating systems do not support real-time computing. Operating system_sentence_275

Operating system development as a hobby Operating system_section_30

Main article: Hobbyist operating system development Operating system_sentence_276

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. Operating system_sentence_277

In some cases, hobby development is in support of a "homebrew" computing device, for example, a simple single-board computer powered by a 6502 microprocessor. Operating system_sentence_278

Or, development may be for an architecture already in widespread use. Operating system_sentence_279

Operating system development may come from entirely new concepts, or may commence by modeling an existing operating system. Operating system_sentence_280

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. Operating system_sentence_281

Examples of a hobby operating system include Syllable and TempleOS. Operating system_sentence_282

Diversity of operating systems and portability Operating system_section_31

Application software is generally written for use on a specific operating system, and sometimes even for specific hardware. Operating system_sentence_283

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 maintained. Operating system_sentence_284

Unix was the first operating system not written in assembly language, making it very portable to systems different from its native PDP-11. Operating system_sentence_285

This cost in supporting operating systems diversity can be avoided by instead writing applications against software platforms such as Java or Qt. Operating system_sentence_286

These abstractions have already borne the cost of adaptation to specific operating systems and their system libraries. Operating system_sentence_287

Another approach is for operating system vendors to adopt standards. Operating system_sentence_288

For example, POSIX and OS abstraction layers provide commonalities that reduce porting costs. Operating system_sentence_289

Market share Operating system_section_32

Further information: Usage share of operating systems Operating system_sentence_290

See also Operating system_section_33

Credits to the contents of this page go to the authors of the corresponding Wikipedia page: en.wikipedia.org/wiki/Operating system.