Multics
Encyclopedia
Multics was an influential early time-sharing
Time-sharing
Time-sharing is the sharing of a computing resource among many users by means of multiprogramming and multi-tasking. Its introduction in the 1960s, and emergence as the prominent model of computing in the 1970s, represents a major technological shift in the history of computing.By allowing a large...

 operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

. The project was started in 1964 in Cambridge, Massachusetts
Cambridge, Massachusetts
Cambridge is a city in Middlesex County, Massachusetts, United States, in the Greater Boston area. It was named in honor of the University of Cambridge in England, an important center of the Puritan theology embraced by the town's founders. Cambridge is home to two of the world's most prominent...

. The last known running Multics installation was shut down on October 30, 2000 at the Canadian Department of National Defence in Halifax, Nova Scotia, Canada.

Overview

Initial planning and development for Multics started in 1964. Originally it was a cooperative project led by MIT
Massachusetts Institute of Technology
The Massachusetts Institute of Technology is a private research university located in Cambridge, Massachusetts. MIT has five schools and one college, containing a total of 32 academic departments, with a strong emphasis on scientific and technological education and research.Founded in 1861 in...

 (with Fernando Corbató) along with General Electric
General Electric
General Electric Company , or GE, is an American multinational conglomerate corporation incorporated in Schenectady, New York and headquartered in Fairfield, Connecticut, United States...

 and Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...

. Bell Labs dropped out in 1969, and in 1970 GE's computer business including Multics was taken over by Honeywell
Honeywell
Honeywell International, Inc. is a major conglomerate company that produces a variety of consumer products, engineering services, and aerospace systems for a wide variety of customers, from private consumers to major corporations and governments....

.

Multics was conceived as a commercial product for GE, and became one for Honeywell, but not a very successful one. Due to its many novel and valuable ideas, Multics had a significant impact in the computer field even though it was derided by some critics at the time.

Multics had numerous features intended to result in high availability so that it would support a computing utility similar to the telephone
Telephone
The telephone , colloquially referred to as a phone, is a telecommunications device that transmits and receives sounds, usually the human voice. Telephones are a point-to-point communication system whose most basic function is to allow two people separated by large distances to talk to each other...

 and electricity
Electricity
Electricity is a general term encompassing a variety of phenomena resulting from the presence and flow of electric charge. These include many easily recognizable phenomena, such as lightning, static electricity, and the flow of electrical current in an electrical wire...

 services. Modular hardware structure and software architecture were used to achieve this. The system could grow in size by simply adding more of the appropriate resource — computing power, main memory, disk storage, etc. Separate access control list
Access control list
An access control list , with respect to a computer file system, is a list of permissions attached to an object. An ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on given objects. Each entry in a typical ACL specifies a subject...

s on every file provided flexible information sharing, but complete privacy when needed. Multics had a number of standard mechanisms to allow engineers to analyze the performance of the system, as well as a number of adaptive performance optimization mechanisms.

Novel ideas

Multics implemented a single level store
Single-level store
Single-level storage is a term most often associated with the IBM System i operating system, IBM i , although it was originally introduced in 1962 by the Atlas system at Cambridge...

 for data access, discarding the clear distinction between file
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished...

s (called segments in Multics) and process memory
Computer memory
In computing, memory refers to the physical devices used to store programs or data on a temporary or permanent basis for use in a computer or other digital electronic device. The term primary memory is used for the information in physical systems which are fast In computing, memory refers to the...

. The memory of a process consisted solely of segments which were mapped into its address space
Address space
In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity.- Overview :...

. To read or write to them, the process simply used normal CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

 instructions, and the operating system took care of making sure that all the modifications were saved to disk
Disk storage
Disk storage or disc storage is a general category of storage mechanisms, in which data are digitally recorded by various electronic, magnetic, optical, or mechanical methods on a surface layer deposited of one or more planar, round and rotating disks...

. In POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...

 terminology, it was as if every file was mmap
Mmap
In computing, mmap is a POSIX-compliant Unix system call that maps files or devices into memory. It is a method of memory-mapped file I/O. It naturally implements demand paging, because initially file contents are not entirely read from disk and do not use physical RAM at all...

ed; however, in Multics there was no concept of process memory, separate from the memory used to hold mapped-in files, as Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 has. All memory in the system was part of some segment, which appeared in the file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...

; this included the temporary scratch memory of the process, its kernel stack, etc.

