Multics: An Ancestor of Unix
multicians.org
multicians.org
Kudos to the people who put the effort into doing this.
There was a post earlier about the Windows 95 UI development that referenced and old site written by original employees on the project talking about the development process. But the site was offline and didn’t get picked up by the archives.
There’s so many of those major contributions like Microsoft, Nintendo, Sony, all of the mainframe people and early PC companies, etc who probably have a thousand small stories that the world would benefit from collecting.
Digital archival and documentation is a noble and valuable philanthropic cause IMO, which I hope continues to grow. Especially as all of us “early” programmers start getting older and history starts repeating itself at a faster rate.
Multics was supposed to be the future of operating systems. But it was tied to rather specialized hardware, and when that hardware went away, so did Multics.
One of the last Multics systems was DOCKMASTER, at NSA. Stayed up until 1998. That was their public-facing machine in the early days of the Internet. Only thing they felt was secure enough for even unclassified email and document access.[1]
The story goes that a few engineers at Honeywell approached management and claimed that they could build a Multics system supermini computer, sell it, and make money, but management said that they would not be able to build such a computer and wouldn't be able to sell it, and it wouldn't make money.
So, the engineers started Prime Computer in Framingham, MA, used bit-sliced architecture for a single board computer, had rings of security and gate segments for applications code to jump into the operating system code for services, and wrote the operating system in a tweaked version of Fortran, later in part a tweaked version of PL/I. They had an hierarchical file system with security from authentication, capabilities, and attribute control lists (ACLs).
IIRC in 1980, they gave investors the highest ROI of any stock on the NYSE.
There are claims that the Intel 386 borrowed heavily from Prime.
That strikes me as being one of those pivotal moments in computing history.
But despite MAC's lobbying, System/360 left out virtual memory, signalling that IBM was focussed more on their commercial batch systems than on the smaller university/scientific market.
GE's 635, on the other hand, had privilege rings and virtual memory built-in. So did the DEC PDP-6 (in a primitive form). So those are the machines Project MAC purchased.
Now MIT might not have been a big source of revenue for IBM but it was still a star customer from an image perspective. And IBM realized the error of their ways pretty quickly, and got a crash program going to modify the Model 65 with paging, which was out by 1966. But they were too late, really. GE, DEC and a bunch of other companies were already eating into the timeshare market aggressively.
If the original higher-end IBM System/360 machines had included paging hardware from the start, the history of computing could have indeed gone very differently.
The problem long term was that while every MMU option was available, the Multics base platform remained an extended, async 7090 (itself an extended (circa 1952) 704), rapidly falling behind in performance (and ability to be re-implemented quickly/well in rapidly advancing technology). Look at the trajectory from 645 to 6080 to DPS8 and shudder. Compare with the 360 as a modern ISA re/implemented at close to the state of the art.
Multics proper became excellent, highly capable software but to use the term the Germans used about Austria-Hungary in WW1, it was "shackled to a corpse".
Later of course, CP67/CMS became VM/CMS (Virtual Machine CMS) which was actually a big deal for IBM for decades if not to the present.
IIRC CP67/CMS was written at IBM's Cambridge Scientific Center, supposedly as a tool for operating system development. But by 1973, a company in Stamford, CT, NCSS (National CSS), was selling general purpose time-sharing service on 360/67 with CP67/CMS via just dial-up communications.
So, could log on and get ones own virtual machine, complete with a software command IPO (initial program load), the button on the front of the 360 machines. Then logged on could write and run assembler (made writing assembler surprisingly easy), PL/I, etc. If the software hit a bug with, say, an infinite loop, then could use IPO to start over!
NCSS service was popular around DC, and NCSS had an office in VA just over Key Bridge from DC with a leased phone line connection back to CT for a line printer. So, if wanted to print out a stack of paper 1" thick, could do that!
NCSS service was not cheap, but due to the Cold War and the Space Race there was plenty of money sloshing around DC for paying the NCSS bills.
IIRC in 1973 it was 6000 lines of typing in PL/I at NCSS that scheduled the fleet at FedEx, alleviated some concerns of the BoD, enabled some crucial funding, "Solved the most important problem facing the start of Federal Express" (COB F. Smith), and essentially saved the company (once of at least two times the company got saved).
By 1974, Brown University, especially its Division of Applied Mathematics, had a CP67/CMS system essentially donated by Tom Watson, Jr., who had gone to Brown. Brown instrumented the system to collect data on its operations. Statistician U. Grenander did a lot of statistical work with that data. He remarked, IRCC, that the data from the computer operations "looked nothing like biomedical data" he and statistics had long been used to.
And IBM's System/370 upgrade from System/360 had essentially all the 370/67 hardware features together with virtual machine assist that made some of the virtual machine faking faster.
Prime had an hierarchical file system in the 1970s, but as late as 1994 at IBM's Watson lab VM/CMS still didn't have hierarchies in the file system. As a partial alleviation, could have virtual disks, each with a drive letter.
Of course eventually the Multics ideas of authentication, capabilities, and access control lists made their way into IBM's RACF (Resource Access Control Facility) and much more generally in computing, e.g., with authentication via MIT's Kerberos with RSA (Rivest, Shamir, Adelman) public key encryption.
To me what is amazing are (i) a lot of concepts from those days are still with us, (ii) can buy, on-line, quantity 1, e.g., for about $100 an AMD FX-8350 processor with 8 cores, 64 bit addressing, and a standard clock speed of 4.0 GHz, (iii) can get at a small home office up/download Internet data rates of 1 Gbps for some reasonable price, say, $100 a month, and (iv) the early players IBM, GE, Honeywell, Prime, DEC, Data General, and more are no longer involved or are taking a back seat against QUALCOMM, Intel, AMD, Applied Materials, TSMC, Cisco, Microsoft, Apple, etc.
And, yet, the descendants of the 360 are the only mainframes that survived until now.
I’m guessing the mention of Alpha in your comment was a slip of the tongue/brain, given the topic :)
Mutics is notable though because it was sort of the progenitor of so much that came later, including ultimately Linux.
Various companies are covered here and there, e.g. Simulogics has a fair bit of Data General material. http://www.simulogics.com/
No, really: https://en.wikipedia.org/wiki/Unix
Plan 9 is obviously a joke name too.
Bell Labs replacing the Outer Space in Plan 9 From Outer Space, a schlocky 1959 sci-fi horror film. The subtitle is UNSPEAKABLE HORRORS FROM OUTER SPACE PARALYZE THE LIVING AND RESURRECT THE DEAD.
In particular, one of the most expensive things about mmap today is actually munmap, that trashes the translation lookaside buffer ("TLB"), the cache of memory map lookups, on all the other cores that run threads in the same process. When you had only the one core, that didn't need to happen.
NetBSD used to have "UVM", where they played memory mapping tricks to get "zero-copy" networking. They had to give it up when they went to multiple cores.
As for the expensive MMU operations, as someone pointed out before, they were not always as expensive as we currently have to make them when we need to guard against leaks between processes and multiple CPUs sharing unified memories and caches.
[1]: http://doc.cat-v.org/plan_9/1st_edition/designing_plan_9
However I think plan9 started as a skunkworks project well before Unix v9 was released.
[edit - wikipedia maybe supports me ]
> Plan 9 from Bell Labs was originally developed, starting in the mid-1980s,
For instance:
> Plan 9 from Bell Labs is a research system developed at Bell Labs starting in the late 1980s.
https://9p.io/plan9/about.html
The Wikipedia's citation on the sentence saying "mid-1980s" is the press release for the 2nd edition of Plan 9 (1995, the first generally available version), which doesn't mention anything of the sort. That is to say: Wikipedia's "mid-1980s" claim isn't well-attributed.
(The 1st edition of Plan 9 (1992) wasn't generally available, and was only made available to universities.)
(My above 1987 citation states that they worked on it in 1987 and implies, but does not explicitly state, that there was no work before that.)
The abstract notes that it was published in DaemonNews in 1999.
I tracked down the DaemonNews publication: https://web.archive.org/web/20000819035036/http://www.daemon...
The copy in DaemonNews includes citations that were elided from the copies on cat-v.org and darwinsys.com. Notably, we see that line change from
> (More recently, much of this work has been consolidated into an operating system called Plan 9 From Bell Laboratories.)
to
> (More recently, much of this work has been consolidated into an operating system called Plan 9 From Bell Laboratories.)[Pike1990a, Pike1995a]
The Multics site is definitely worth spending some quality time with.