[TUHS] Early multiprocessor Unix

Warner Losh imp at bsdimp.com
Tue Nov 29 00:19:03 AEST 2022


On Mon, Nov 28, 2022, 7:15 AM Clem Cole <clemc at ccc.com> wrote:

> Paul, the other thing I should point out -- ghg's work was
> widely distributed amount the BSD licenses. I somewhat wonder why the Naval
> Post Grad school's work was not.   My guess is that USENIX was still in its
> formative stages when the latter did their work, whereas, by the time of
> George's hack, BSD/Vaxen was being used for teaching as University
> timesharing systems so his 'upgrade' was a cheap solution.
>>


I know the Perdue work on Kirk's DVD collection....

Warner

Warner

On Mon, Nov 28, 2022 at 9:05 AM Clem Cole <clemc at ccc.com> wrote:
>
>> As far as I know, the first non-commercial work was done at the Naval
>> Post Grad school with V6.  I have never seen the code for it, only a paper,
>> so I don't know too much about it to comment.
>>
>> A few years later (1980), Goble's work became the Purdue Vax [
>> https://en.wikipedia.org/wiki/George_H._Goble] - which used a
>> master-slave configuration. He spliced a second 780 CPU onto the SMB and,
>> with some interesting work, allowed the second CPU to run user code.  This
>> was extremely effective for their usage case -- timesharing of students.
>> If we don't have the code on TUHS, we should probably dig it up, as it was
>> widely distributed. The other thing he did was splice an 11/40 onto the UBA
>> of the same system for debugging - which was a pretty cool hack.  He found
>> a couple of interesting BSD kernel issues, including a famous CVE using his
>> real-time monitor -- there is a USENIX paper on that tool that is work
>> checking out.
>>
>> The first commercial MP Unix was the Masscomp MC500/MP, which was
>> originally developed as Goble-style Master/Slave and released in RTU 2.0.
>> A year later, with RTU 3.0 and the release of the MC5000 family, it was
>> fully SMP.
>>
>> After that, several SMP UNIX started to appear.   Each uses its own lock
>> scheme.   If you are interested, I recommend getting a copy of Schimmel's
>> book: 'Unix on Modern Processors' which discusses many (most) of the
>> challenges.
>>
>>
>>>>
>> On Mon, Nov 28, 2022 at 8:25 AM Paul Ruizendaal <pnr at planet.nl> wrote:
>>
>>> The discussion about the 3B2 triggered another question in my head: what
>>> were the earliest multi-processor versions of Unix and how did they relate?
>>>
>>> My current understanding is that the earliest one is a dual-CPU VAX
>>> system with a modified 4BSD done at Purdue. This would have been late 1981,
>>> early 1982. I think one CPU was acting as master and had exclusive kernel
>>> access, the other CPU would only run user mode code.
>>>
>>> Then I understand that Keith Kelleman spent a lot of effort to make Unix
>>> run on the 3B2 in a SMP setup, essentially going through the source and
>>> finding all critical sections and surrounding those with spinlocks. This
>>> would be around 1983, and became part of SVr3. I suppose that the “spl()”
>>> calls only protected critical sections that were shared between the main
>>> thread and interrupt sequences, so that a manual review was necessary to
>>> consider each kernel data structure for parallel access issues in the case
>>> of 2 CPU’s.
>>>
>>> Any other notable work in this area prior to 1985?
>>>
>>> How was the SMP implementation in SVr3 judged back in its day?
>>>
>>> Paul
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20221128/5002434c/attachment.htm>


More information about the TUHS mailing list