pxc
2 days ago
There's a lot of chatter here about macOS' Unix certification. But in a post shared by another user, it appears that the actual content of that Unix certification vindicates OP— macOS' official Unix compatibility requires disabling SIP:
> So, if you want your installation of macOS 15.0 to pass the UNIX® 03 certification test suites, you need to disable System Integrity Protection, enable the root account, enable core file generation, disable timeout coalescing, mount any APFS partitions with the strictatime option, format your APFS partitions case-sensitive (by default, APFS is case-insensitive, so you’ll need to reinstall), disable Spotlight, copy the binaries uucp, uuname, uustat, and uux from /usr/bin to /usr/local/bin and the binaries uucico and uuxqt from /usr/sbin to /usr/local/bin, set the setuid bit on all of these binaries, add /usr/local/bin to your PATH before /usr/bin and /usr/sbin, enable the uucp service, and handle the mystery issues listed in the four Temporary Waivers.
https://www.osnews.com/story/141633/apples-macos-unix-certif...
So it seems very fair to say then, that features like SIP and the SSV are genuine turns away from Unix per se, even given the fact of the certification.
pjmlp
2 days ago
It is still a UNIX nontheless, other commercial UNIXes have similar subtleties on their certification.
tim--
2 days ago
For a long time, Inspur K-UX, a Red Hat Linux derivitive was a Unix O3 certified system as well. https://www.opengroup.org/openbrand/register/brand3617.htm
a-french-anon
2 days ago
You also need to change the /bin/sh symlink (to the included /bin/dash) to avoid multiple bugs in their ancient bash 3.2 showing in POSIX scripts.
mycall
2 days ago
If one was to do all these things, would anything break in the OS and supporting software?
xmodem
2 days ago
I've never tried it myself, but it's oft-repeated folk wisdom in Apple circles that enabling filesystem case-sensitivity breaks all manner of third-party software that has only ever been tested on the case-insensitive default.
notamario
2 days ago
I tried running with case sensitive file system. MacOS itself is fine, but a lot of software isn’t.
SllX
2 days ago
> So it seems very fair to say then, that features like SIP and the SSV are genuine turns away from Unix per se
At the end of the day UNIX is an operating system. A dead operating system that hasn’t seen a release outside of Bell Labs since the 80s and even 10th Edition was 1988, and never distributed.
A branch of it persisted through System V and its variants, then it became a spec, then operating systems started calling themselves UNIX according to that spec whether they were Systems V offshoots or reconstructions stemming from Net/2.
We’ve been genuine turns away from Unix per se since before I was born. The SUS and POSIX lets people pretend like we’re not.
flomo
2 days ago
IMO, that's a pretty poor summary of how the "Unix Wars" really ended. Bell UNIX got productized into System V, and the trademark was dumped off on TOG.
But "Unix" was really more of an ideal. The ideal system may not have existed, but a lot of people saw the potential of the flawed heaven in there. Including Stallman and Torvalds. Imagine "Industry-standard APIs" which are actually non-negotiable, and not just some compliance-test. Well, you need the source code, right? We have a much better "unix" now than we ever had with "UNIX".
SllX
2 days ago
The “Unix Wars” battle lines were drawn in 1988 with the formation of the X/Open Group and Unix International, the same year Bell Labs put together the 10th Edition’s manual, more or less demarcating its release according to their own conventions even if it wasn’t sold nor distributed. Their next project was Plan 9.
Incidentally this was also the year of the last major version of AT&T’s System V, System V Release 4. There would be a couple more minor releases after that, but there was never a System V Release 5.
> The ideal system may not have existed, but a lot of people saw the potential of the flawed heaven in there. Including Stallman and Torvalds.
I don’t think Stallman nor Torvalds ever saw anything so romantic in UNIX. You could ask them, but it doesn’t jive with well anything in the historical record.
> We have a much better "unix" now than we ever had with "UNIX".
We have better operating systems, yes, and for a price and some elbow grease, some of them can even use the UNIX trademark which checks a box for some people who might care about that sort of thing.
anthk
2 days ago
9front it's the last 'Unix' release after Unix v8 and Unix v10.
7e
2 days ago
None of those things are at all desirable. setuid uucp? Security nightmare. strictatime? Not needed. Linux doesn't do it either.
Apple has retained the good parts of UNIX and ignored the shitty parts. In the end, it is more UNIX than Linux is.
fragmede
2 days ago
Yeah, like a really shitty ancient version of bash. If that's what UNIX means to you, I'm not gonna yuck your yum, but what could be more UNIX like than letting license issues make life worse for your users.
Hey, at least it isn't *BSD! (Or, well...)
ada0000
2 days ago
macOS switched to zsh a while ago. i don’t see what that minor choice has to do with being or not being UNIX.
fragmede
a day ago
https://en.wikipedia.org/wiki/Unix_wars and https://en.wikipedia.org/wiki/History_of_Unix but if you've not seen them before then maybe start at https://en.wikipedia.org/wiki/Unix
ada0000
a day ago
I know enough about Unix that shipping an outdated binary in the base system is entirely unsurprising :-)
pjmlp
2 days ago
bash doesn't mean UNIX, in fact UNIX means being able to chose your shell.
bigyabai
2 days ago
[flagged]
subjectsigma
2 days ago
I don't disagree, but what does that possibly have to do with macOS being a Unix or not?
keeganpoppen
2 days ago
fantastic point… about… what? certainly not TFA…
spijdar
2 days ago
The visceral response to the statement:
> To the Unix purist, this might appear wasteful and unnecessary, but macOS isn’t, and never has been, Unix. It’s a closed-source proprietary operating system designed for use by millions of consumers and regular users. Rather than configuring it using config files or its thousands of property lists, its controls are largely exposed in System Settings, with a few settings hidden away and only accessible through the defaults command.
Is really, really interesting to me, because so many people (including the author) are so invested in the question of whether or not "macOS is Unix". There's so much signaling happening here, people throwing around UNIX all-caps, talking about certifications, the "good parts" of UNIX, that macOS "[is] quite literally [UNIX]", while seemingly missing the author's intention entirely.
You don't have to agree with the author, but a good faith interpretation of "macOS isn’t, and never has been, Unix" should be obvious in its meaning. Yes, macOS 26 has been certified by The Open Group to be compliant with the Single UNIX Specification.
You know what else is UNIX certified? IBM's z/OS. Yet I don't think people would be clambering to say that z/OS's USS is "quite literally UNIX" with the same ferocity.
The point the author is clearly attempting to make is that the idea and system of macOS is not Unix. Even if macOS is, legally speaking, "UNIX®", it was not made to be UNIX®. macOS is not built to adhere to the "UNIX® philosophy". The fact NextStep and OS X after it were BSD-compatible is an implementation detail -- a useful one at that -- but an implementation detail nonetheless. It's like Android's use of the Linux kernel underneath. Yes, Android is Linux, but there's a reason why there's a vocal community of people who champion "Real Linux smartphones". Android uses Linux, but Android isn't defined by Linux.
I'm not trying to prove anyone right or wrong here, I just want to give my three cents on the matter. I would call macOS "unix-y" because it's close enough to being a "unix" to be comfortable on the CLI, but I've touched the unix "heart" enough to know it still smells like 2005-ish FreeBSD, largely frozen in time.
Of course, that's good enough for most things. But then, does that make Windows a Unix-like, just because it can run Linux ELF executables via WSL1? Conceivably, if Microsoft cared, they could get UNIX® 03 certification via WSL1, WSL2, or some hacked together reincarnation of SFU with parts from WSL1.
Yes, I know, macOS has a "real" BSD core, and a "real" unix heritage through BSD and OSF/1. The point is that it's not hard (IMO) to see where the author is coming from saying "No, macOS is not a Unix".
(I disagree with him for different reasons -- he ambiguously implies that "Unix" means being open-source, for instance -- but I agree that macOS as a platform is not very Unix-y, even if it is UNIX®.)
pxc
2 days ago
The analogy with Android and Linux is dead-on. As is the confusing language with which people talk about these things. "Android isn't Linux" and "macOS isn't Unix" aren't quite the right way to express the sentiments and thoughts behind them— even when those sentiments and thoughts are themselves clear and reasonable.
I don't think Apple's choices to deviate from the Unix standard are necessarily for the worst; many are for the better! But their cultural deviation from the norms of the free Unices and Unix-likes is part of what makes computing on macOS feel constraining and frustrating to me. It seems like that sense of disappointment (shared by many others), and defensiveness in response to it, end up driving a lot of discussions around this.
Onavo
2 days ago
> Conceivably, if Microsoft cared, they could get UNIX® 03 certification via WSL1, WSL2, or some hacked together reincarnation of SFU with parts from WSL1.
They probably could if they really want to.
https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem
The Windows NT kernel was designed to extend and embrace .
pjmlp
2 days ago
"UNIX® philosophy" doesn't exist, that is a religion like discussion about UNIX spread by FOSS people while arguing for GNU/Linux with their endless list of command line options.
I use UNIX in various flavours since being introduced to it in 1993 via Xenix, and cannot name a single one where this was ever true.
a-french-anon
2 days ago
Well no, it does exist, but not in UNIX itself, in Plan 9.
pjmlp
2 days ago
I never found it there, and even if measures in some strange way to make it true, doesn't seem to have helped Plan 9 adoption.
Commands still have plenty command line configurations for their executions.
torginus
2 days ago
In terms of practical usage, imo it doesn't matter whether macOS is Unix - it's certainly not Linux. The shell is different, the bundled utils are different, the filesystem, configuration and tooling is different enough that if you try to run anything beyond the most basic scripts written for Linux, they will not work.
Which means macOS is a separate platform you need to learn and support.
By this standard, WSL2 is much more Linux than macOS.
curt15
2 days ago
>You know what else is UNIX certified? IBM's z/OS. Yet I don't think people would be clambering to say that z/OS's USS is "quite literally UNIX" with the same ferocity.
Does "Unix" still carry some special cachet these days? Linux is more "Unix-like" than MacOS for the reason articulated in the article, but you'll see commenters leap to MacOS's defense by pointing out that MacOS is "literally UNIX".
spijdar
2 days ago
I think it's a sentimental thing, mixed with a dash of elitism/"purity seeking".
I don't mean that harshly. In my late teens/early 20s, I went through a "phase" where I obsessed with getting "purer and purer". This was mixed with a weird obsession with non-x86 hardware, as well. Lots of NetBSD, FreeBSD and Illumos usage, some Plan9 towards the end, lots of intellectual snobbery about "it feels better", and that sort of thing.
I'm almost 30 now, and my office has "Unix" systems from the 70s up to, well, my M1 MBP with "UNIX®" on it. PDP-11, VAX/ULTRIX, SPARC/SunOS 4, MIPS/IRIX, Alpha/OSF1, I've given them all a spin, running existing software and writing new software to kick the tires of old compilers. That's why I feel comfortable saying macOS really, really doesn't feel like any "UNIX" that I associate with "UNIX".
Although, UNIX was always a confusing term which never really meant all that much to begin with (when talking about commercial OSes/hardware platforms), but that's a whole other conversation...
pxc
2 days ago
> In my late teens/early 20s, I went through a "phase" where I obsessed with getting "purer and purer". This was mixed with a weird obsession with non-x86 hardware, as well. Lots of NetBSD, FreeBSD and Illumos usage, some Plan9 towards the end
Sounds really fun and informative!
> lots of intellectual snobbery about "it feels better"
How does that end up being intellectual (or snobbery, for that matter)? It sounds pretty close to "follow your heart" or "I just enjoy it" to me!
> Although, UNIX was always a confusing term which never really meant all that much to begin with (when talking about commercial OSes/hardware platforms), but that's a whole other conversation...
Seems like a relevant one, for this context ;)
spijdar
2 days ago
That probably came off a bit too inflammatory/self-deprecating :)
The point for me was realizing that, even though I do like all these systems and OSes, and I understand the appeal of both "pure UNIX" and (on the opposite spectrum) OSes that violently reject "UNIX", this kind of purity isn't actually... useful.
End of the day, with most of the ways I use a computer for productivity, playing, or being social with other people, there are other things that matter a lot more than the "purity" of the OS. And this includes how much "real UNIX" it is. It's cool that Solaris/Illumos is "true blooded unix". And... it doesn't really matter that much. Whether or not a system is or isn't "unix" just doesn't matter, as long as it runs the software you want.
(And for a lot of modern software, "being unix-like" isn't enough; if you're not Linux, Windows, or macOS, good luck!)
The purity is also usually kind of a lie in the first place. I've got a VAX in my office running "real" 4.3BSD, before all the "POSIX-bloat" was added. But you look closely and realize there's tons of "bloat" added, for the purpose of making a more useful OS. There are mixed abstractions, redundant libc extensions, dubious system additions that look like one person needed something and added it in.
It's just so uninteresting to me now to argue about what is or isn't "unix". I still enjoy all those old OSes, but you kind of stop seeing them as "UNIX". The ways that each isn't UNIX is far more interesting, like how ULTRIX and OSF/1 abandoned "unix style" syslogs in favor of a rich binary format via 'uerf'.
icedchai
2 days ago
I've experimented with all those platforms, and macOS feels to me like "Unix" as much as a Sun SparcStation or SGI Indy from 30 years ago.
What is "Unix" to you? To me, it's the common shell commands / utilities and a POSIX API. If I can download some GNU source, run ./configure; make; make install ... it's Unix.
Certainly, macOS is a "weird" Unix if you compare it to Solaris and look at the administrative bits. But, then again, IBM's AIX is very weird, too. And that's one of the few commercial Unix implementations still kicking.
spijdar
2 days ago
> Certainly, macOS is a "weird" Unix if you compare it to Solaris and look at the administrative bits. But, then again, IBM's AIX is very weird, too. And that's one of the few commercial Unix implementations still kicking.
That's why I said that "Unix" has always been kind of confusing as a name, because a lot of "Unix"es are very different. I've never used AIX personally, but I know it's pretty funky. And there have been weirder "unix"es, Domain/OS was another weird one. At least a few others had split BSD/SysV "personalities", I've read.
> If I can download some GNU source, run ./configure; make; make install ... it's Unix.
On the one hand, I agree with this.
But then, by that standard, you could call basically every OS in use today "Unix", including Windows via Cygwin, or WSL, or etc...
To me, "Unix" is epitomized by Sun's fix for SunOS 4 for disabling Yellow Pages and using only DNS for hostname lookups.
Their official advice? To unpack the libc shlib, delete the object code for the Yellow Page functions, then repackage it into a new libc version.
That feels like Unix to me, in a way that macOS just never will be. Which is also perfectly okay with me.
icedchai
2 days ago
So Unix has to feel like dealing with old cruft to you? ;) I remember the SunOS 4 days and the annoying setup process for DNS. Those were the first Unix systems I worked with in a professional capacity.
I have a Sparc in my collection but it's running Solaris and too new to run SunOS 4. I'm considering getting a Sparc 10 or something so I can relive the SunOS days. That was my favorite early 90's Unix. Most open source software had first class support for SunOS.
Linux is "Unix" in my mind, though not UNIX (TM). WSL follows, since it is really virtualization under the hood. (WSL2, at least.). Cygwin seems like a gray area... Unix-like environment maybe?
spijdar
2 days ago
> So Unix has to feel like dealing with old cruft to you? ;)
Well, maybe :)
It's something about the system being made of a lot of messy parts which can be split apart and taped back together. Reductively, all computers are like this, but SunOS and other "unixes" are more easily put back together.
For instance, besides enabling DNS, I've extended the libc quite a bit, to get modern OpenSSL and curl to build, as well as KDE 1 just for kicks.
You can do the same with almost any OS (that doesn't lock you out with security), but it feels easier with a "Unix". Linux is also very like this!
> I have a Sparc in my collection but it's running Solaris and too new to run SunOS 4.
You could always run NetBSD and use COMPAT_SUNOS to run a SunOS chroot ;) I haven't tried running Xsun this way but it'd probably go...
icedchai
a day ago
Do you blog about any of this? Extending SunOS libc sounds pretty cool!
I did install OpenBSD on the Sparc (Ultra 5) at one point, before going back to an older Solaris. Maybe I'll try NetBSD next!
spijdar
a day ago
Haha, I haven't yet, but I want to. Maybe soon! Though extending libc isn't that exciting, really: that's kind of the cool (Unix-y??) thing about it. You just (IIRC) extract the static archive, add whatever .o object files with whatever symbols, add the symbols to a manifest, pack it up, and any C program on the system can call it. Since all C functions were implicit at the time (header files only had structs and enums) you can use trivially add whatever.
> Ultra 5
You should give it a shot! Even NetBSD/sparc64 has support for SunOS 4 binaries... allegedly.
If one was so inclined, you can abuse the kernel a bit and tell the compat layers to use root as their search path. I did this to make a "Linux system" with a NetBSD kernel and full GNU/Linux userland, just for kicks.
In my mind, you could do the same for SunOS. There's also COMPAT_MACH and COMPAT_DARWIN... imagine NeXT/SPARC binary compatibility alongside SunOS.
Hmmm. :)
a-french-anon
2 days ago
Yes it does. It means: do my POSIX sh scripts using only POSIX utilities and their specified options/behaviour work here?
flomo
2 days ago
Back in the early 2000s, RedHat did a study and found the UNIX brandname actually had negative value among IT managers. They saw it as "expensive, proprietary, incompatible" etc. Meanwhile Linux was seen very positively. (So yeah nobody cares, not even the Mac users who pretend to.)
jajuuka
2 days ago
It's pretty telling when the comments on the article and here have devolved into pedantic discussions of "well is it REALLY UNIX?" It's the most inconsequential question with no beneficiary except those who want to claim UNIX purity.
GrowingSideways
2 days ago
[dead]