Showing posts with label Definition. Show all posts
Showing posts with label Definition. Show all posts

Tuesday, April 30, 2002

History of operating systems

The history of computer operating systems recapitulates to a degree, the recent history of computing.




Operating systems (OS) provide a set of functions needed and used by most applications, and provide the necessary linkages to control a computer's hardware. On the first computers, without an operating system, each program would have to have drivers for your video card, memory card, and other peripherals. The evolution of the computer applications and their complexity led to the OS necessities





Background



Early computers lacked any form of operating system. The user had sole use of the machine; he would arrive at the machine armed with his 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 Manchester Mark I machine. He drew the seminal concepts of operating systems from the Universal Turing Machine concept.




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. This would become 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 color of the pegs indicated the priority of the job.




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 went from checking the wall clock to using the computer to do the timing. Run queues went from being people waiting at the door to stacks of media waiting on a table to using the hardware of the machine such as switching which magnetic tape drive was online or stacking punch cards on top of the previous jobs cards in the reader. Operating the computer went from a task performed by the program developer to a job for full time dedicated machine operators. When commercially available computer centers found they had to deal with accidental or malicious tampering of the accounting information, equipment vendors were encouraged to enhance the properties of the runtime libraries to prevent misuse of the systems resources. Accounting practices were also expanded beyond recording CPU usage to also count pages printed, cards punched, cards read, disk storage used, and even operator action required by jobs such as changing magnetic tapes. Eventually, the runtime libraries became a program that was started before the first customer job, that read in the customer job, controlled its execution, cleaned up after it, recorded its usage, and immediately went on to process the next job. Jobs also evolved from being binary images produced by hand encoding to symbolic programs that were translated by the computer. An operating system, or "monitor" as it was sometimes called, permitted jobs to become multistep with the monitor running several programs in sequence to effect the translation and subsequent run of the user's program.




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. To accommodate this evolution of the meaning most of what was the original "operating system" is now called the "kernel", and OS has come to mean the complete package.




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





The mainframe era



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 manufacturer brought out a new machine, there would be a new operating system. This state of affairs continued until the 1960s when IBM developed the System/360 series of machines which all used the same instruction architecture. Because there were enormous performance differences across the range, a single operating system could not be used and a family of operating systems were developed. See: 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).




OS/360 evolved to become successively MFT, MVT, SVS, MVS, MVS/XA, MVS/ESA, OS/390 and z/OS, that includes the UNIX kernel as well as a huge amount of new functions required by modern mission-critical applications running on the zSeries mainframes. It is worth mentioning, that IBM maintained full compatibility with the past, so that programs developed in the sixties can still run under z/OS with no change. Although z/OS runs UNIX applications, it is a proprietary OS.




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




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 BASIC system.




General Electric and MIT developed General Comprehensive Operating System (or General Electric Comprehensive Operating System) known as GECOS and later GCOS when General Electric's computer business was acquired by Honeywell. GECOS introduced the concept of ringed security privilege levels.




Digital Equipment Corporation developed many operating systems for its various computer lines, including the simple RT-11 system for its 16-bit PDP-11 class machines, the VMS system for the 32-bit VAX computer, and 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.





Minicomputers and the rise of UNIX



The beginings of the 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 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. 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.




Many early operating systems were collections of utilities to allow users to run software on their systems. There were some companies who were able to develop better systems, such as early Digital Equipment Corporation systems, but others never supported features that were useful on other hardware types.




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.




One system which evolved in this time frame was the Pick operating system. The Pick system was developed and sold by Microdata Corporation, and Dick Pick, who created the precursors of the system with an associate, Don Nelson. The system is an example of a system which started as a database application support program, graduated to system work, and still exists across a wide variety of systems supported on most UNIX systems as an addon database system.




Other packages such as Oracle are middleware and contain many of the features of operating systems, but are in fact large applications supported on many hardware platforms.




As hardware was packaged in ever larger amounts in small packages, first the bit slice level of integration in systems, and then entire systems came to be present on a single chip. This type of system in small 4 and 8 bit processors came to be known as microprocessors. Most were not microprogrammed, but were completely integrated general purpose processors.





The case of 8-bit home computers and game consoles




Home computers



Although most smallest 8-bit home computers of the 1980s, such as the Commodore 64, the Amstrad CPC, ZX Spectrum series and others could use a "normal" disk-loading operating system, such as CP/M or GEOS they could generally work without one. In fact, most if not all of these computers shipped with a built-in BASIC interpreter on ROM, which also served as a crude operating system, allowing minimal file management operations (such as deletion, copying, etc.) to be performed and sometimes disk formatting, along of course with 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 RAM, usually between 4 and 256 kilobytes, 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 rare word processor and office suite applications were mostly self-contained programs which took over the machine completely, as also did videogames.




Finally, most of these machines didn't even ship with a built-in flexible disk drive, which made using a disk-based OS impossible or a luxury option.





Game consoles and video games



Since virtually all video game consoles and arcade cabinets 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 Neo Geo. There were however successful designs where a BIOS was not necessary, such as the Nintendo NES and its clones.




Modern day game consoles and videogames, starting from the PlayStation all have a minimal BIOS that also provides some interactive utilities such as memory card management, 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 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 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 Commodore Amiga or early ATARI ST shows. 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, 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. 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 OS-9, Commodore's AmigaOS, Level II, Apple's Mac OS, 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 imitated by many vendors.





Read More......

Monday, April 29, 2002

operating system concept