One disadvantage of this was that the size of segments was limited to 256 kilowords, giving just over 1 MiB. This was due to the particular hardware architecture of the machines on which Multics ran, having a 36-bit word size (not using the 8-bit byte). Extra code had to be used to work on files larger than this, called multisegment files. In the days when one megabyte of memory was prohibitively expensive, and before large databases and later huge bitmap
Bitmap
In computer graphics, a bitmap or pixmap is a type of memory organization or image file format used to store digital images. The term bitmap comes from the computer programming terminology, meaning just a map of bits, a spatially mapped array of bits. Now, along with pixmap, it commonly refers to...

 graphics, this limit was rarely encountered.

Another major new idea of Multics was dynamic linking, in which a running process could request that other segments be added to its address space, segments which could contain code that it could then execute. This allowed applications to automatically use the latest version of any external routine they called, since those routines were kept in other segments, which were dynamically linked only when a process first tried to begin execution in them. Since different processes could use different search rules, different users could end up using different versions of external routines automatically. Equally importantly, with the appropriate settings on the Multics security facilities, the code in the other segment could then gain access to data structures maintained in a different process.

Thus, to interact with an application running in part as a daemon
Daemon (computer software)
In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...

 (in another process), a user's process simply performed a normal procedure-call instruction, to a code segment to which it had dynamically linked (a code segment which implemented some operation associated with the daemon). The code in that segment could then modify data maintained and used in the daemon. When the action necessary to commence the request was completed, a simple procedure return instruction returned control of the user's process to the user's code.

The single-level store and dynamic linking are still not available to their full power in other widely used operating systems, despite the rapid and enormous advance in the computer field since the 1960s. They are becoming more widely accepted and available in more limited forms, e.g., dynamic linking.

Multics also supported extremely aggressive on-line reconfiguration; central processing unit
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

s, memory banks, disk drives, etc. could be added and removed while the system continued operating. At the MIT system, where most early software development was done, it was common practice to split the multiprocessor
Multiprocessor
Computer system having two or more processing units each sharing main memory and peripherals, in order to simultaneously process programs.Sometimes the term Multiprocessor is confused with the term Multiprocessing....

 system into two separate systems during off-hours by incrementally removing enough components to form a second working system, leaving the rest still running the original logged-in users. System software development testing could be done on the second machine, then the components of the second system were added back onto the main user system, without ever having shut it down. Multics supported multiple CPUs: It was one of the earliest multiprocessor
Multiprocessor
Computer system having two or more processing units each sharing main memory and peripherals, in order to simultaneously process programs.Sometimes the term Multiprocessor is confused with the term Multiprocessing....

 systems.

Multics was the first major operating system to be designed as a secure system
Computer security
Computer security is a branch of computer technology known as information security as applied to computers and networks. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to...

 from the outset. Despite this, early versions of Multics were broken into repeatedly. This led to further work that made the system much more secure and prefigured modern security engineering
Security engineering
Security engineering is a specialized field of engineering that focuses on the security aspects in the design of systems that need to be able to deal robustly with possible sources of disruption, ranging from natural disasters to malicious acts...

 techniques. Break-ins became very rare once the second-generation hardware base was adopted; it had hardware support for ring-oriented security
Ring (computer security)
In computer science, hierarchical protection domains, often called protection rings, are a mechanism to protect data and functionality from faults and malicious behaviour . This approach is diametrically opposite to that of capability-based security.Computer operating systems provide different...

, a multilevel refinement of the concept of master mode.

Multics was the first operating system to provide a hierarchical file system, and file names could be of almost arbitrary length and syntax. A given file or directory could have multiple names (typically a long and short form), and symbolic links between directories were also supported. Multics was the first to use the now-standard concept of per-process
Process (computing)
In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...

 stack
Stack (data structure)
In computer science, a stack is a last in, first out abstract data type and linear data structure. A stack can have any abstract data type as an element, but is characterized by only three fundamental operations: push, pop and stack top. The push operation adds a new item to the top of the stack,...

s in the kernel, with a separate stack for each security ring. It was also one of the first written in a high level language (Multics PL/1), just after the Burroughs MCP system written in ALGOL
ALGOL
ALGOL is a family of imperative computer programming languages originally developed in the mid 1950s which greatly influenced many other languages and became the de facto way algorithms were described in textbooks and academic works for almost the next 30 years...

.

Project history

Multics was developed initially for the GE-645
GE-600 series
The GE-600 series was a family of 36-bit mainframe computers originating in the 1960s, built by General Electric . When GE left the mainframe business the line was sold to Honeywell, who built similar systems into the 1990s as the division moved to Groupe Bull and then NEC.-Architecture:The 600...

 mainframe, a 36-bit system; later, it was supported on the Honeywell 6180
