CP-40 was a research precursor to CP-67 , which in turn was part of IBM's then-revolutionary CP[-67]/CMS – a virtual machine / virtual memory time-sharing operating system for the IBM System/360 Model 67 , and the parent of IBM's VM family . CP-40 ran multiple instances of client operating systems – particularly CMS , the Cambridge Monitor System , built as part of the same effort. Like CP-67, CP-40 and the first version of CMS were developed by IBM's Cambridge Scientific Center (CSC) staff, working closely with MIT researchers at Project MAC and Lincoln Laboratory . CP-40/CMS production use began in January 1967. CP-40 ran on a unique, specially modified IBM System/360 Model 40 .
79-415: CP-40 was a one-off research system. Its declared goals were: However, there was also an important unofficial mission: To demonstrate IBM's commitment to and capability for supporting time-sharing users like MIT. CP-40 (and its successor) achieved its goals from technical and social standpoints – they helped to prove the viability of virtual machines, to establish a culture of time-sharing users, and to launch
158-453: A CP-40 virtual machine, it was decided that a new, simple, single-user interactive operating system would be best for supporting interactive time-sharing users. This would avoid the complexity and overhead of running a multi-user system like CTSS . (Contrast this with IBM's OS/MVT-TSO and its successors – essentially a time-sharing operating system running as a single task under an IBM batch operating system. With CMS, each interactive user gets
237-424: A device, device type, directory prefix, file path separator, or file type. File systems typically support organizing files into directories , also called folders , which segregate files into groups. This may be implemented by associating the file name with an index in a table of contents or an inode in a Unix-like file system. Directory structures may be flat (i.e. linear), or allow hierarchies by allowing
316-652: A directory to contain directories, called subdirectories. The first file system to support arbitrary hierarchies of directories was used in the Multics operating system. The native file systems of Unix-like systems also support arbitrary directory hierarchies, as do, Apple 's Hierarchical File System and its successor HFS+ in classic Mac OS , the FAT file system in MS-DOS 2.0 and later versions of MS-DOS and in Microsoft Windows ,
395-443: A file system creates a file, it allocates space for data. Some file systems permit or require specifying an initial space allocation and subsequent incremental allocations as the file grows. To delete a file, the file system records that the file's space is free; available to use for another file. A local file system manages storage space to provide a level of reliability and efficiency. Generally, it allocates storage device space in
474-422: A file system implementation. The physical file system layer provides relatively low-level access to a storage device (e.g. disk). It reads and writes data blocks , provides buffering and other memory management and controls placement of blocks in specific locations on the storage medium. This layer uses device drivers or channel I/O to drive the storage device. A file name , or filename , identifies
553-417: A file to consuming applications and in some cases users. A file name is unique so that an application can refer to exactly one file for a particular name. If the file system supports directories, then generally file name uniqueness is enforced within the context of each directory. In other words, a storage can contain multiple files with the same name, but not in the same directory. Most file systems restrict
632-697: A forked file system on the Macintosh, and Microsoft supports streams in NTFS. Some file systems maintain multiple past revisions of a file under a single file name; the file name by itself retrieves the most recent version, while prior saved version can be accessed using a special naming convention such as "filename;4" or "filename(-4)" to access the version four saves ago. See comparison of file systems#Metadata for details on which file systems support which kinds of metadata. A local file system tracks which areas of storage belong to which file and which are not being used. When
711-472: A granular manner, usually multiple physical units (i.e. bytes ). For example, in Apple DOS of the early 1980s, 256-byte sectors on 140 kilobyte floppy disk used a track/sector map . The granular nature results in unused space, sometimes called slack space , for each file except for those that have the rare size that is a multiple of the granular allocation. For a 512-byte allocation, the average unused space
790-505: A large number of papers about Multics, and various components of it; a fairly complete list is available at the Multics Bibliography page and on a second, briefer 1994 Multics bibliography (text format). The most important and/or informative ones are listed below. Flat file system In computing , a file system or filesystem (often abbreviated to FS or fs ) governs file organization and access. A local file system
869-485: A long and short form), and symbolic links between directories are also supported. Multics is the first to use the now-standard concept of per- process stacks in the kernel , with a separate stack for each security ring. It is also the first to have a command processor implemented as ordinary user code – an idea later used in the Unix shell . It is also one of the first written in a high-level language (Multics PL/I ), after
SECTION 10
#1732852567889948-537: A matchbox", extends the Multics design to a networked graphics workstation environment. The Stratus VOS operating system of Stratus Computer (now Stratus Technologies ) is 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 are extended in Stratus VOS to support
1027-460: A much more versatile and flexible operating system, and it failed miserably". This position, however, is said to have been discredited in the computing community because many of Multics' technical innovations are used in modern commercial computing systems. The permanently resident kernel of Multics, a system derided in its day as being too large and complex, was 135 KB of code. The first MIT GE-645 had 512 kilowords of memory (2 MiB),
1106-492: A new line of fault tolerant computer systems supporting secure, reliable transaction processing . Stratus VOS is the most directly related descendant of Multics still in active development and production usage today. General Motors ' Multiple Console Time Sharing System (MCTS) for the Control Data Corporation STAR-100 computer was based on Multics. The protection architecture of Multics, restricting
1185-447: A private virtual machine.) By September 1965, many important CMS design decisions had already been made: These were radical departures from the difficult file naming, job control (via JCL), and other requirements of IBM's "real" operating systems. (Some of these concepts had been goals for operating systems from other vendors, such as Control Data Corporation and DEC .) The CMS file system design, with its flat directory structure,
1264-458: A process first attempts to begin execution in them. Since different processes can use different search rules , different users can end up using different versions of external routines. Equally importantly, with the appropriate settings in the Multics security facilities, the code in the other segment can gain access to data structures maintained in a different process. Dynamic linking in Multics does not require special dynamic-link libraries (DLLs) ;
1343-449: A program can dynamically link to any executable segment to which it has access rights. Thus, to interact with an application running in part as a daemon (in another process), a user's process simply performs a normal procedure-call instruction to a code segment to which it had dynamically linked (a code segment that implemented some operation associated with the daemon). The code in that segment can then modify data maintained and used in
1422-529: A remote computer services industry. The project became embroiled in an internal IBM political war over time-sharing versus batch processing; and it failed to win the hearts and minds of the academic computer science community, which ultimately turned away from IBM to systems like Multics , UNIX , TENEX , and various DEC operating systems. Ultimately the virtualization concepts developed in the CP-40 project bore fruit in diverse areas, and remain important today. CP-40
1501-418: A sizeable customer base. In contrast, the full potential of Multics’ flexibility for even mundane tasks was not easy to comprehend in that era and its features were generally outside the skill set of contemporary business analysts. The scope of this disconnect was concretized by an anecdote conveyed by Paul Stachour, CNO/CSC: When American Telephone and Telegraph was changing its name to just AT&T in 1983,
1580-459: A staffer from Honeywell’s legal department showed up and asked a Multician if he could arrange to have the name changed in all of their computerized documents. When asked when the process could be completed, the Multician replied, "It's done." The staffer repeated that he needed hundreds perhaps thousands of documents updated. The Multician explained that he had executed a global search and replace as
1659-431: A stream of bytes . Typically, to read file data, a program provides a memory buffer and the file system retrieves data from the medium and then writes the data to the buffer. A write involves the program providing a buffer of bytes that the file system reads and then stores to the medium. Some file systems, or layers on top of a file system, allow a program to define a record so that a program can read and write data as
SECTION 20
#17328525678891738-585: A structure; not an unorganized sequence of bytes. If a fixed length record definition is used, then locating the n record can be calculated mathematically, which is relatively fast compared to parsing the data for record separators. An identification for each record, also known as a key, allows a program to read, write and update records without regard to their location in storage. Such storage requires managing blocks of media, usually separating key blocks and data blocks. Efficient algorithms can be developed with pyramid structures for locating records. Typically,
1817-445: A sub-contractor) to develop a security kernel for Multics. This would involve reducing the size of the Multics hardcore by moving specific components of the supervisor out of Ring 0. One of the initial steps after carrying out a security evaluation was the implementation of a Multilevel security framework within Multics called AIM (Access Isolation Mechanism). This provided Mandatory access control which could be enabled to supplement
1896-416: A transcribed 2007 interview with Peter Seibel refers to Multics as "overdesigned and overbuilt and over everything. It was close to unusable. They [Massachusetts Institute of Technology] still claim it's a monstrous success, but it just clearly wasn't". On the influence of Multics on Unix, Thompson stated that "the things that I liked enough (about Multics) to actually take were the hierarchical file system and
1975-409: A truly enormous amount at the time, and the kernel used a moderate portion of Multics main memory. The entire system, including the operating system and the complex PL/I compiler , user commands, and subroutine libraries, consists of about 1500 source modules. These average roughly 200 lines of source code each, and compile to a total of roughly 4.5 MiB of procedure code, which was fairly large by
2054-432: A user's use of storage space. A file system typically ensures that stored data remains consistent in both normal operations as well as exceptional situations like: Recovery from exceptional situations may include updating metadata, directory entries and handling data that was buffered but not written to storage media. A file system might record events to allow analysis of issues such as: Many file systems access data as
2133-405: Is 256 bytes. For 64 KB clusters, the average unused space is 32 KB. Generally, the allocation unit size is set when the storage is configured. Choosing a relatively small size compared to the files stored, results in excessive access overhead. Choosing a relatively large size results in excessive unused space. Choosing an allocation size based on the average size of files expected to be in
2212-848: Is a capability of an operating system that services the applications running on the same computer . A distributed file system is a protocol that provides file access between networked computers. A file system provides a data storage service that allows applications to share mass storage . Without a file system, applications could access the storage in incompatible ways that lead to resource contention , data corruption and data loss . There are many file system designs and implementations – with various structure and features and various resulting characteristics such as speed, flexibility, security, size and more. Files systems have been developed for many types of storage devices , including hard disk drives (HDDs), solid-state drives (SSDs), magnetic tapes and optical discs . A portion of
2291-413: Is called by putting the active function name and the arguments to the active function in square brackets [ and ] . The string returned by the active function is substituted into the command in place of the call to the active function. For example, when the command echo [working_dir] is processed, the active function working_dir is run; it returns the full path of the working directory , which
2370-534: Is invisible to the end user and the system still works correctly. However this can degrade performance on some storage hardware that work better with contiguous blocks such as hard disk drives . Other hardware such as solid-state drives are not affected by fragmentation. A file system often supports access control of data that it manages. The intent of access control is often to prevent certain users from reading or modifying certain files. Access control can also restrict access by program in order to ensure that data
2449-510: Is modified in a controlled way. Examples include passwords stored in the metadata of the file or elsewhere and file permissions in the form of permission bits, access control lists , or capabilities . The need for file system utilities to be able to access the data at the media level to reorganize the structures and provide efficient backup usually means that these are only effective for polite users but are not effective against intruders. Methods for encrypting file data are sometimes included in
IBM CP-40 - Misplaced Pages Continue
2528-400: Is one of the earliest multiprocessor systems. Multics is the first major operating system to be designed as a secure system from the outset. Despite this, early versions of Multics were compromised repeatedly. This led to further work that made the system more secure, and prefigured modern security engineering techniques. Break-ins became very rare once the second-generation hardware base
2607-433: Is part of some segment, which appears in the file system ; this includes the temporary scratch memory of the process, its kernel stack, etc. Segments are limited to 256 kilowords , just over 1 MB , because Multics hardware had 18-bit word addresses for the content of a segment. Larger files are "multisegment files" and are handled differently. The 256 kiloword limit was rarely encountered in practice, because at
2686-447: Is 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
2765-550: Is stored inside the allocation group itself. Additional attributes can be associated on file systems, such as NTFS , XFS , ext2 , ext3 , some versions of UFS , and HFS+ , using extended file attributes . Some file systems provide for user defined attributes such as the author of the document, the character encoding of a document or the size of an image. Some file systems allow for different data collections to be associated with one file name. These separate collections may be referred to as streams or forks . Apple has long used
2844-434: Is substituted into the command, so that the echo command prints the working directory. Some programs can act either as commands or as active functions; when run as a command, its result is printed, and when run as an active function, its result is returned as a string. Some common active functions are: Peter H. Salus , author of a book covering Unix's early years, stated one position: "With Multics they tried to have
2923-642: The Burroughs MCP system written in ESPOL , an expanded version of ALGOL . The deployment of Multics into secure computing environments also spurred the development of innovative supporting applications. In 1975, Morrie Gasser of MITRE Corporation developed a pronounceable random word generator to address password requirements of installations such as the Air Force Data Services Center (AFDSC) processing classified information. To avoid guessable passwords,
3002-656: The NTFS file system in the Windows NT family of operating systems, and the ODS-2 (On-Disk Structure-2) and higher levels of the Files-11 file system in OpenVMS . In addition to data, the file content, a file system also manages associated metadata which may include but is not limited to: A file system stores associated metadata separate from the content of the file. Most file systems store
3081-449: The telephone and electricity utilities . Modular hardware structure and software architecture are used to achieve this. The system can grow in size by simply adding more of the appropriate resource, be it computing power, main memory, or disk storage. Separate access control lists on every file provide flexible information sharing, but complete privacy when needed. Multics has a number of standard mechanisms to allow engineers to analyze
3160-415: The 1.0 release of the emulator, and adds a few new features, including command line recall and editing using the video system. The following is a list of programs and commands for common computing tasks that are supported by the Multics command-line interface . The Multics shell language supports "active functions", which are similar to commands, but which return a string value. An active function
3239-551: The AFDSC decided to assign passwords but concluded the manual assignment required too much administrative overhead. Thus, a random word generator was researched and then developed in PL/I. Instead of being based on phonemes , the system employed phonemic segments (second order approximations of English) and other rules to enhance pronounceability and randomness, which was statistically modeled against other approaches. A descendant of this generator
IBM CP-40 - Misplaced Pages Continue
3318-437: The CP-40 virtual memory hardware, and states that it was "unique in that it included a parallel-search register bank to speed dynamic address translation. With funds supplied by Cambridge, IBM engineer[s]... built a 64-register associative memory and integrated it into a 360/40. The one-of-a-kind result was shipped to Cambridge early in 1966." Although virtualization support was an explicit goal for CSC's modified Model 40, this
3397-577: The United States. In 2006, Bull SAS released the source code of Multics versions MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4 & MR12.5 under a free software license. The last known Multics installation running natively on Honeywell hardware was shut down on October 30, 2000, at the Canadian Department of National Defence in Halifax, Nova Scotia, Canada. In 2006 Bull HN released
3476-412: 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 's VME operating system. The Edinburgh Multiple Access System (EMAS) draws particularly on the one-level store concept used by Multics, providing access to files only by mapping them into memory. All memory space is associated with a segment. The literature contains
3555-711: The already existing Discretionary access control that Multics already possessed. The resulting Project Guardian ran until termination in 1976; whilst most of its changes were not added to Multics, some parts of the project such as the proposed Secure Front End Processor was productized by Honeywell as SCOMP (Secure Communications Processor). The SCOMP and it's STOP operating system would eventually evolved via XTS-200 and XTS-300 into current XTS-400 offering of secure operating systems. Honeywell continued system development until 1985. About 80 multimillion-dollar sites were installed, at universities, industry, and government sites. The French university system had several installations in
3634-421: The computer main memory can be set up as a RAM disk that serves as a storage device for a file system. File systems such as tmpfs can store files in virtual memory . A virtual file system provides access to files that are either computed on request, called virtual files (see procfs and sysfs ), or are mapping into another, backing storage. From c. 1900 and before the advent of computers
3713-519: The concepts. The logical file system layer provides relatively high-level access via an application programming interface (API) for file operations including open, close, read and write – delegating operations to lower layers. This layer manages open file table entries and per-process file descriptors. It provides file access, directory operations, security and protection. The virtual file system , an optional layer, supports multiple concurrent instances of physical file systems, each of which called
3792-508: The control program and simulated. Similarly, references to virtual memory locations not present in main memory cause page faults , which again were handled by control program rather than reflected to the virtual machine. Further details on this implementation are found in CP/CMS (architecture) . The basic architecture and user interface of CP-40 were carried forward into CP-67/CMS , which evolved to become IBM's current VM product line. A Model 67
3871-469: The daemon. When the action necessary to commence the request is completed, a simple procedure return instruction returns control of the user's process to the user's code. Multics also supports extremely aggressive on-line reconfiguration : central processing units , memory banks, disk drives, etc. can be added and removed while the system continues operating. At the MIT system, where most early software development
3950-407: The designers' rejections of Multics' complexity in favor of a more straightforward and workable approach for smaller computers. (Garfinkel and Abelson cite an alternative origin: Peter Neumann at Bell Labs, watching a demonstration of the prototype, suggested the pun name UNICS – pronounced " eunuchs " – as a "castrated Multics", although Dennis Ritchie is said to have denied this. ) Ken Thompson, in
4029-684: The development context of CP-40. Direct quotes rather than paraphrases are provided here, because the authors' perspectives color their interpretations. Also see History of CP/CMS for additional context. Multics Multics (" MULTiplexed Information and Computing Service ") is an influential early time-sharing operating system based on the concept of a single-level memory . Nathan Gregory writes that Multics "has influenced all modern operating systems since, from microcomputers to mainframes." Initial planning and development for Multics started in 1964, in Cambridge, Massachusetts . Originally it
SECTION 50
#17328525678894108-752: The early 1980s. After Honeywell stopped supporting Multics, users migrated to other systems, such as Unix. In 1985, Multics was issued certification as a B2 level secure operating system using the Trusted Computer System Evaluation Criteria from the National Computer Security Center (NCSC), a division of the NSA ; it was the first operating system evaluated to this level. Multics was distributed from 1975 to 2000 by Groupe Bull in Europe , and by Bull HN Information Systems Inc. in
4187-416: The file system. This is very effective since there is no need for file system utilities to know the encryption seed to effectively manage the data. The risks of relying on encryption include the fact that an attacker can copy the data and use brute force to decrypt the data. Additionally, losing the seed means losing the data. Some operating systems allow a system administrator to enable disk quotas to limit
4266-495: The length of a file name. Some file systems match file names as case sensitive and others as case insensitive. For example, the names MYFILE and myfile match the same file for case insensitive, but different files for case sensitive. Most modern file systems allow a file name to contain a wide range of characters from the Unicode character set. Some restrict characters such as those used to indicate special attributes such as
4345-595: The names of all the files in one directory in one place—the directory table for that directory—which is often stored like any other file. Many file systems put only some of the metadata for a file in the directory table, and the rest of the metadata for that file in a completely separate structure, such as the inode . Most file systems also store metadata not associated with any one particular file. Such metadata includes information about unused regions— free space bitmap , block availability map —and information about bad sectors . Often such information about an allocation group
4424-411: The performance of the system, as well as a number of adaptive performance optimization mechanisms. Due to its many novel and valuable ideas, Multics has had a significant influence on computer science despite its faults. Its most lasting effect on the computer industry was to inspire the creation of Unix, which carried forward many Multics features, but was able to run on less-expensive hardware. Unix
4503-402: The process simply uses normal central processing unit (CPU) instructions, and the operating system takes care of making sure that all the modifications were saved to disk . In POSIX terminology, it is as if every file were mmap () ed; however, in Multics there is no concept of process memory , separate from the memory used to hold mapped-in files, as Unix has. All memory in the system
4582-404: The project in 1969 as it became clear it would not deliver a working system in the short term. Shortly thereafter, GE decided to exit the computer industry entirely and sold the division to Honeywell in 1970. Honeywell offered Multics commercially, but with limited success. Multics has numerous features intended to ensure high availability so that it would support a computing utility similar to
4661-474: The project in 1969; some of the people who had worked on it there went on to create the Unix system. Multics development continued at MIT and General Electric. At MIT in 1975, use of Multics was declining and did not recover by 1976 to prior levels. Finally by slashing prices, MIT managed to lure users back to Multics in 1978. In 1974 Honeywell entered into a development contract with the Air Force (with MIT as
4740-593: The same address space. They accessed system services, such as the CMS file system, through a simple programming interface to the CMS nucleus , which resided in low memory within the CMS virtual machine. A variety of system calls were provided, most of which would be familiar to current CMS programmers. (Since applications ran in the CMS virtual machine, they could potentially misbehave, by overwriting CMS data, using privileged instructions, or taking other actions that could take over or crash
4819-425: The shell — a separate process that you can replace with some other process". Dennis Ritchie wrote that the design of UNIX was influenced by CTSS . The Prime Computer operating system, PRIMOS , was referred to as "Multics in a shoebox" by William Poduska , a founder of the company. Poduska later moved on to found Apollo Computer , whose AEGIS and later Domain/OS operating systems, sometimes called "Multics in
SECTION 60
#17328525678894898-414: The source code for MR12.5, the final 1992 Multics release, to MIT. Most of the system is now available as free software with the exception of some optional pieces such as TCP/IP . In 2014, Multics was successfully run on current hardware using an emulator created by Multicians Harry Reed and Charles Anthony. The 1.0 release of the emulator is available as of 2017 . Release 12.6f of Multics accompanies
4977-426: The staffer was speaking, and the task was in fact completed. The design and features of Multics influenced the Unix operating system, which was originally written by two Multics programmers, Ken Thompson and Dennis Ritchie . Influence of Multics on Unix is evident in many areas, including the hierarchical file system , redirection , the shell , and the naming of some commands. But the internal design philosophy
5056-434: The standards of the day. Multics compilers generally optimise more for code density than CPU performance, for example using small sub-routines called operators for short standard code sequences, which makes comparison of object code size with modern systems less useful. High code density is a good optimisation choice for Multics as a multi-user system with expensive main memory. During its commercial product history, it
5135-429: The storage tends to minimize unusable space. As a file system creates, modifies and deletes files, the underlying storage representation may become fragmented . Files and the unused space between files will occupy allocation blocks that are not contiguous. A file becomes fragmented if space needed to store its content cannot be allocated in contiguous blocks. Free space becomes fragmented when files are deleted. This
5214-442: The terms file system , filing system and system for filing were used to describe methods of organizing, storing and retrieving paper documents. By 1961, the term file system was being applied to computerized filing alongside the original meaning. By 1964, it was in general use. A local file system's architecture can be described as layers of abstraction even though a particular file system design may not actually separate
5293-416: The time, one megabyte of memory was prohibitively expensive. Another major new idea of Multics was dynamic linking , in which a running process can make external routines available by adding the segments containing them to its address space. This allows applications to always use the latest version of any external routine, since those routines are kept in other segments, which are dynamically linked only when
5372-410: The virtual machine. Of course, doing so could not affect other virtual machines, which were all mutually isolated; nor could it damage the underlying control program. Unlike most operating systems, CP crashes rarely stemmed from application errors – and were thus themselves relatively rare.) The following notes provide brief quotes, primarily from Pugh, Varian, and Creasy [see references], illustrating
5451-472: Was not apparently the case for the original Model 67 design. The fact that virtualization capabilities were ultimately implemented in the -67, and thus enabled the success of CP-67/CMS , speaks to the tenacity and persuasiveness of the CSC team. CMS was first built in 1964 at CSC to run as a "client" operating system under CP-40. The CMS project leader was John Harmon. Although any S/360 operating system could run in
5530-524: Was a cooperative project led by MIT ( Project MAC with Fernando Corbató ) along with General Electric and Bell Labs . It was developed on the GE 645 computer, which was specially designed for it; the first one was delivered to MIT in January 1967. GE offered their earlier 635 systems with an early timesharing system known as "Mark I" and intended to offer the 645 with Multics as a larger successor. Bell withdrew from
5609-498: Was added to Multics during Project Guardian. In 1964, Multics was developed initially for the GE-645 mainframe, a 36-bit system. GE's computer business, including Multics, was taken over by Honeywell in 1970; around 1973, Multics was supported on the Honeywell 6180 machines, which included security improvements including hardware support for protection rings . Bell Labs pulled out of
5688-594: Was adopted; it has hardware support for ring-oriented security , a multilevel refinement of the concept of master mode . A US Air Force tiger team project tested Multics security in 1973 under the codeword ZARF. On 28 May 1997, the American National Security Agency declassified this use of the codeword ZARF. Multics is the first operating system to provide a hierarchical file system , and file names can be of almost arbitrary length and syntax. A given file or directory can have multiple names (typically
5767-531: Was developed at Bell to allow their Multics team to continue their research using smaller machines, first a PDP-7 and ultimately the PDP-11 . Multics implements a single-level store for data access, discarding the clear distinction between files (called segments in Multics) and process memory . The memory of a process consists solely of segments that were mapped into its address space . To read or write to them,
5846-477: Was done, it was common practice to split the multiprocessor system into two separate systems during off-hours by incrementally removing enough components to form a second working system, leaving the rest still running for the original logged-in users. System software development testing could be done on the second system, then the components of the second system were added back to the main user system, without ever having shut it down. Multics supports multiple CPUs; it
5925-417: Was intended to meet the needs of the same community of time-sharing users (notably MIT's Project MAC and Bell Laboratories – though both of these sites became notable IBM sales failures). Three distinct virtual memory systems were implemented by IBM during this period: These systems were all different, but bore a family resemblance. CP-40's CAT box was a key milestone. Pugh et al. cite an IEEE paper about
6004-408: Was kept deliberately simple. Creasy notes: "This structure of multiple disks, each with a single directory, was chosen to be simple but useful. Multi-level linked directories, with files stored in common areas, had been the design trend when we began. We simplified the design of this and other components of CMS to reduce implementation complexity." Application programs running under CMS executed within
6083-477: Was not available for building CP-40, so a custom virtual memory device based on associative memory (the "CAT box") was designed and built for CSC. It involved both hardware and microcode changes to a specially modified System/360 Model 40. These changes gave the unit the technology needed for full virtualization of the System/360 hardware. This modified Model 40 influenced the design of the forthcoming Model 67, which
6162-540: Was often commented internally that the Honeywell Information Systems (HIS) (later Honeywell-Bull) sales and marketing staff were more familiar with and comfortable making the business case for Honeywell's other computer line, the DPS 6 running GCOS . The DPS-6 and GCOS was a well-regarded and reliable platform for inventory, accounting, word processing, and vertical market applications, such as banking, where it had
6241-489: Was the first operating system that implemented complete virtualization, i.e. it provided a virtual machine environment supporting all aspects of its target computer system (a S/360-40), such that other S/360 operating systems could be installed, tested, and used as if on a stand-alone machine. CP-40 supported fourteen simultaneous virtual machines. Each virtual machine ran in "problem state" – privileged instructions such as I/O operations caused exceptions, which were then caught by
#888111