• Welcome to the new Internet Infidels Discussion Board, formerly Talk Freethought.

1960's OS Multics: ahead of its time?

lpetrich

Contributor
Joined
Jul 27, 2000
Messages
25,452
Location
Eugene, OR
Gender
Male
Basic Beliefs
Atheist
 Multics, developed in the early to mid 1960's, was an operating system developed in the early to mid 1960's. It was developed with very ambitious goals, and while it itself has fallen on the wayside, other systems have successfully implemented its goals. Unix was named after it with its name suggesting that it is a shrunken version of Multics.

Multics History: it had these 9 major goals:
  1. Convenient remote terminal use.
  2. Continuous operation analogous to power & telephone services.
  3. A wide range of system configurations, changeable without system or user program reorganization.
  4. A high reliability internal file system.
  5. Support for selective information sharing.
  6. Hierarchical structures of information for system administration and decentralization of user activities.
  7. Support for a wide range of applications.
  8. Support for multiple programming environments & human interfaces.
  9. The ability to evolve the system with changes in technology and in user aspirations.
Multics Features: it had these 9 notable features:
  1. Segmented memory
  2. Virtual memory
  3. High-level language implementation
  4. Shared memory multiprocessor
  5. Multi-language support
  6. Relational database
  7. Security
  8. On-line reconfiguration
  9. Software engineering

Let's see where we are now.

Convenient remote terminal use. Accessing a computer with lots of dumb terminals had been common for mainframes and minicomputers in the 1970's, 1980's, and maybe a bit of the 1990's, but that has fallen by the wayside. But a fancier version of it is now almost universal: client-server computing. A user runs some program on a computer that they interact with, a program that communicates with some server. World Wide Web software is client-server, and also e-mail, instant-messaging, chat systems, and even command-line access, with the client software acting like a dumb terminal.

Continuous operation analogous to power & telephone services. Very typical of servers nowadays, and even some desktop computers.

A wide range of system configurations, changeable without system or user program reorganization. Some Unix flavors, like Linux, have been run on a wide variety of systems, everything from smartphones to supercomputers.

A high reliability internal file system. Yes. Some file systems have journaling, or tracking of changes, so that they can revert to earlier states in case of an accidental shutdown. Some file systems also have built-in redundancy: RAID systems. Their information is stored in several disks, and if one of them fails, then the others will have copies of its contents.

Support for selective information sharing. More-or-less universal, except for very small systems. Most web servers are read-only to all users other than their admins, for instance.

Hierarchical structures of information for system administration and decentralization of user activities. Very common among hosting companies. Their customers administer their own individual spaces in the hosting company's servers.

Support for a wide range of applications. Yes.

Support for multiple programming environments & human interfaces. Yes.

The ability to evolve the system with changes in technology and in user aspirations. IBM beat Multics with its System/360 series, though that was hardware and not software. But its mainframe OSes have lived up to that vision, as well as several Unix flavors and some desktop-computing OSes: DOS, Windows, MacOS Classic, MacOS X, AmigaOS, etc.

Segmented memory Referring to separate memory spaces. Nowadays almost universal, except for small systems or very specialized systems. Mainframe and minicomputer OSes have had that since the 1980's at least, and desktop-computer OSes since the 1990's.

Virtual memory Like separate memory spaces, though some desktop OSes got virtual memory even with a single memory space.

High-level language implementation Multics was coded in PL/1 ("Programming Language One"), intended to be a comprehensive high-level programming language. This made it relatively easy to rebuild for different hardware architectures. In the early 1970's, the creators of Unix ported it to a different high-level language, C, and Unix flavors have been written in C ever since. Also written in C are OSX and Windows.

Shared memory multiprocessor Like multicore CPU chips. Most OSes that run on them will distribute running software among them.

Multi-language support Yes.

Relational database Not usually a part of an OS, but often used in servers.

Security When it was developed, Multics had a lot of security features that were recently developed, even if not necessarily in Multics itself. Features that are now common, like passwords, running core OS code at a higher level of CPU privilege than most other code, access privileges for files, etc.

On-line reconfiguration Hot-swappable just about everything. Some mainframes and high-end servers have that for core components, like CPU boards and memory modules, but most desktop-computer OSes have that only for peripherals, like external disk drives, keyboards, mice, etc. Apple was one of the first to do that for desktop computers.

Software engineering
The development team spent a lot of effort finding ways to build Multics in a disciplined way. The Multics System Programmer's Manual (MSPM) was written before implementation started: it was 3000 or so pages and filled about 4 feet of shelf space in looseleaf binders. (Clingen and Corbató mention that we couldn't have built the system without the invention of the photocopier.) High level language, design and code review, structured programming, modularization and layering were all employed extensively to manage the complexity of the system, which was one of the largest software development efforts of its day.
 
Back
Top Bottom