Operating system
An operating system (OS) is a set of programs that manages computer
hardware resources, and provides common services for
application software. The operating system is the most important
type of system software in a computer system. Without an operating system,
a user cannot run an application program on their computer,
unless the application
program is self booting.
For hardware functions such as input and output and memory allocation,
the operating system
acts as an intermediary between application programs and the computer hardware,
although the application code is usually executed directly by the hardware and will
frequently
call the OS or be interrupted by it. Operating systems are found on almost any device that
contains a computer—from cellular phones and video game consoles to
supercomputers and web servers.
Examples of popular modern operating systems include Linux, Android,
iOS, Mac OS X, and
Microsoft Windows.
Contents |
[edit]Types
- Real-time
- A real-time operating system is a multitasking operating system that aims at executing
- real-time applications. Real-time operating systems often use specialized scheduling
- algorithms so that they can achieve a deterministic nature of behavior. The main
- objective of real-time operating systems is their quick and predictable response to events.
- They have an event-driven or time-sharing design and often aspects of both.
- An event-driven system switches between tasks based on their priorities or external
- events while time-sharing operating systems switch tasks based on clock interrupts.
- Multi-user vs. Single-user
- A multi-user operating system allows multiple users to access a computer system
- concurrently. Time-sharing system can be classified as multi-user systems as they
- enable a multiple user access to a computer through the sharing of time. Single-user
- operating systems, as opposed to a multi-user operating system, are usable by a single
- user at a time. Being able to have multiple accounts on a Windows operating system
- does not make it a multi-user system. Rather, only the network administrator
- is the real user. But for a Unix-like operating system, it is possible for two users
- to login at a time and this capability of the OS makes it a multi-user operating system.
- Multi-tasking vs. Single-tasking
- When only a single program is allowed to run at a time, the system is grouped under a
- single-tasking system. However, when the operating system allows the execution of
- multiple tasks at one time, it is classified as a multi-tasking operating system.
- Multi-tasking can be of two types: pre-emptive or co-operative. In pre-emptive
- multitasking, the operating system slices the CPU time and dedicates one slot to
- each of the programs. Unix-like operating systems such as Solaris and
- Linux support pre-emptive multitasking. Cooperative multitasking is achieved
- by relying on each process to give time to the other processes in a defined manner.
- MS Windows prior to Windows 2000 used to support cooperative multitasking.
- Distributed
- A distributed operating system manages a group of independent computers and makes
- them appear to be a single computer. The development of networked computers that
- could be linked and communicate with each other, gave rise to distributed computing.
- Distributed computations are carried out on more than one machine. When computers
- in a group work in cooperation, they make a distributed system.
- Embedded
- Embedded operating systems are designed to be used in embedded computer systems.
- They are designed to operate on small machines like PDAs with less autonomy.
- They are able to operate with a limited number of resources. They are very compact
- and extremely efficient by design. Windows CE and Minix 3 are some examples of
- embedded operating systems.
[edit]Summary
Early computers were built to perform a series of single tasks, like a calculator. Operating
systems did not exist in their modern and more complex forms until the early 1960s.
Some operating system features were developed in the 1950s, such as monitor programs
that could automatically run different application programs in succession to speed up
processing.
Hardware features were added that enabled use of tasksruntime libraries, interrupts, and
parallel processing. When personal computers by companies such as Apple Inc., Atari,
IBM andAmiga became popular in the 1980s, vendors added operating system features that
had previously become widely used on mainframe and mini computers. Later, many
features such asgraphical user interface were developed specifically for personal
computer operating systems.
An operating system consists of many parts. One of the most important components
is the kernel, which controls low-level processes that the average user usually
cannot see: it controls how memory is read and written, the order in which
processes are executed, how information is
received and sent by devices like the monitor, keyboard and mouse, and decides how to
interpret information received from networks. The user interface is a
component that interacts
with the computer user directly, allowing them to control and use programs.
The user interface
may be graphical with icons and a desktop, or textual, with a command line.
Application programming interfaces provide services and code libraries that let
applications developers write modular code reusing well defined programming
sequences in user space libraries
or in the operating system itself. Which features are considered part of the operating
system is defined differently in various operating systems. For example, Microsoft
Windows considers its user interface to be part of the operating system, while many
versions of Linux do not.
History
Main article: History of operating systems
In the 1940s, the earliest electronic digital systems had no operating systems. Electronic systems
of this time were so primitive compared to those of today that instructions were often entered into
the system one bit at a time on rows of mechanical switches or by jumper wires on plug boards.
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 speed 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 of time and would arrive at a scheduled time with
program and data on punched paper cards and/or punched tape. The program would be
loaded into the machine, and the machine would be set to work until the program completed
or crashed. Programs could generally be debugged via a front panel using toggle switches and
panel lights. 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
Later machines came with libraries of software, which would be linked to a user's program to
assist in operations such as input and output and generating computer 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 from which tapes were
hung with different colored clothes-pegs to indicate job-priority.
[edit]Mainframes
See also: History of IBM mainframe operating systems
Through the 1950s, many major features were pioneered in the field of operating systems,
including batch processing, input/output interrupt,buffering, multitasking, spooling,
runtime libraries, link-loading, and programs for sorting 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 was released as an integrated utility for the IBM 704,
and later in the 709 and 7090 mainframes.
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. IBM's current
mainframe operating systems are distant descendants of this original system and applications
written for OS/360 can still be run on modern machines. In the mid-'70s, MVS, a
descendant of OS/360, offered the first[citation needed] implementation of using RAM as
a transparent cache for data.
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 during update. When the process is
terminated for any reason, all of these resources are re-claimed by the operating system.
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. Other operating systems used on IBM S/360
series mainframes included systems developed by IBM: COS/360 (Compatabililty
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).
Control Data Corporation developed the SCOPE operating system in the 1960s, for batch
processing. In cooperation with the University of Minnesota, the Kronos and later the
NOSoperating 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 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 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. Burroughs Corporation
introduced the B5000 in 1961 with the MCP, (Master Control Program) operating
system. The B5000 was a stack machine designed to exclusively support high-level
languages with no machine language or assembler, and indeed the MCP was the first
OS to be written exclusively in a high-level language – ESPOL, a dialect of ALGOL.
MCP also introduced many other ground-breaking innovations, such as being the first
commercial implementation of virtual memory. During development of the AS400, IBM
made an approach to Burroughs to licence MCP to run on the AS400 hardware.
This proposal was declined by Burroughs management to protect its existing hardware
production. MCP is still in use today in the Unisys ClearPath/MCP line of computers.
UNIVAC, the first commercial computer manufacturer, produced a series of EXEC
operating systems. Like all early main-frame systems, this was a batch-oriented system
that 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 and MIT developed General Electric Comprehensive Operating
Supervisor (GECOS), which introduced the concept of ringed security privilege levels.
After acquisition by Honeywell it was renamed to General Comprehensive Operating System
(GCOS).
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. Prior to the widespread use of UNIX, TOPS-10 was a particularly popular system
in universities, and in the early ARPANET community.
In 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 to implement features on their systems in order to permit
different underlying architecture to appear to be the same as others in a series. In fact most
360s after the 360/40 (except the 360/165 and 360/168) were microprogrammed
implementations. But soon other means of achieving application compatibility
were proven to be more significant.
The enormous investment in software for these systems made since 1960s caused most of th
e original computer manufacturers to continue to develop compatible operating systems
along with the hardware. The notable supported mainframe operating systems include:
- Burroughs MCP – B5000, 1961 to Unisys Clearpath/MCP, present.
- IBM OS/360 – IBM System/360, 1966 to IBM z/OS, present.
- IBM CP-67 – IBM System/360, 1967 to IBM z/VM, present.
- UNIVAC EXEC 8 – UNIVAC 1108, 1967, to OS 2200 Unisys Clearpath Dorado,
- present.
[edit]Microcomputers
PC-DOS was an early personal computer OS that featured a command line interface.
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. One notable early disk-based
operating system was CP/M, which was supported on many early microcomputers and
was closely imitated by Microsoft's MS-DOS, which became wildly popular as the
operating system chosen for the IBM PC (IBM's version of it was called
IBM DOS or PC DOS). In the '80s, 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.
The introduction of the Intel 80386 CPU chip 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. Microsoft responded to this
progress by hiringDave Cutler, who had developed the VMS operating system for Digital
Equipment Corporation. He would lead the development of theWindows NT
operating system, which continues to serve as the basis for Microsoft's operating
systems line. Steve Jobs, a co-founder ofApple Inc., started NeXT Computer Inc.,
which developed the Unix-like NEXTSTEP operating system. NEXTSTEP
would later be acquired by Apple Inc. and used, along with code from FreeBSD as
the core of Mac OS X.
The GNU Project was started by activist and programmer Richard Stallman with the
goal of 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 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, 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.