Honeywell 6000 series
In 1970 General Electric sold their computing division to Honeywell. GE's 600-series machines were renamed as the Honeywell 6000 series and sold for a number of years.For complete details, see the GE-600 series entry....

 series machines. "With Multics they tried to have a much more versatile and flexible operating system, and it failed miserably," said Dr. Peter H. Salus
Peter H. Salus
Peter H. Salus is a linguist, computer scientist, historian of technology, author in many fields, and an editor of books and journals. He has conducted research in germanistics, language acquisition, and computer languages...

, author of the definitive history of Unix's early years.

Bell Labs pulled out of the project in 1969; some of the people who had worked on it there went on to create the Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 system. Multics development continued at MIT and General Electric.

In 1970, Honeywell
Honeywell
Honeywell International, Inc. is a major conglomerate company that produces a variety of consumer products, engineering services, and aerospace systems for a wide variety of customers, from private consumers to major corporations and governments....

 bought General Electric's computer division, released a better hardware base, and continued system development until 1985. About 80 multimillion-dollar sites were installed, at universities, industry, and government sites. The French
France
The French Republic , The French Republic , The French Republic , (commonly known as France , is a unitary semi-presidential republic in Western Europe with several overseas territories and islands located on other continents and in the Indian, Pacific, and Atlantic oceans. Metropolitan France...

 university system had quite a few installations in the early 1980s. After Honeywell stopped supporting Multics, users migrated to other systems, including Unix. The last Multics machine was shut down on October 30, 2000 at the Canadian Department of National Defence.

In 1985, Multics was issued certification as a B2 level secure operating system using the Trusted Computer System Evaluation Criteria
Trusted Computer System Evaluation Criteria
Trusted Computer System Evaluation Criteria is a United States Government Department of Defense standard that sets basic requirements for assessing the effectiveness of computer security controls built into a computer system...

 from the National Computer Security Center (NCSC) a division of the NSA, the first operating system evaluated to this level.

Multics was distributed in 1975 to 2000 by Groupe Bull
Groupe Bull
-External links:* * — Friends, co-workers and former employees of Bull and Honeywell* *...

 in Europe
Europe
Europe is, by convention, one of the world's seven continents. Comprising the westernmost peninsula of Eurasia, Europe is generally 'divided' from Asia to its east by the watershed divides of the Ural and Caucasus Mountains, the Ural River, the Caspian and Black Seas, and the waterways connecting...

, and by Bull HN Information Systems Inc. in the United States. In 2006 Bull SAS
Groupe Bull
-External links:* * — Friends, co-workers and former employees of Bull and Honeywell* *...

 open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

d Multics versions MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4 & MR12.5.

Retrospective observations

The permanently resident kernel of this powerful multiprocessor mainframe computing utility, much derided in its day as being too large and complex, was only 135 KiB of code. The first MIT GE-645 had 512 kilowords of memory (2 MiB), a truly enormous amount at the time, and the kernel only used a moderate portion of Multics main memory.

The entire system, including the operating system and the complex PL/1 compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

, user commands, and subroutine libraries, consisted of about 1500 source modules. These averaged roughly 200 lines of source code each, and compiled to produce a total of roughly 4.5 MiB of procedure code, which was fairly large by the standards of the day.

Multics compilers generally optimised more for code density than CPU performance, for example using small sub-routines called operators for short standard code-sequences, making direct comparison of object code size with more modern systems less useful. High code density was a good optimisation choice for a multi-user
Multi-user
Multi-user is a term that defines an operating system or application software that allows concurrent access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving the...

 system with expensive main memory, such as Multics.

Influence on other projects

The design and features of Multics greatly influenced the Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 operating system, which was originally written by two ex-programmers from the older project. Superficial influence of Multics on Unix is evident in many areas, including the naming of commands (such as "ls
Ls
In computing, ls is a command to list files in Unix and Unix-like operating systems. ls is specified by POSIX and the Single UNIX Specification.- History :An ls utility appeared in the original version of AT&T UNIX...

" to "list segments" or files). But the internal design philosophy was quite different, focusing on keeping the system small and simple, and so correcting some perceived deficiencies of Multics because of its high resource demands on the limited computer hardware of the time. The name Unix (originally Unics) is itself a pun on Multics. The U in Unix is rumored to stand for uniplexed as opposed to the multiplexed of Multics, further underscoring the designers' rejections of Multics' complexity in favor of a more straightforward and workable approach for smaller computers.

The Prime Computer
Prime Computer
Prime Computer, Inc. was a Natick, Massachusetts-based producer of minicomputers from 1972 until 1992. The alternative spellings "PR1ME" and "PR1ME Computer" were used as brand names or logos by the company.-Founders:...

 operating system, PRIMOS
PRIMOS
PRIMOS was an operating system developed during the 1970s by Prime Computer for its minicomputer systems. It rapidly gained popularity and by the mid-1980s was a serious contender as a mainline minicomputer operating system...

, was referred to as "Multics in a shoebox" by William Poduska
William Poduska
Dr. John William Poduska, Sr was a founder of Prime Computer, Apollo Computer, and Stellar Computer. Prior to that he headed the Electronics Research Lab at NASA's Cambridge, Massachusetts facility and also worked at Honeywell....

, a founder of the company. Poduska later moved on to found Apollo Computer
Apollo Computer
Apollo Computer, Inc., founded 1980 in Chelmsford, Massachusetts by William Poduska and others, developed and produced Apollo/Domain workstations in the 1980s. Along with Symbolics and Sun Microsystems, Apollo was one of the first vendors of graphical workstations in the 1980s...

, whose AEGIS and later Domain/OS
Domain/OS
Domain/OS is the operating system used by the Apollo/Domain line of workstations manufactured by Apollo Computer, Inc. during the late 1980s, as the successor to the one previously used, AEGIS. It was one of the early distributed operating systems...

 operating systems, sometimes called "Multics in a matchbox", extended the Multics design to a heavily-networked graphics workstation environment.

The Stratus VOS
Stratus VOS
VOS is a proprietary operating system running on Stratus Technologies fault-tolerant computer systems. VOS is available on Stratus's ftServer and Continuum platforms...

 operating system of Stratus Computer (now Stratus Technologies
Stratus Technologies
Stratus Technologies, Inc. a major producer of fault tolerant computer servers. The company was founded in 1980 as Stratus Computer, Inc. in Natick, Massachusetts, and adopted its present name in 1999. The current CEO and president is Dave Laurello. Stratus Technologies, Inc. is a privately held...

) was very strongly influenced by Multics, and both its external user interface and internal structure bear many close resemblances to the older project. The high-reliability, availability, and security features of Multics were extended in Stratus VOS to support a new line of fault tolerant computer systems supporting secure, reliable transaction processing
Transaction processing
In computer science, transaction processing is information processing that is divided into individual, indivisible operations, called transactions. Each transaction must succeed or fail as a complete unit; it cannot remain in an intermediate state...

. Stratus VOS is the most directly-related descendant of Multics still in active development and production usage today.

The protection architecture of Multics, restricting the ability of code at one level of the system to access resources at another, was adopted as the basis for the security features of ICL
ICL
-Companies and organizations:* ICL, the ICAO airline code for CAL Cargo Air Lines* International Computers Limited, a British computer hardware and services company, now known as Fujitsu Services...

's VME operating system.

See the "External Links" section of this article for more information about Multics influences on other software and hardware systems.

See also

  • Fernando J. Corbató
    Fernando J. Corbató
    Fernando José "Corby" Corbató is a prominent American computer scientist, notable as a pioneer in the development of time-sharing operating systems....

    , leader of the Multics project while MIT was involved
  • Jerome H. Saltzer
    Jerome H. Saltzer
    Jerome H. Saltzer is a computer scientist who has made many notable contributions.-Career:He received an Sc. D in Electrical Engineering from MIT in 1966...

  • Jack B. Dennis
  • Peter J. Denning
    Peter J. Denning
    Peter J. Denning is an American computer scientist, and prolific writer. He is best known for pioneering work in virtual memory, especially for inventing the working-set model for program behavior, which defeated thrashing in operating systems and became the reference standard for all memory...

  • Robert M. Graham
    Robert M. Graham
    Robert M. Graham is a computer scientist and Professor Emeritus of Computer Science at the University of Massachusetts. He was born to a Scottish emigrant....

  • Victor A. Vyssotsky
    Victor A. Vyssotsky
    Victor A. Vyssotsky, son of the astronomers Alexander N. Vyssotsky and Emma Vyssotsky is a mathematician and computer scientist. He was one of the team member of Multics project. Multics, whilst not particularly commercially successful in itself, directly inspired Ken Thompson to develop...

  • Louis Pouzin
    Louis Pouzin
    Louis Pouzin invented the datagram and designed an early packet communications network, CYCLADES...

    , introduced the term shell for the command language used in Multics
  • Peter G. Neumann
    Peter G. Neumann
    Peter G. Neumann is a researcher who has worked on the Multics operating system in the 1960s. He edits the Computer Risks columns for ACM Software Engineering Notes and Communications of the ACM. He founded ACM SIGSOFT and is a Fellow of the ACM, IEEE and AAAS.He studied at Harvard University ,...

  • Roger R. Schell
    Roger R. Schell
    Roger R. Schell is President of ÆSec, a company focused on appliances built on hardened platforms for secure, reliable e-business on the Internet. For several years he managed the development and delivery of security for several Novell releases of network software products including an integral...

  • Robert Fano
    Robert Fano
    Robert Mario Fano is an Italian-American computer scientist, currently professor emeritus of Electrical Engineering and Computer Science at Massachusetts Institute of Technology. Fano is known principally for his work on information theory, inventing Shannon-Fano coding...

    , director of Project MAC at MIT 1963-1968
  • J. C. R. Licklider
    J. C. R. Licklider
    Joseph Carl Robnett Licklider , known simply as J.C.R. or "Lick" was an American computer scientist, considered one of the most important figures in computer science and general computing history...

    , director of Project MAC at MIT 1968-1971
  • Dennis Ritchie
    Dennis Ritchie
    Dennis MacAlistair Ritchie , was an American computer scientist who "helped shape the digital era." He created the C programming language and, with long-time colleague Ken Thompson, the UNIX operating system...


Further reading

The literature contains a large number of papers about Multics, and various components of it; a fairly complete list is available here. The most important and/or informative ones are listed below.

Technical details

  • Jerome H. Saltzer, Introduction to Multics (MIT Project MAC, 1974) is a considerably longer introduction to the system, geared towards actual users.
  • Elliott I. Organick, The Multics System: An Examination of Its Structure (MIT Press, 1972) is the standard work on the system, although it documents an early version, and some features described therein never appeared in the actual system.
  • V. A. Vyssotsky, F. J. Corbató, R. M. Graham, Structure of the Multics Supervisor (AFIPS 1965) describes the basic internal structure of the Multics kernel.
  • Jerome H. Saltzer, Traffic Control in a Multiplexed Computer System (MIT Project MAC, June 1966) is the original description of the idea of switching kernel stacks; one of the classic papers of computer science.
  • R. C. Daley, P. G. Neumann, A General Purpose File System for Secondary Storage (AFIPS, 1965) describes the file system, including the access control and backup mechanisms.
  • R. J. Feiertag, E. I. Organick, The Multics Input/Output System. Describes the lower levels of the I/O implementation.
  • A. Bensoussan, C. T. Clingen, R. C. Daley, The Multics Virtual Memory: Concepts and Design, (ACM
    Association for Computing Machinery
    The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...

     SOSP, 1969) describes the Multics memory system in some detail.
  • Paul Green, [ftp://ftp.stratus.com/pub/vos/multics/pg/mvm.html Multics Virtual Memory - Tutorial and Reflections] is a good in-depth look at the Multics storage system.
  • Roger R. Schell, Dynamic Reconfiguration in a Modular Computer System (MIT Project MAC, 1971) describes the reconfiguration mechanisms.

Security

  • Paul A. Karger, Roger R. Schell, Multics Security Evaluation: Vulnerability Analysis (Air Force Electronic Systems Division, 1974) describes the classic attacks on Multics security by a "tiger team
    Tiger team
    A tiger team is a group of experts assigned to investigate and/or solve technical or systemic problems. The term may have originated in aerospace design but is also used in other settings, including information technology and emergency management...

    ".
  • Jerome H. Saltzer, Michael D. Schroeder, The Protection of Information in Computer Systems (Proceedings of the IEEE, September 1975) describes the fundamentals behind the first round of security upgrades; another classic paper.
  • M. D. Schroeder, D. D. Clark, J. H. Saltzer, D. H. Wells. Final Report of the Multics Kernel Design Project (MIT LCS, 1978) describes the security upgrades added to produce an even more improved version.
  • Paul A. Karger, Roger R. Schell, Thirty Years Later: Lessons from the Multics Security Evaluation (IBM, 2002) is an interesting retrospective which compares actual deployed security in today's hostile environment with what was demonstrated to be possible decades ago. It concludes that Multics offered considerably stronger security than most systems commercially available in 2002.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK