This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these messages)
|
History of computing |
---|
Hardware |
Software |
Computer science |
Modern concepts |
By country |
Timeline of computing |
Glossary of computer science |
Computer operating systems (OSes) provide a set of functions needed and used by most application programs on a computer, and the links needed to control and synchronize computer hardware. On the first computers, with no operating system, every program needed the full hardware specification to run correctly and perform standard tasks, and its own drivers for peripheral devices like printers and punched paper card readers. The growing complexity of hardware and application programs eventually made operating systems a necessity for everyday use.
The earliest computers were mainframes that lacked any form of operating system. Each user had sole use of the machine for a scheduled period of time and would arrive at the computer with program and data, often on punched paper cards and magnetic or paper 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 control panel using dials, toggle switches and panel lights.
Symbolic languages, assemblers, [1] [2] [3] and compilers were developed for programmers to translate symbolic program code into machine code that previously would have been hand-encoded. Later machines came with libraries of support code on punched cards or magnetic tape, which would be linked to the user's program to assist in operations such as input and output. 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 string from which tapes attached to corresponding job tickets were hung with stationery pegs. [4]
As machines became more powerful the time to run programs diminished, and the time to hand off the equipment to the next user became large by comparison. Accounting for and paying for machine usage moved on from checking the wall clock to automatic logging by the computer. Run queues evolved from a literal queue of people at the door, to a heap of media on a jobs-waiting table, or batches of punched cards stacked one on top of the other in the reader, until the machine itself was able to select and sequence which magnetic tape drives processed which tapes. Where program developers had originally had access to run their own jobs on the machine, they were supplanted by dedicated machine operators who looked after the machine and were less and less concerned with implementing tasks manually. When commercially available computer centers were faced with the implications of data lost through tampering or operational errors, equipment vendors were put under pressure to enhance the runtime libraries to prevent misuse of system resources. Automated monitoring was needed not just for CPU usage but for counting pages printed, cards punched, cards read, disk storage used and for signaling when operator intervention was required by jobs such as changing magnetic tapes and paper forms. Security features were added to operating systems to record audit trails of which programs were accessing which files and to prevent access to a production payroll file by an engineering program, for example.
All these features were building up towards the repertoire of a fully capable operating system. Eventually the runtime libraries became an amalgamated program that was started before the first customer job and could read in the customer job, control its execution, record its usage, reassign hardware resources after the job ended, and immediately go on to process the next job. These resident background programs, capable of managing multi step processes, were often called monitors or monitor-programs before the term "operating system" established itself.
An underlying program offering basic hardware management, software scheduling and resource monitoring may seem a remote ancestor to the user-oriented OSes of the personal computing era. But there has been a shift in the meaning of OS. Just as early automobiles lacked speedometers, radios, and air conditioners which later became standard, more and more optional software features became standard in every OS package. This has led to the perception of an OS as a complete user system with an integrated graphical user interface, utilities, and some applications such as file managers, text editors, and configuration tools.
The true descendant of the early operating systems is what is now called the "kernel". In technical and development circles the old restricted sense of an OS persists because of the continued active development of embedded operating systems for all kinds of devices with a data-processing component, from hand-held gadgets up to industrial robots and real-time control systems, which do not run user applications at the front end. An embedded OS in a device today is not so far removed as one might think from its ancestor of the 1950s.
The broader categories of systems and application software are discussed in the computer software article.
The first operating system used for real work was GM-NAA I/O, produced in 1956 by General Motors' Research division [5] for its IBM 704. [6] [ specify ] Most other early operating systems for IBM mainframes were also produced by customers. [7]
Early operating systems were very diverse, with each vendor or customer producing one or more operating systems specific to their particular mainframe computer. 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 manufacturer brought out a new machine, there would be a new operating system, and most applications would have to be manually adjusted, recompiled, and retested.
The state of affairs continued until the 1960s when IBM, already a leading hardware vendor, stopped work on existing systems and put all its effort into developing the System/360 series of machines, all of which used the same instruction and input/output architecture. IBM intended to develop a single operating system for the new hardware, the OS/360. The problems encountered in the development of the OS/360 are legendary, and are described by Fred Brooks in The Mythical Man-Month —a book that has become a classic of software engineering. Because of performance differences across the hardware range and delays with software development, a whole family of operating systems was introduced instead of a single OS/360. [8] [9]
IBM wound up releasing a series of stop-gaps followed by two longer-lived operating systems:
IBM maintained full compatibility with the past, so that programs developed in the sixties can still run under z/VSE (if developed for DOS/360) or z/OS (if developed for MFT or MVT) with no change.
IBM also developed TSS/360, a time-sharing system for the System/360 Model 67. Overcompensating for their perceived importance of developing a timeshare system, they set hundreds of developers to work on the project. Early releases of TSS were slow and unreliable; by the time TSS had acceptable performance and reliability, IBM wanted its TSS users to migrate to OS/360 and OS/VS2; while IBM offered a TSS/370 PRPQ, they dropped it after 3 releases. [10]
Several operating systems for the IBM S/360 and S/370 architectures were developed by third parties, including the Michigan Terminal System (MTS) and MUSIC/SP.
Control Data Corporation developed the SCOPE operating systems [NB 1] in the 1960s, for batch processing and later developed the MACE operating system for time sharing, which was the basis for the later Kronos. 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 time sharing use. Like many commercial time sharing systems, its interface was an extension of the DTSS time sharing system, one of the pioneering efforts in timesharing and programming languages.
In the late 1970s, Control Data and the University of Illinois developed the PLATO system, which used plasma panel displays and long-distance time sharing networks. PLATO was remarkably innovative for its time; the shared memory model of PLATO's TUTOR programming language allowed applications such as real-time chat and multi-user graphical games.
For the UNIVAC 1107, UNIVAC, the first commercial computer manufacturer, produced the EXEC I operating system, and Computer Sciences Corporation developed the EXEC II operating system and delivered it to UNIVAC. EXEC II was ported to the UNIVAC 1108. Later, UNIVAC developed the EXEC 8 operating system for the 1108; it was the basis for operating systems for later members of the family. Like all early mainframe systems, EXEC I and EXEC II were a batch-oriented system that managed magnetic drums, disks, card readers and line printers; EXEC 8 supported both batch processing and on-line transaction processing. In the 1970s, UNIVAC produced the Real-Time Basic (RTB) system to support large-scale time sharing, also patterned after the Dartmouth BASIC system.
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 software, not even at the lowest level of the operating system, being written directly in machine language or assembly language; the MCP was the first[ citation needed ] OS to be written entirely in a high-level language - ESPOL, a dialect of ALGOL 60 - although ESPOL had specialized statements for each "syllable" [NB 2] in the B5000 instruction set. MCP also introduced many other ground-breaking innovations, such as being one of [NB 3] the first commercial implementations of virtual memory. The rewrite of MCP for the B6500 is now marketed as the Unisys ClearPath/MCP.
GE introduced the GE-600 series with the General Electric Comprehensive Operating Supervisor (GECOS) operating system in 1962. After Honeywell acquired GE's computer business, it was renamed to General Comprehensive Operating System (GCOS). Honeywell expanded the use of the GCOS name to cover all its operating systems in the 1970s, though many of its computers had nothing in common with the earlier GE 600 series and their operating systems were not derived from the original GECOS.
Project MAC at MIT, working with GE and Bell Labs, developed Multics, which introduced the concept of ringed security privilege levels.
Digital Equipment Corporation developed TOPS-10 for its PDP-10 line of 36-bit computers in 1967. Before the widespread use of Unix, TOPS-10 was a particularly popular system in universities, and in the early ARPANET community. Bolt, Beranek, and Newman developed TENEX for a modified PDP-10 that supported demand paging; this was another popular system in the research and ARPANET communities, and was later developed by DEC into TOPS-20.
Scientific Data Systems/Xerox Data Systems developed several operating systems for the Sigma series of computers, such as the Basic Control Monitor (BCM), Batch Processing Monitor (BPM), and Basic Time-Sharing Monitor (BTM). Later, BPM and BTM were succeeded by the Universal Time-Sharing System (UTS); it was designed to provide multi-programming services for online (interactive) user programs in addition to batch-mode production jobs, It was succeeded by the CP-V operating system, which combined UTS with the heavily batch-oriented Xerox Operating System.
Digital Equipment Corporation created several operating systems for its 16-bit PDP-11 machines, including the simple RT-11 system, the time-sharing RSTS operating systems, and the RSX-11 family of real-time operating systems, as well as the VMS system for the 32-bit VAX machines.
Several competitors of Digital Equipment Corporation such as Data General, Hewlett-Packard, and Computer Automation created their own operating systems. One such, "MAX III", was developed for Modular Computer Systems Modcomp II and Modcomp III computers. It was characterised by its target market being the industrial control market. The Fortran libraries included one that enabled access to measurement and control devices.
IBM's key innovation in operating systems in this class (which they call "mid-range"), was their "CPF" for the System/38. This had capability-based addressing, used a machine interface architecture to isolate the application software and most of the operating system from hardware dependencies (including even such details as address size and register size) and included an integrated RDBMS. The succeeding OS/400 (now known as IBM i) for the IBM AS/400 and later IBM Power Systems has no files, only objects of different types and these objects persist in very large, flat virtual memory, called a single-level store.
The Unix operating system was developed at AT&T Bell Laboratories in the late 1960s, originally for the PDP-7, and later for the PDP-11. Because it was essentially free in early editions, easily obtainable, and easily modified, it achieved wide acceptance. It also became a requirement within the Bell systems operating companies. Since it was written in the C language, when that language was ported to a new machine architecture, Unix was also able to be ported. This portability permitted it to become the choice for a second generation of minicomputers and the first generation of workstations, and its use became widespread. Unix exemplified the idea of an operating system that was conceptually the same across various hardware platforms. Because of its utility, it inspired many and later became one of the roots of the free software movement and open-source software. Numerous operating systems were based upon it including Minix, GNU/Linux, and the Berkeley Software Distribution. Apple's macOS is also based on Unix via NeXTSTEP [11] and FreeBSD. [12]
The Pick operating system was another operating system available on a wide variety of hardware brands. Commercially released in 1973 its core was a BASIC-like language called Data/BASIC and a SQL-style database manipulation language called ENGLISH. Licensed to a large variety of manufacturers and vendors, by the early 1980s observers saw the Pick operating system as a strong competitor to Unix. [13]
Beginning in the mid-1970s, a new class of small computers came onto the marketplace. Featuring 8-bit processors, typically the MOS Technology 6502, Intel 8080, Motorola 6800 or the Zilog Z80, along with rudimentary input and output interfaces and as much RAM as practical, these systems started out as kit-based hobbyist computers but soon evolved into an essential business tool.
While many eight-bit home computers of the 1980s, such as the BBC Micro, Commodore 64, Apple II, Atari 8-bit computers, Amstrad CPC, ZX Spectrum series and others could load a third-party disk-loading operating system, such as CP/M or GEOS, they were generally used without one. Their built-in operating systems were designed in an era when floppy disk drives were very expensive and not expected to be used by most users, so the standard storage device on most was a tape drive using standard compact cassettes. Most, if not all, of these computers shipped with a built-in BASIC interpreter on ROM, which also served as a crude command-line interface, allowing the user to load a separate disk operating system to perform file management commands and load and save to disk. The most popular[ citation needed ] home computer, the Commodore 64, was a notable exception, as its DOS was on ROM in the disk drive hardware, and the drive was addressed identically to printers, modems, and other external devices.
Furthermore, those systems shipped with minimal amounts of computer memory —4-8 kilobytes was standard on early home computers—as well as 8-bit processors without specialized support circuitry like an MMU or even a dedicated real-time clock. On this hardware, a complex operating system's overhead supporting multiple tasks and users would likely compromise the performance of the machine without really being needed. As those systems were largely sold complete, with a fixed hardware configuration, there was also no need for an operating system to provide drivers for a wide range of hardware to abstract away differences.
Video games and even the available spreadsheet, database and word processors for home computers were mostly self-contained programs that took over the machine completely. Although integrated software existed for these computers, they usually lacked features compared to their standalone equivalents, largely due to memory limitations. Data exchange was mostly performed through standard formats like ASCII text or CSV, or through specialized file conversion programs.
Since virtually all video game consoles and arcade cabinets designed and built after 1980 were true digital machines based on microprocessors (unlike the earlier Pong clones and derivatives), some of them carried a minimal form of BIOS or built-in game, such as the ColecoVision, the Sega Master System and the SNK Neo Geo.
Modern-day game consoles and videogames, starting with the PC-Engine, all have a minimal BIOS that also provides some interactive utilities such as memory card management, audio or video CD playback, copy protection and sometimes carry libraries for developers to use etc. Few of these cases, however, would qualify as a true operating system.
The most notable exceptions are probably the Dreamcast game console which includes a minimal BIOS, like the PlayStation, but can load the Windows CE operating system from the game disk allowing easily porting of games from the PC world, and the Xbox game console, which is little more than a disguised Intel-based PC running a secret, modified version of Microsoft Windows in the background. Furthermore, there are Linux versions that will run on a Dreamcast and later game consoles as well.
Long before that, Sony had released a kind of development kit called the Net Yaroze for its first PlayStation platform, which provided a series of programming and developing tools to be used with a normal PC and a specially modified "Black PlayStation" that could be interfaced with a PC and download programs from it. These operations require in general a functional OS on both platforms involved.
In general, it can be said that videogame consoles and arcade coin-operated machines used at most a built-in BIOS during the 1970s, 1980s and most of the 1990s, while from the PlayStation era and beyond they started getting more and more sophisticated, to the point of requiring a generic or custom-built OS for aiding in development and expandability.
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 II, ISA, and PCI buses), and an increasing need for "standard" operating systems to control them. The most important of the early OSes on these machines was Digital Research's CP/M-80 for the 8080 / 8085 / Z-80 CPUs. It was based on several Digital Equipment Corporation operating systems, mostly for the PDP-11 architecture. Microsoft's first operating system, MDOS/MIDAS, was designed along many of the PDP-11 features, but for microprocessor based systems. MS-DOS, or PC DOS when supplied by IBM, was designed to be similar to CP/M-80. [14] 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 user interfaces for many operating systems, such as the generic X Window System that is provided with many Unix systems, or other graphical systems such as Apple's classic Mac OS and macOS, the Radio Shack Color Computer's OS-9 Level II/Multi-Vue, Commodore's AmigaOS, Atari TOS, IBM's OS/2, and Microsoft Windows. The original GUI was developed on the Xerox Alto computer system at Xerox Palo Alto Research Center in the early 1970s and commercialized by many vendors throughout the 1980s and 1990s.
Since the late 1990s, there have been three operating systems in widespread use on personal computers: Apple Inc.'s macOS, the open source Linux, and Microsoft Windows. Since 2005 and the Mac transition to Intel processors, all have been developed mainly on the x86 platform, although macOS retained PowerPC support until 2009 and Linux remains ported to a multitude of architectures including ones such as 68k, PA-RISC, and DEC Alpha, which have been long superseded and out of production, and SPARC and MIPS, which are used in servers or embedded systems but no longer for desktop computers. Other operating systems such as AmigaOS and OS/2 remain in use, if at all, mainly by retrocomputing enthusiasts or for specialized embedded applications.
In the early 1990s, Psion released the Psion Series 3 PDA, a small mobile computing device. It supported user-written applications running on an operating system called EPOC. Later versions of EPOC became Symbian, an operating system used for mobile phones from Nokia, Ericsson, Sony Ericsson, Motorola, Samsung and phones developed for NTT Docomo by Sharp, Fujitsu & Mitsubishi. Symbian was the world's most widely used smartphone operating system until 2010 with a peak market share of 74% in 2006. In 1996, Palm Computing released the Pilot 1000 and Pilot 5000, running Palm OS. Microsoft Windows CE was the base for Pocket PC 2000, renamed Windows Mobile in 2003, which at its peak in 2007 was the most common operating system for smartphones in the U.S.
In 2007, Apple introduced the iPhone and its operating system, known as simply iPhone OS (until the release of iOS 4), which, like Mac OS X, is based on the Unix-like Darwin. In addition to these underpinnings, it also introduced a powerful and innovative graphic user interface that was later also used on the tablet computer iPad. A year later, Android, with its own graphical user interface, was introduced, based on a modified Linux kernel, and Microsoft re-entered the mobile operating system market with Windows Phone in 2010, which was replaced by Windows 10 Mobile in 2015.
In addition to these, a wide range of other mobile operating systems are contending in this area.
Operating systems originally ran directly on the hardware itself and provided services to applications, but with virtualization, the operating system itself runs under the control of a hypervisor, instead of being in direct control of the hardware.
On mainframes IBM introduced the notion of a virtual machine in 1968 with CP/CMS on the IBM System/360 Model 67, and extended this later in 1972 with Virtual Machine Facility/370 (VM/370) on System/370.
On x86-based personal computers, VMware popularized this technology with their 1999 product, VMware Workstation, [15] and their 2001 VMware GSX Server and VMware ESX Server products. [16] Later, a wide range of products from others, including Xen, KVM and Hyper-V meant that by 2010 it was reported that more than 80 percent of enterprises had a virtualization program or project in place, and that 25 percent of all server workloads would be in a virtual machine. [17]
Over time, the line between virtual machines, monitors, and operating systems was blurred:
In many ways, virtual machine software today plays the role formerly held by the operating system, including managing the hardware resources (processor, memory, I/O devices), applying scheduling policies, or allowing system administrators to manage the system.
IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the computer market with the 7000 series and the later System/360, followed by the System/370. Current mainframe computers in IBM's line of business computers are developments of the basic design of the System/360.
Multiple Virtual Storage, more commonly called MVS, is the most commonly used operating system on the System/370, System/390 and IBM Z IBM mainframe computers. IBM developed MVS, along with OS/VS1 and SVS, as a successor to OS/360. It is unrelated to IBM's other mainframe operating system lines, e.g., VSE, VM, TPF.
A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise resource planning, and large-scale transaction processing. A mainframe computer is large but not as large as a supercomputer and has more processing power than some other classes of computers, such as minicomputers, servers, workstations, and personal computers. Most large-scale computer-system architectures were established in the 1960s, but they continue to evolve. Mainframe computers are often used as servers.
An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.
OS/2 is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 relative to Microsoft's new Windows 3.1 operating environment, the two companies severed the relationship in 1992 and OS/2 development fell to IBM exclusively. The name stands for "Operating System/2", because it was introduced as part of the same generation change release as IBM's "Personal System/2 (PS/2)" line of second-generation personal computers. The first version of OS/2 was initially released in December 1987, and newer versions were released until December 2001.
In computing, time-sharing is the concurrent sharing of a computing resource among many tasks or users by giving each task or user a small slice of processing time. This quick switch between tasks or users gives the illusion of simultaneous execution. It enables multi-tasking by a single user or enables multiple-user sessions.
In computing, a virtual machine (VM) is the virtualization or emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination of the two. Virtual machines differ and are organized by their function, shown here:
Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more identical processors are connected to a single, shared main memory, have full access to all input and output devices, and are controlled by a single operating system instance that treats all processors equally, reserving none for special purposes. Most multiprocessor systems today use an SMP architecture. In the case of multi-core processors, the SMP architecture applies to the cores, treating them as separate processors.
In computing, a system call is the programmatic way in which a computer program requests a service from the operating system on which it is executed. This may include hardware-related services, creation and execution of new processes, and communication with integral kernel services such as process scheduling. System calls provide an essential interface between a process and the operating system.
BS2000 is an operating system for IBM 390-compatible mainframe computers developed in the 1970s by Siemens and from early 2000s onward by Fujitsu Technology Solutions.
This article presents a timeline of events in the history of computer operating systems from 1951 to the current day. For a narrative explaining the overall developments, see the History of operating systems.
A hypervisor, also known as a virtual machine monitor (VMM) or virtualizer, is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Unlike an emulator, the guest executes most instructions on the native hardware. Multiple instances of a variety of operating systems may share the virtualized hardware resources: for example, Linux, Windows, and macOS instances can all run on a single physical x86 machine. This contrasts with operating-system–level virtualization, where all instances must share a single kernel, though the guest operating systems can differ in user space, such as different Linux distributions with the same kernel.
In computing, virtualization is the use of a computer to simulate another computer. The following is a chronological list of virtualization technologies.
The history of IBM mainframe operating systems is significant within the history of mainframe operating systems, because of IBM's long-standing position as the world's largest hardware supplier of mainframe computers. IBM mainframes run operating systems supplied by IBM and by third parties.
In computing, virtualization (v12n) is a series of technologies that allows dividing of physical computing resources into a series of virtual machines, operating systems, processes or containers.
MS-DOS is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few operating systems attempting to be compatible with MS-DOS, are sometimes referred to as "DOS". MS-DOS was the main operating system for IBM PC compatibles during the 1980s, from which point it was gradually superseded by operating systems offering a graphical user interface (GUI), in various generations of the graphical Microsoft Windows operating system.
DOS is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible systems from other manufacturers include DR-DOS (1988), ROM-DOS (1989), PTS-DOS (1993), and FreeDOS (1998). MS-DOS dominated the IBM PC compatible market between 1981 and 1995.
In operating systems, memory management is the function responsible for managing the computer's primary memory.
A system virtual machine is a virtual machine (VM) that provides a complete system platform and supports the execution of a complete operating system (OS). These usually emulate an existing architecture, and are built with the purpose of either providing a platform to run programs where the real hardware is not available for use, or of having multiple instances of virtual machines leading to more efficient use of computing resources, both in terms of energy consumption and cost effectiveness, or both. A VM was originally defined by Popek and Goldberg as "an efficient, isolated duplicate of a real machine".