Operating system

From Wikipedia

HomePage | Recent changes | View source | Discuss this page | Page history | Log in |

Printable version | Disclaimers | Privacy policy

An operating system (OS) is the system software responsible for the direct control and management of the hardware that makes up a computer and basic system operations such as memory management, process management and file management. Operating systems which distinguish more than one user also track such things as file ownership (I can't read (or erase or alter) your files unless you allow me to) and access to the machine (without properly identifying myself, the operating system will not let me run programs, including itself). These restrictions on users' privileges necessarily require creation of a kind of superuser who can tell the system about newly authorized users, revoke privileges for formerly authorized users, permit those who have forgotten their passwords access, install software, delete software, ...

Early computers lacked any form of operating system. The user had sole use of the machine; they would arrive at the machine armed with their program and data, often on punched paper tape. The program would be loaded into the machine, and the machine set to work, until the program stopped, or maybe more likely, crashed. Programs could generally be debugged via a front panel using switches and lights; it is said that Alan Turing was a master of this on the early Machester Mark I machine.

Later, machines came with libraries of support code which were linked to the user's program to assist in operations such as input and output. It is these that is 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 clothes pegs. The colour of the pegs indicated the priority of the job.

The term operating system is often used colloquially to mean all the software that "comes with" a computer system before any applications are installed. A more precise description is that an OS consists of the minimal set of software to make a computer system function: a kernel, which is a carefully coded set of routines that directly manage the allocation and sharing of memory, and access to the CPU(s); device drivers, which mediate access to and control of disks, network interfaces, communication ports, and other hardware; and a collection of utility programs that provide some user control over how the other components of the operating system work.

The conceptual bridge between the precise description of an operating system and the colloquial definition is the tendency to bundle widely, or generally, used utilities and applications (such as text editors or file managers) with the basic OS for the sake of convenience; as OSes progressed, a larger selection of 'second class' OS software came to be included, such that now, an OS without a graphical user interface or various file viewers is often considered not to be a true or complete OS.

The broader categories of systems and application software are discussed in the computer software article.

Early operating systems were very diverse, with each vendor producing one or more operating systems specific to their particular hardware. Every operating system, even from the same vendor, could have radically different models of commands, operating procedures, and such facilities as debugging aids. Typically, each time the manufacture brought out a new machine, there would be a new operating system. This state of affairs continued until the 1960s when IBM developed the S/360 series of machines; although there were enormous performance differences across the range, all the machines ran essentially the same operating system, OS/360. (A brief but illuminating and very wise account of the development of OS/360 is in F Brooks, The Mythical Man Month).

The UNIX operating system was developed at AT&T. Because it was essentially free in early editions, easily obtainable, and easily modified, it exemplified the idea of a operating system that was conceptually the same across various hardware platforms.

The development of microprocessors made inexpensive computing available for the small business and hobbyist, which in turn led to the widespread use of interchangeable hardware components using a common interconnection (such as the S-100, SS-50, Apple ][, ISA, and PCI busses), and an increasing need for 'standard' operating systems to control them. The most important of the early OSes on these machines was CP/M-80 for the 8080 / 8085 / Z-80 CPUs. It was based on several Digital Research Corporation operating systems, mostly for the PDP-11 architecture. MS-DOS (or PC-DOS when supplied by IBM) was based originally on CP/M-80. Each of these machines had a small boot program in ROM which loaded the OS itself from disk. The BIOS on the IBM-PC class machines was an extension of this idea and has accreted more features and functions in the 20 years since the first IBM-PC was introduced in 1981.

The decreasing cost of display equipment and processors made it practical to provide graphical use interfaces for many operating systems, such as the generic X Window System that is provided with many unix operating systems, or other graphical systems such as Microsoft Windows, the Radio Shack Color Computer's OS-9 Level II, Apple's Macintosh, or even IBM's OS/2. The original GUI was developed at Xerox Palo Alto Research Center in the early '70s (the Alto computer system) and emulated by many vendors.

Operating systems provide a set of functions needed and used by most applications, and provide the necessary linkages to control the computer's hardware. Without an operating system, each program would have to have drivers for your video card, sound card, hard drive, etc...

...blah ...blah...

someone help me here on the history; this is just vague rambling; what about mini and mainframe history, development of Mach kernel, etc., and the other gaps I'm leaving?


Classifications and Terminology

monolithic -- microkernel -- kernel

real-time -- time-share -- multitasking -- embedded -- single-user -- multi-user

asymetric and symmetric multiprocessing (SMP) -- clustering -- distributed

disk operating system (DOS)


Examples

from original article, and from the computer software article

Early Proprietary: -- TRS-DOS, [[ROM'd OS's (largely Microsoft BASIC implementations with file system extensions in CoCo, TI99-4, Commodore PET, 64, and VIC-20, the very first IBM-PC, Apple ][, Sinclair Micro and QX, etc]]

Generic/Commodity, non-UNIX: -- Control Program/Monitor-80, MP/M-80, UCSD P-system, Mini-FLEX, FLEX and FLEX9, SSB-DOS, CP/M-86, -- DR-DOS, FreeDOS, MS-DOS, PC-DOS -- Mach -- Multics -- OS9

UNIX-like: -- UNIX, Microsoft Xenix, Cromix, UNIflex, OS-9, IBM's AIX -- BSD, FreeBSD, NetBSD, OpenBSD -- DEC's Digital UNIX -- HP's HP-UX -- GNU/Hurd -- SGI's IRIX -- Linux -- MacOS X -- OSF/1 -- SCO's SCO UNIX --Sun's Solaris -- System V -- Ultrix -- UniCOS -- LindowsOS

Amiga: -- AmigaOS

Apple: -- Apple DOS, MacOS

Be: -- BeOS -- BeIA

Digital (DEC)/Compaq: -- AIS -- OS-8 -- RSTS/E -- RSX -- RT-11 -- TOPS-10, TOPS-20 -- VMS (later renamed OpenVMS)

IBM: -- OS/2 -- AIX -- OS/400 -- OS/390 -- VM/CMS -- DOS/VSE -- OS/360 -- MFT -- MVT -- SVS -- MVS -- TPF -- ALCS

Microsoft: -- Microsoft Windows (3.x, 9x, 2000, CE, NT, XP)

Novell: -- NetWare

NeXT: -- NeXTStep (?)

Plan 9, Inferno