On Mon, Jan 3, 2022 at 5:03 PM Greg 'groggy' Lehey <
grog@lemis.com> wrote:
On Monday, 3 January 2022 at 15:44:11 -0800, Larry McVoy wrote:
> On Mon, Jan 03, 2022 at 05:21:51PM -0600, Doug McIntyre wrote:
>> On Mon, Jan 03, 2022 at 04:15:08PM -0500, Dan Cross wrote:
>> I'd agree, 2.4 was pretty slow and chunky, 2.5 was alright, but 2.5.1 was quite usable and stable.
>> Also by this time, the hardware was going in directions that SunOS wouldn't keep up with.
>
> Yeah, Doug is right, SunOS was pretty simple, it didn't really take advantage
> of SMP, Greg Limes tried to thread it but it was too big a job for one guy.
>
> That's not to say that SunOS couldn't have evolved into SMP, I'm 100%
> sure it could have. It just didn't. It's a shame.
An interesting question. I had always thought that SMP was (one of?)
the technical reasons why Sun moved from a BSD to a System V base.
Since then, of course, we've done lots of work on SMP support for at
least FreeBSD. Does anybody have an overview of how good the support
is compared to modern Solaris? Is there any intrinsic reason why one
should be better than the other?
So, there were several groups that added SMP to BSD or SunOS.
Solbourne's OS/MP added MP to SunOS 4.0 as first ASMP (one CPU did all the
system calls, but jobs could run on other CPUs) and later as SMP (first as any
CPU could run the system calls, but there was global lock and later each
subsystem had a lock that it ran with). Later versions improved locking granularity
by pushing locks down and making things finer grained. SunOS was a 4.3BSD with
its own VM system that was well suited for locking.
There were other efforts to do this, but none of them made it back to the Berkeley
mother ship, so 4.4BSD shipped w/o MP support in any real sense in 1993.
System V got MP when a consortium of vendors added it to the 4.0 release (that
didn't include sun). By 1992 this was rolled into the 4.2 release that AT&T did
with Novell. This is what would serve as the basis for Sun's Solaris product line.
FreeBSD, NetBSD, OpenBSD and Dragonfly BSD have all done MP in different
ways since then, of course, and Linux has added MP as well early on.
So in a very real sense, Sun was in a position where it had to re-do the work
that David Barak and others did at Solbourne to lock the SunOS kernel (work
which really took years to complete and stabilize), or they had to go with a solution
that was already developed. AT&T had that with System V 4.x, and Berkeley didn't
have an equivalent set of functionality for them to draw from. I think from a PHB
perspective, the decision was easy, mostly because they vastly under-estimated
the maturity of System Vr4.2's MP support (but I wasn't in the room: I was at Solbourne
which would never have licensed its OS/MP to Sun due to the... competitive atmosphere
at the time and likely NIH inside of Sun for adopting that).
Warner