[TUHS] MacOS X is Unix (tm)

Larry McVoy lm at mcvoy.com
Tue Jan 3 03:32:26 AEST 2017

On Mon, Jan 02, 2017 at 12:05:15PM -0500, Chet Ramey wrote:
> On 1/2/17 11:49 AM, Larry McVoy wrote:
> > On Mon, Jan 02, 2017 at 11:44:06AM -0500, Chet Ramey wrote:
> >> On 1/2/17 6:31 AM, Joerg Schilling wrote:
> >>> David <david at kdbarto.org> wrote:
> >>>
> >>>> MacOS X is a certified Unix (tm) OS. Not Unix-Like.
> >>>
> >>> Given that MacOS X is not POSIX compliant, I would call it a UNIX-alike.
> >>>
> >>> Note that passing the certification tests unfortunately does not grant 
> >>> POSIX compliance :-(
> >>
> >> That's pretty much exactly what it means.  You have either found a bug or a
> >> place where the interpretation is disputed.
> > 
> > Joerg is pretty smart, he's been around the block.  There have been
> > multiple POSIX standards, just like there is C9, C11, etc.  My guess is
> > MacOS got certified for an earlier standard and hasn't kept up.
> This came up on the Posix list.  He found what I consider to be a bug.
> The fact that Mac OS X passed the compliance test and got the branding
> is not in dispute.

Only somewhat on point but...

My first job at Sun was doing POSIX conformance in SunOS 4.x.  Nobody else
wanted to do it so they hired me (through Lachman) as a contractor to
do it.  As an aside, I'm super stoked I got to this work, it was early
enough in my career that there were plenty of wholes in my knowledge.
Having to POSIX really plugged those wholes and brought the whole kernel
into focus if that makes sense.

Anyhoo, if the POSIX test suite now is anything like the one back then
(late 1980's), it's a steaming pile of shit.  It was absolutely trivial to
pass that test and have all sorts of stuff that wasn't POSIX compliant.
I ended up writing a lot of my own tests to make sure SunOS actually
conformed to the spec.  It was really painstaking work but it gave me some
good habits.  My POSIX book is all marked up with one color for it passed
the test suite and another color for when I believed SunOS conformed.

As a further aside, this was one of the best years in my life.  I was
young and fit, and Sun wouldn't let me bill more than an average of 40
hours/week.  I lived close to campus and it wasn't hard for me to do 80
hours in a week (which was more productive than 80 hours in two weeks,
longer bursts of work meant I didn't have to ramp up state as often).
So I'd work a week and then take the week + 2 weekends off.  I skiied
29 days that winter and spent 6 weeks backpacking in the Sierras.
It was glorious.

And I still got SunOS to conform in about a year.  Gave a presentation
about it at some conference and the NCR or NEC team came up to me and
asked "where's the rest of your team?".  I asked them if they were
talking about my docs person (Kennan Rossi, great guy, either he or I
hacked vi to allow for multiple targets on the same tag so you could
tag on VOP_OPEN and it would say 1 of 19, the first tag got you to the
macro, the next one got you to vop_open, the next got you to ufs_open,
etc, through all the file systems.  Without that you really couldn't
say if open() had POSIX semantics in all cases).

Anyhoo, they said "no, the rest of the kernel hacking team".  I just
looked at them and said "it's just me".  They had 3 kernel people and had
been working on it for years and were not done.  My guess is that SunOS
was far closer to conforming than whatever kernel they were working on,
they didn't strike me as stupid people.

I loved that project.  Hard work but man did you see how Unix was hung
together (and where it had wandered) as a result.  Super useful education
for me.

And I was parked in Steve Kleinman's office (he was over doing a sun4
hardware bringup).  I read all the technical stuff he had stashed there
and decided that this guy had really good taste.  So when Sun wanted to
hire me (they bought out the Lachman contract) I said "sure - on two
conditions: (a) I work for Steve (who I hadn't even met, was just sure
he was very smart) and (b) I get a modification to my employee contract
that says I can't be penalized for skipping meetings (I had figured out
that most, not all, but most meetings were a waste of time)."  Sun gave
me both after some amount of churn :)  Fun times.  Steve and I hit off
famously, one of the most fun people I've ever worked with because we
both had pretty deep knowledge about the stuff we worked on and we could
have super fast technical discussions (that nobody else could understand
because we jumped forward so fast).

More information about the TUHS mailing list