From mboxrd@z Thu Jan 1 00:00:00 1970 From: lm@mcvoy.com (Larry McVoy) Date: Mon, 2 Jan 2017 09:32:26 -0800 Subject: [TUHS] MacOS X is Unix (tm) In-Reply-To: <82cf47cd-e8d6-d335-e901-9c10ecf28c5e@case.edu> References: <52C99F50-E24A-4BBF-A129-180A1271B4E3@kdbarto.org> <586a3a23.udW0nRrOopzHoQbP%schily@schily.net> <20170102164913.GA5983@mcvoy.com> <82cf47cd-e8d6-d335-e901-9c10ecf28c5e@case.edu> Message-ID: <20170102173226.GB5983@mcvoy.com> 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 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).