History of operating systems 55395 226023145 2008-07-16T14:09:32Z AndersBot 6986250 robot Adding: [[ca:Història dels sistemes operatius]] The '''history of computer [[operating system]]s''' recapitulates to a degree, the recent [[history of computer hardware]]. Operating systems (OSes) provide a set of functions needed and used by most application-programs on a computer, and the necessary linkages for the control and sychronization of the computer's hardware. On the first computers, without an 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 card-readers. The growing complexity of hardware and application-programs eventually made operating systems a necessity. {{History of computing}} == Background == Early computers lacked any form of operating system. The user had sole use of the machine and would arrive armed with program and data, often on punched paper and 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 switches and lights. It is said that [[Alan Turing]] was a master of this on the early [[Manchester Mark I]] 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 [[runtime library|libraries]] of support code, 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 [[University of Cambridge|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. As machines became more powerful, the time needed for a run of a program diminished and the time to hand off the equipment became very 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 punch-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 were online. 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 well-being and maintenance of 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 library|runtime libraries]] to prevent misuse of system resources. Automated monitoring was needed not just for [[Central processing unit|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. All these features were building up towards the repertoire of a fully capable operating system. Eventually the [[runtime library|runtime libraries]] became an amalgamated program that was started before the first customer job and could read in the customer job, control its execution, clean up after it, record its usage, and immediately go on to process the next job. Significantly, it became possible for programmers to use symbolic program-code instead of having to hand-encode binary images, once task-switching allowed a computer to perform translation of a program into binary form before running it. These resident background programs, capable of managing multistep processes, were often called monitors or monitor-programs before the term OS 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 computer|personal computing]] era. But there has been a shift in meaning. With the era of commercial computing, more and more "secondary" software was bundled in the OS package, leading eventually to the perception of an OS as a complete user-system with utilities, applications (such as text editors and file managers) and configuration tools, and having an integrated [[graphical user interface]]. The true descendant of the early operating systems is what is now called the "[[Kernel (computer science)|kernel]]". In technical and development circles the old restricted sense of an OS persists because of the continued active development of [[Embedded system|embedded]] operating systems for all kinds of devices with a data-processing component, from hand-held gadgets up to industrial robots and [[Real-time computing|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 mainframe era == It is generally thought that the first operating system used for real work was [[GM-NAA I/O]], produced in 1956 by [[General Motors]]' Research division for its [[IBM 704]]. <ref name="CHM-1956-SW"> {{cite web | url=http://www.computerhistory.org/timeline/?year=1956 | title=Timeline of Computer History: 1956: Software | publisher=[[Computer History Museum]] | accessdate=2008-05-25 }} </ref> Most other early operating systems for IBM mainframes were also produced by customers.<ref name="bozemanlugHistoryOfLinux">[http://www.bozemanlug.org/talks/linux_history.html A Brief History of Linux]</ref> 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. === Systems on IBM hardware === {{main|History of IBM mainframe operating systems}} The state of affairs continued until the 1960s when IBM, already a leading hardware vendor, stopped the work on existing systems, and put all the effort into developing the [[System/360]] series of machines, all of which used the ''same'' instruction architecture. IBM intended to develop also 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 were introduced instead of a single OS/360.<ref name="JohnsonVSEPast40Years">{{cite journal | last = Johnston | date = April 1, 2005 | title = VSE: A Look at the Past 40 Years | journal = z/Journal | issue = April/May 2005 | publisher = Thomas Communications, Inc. | url = http://www.zjournal.com/index.cfm?section=article&aid=293 }}</ref><ref name="Boyer360Revolution">Chuck Boyer, [http://www-306.ibm.com/software/os/zseries/pdf/360Revolution_0406.pdf ''The 360 Revolution'']</ref> IBM wound up releasing a series of stop-gaps followed by three longer-lived operating systems: * OS/MFT for mid-range systems. This had one successor, OS/VS1, which was discontinued in the 1980s. * OS/MVT for large systems. This was similar in most ways to OS/MFT (programs could be ported between the two without being [[Compiler|re-compiled]]), but has more sophisticated memory management and a [[time-sharing]] facility, [[Time Sharing Option|TSO]]. MVT had several successors including the current [[z/OS]]. * [[DOS/360]] for small System/360 models had several successors including the current [[z/VSE]]. It was significantly different from OS/MFT and OS/MVT. 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 OS/MFT or OS/MVT) with no change. === Other mainframe operating systems === [[Control Data Corporation]] developed the [[CDC SCOPE (software)|SCOPE]] operating system in the 1960s, for batch processing. In cooperation with the University of Minnesota, the [[KRONOS]] and later the [[CDC NOS (Software)|NOS]] operating systems were developed during the 1970s, which supported simultaneous batch and timesharing use. Like many commercial timesharing systems, its interface was an extension of the [[Dartmouth BASIC]] 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 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. [[UNIVAC]], the first commercial computer manufacturer, produced a series of [[EXEC 8|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 BASIC system. [[Burroughs Corporation]] introduced the B5000 in 1961 with the MCP ([[MCP (Burroughs Large Systems)|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]]. MCP is still in use today in the [[Unisys]] ClearPath/MCP line of computers. [[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 360's 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. == Minicomputers and the rise of UNIX == <!-- need discussion of evolution of timesharing, timesharing OS and Multics --> The beginnings of the [[Unix|UNIX]] operating system was developed at AT&T Bell Laboratories in the late 1960s. 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 a high level [[C (programming language)|C language]], when that language was ported to a new machine architecture [[Unix|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 [[workstation]]s. By widespread use it exemplified the idea of an operating system that was conceptually the same across various hardware platforms. It still was owned by AT&T and that limited its use to groups or corporations who could afford to license it. Other than that Digital Equipment Corporation created the simple [[RT-11]] system for its 16-bit [[PDP-11]] class machines, and the [[VMS]] system for the 32-bit VAX computer. Another system which evolved in this time frame was the [[Pick operating system]]. The Pick system was developed and sold by Microdata Corporation who created the precursors of the system. The system is an example of a system which started as a database application support program and graduated to system work. == The case of 8-bit home computers and game consoles == === Home computers === Although most small 8-bit [[home computer]]s of the 1980s, such as the [[Commodore 64]], the [[Atari 8-bit]], the [[Amstrad CPC]], [[ZX Spectrum]] series and others ''could'' use a disk-loading operating system, such as [[CP/M]] or [[GEOS (8-bit operating system)|GEOS]] they could generally work ''without'' one. In fact, most if not all of these computers shipped with a built-in [[BASIC programming language|BASIC]] interpreter on ROM, which also served as a crude operating system, allowing minimal [[Computer file|file]] management operations (such as deletion, copying, etc.) to be performed and sometimes disk formatting, along of course with [[application software|application]] loading and execution, which sometimes required a non-trivial command sequence, like with the [[Commodore 64]]. The fact that the majority of these machines were bought for entertainment and educational purposes and were seldom used for more "serious" or business/science oriented applications, partly explains why a "true" operating system was not necessary. Another reason is that they were usually single-task and [[single-user]] machines and shipped with minimal amounts of [[Random Access Memory|RAM]], usually between 4 and 256 [[kilobyte]]s, with 64 and 128 being common figures, and 8-bit processors, so an operating system's [[overhead]] would likely compromise the performance of the machine without really being necessary. Even the available [[word processor]] and [[integrated software]] applications were mostly self-contained programs which took over the machine completely, as also did [[video games]]. === Game consoles and video games === Since virtually all video game consoles and [[arcade cabinet]]s designed and built after 1980 were true digital machines (unlike the analog ''[[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 Playmore|SNK]] [[Neo Geo (console)|Neo Geo]]. There were however successful designs where a BIOS was not necessary, such as the [[Nintendo Entertainment System|Nintendo NES]] and its clones. Modern day game consoles and videogames, starting with the [[TurboGrafx-16|PC-Engine]], all have a minimal BIOS that also provides some interactive utilities such as [[memory card]] management, [[sound|Audio]] or [[Video]] [[CD]] playback, [[copy prevention]] 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 [[IBM PC compatible|PC]] world, and the [[Xbox]] game console, which is little more than a disguised Intel-based [[IBM PC compatible|PC]] running a secret, modified version of [[Microsoft Windows]] in the background. Furthermore, there are [[Linux]] versions that will run on a [[PlayStation]] or [[Xbox]] and maybe other game consoles as well, provided they have access to a large mass storage device and have a reasonable amount of RAM (the bare minimum for a [[GUI]] is around 512 [[kilobytes]], as the case of the [[Amiga|Commodore Amiga]] or early [[ATARI ST]] shows. [[GEOS (8-bit operating system)|GEOS]] however ran on a stock C64 which came with as little as 64 [[kilobytes]]). 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 personal computer era: Apple, PC/MS/DR-DOS and beyond == 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 bus|S-100]], SS-50, [[Apple II family|Apple II]], [[Industry Standard Architecture|ISA]], and [[Peripheral Component Interconnect|PCI]] [[bus]]es), 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. 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 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 [[Microsoft Windows]], the [[RadioShack]] Color Computer's [[Microware|OS-9 Level II/MultiVue]], Commodore's [[AmigaOS]], [[Apple Computer|Apple]]'s [[Mac OS]], or even [[International Business Machines|IBM]]'s [[OS/2]]. The original GUI was developed at Xerox Palo Alto Research Center in the early '70s (the Alto computer system) and imitated by many vendors. == See also == * [[List of operating systems]] * [[Timeline of operating systems]] * [[Charles Babbage Institute]] == References == <references/> == Further reading == * {{cite book | author = [[Neal Stephenson]] | title = [[In the Beginning...was the Command Line]] | month = November | year = 1999 | publisher = Harper Perennial | isbn = 0380815931 }} A useful and readable (albeit somewhat opinionated) book dealing with operating system history. {{Operating System}} [[Category:History of software|Operating systems]] [[ar:تاريخ أنظمة تشغيل الحواسيب]] [[ca:Història dels sistemes operatius]] [[es:Historia de los sistemas operativos]] [[it:Storia dei sistemi operativi]] [[no:Operativsystemets historie]] [[zh:操作系统历史]]