The computer's master control program. When the computer is turned on, a small "boot program" loads the operating system. Although additional modules may be loaded as needed, the main part, known as the "kernel" resides in memory at all times.




The operating system (OS) sets the standards for all application programs that run in the computer. Applications "talk to" the operating system for all user interface and file management operations. Also called an "executive" or "supervisor," an operating system performs the following functions.






User Interface




All graphics based today, the user interface includes the windows, menus and method of interaction between you and the computer. Prior to graphical user interfaces (GUIs), all operation of the computer was performed by typing in commands. Not at all extinct, command-line interfaces are alive and well and provide an alternate way of running programs on all major operating systems.




Operating systems may support optional interfaces, both graphical and command line. Although the overwhelming majority of people work with the default interfaces, different "shells" offer variations of appearance and functionality.





Job Management




Job management controls the order and time in which programs are run and is more sophisticated in the mainframe environment where scheduling the daily work has always been routine. IBM's job control language (JCL) was developed decades ago. In a desktop environment, batch files can be written to perform a sequence of operations which can be scheduled to start at a given time.





Task Management




Multitasking, which is the ability to simultaneously execute multiple programs, is available in all operating systems today. Critical in the mainframe and server environment, applications can be prioritized to run faster or slower depending on their purpose. In the desktop world, multitasking is necessary for keeping several applications open at the same time so you can bounce back and forth among them. See multitasking.





Data Management




Data management keeps track of the data on disk, tape and optical storage devices. The application program deals with data by file name and a particular location within the file. The operating system's file system knows where that data are physically stored (which sectors on disk) and interaction between the application and operating system is through the programming interface. Whenever an application needs to read or write data, it makes a call to the operating system (see API).





Device Management




Device management controls peripheral devices by sending them commands in their own proprietary language. The software routine that knows how to deal with each device is called a "driver," and the OS requires drivers for the peripherals attached to the computer. When a new peripheral is added, that device's driver is installed into the operating system. See driver.





Security




Operating systems provide password protection to keep unauthorized users out of the system. Some operating systems also maintain activity logs and accounting of the user's time for billing purposes. They also provide backup and recovery routines for starting over in the event of a system failure.




History



The earliest operating systems were developed in the late 1950s to manage tape storage, but programmers mostly wrote their own I/O routines. In the mid-1960s, operating systems became essential to manage disks, complex timesharing and multitasking systems.




Today, all multi-purpose computers from desktop to mainframe use an operating system. Consumer electronics devices increasingly use an OS, whereas in the past, they used custom software that provided both OS and application functionality (see embedded Linux).




Common Operating Systems



The primary operating systems in use are the many versions of Windows (from 95 to Vista), Macintosh OS X, the many versions of Linux and Unix, OS/400 (IBM iSeries) and z/OS (IBM zSeries mainframes). DOS is still used for some applications, and there are other special-purpose operating systems.




Read More......

Sunday, April 28, 2002

operating system

The software component of a computer system that is responsible for the management and coordination of activities and the sharing of the resources of the computer. The operating system (OS) acts as a host for application programs that are run on the machine. As a host, one of the purposes of an operating system is to handle the details of the operation of the hardware. This relieves application programs from having to manage these details and makes it easier to write applications. Almost all computers, including hand-held computers, desktop computers, supercomputers, and even modern video game consoles, use an operating system of some type. See also Computer systems architecture.



Operating systems offer a number of services to application programs and users. Applications access these services through application programming interfaces (APIs) or system calls. By invoking these interfaces, the application can request a service from the operating system, pass parameters, and receive the results of the operation. Users may also interact with the operating system by typing commands or using a graphical user interface (GUI, commonly pronounced “gooey”). For hand-held and desktop computers, the GUI is generally considered part of the operating system. For large multiuser systems, the GUI is generally implemented as an application program that runs outside the operating system. See also Computer programming; Human-computer interaction.




Modern operating systems provide the capability of running multiple application programs simultaneously, which is referred to as multiprogramming. Each program running is represented by a process in the operating system. The operating system provides an execution environment for each process by sharing the hardware resources so that each application does not need to be aware of the execution of other processes. The central processing unit (CPU) of the computer can be used by only one program at a time. The operating system can share the CPU among the processes by using a technique known as time slicing. In this manner, the processes take turns using the CPU. Single-user desktop personal computers (PCs) may simplify this further by granting the CPU to whichever application the user has currently selected and allowing the user to switch between applications at will.




The main memory of a computer (referred to as random access memory, or RAM) is a finite resource. The operating system is responsible for sharing the memory among the currently running processes. When a user initiates an application, the operating system decides where to place it in memory and may allocate additional memory to the application if it requests it. The operating system may use capabilities in the hardware to prevent one application from overwriting the memory of another. This provides security and prevents applications from interfering with one another. See also Computer storage technology.




The details of device management are left to the operating system. The operating system provides a set of APIs to the applications for accessing input/output (I/O) devices in a consistent and relatively simple manner regardless of the specifics of the underlying hardware. The operating system itself will generally use a software component called a device driver to control an I/O device. This allows the operating system to be upgraded to support new devices as they become available. In addition to a device driver for the network I/O device, the operating system includes software known as a network protocol and makes various network utilities available to the user. See also Computer peripheral devices; Local-area networks; Wide-area networks.




Operating systems provide security by preventing unauthorized access to the computer's resources. Many operating systems also prevent users of a computer from accidentally or intentionally interfering with each other. The security policies that an operating system enforces range from none in the case of a video game console, to simple password protection for hand-held and desktop computers, to very elaborate schemes for use in high-security environments. See also Computer security.




Read More......