So for those who, like me, wonders why Apple keeps getting macOS Unix certified, it's to avoid a lawsuit. Apple misused the Unix trademark when they first launched MacOS, so to avoid legal trouble with The Open Group, Terry Lambert was put in charge of getting MacOS Unix compliant and certified: https://www.quora.com/What-goes-into-making-an-OS-to-be-Unix...
It's basically the only relevance the Unix trademark has these days. I can't imagine many companies choosing macOS because it's a real Unix, nor would anyone really opt out of z/OS, AIX og HPUX, if they where not certified.
ajdude · 1h ago
> I can't imagine many companies choosing macOS because it's a real Unix, nor would anyone really opt out of z/OS, AIX og HPUX, if they where not certified.
While Unix compliancy isn't what's keeping me on macOS, the Unix tools it has under the hood still is. I've opted to use it over Linux because I still get everything that I need from a "Unix like" standpoint while having some serious enterprise level support and compatibility with work software that's often only available for windows or Mac.
If Apple stopped caring about being Unix compliant, I wouldn't be surprised to see the tools and infrastructure that make it Unix (and useful to me) slowly be removed. Then I'd stop using it.
makeitdouble · 2m ago
It's not for everyone, but at some point I got tired of the FreeBSD layer being there but not cared for, and WSL+git for windows kinda provides a decent compromise in that regard.
The thing I hated the most was spending time building installation scripts or running images for the prod environment, and then go fight macos to replicate the same setup locally. Especially having parralel installs for the system and my user account was a PITA.
One would argue I could just dev on the docker image as well, but then being on a somewhat unixy OS doesn't matter much anymore.
WSL let's the Windows side live it's life (shell level tools can still be injected for convenience), and the linux side be genuinely Linux, not some ersatz, and duplicable to one's heart content. It's still less pain and better perfs than straight docker, and just extremely well integrated in general.
mdasen · 1h ago
I'd say that you care about it being UNIX-like, not UNIX®. You don't care that Linux isn't UNIX. You don't care that GNU versions of things like ed and awk are slightly off-spec.
In some ways, Apple's adherence to UNIX specifications probably makes macOS less useful for you. For example, I wish that grep on macOS was closer to GNU grep. When I look up commands online, I often find answers based on the GNU implementations. Those often work on macOS, but sometimes don't (or have subtly different behavior) because macOS is adhering to the UNIX specification rather than to what those utilities do on the vast majority of systems out there.
I don't think Apple would be removing UNIX-like tools from macOS even without certification. They know how valuable it is that most developers use their systems. Even Microsoft went so far as to implement the Windows Subsystem for Linux for developers. At this point, I think that UNIX certification makes macOS less compatible with the tools and help out there which generally targets Linux. Usually the differences are small, but they certainly can be meaningful.
lucideer · 12m ago
> I don't think Apple would be removing UNIX-like tools from macOS even without certification. They know how valuable it is that most developers use their systems.
I hope you're right but I'm not as confident. Corporations - Apple included - have been guilty of some surprising ignorance when it comes to things like this. I'm thankful for this certification circus to continue so that we don't need to test your theory.
mechanicum · 29m ago
> because macOS is adhering to the UNIX specification
Isn’t it rather that Darwin was based on BSD 4.4? I’d imagine GPL 3.0 is a bigger impediment to them ever migrating to GNU tools than any desire to be UNIX certified.
macOS includes a woefully outdated bash 3.2 due to GPL 3.0; they switched to zsh long ago.
Avamander · 55m ago
Built-in grep is thankfully not as odd as the builtin find is. Might be the first one I replace on my systems.
pseudocomposer · 6m ago
Given that both grep and find are weird/inconsistent between BSD/GNU versions, and I typically use them piped together for the same things anyway, I’ve found that ripgrep is a nice/faster/universal alternative that is pretty unproblematic to install in whatever environment I want: https://github.com/BurntSushi/ripgrep
cesaref · 1h ago
brew install grep?
latchkey · 7m ago
brew is such a treasure.
zitterbewegung · 52m ago
While macOS only really gets Unix certified they design of the flavor of unix from FreeBSD. Homebrew is also the best port system and package manager I have ever used because it requires no thinking. I actually dislike using Linux because now I have to learn the replacement from ifconfig, the creation of launchd IMHO is way better than init.d and systemd, and the command line diskutil and other additions still feel like its more Unix like while Linux feels like its moving toward its own thing. Before I was using macOS I was using OpenBSD as my daily driver since high school. I still don't understand though why Ubuntu has the ability to break /boot because there isn't enough space to add another kernel to there...
StopDisinfo910 · 12m ago
I’m going to comment on the homebrew part because well that’s your tastes but I personally think it’s the worst package manager I have ever used and is not really a port system so opinions do vary here.
> I have to learn the replacement from ifconfig
MacOs switched to networksetup and ipconfig a long time ago. Ifconfig is not recommended so the situation is exactly the same than on Linux here.
> launchd IMHO is way better than init.d and systemd
Systemd is basically a more complete and better designed launchd. Having used both I have trouble thinking of anything launchd does better.
> the command line diskutil and other additions still feel like its more Unix like
Diskutil is a MacOS only tool. I’m a bit lost about what your argument is here.
Linux still use fdisk and dedicated tools to create file systems exactly like on FreeBSD or any other Unix. It’s MacOs doing its own thing here.
zitterbewegung · 4m ago
Thank you for correcting me I appreciate it I will use those new commands.
StopDisinfo910 · 21m ago
Considering the core utils have even been ported to Windows, I don’t really see what you would lose.
The Unix don’t really share much between each other apart from the small core.
pjmlp · 12m ago
While true, there are still speed bumps on Windows.
One is better using the Windows alternatives.
StopDisinfo910 · 7m ago
The initial argument was that MacOS is nice because it has the core Unix tool. I find this baffling because MacOS has very little to do with a traditional Unix apart from the certification and the core utils are literally usable on approximately anything.
Speed bumps regarding what?
I’m mostly using Linux nowadays but when I have to use Windows, the experience is fairly ok. The tooling when you want to manage it is imho infinitely superior to what Apple provides.
Honestly, the only rational reason I see to use MacOS is that the hardware is good and Apple doesn’t really support anything else on it. I used it for years and watched it get worse with every update. At this point, it’s more annoying than good but I might be coloured by my general dislike of Apple as a company.
qmr · 38m ago
> I still get everything that I need from a "Unix like" standpoint
Everything except a package manager!
philistine · 10m ago
With the way Apple is running its App stores, do you honestly believe that we would benefit from an Apple package manager?
I'm convinced the devs inside Apple know what I'm saying as well, and are giving as much help as possible to Homebrew to keep it independent. There is some small proof, Homebrew was considered very highly during the DTK rollout for Apple Silicon.
pjmlp · 11m ago
UNIX never had a package manager.
Those that have one, it is not standard.
zitterbewegung · 26m ago
Majority of people use homebrew. There is also macports.
mickael-kerjean · 35m ago
There are some infuriating issues though, I have wiped out a couple files on OSX using sed with the -i option to replace a text within a file only to realised OSX would wipe it out instead ....
pjmlp · 14m ago
It is also relevant, that as proven on FOSDEM corridors full of Apple laptops, most folks only care about some sort of POSIX experience, and couldn't care less about Linux/BSD religion.
So that target audience gets a cool modern experience, without fighting with driver issues and such.
It is also the reason why Microsoft ended up bringing Project Astoria from the ashes into WSL.
UNIX has won, but not as Richard Stallman would have liked to.
mdasen · 1h ago
That explains why they got it UNIX certified back then, but couldn't they stop advertising macOS as UNIX and stop getting it certified? They even changed the name from Mac OS X to macOS since then.
crazygringo · 1h ago
That's my question too, why continue to bother? Apple doesn't even have any separate "Server" OS anymore. I can't find anything mentioning UNIX on any apple.com marketing pages.
I guess it's just, might as well keep it going, as an option for future marketing if ever needed. Maybe it helps the salespeople in some enterprise deals? I mean, if it doesn't really cost anything to keep it.
kstrauser · 55m ago
My (wholly unsupported) guess is that there are government or megacorp bids somewhere for Unix systems for employees, and this checks that box. The buyer could update their requirements, but why do that when you can just make your vendor jump through the hoop?
jeremiemyhren · 39m ago
I think it’s a quiet but deliberate strategy to keep macOS the spiritual successor to NeXTSTEP. While many of Jobs principles are under pressure at current day Apple, his ghost lives on.
pjmlp · 8m ago
Jobs was very much anti-UNIX and is relatively easy to find it out.
NeXTSTEP had to support UNIX, because that was the workstation market they were after.
However notice how everything relevant for NeXT products was based on Objective-C userspace tooling and frameworks.
monkeyelite · 36m ago
This also doesn’t explain anything? Is getting Unix certified a jobs principle or a requirement to be a “spiritual successor”?
randall · 1h ago
there’s no downside as far as i’m aware.
mdasen · 1h ago
There isn't much downside, but it probably involves a small amount of money (paid for the certification) and it means spending time making sure that everything remains 100% within spec. There's lots of little edge cases where BSDs differ from the spec and it means that Apple needs to take care not to drift from the spec.
al_borland · 35m ago
Apple remaining in spec sounds like a good thing from a compatibility point of view.
Am I missing something? I’m not sure why it’s coming off like people are complaining about this?
Analemma_ · 12m ago
It’s a spec that doesn’t really matter in practice. Like some other comments said, Linux, BSD and Solaris are “Unix but not Unix(tm)”, and nobody cares.
bawolff · 1h ago
Presumably certification costs money (?)
monkeyelite · 35m ago
Probably a small amount especially when they just need to tell them what changed
hopelite · 1h ago
Famous last words
igravious · 11m ago
Used to work with UNIX servers in the early 2000s but out of that sector for coming up on two decades -- are z/OS, AIX and HPUX (and other old big iron enterprisey UNIXen) still around? I would have thought that Linux had killed them all of by now. Excuse my ignorance!
pjmlp · 1m ago
They definitely are, not all though, HP-UX is on life support.
However Aix, Solaris (and Open Solaris derivatives), z/OS, IBM i (AS/400), ClearPath MCP, OS 2200, are still being updated and sold.
That list is not only UNIX systems.
cramcgrab · 58m ago
You forgot solarius, well, so did oracle.
alberth · 1h ago
There’s an interesting story from the lead engineer to make OS X originally compliant:
> I was asked if I could lead a team to do #1. I said “Yes, under the condition that I could use the compliance project as a hammer to force other parts of the organization to make changes in their own code base, and that I could play it rather loose with commit rules regarding what it said in the bugs database for a given code change, and what the given code change actually did, in addition to what it said in the bugs database”.
…
> We were promised 1/10th of the $200 million, or $20 million in stock, on completion. $10 million to me, $5 million to Ed, and $5 million to Karen Crippes, who was looking for a home in Mac OS X development, I knew was an amazing engineer, and who could be roped into being technical liaison and periodically kicking off the tests and complaining to Ed and I about things not passing.
And if you read further in the comments, he never got the stock. The executive who promised it to him “took it for himself.”
Jcampuzano2 · 57m ago
And left his wife for an HR person, can't forget that. Lol sounds like a shitshow all around when it comes to execs but wouldn't be surprised.
Guess it shows that when it comes to compensation promises always get it in writing.
alberth · 54m ago
Where do you see that?
Sorry, I’m probably missing the obvious.
mikestew · 17m ago
It’s in there:
“The executive who agreed to the deal left his wife for an HR person, and took the stock for himself.
Never every make a handshake deal with a person you trust, because that trust will not last.”
nicce · 53m ago
Further below:
> Also, the tech lead has to fix anything no one else fixes, or no one else can fix, because they are the DRI (Directly Responsible Individual).
How many tech lead/project manager can say that they are capable for this in these days? It feels like based on my observations that other skills are taking priority on management/lead side.
0xFEE1DEAD · 36m ago
Thank you for sharing, what an interesting read.
jcalvinowens · 2m ago
And here I just want pthread_condattr_setclock() on Darwin. Is there some other interface to set monotonic expiries? I tried to port netconsd to Darwin and that's the sole hang up (well and recvmmsg() but that's trivial...)
homebrewer · 1h ago
Two general-purpose Linux distributions used to pay for Unix certification, although they don't do it anymore since hardly anyone is interested in it these days.
Save these links for the next time someone moans that Linux "is not a real Unix".
mdasen · 58m ago
It's not just about paying for certification. You also have to replace a lot of things like ed, awk, grep, etc. with versions that are compatible with the UNIX specification. GNU utilities didn't target 100% UNIX compatibility and they have differences that mean that a command that works on UNIX might not work (or might not work the same) on a Linux distro using GNU utilities. glibc has slight differences from the spec too.
In order to get a Linux distro certified, you'd have to make changes which would make it less compatible with all the other Linux distros out there.
The reason why RedHat doesn't pay for UNIX certification is that their distros wouldn't be compliant. The reason why they don't make their distros compliant is that their customers would vastly prefer that RedHat use "standard Linux" tools than replace them with UNIX-compliant ones. Customers don't want a Linux distro that's subtly different/incompatible compared to what everyone expects in a Linux system. They'd rather it be not-UNIX.
Yes, you can modify a Linux distro to be UNIX. However, most Linux systems are not real UNIX - and you wouldn't want it to be real UNIX.
arccy · 10m ago
this talk of GNU being "standard" is toxic, as if anything that doesn't use it is weird or off spec.
the GNU userland might be common for user facing systems, but it's nowhere close to standard.
oguz-ismail · 5m ago
It's the de facto standard. No one knows how to use other flavors of tools like date, find, grep, sed etc.
I recently learned that macOS has a (by default) case insensitive filesystem. How does this line up with the certification?
Analemma_ · 3m ago
There’s a specific “Unix mode” you have to turn on to be in the compliant state, it’s not the default. Presumably among other changes this puts APFS into case-sensitive mode.
ksec · 2h ago
Has there been any work for something post Unix 03?
quink · 2h ago
I may have mentioned on occasion, here or there, about how ludicrous it is that there appears to be no well-defined standard that user space shall have sqlite3 and git and gzip.
So, for all intents and purposes, nothing that would be relevant in any reasonable end-user way in 2025. It’s all just: here’s defaults and here’s scripts to set up your environment and here’s a dozen things to run brew with. But no standard.
Pet_Ant · 1h ago
Yes, there is "UNIX V7" in 2013... which apparently only IBM's AIX supports. This is ironic because the whole idea of UNIX is to create a common platform for interoperability, but only one platform actually supports. I really wonder why Apple just doesn't put a couple of FTEs on it and upgrade to V7. I'm sure it wouldn't take much. But it sort of reminds me of Java and HTML where there were standards to allow for independent implementations, but have collapsed to single implementations.
Solaris did support it, I guess it was more relevant when there were multiple vendors
irusensei · 17m ago
Think of it: it's a Unix system. Literally. A unix system with the usability that your grandma can use. It supports both commercial and open source applications. The year of the linux desktop folks have been trying this for decades.
EDIT: already downvoted to negatives. The Linux folks really don't like to be reminded of that.
> It's not simply that certification costs money. It's that a lot of modern UNIX-like operating systems don't adhere to the UNIX spec. For example, the OpenBSD man pages specify the ways in which they diverge from POSIX and UNIX in the Standards section: https://man.openbsd.org/sh.1#STANDARDS, https://man.openbsd.org/awk.1#STANDARDS. Often times these are small deviations that might not matter to most people, but it means that they aren't UNIX.
Except it seems like macOS diverges, too, yet it is certified. I wonder in what other ways it diverges.
Also, the weird `fsync` behaviors is not part of it?
veggieroll · 1h ago
I don't think it's that surprising that the Open Group would cut corners certifying Unix compatibility.
qhwudbebd · 39m ago
I came here to mention this too, but saw you'd beaten me to it. It's remarkable how bad non-free OSes are at maintaining basic infrastructure in their kernel and userspace compared to Linux and the BSDs isn't it? Basic bugs get neglected for decades in favour of rearranging the cosmetics - in this case, it's been more than 20 years since I first reported this to Apple's /dev/null service, and I'm sure I wasn't first and I'm only one of many.
It's basically the only relevance the Unix trademark has these days. I can't imagine many companies choosing macOS because it's a real Unix, nor would anyone really opt out of z/OS, AIX og HPUX, if they where not certified.
While Unix compliancy isn't what's keeping me on macOS, the Unix tools it has under the hood still is. I've opted to use it over Linux because I still get everything that I need from a "Unix like" standpoint while having some serious enterprise level support and compatibility with work software that's often only available for windows or Mac.
If Apple stopped caring about being Unix compliant, I wouldn't be surprised to see the tools and infrastructure that make it Unix (and useful to me) slowly be removed. Then I'd stop using it.
The thing I hated the most was spending time building installation scripts or running images for the prod environment, and then go fight macos to replicate the same setup locally. Especially having parralel installs for the system and my user account was a PITA.
One would argue I could just dev on the docker image as well, but then being on a somewhat unixy OS doesn't matter much anymore.
WSL let's the Windows side live it's life (shell level tools can still be injected for convenience), and the linux side be genuinely Linux, not some ersatz, and duplicable to one's heart content. It's still less pain and better perfs than straight docker, and just extremely well integrated in general.
In some ways, Apple's adherence to UNIX specifications probably makes macOS less useful for you. For example, I wish that grep on macOS was closer to GNU grep. When I look up commands online, I often find answers based on the GNU implementations. Those often work on macOS, but sometimes don't (or have subtly different behavior) because macOS is adhering to the UNIX specification rather than to what those utilities do on the vast majority of systems out there.
I don't think Apple would be removing UNIX-like tools from macOS even without certification. They know how valuable it is that most developers use their systems. Even Microsoft went so far as to implement the Windows Subsystem for Linux for developers. At this point, I think that UNIX certification makes macOS less compatible with the tools and help out there which generally targets Linux. Usually the differences are small, but they certainly can be meaningful.
I hope you're right but I'm not as confident. Corporations - Apple included - have been guilty of some surprising ignorance when it comes to things like this. I'm thankful for this certification circus to continue so that we don't need to test your theory.
Isn’t it rather that Darwin was based on BSD 4.4? I’d imagine GPL 3.0 is a bigger impediment to them ever migrating to GNU tools than any desire to be UNIX certified.
It derives from 4.4 BSD but it's more than that.
macOS includes a woefully outdated bash 3.2 due to GPL 3.0; they switched to zsh long ago.
> I have to learn the replacement from ifconfig
MacOs switched to networksetup and ipconfig a long time ago. Ifconfig is not recommended so the situation is exactly the same than on Linux here.
> launchd IMHO is way better than init.d and systemd
Systemd is basically a more complete and better designed launchd. Having used both I have trouble thinking of anything launchd does better.
> the command line diskutil and other additions still feel like its more Unix like
Diskutil is a MacOS only tool. I’m a bit lost about what your argument is here.
Linux still use fdisk and dedicated tools to create file systems exactly like on FreeBSD or any other Unix. It’s MacOs doing its own thing here.
The Unix don’t really share much between each other apart from the small core.
One is better using the Windows alternatives.
Speed bumps regarding what?
I’m mostly using Linux nowadays but when I have to use Windows, the experience is fairly ok. The tooling when you want to manage it is imho infinitely superior to what Apple provides.
Honestly, the only rational reason I see to use MacOS is that the hardware is good and Apple doesn’t really support anything else on it. I used it for years and watched it get worse with every update. At this point, it’s more annoying than good but I might be coloured by my general dislike of Apple as a company.
Everything except a package manager!
I'm convinced the devs inside Apple know what I'm saying as well, and are giving as much help as possible to Homebrew to keep it independent. There is some small proof, Homebrew was considered very highly during the DTK rollout for Apple Silicon.
Those that have one, it is not standard.
So that target audience gets a cool modern experience, without fighting with driver issues and such.
It is also the reason why Microsoft ended up bringing Project Astoria from the ashes into WSL.
UNIX has won, but not as Richard Stallman would have liked to.
I guess it's just, might as well keep it going, as an option for future marketing if ever needed. Maybe it helps the salespeople in some enterprise deals? I mean, if it doesn't really cost anything to keep it.
NeXTSTEP had to support UNIX, because that was the workstation market they were after.
However notice how everything relevant for NeXT products was based on Objective-C userspace tooling and frameworks.
Am I missing something? I’m not sure why it’s coming off like people are complaining about this?
However Aix, Solaris (and Open Solaris derivatives), z/OS, IBM i (AS/400), ClearPath MCP, OS 2200, are still being updated and sold.
That list is not only UNIX systems.
> I was asked if I could lead a team to do #1. I said “Yes, under the condition that I could use the compliance project as a hammer to force other parts of the organization to make changes in their own code base, and that I could play it rather loose with commit rules regarding what it said in the bugs database for a given code change, and what the given code change actually did, in addition to what it said in the bugs database”.
…
> We were promised 1/10th of the $200 million, or $20 million in stock, on completion. $10 million to me, $5 million to Ed, and $5 million to Karen Crippes, who was looking for a home in Mac OS X development, I knew was an amazing engineer, and who could be roped into being technical liaison and periodically kicking off the tests and complaining to Ed and I about things not passing.
—-
Source: https://www.quora.com/What-goes-into-making-an-OS-to-be-Unix...
HN discussion: https://news.ycombinator.com/item?id=29984016
Guess it shows that when it comes to compensation promises always get it in writing.
Sorry, I’m probably missing the obvious.
“The executive who agreed to the deal left his wife for an HR person, and took the stock for himself.
Never every make a handshake deal with a person you trust, because that trust will not last.”
> Also, the tech lead has to fix anything no one else fixes, or no one else can fix, because they are the DRI (Directly Responsible Individual).
How many tech lead/project manager can say that they are capable for this in these days? It feels like based on my observations that other skills are taking priority on management/lead side.
https://www.opengroup.org/openbrand/register/brand3617.htm
https://www.opengroup.org/openbrand/register/brand3622.htm
Save these links for the next time someone moans that Linux "is not a real Unix".
In order to get a Linux distro certified, you'd have to make changes which would make it less compatible with all the other Linux distros out there.
The reason why RedHat doesn't pay for UNIX certification is that their distros wouldn't be compliant. The reason why they don't make their distros compliant is that their customers would vastly prefer that RedHat use "standard Linux" tools than replace them with UNIX-compliant ones. Customers don't want a Linux distro that's subtly different/incompatible compared to what everyone expects in a Linux system. They'd rather it be not-UNIX.
Yes, you can modify a Linux distro to be UNIX. However, most Linux systems are not real UNIX - and you wouldn't want it to be real UNIX.
the GNU userland might be common for user facing systems, but it's nowhere close to standard.
https://www.osnews.com/story/141633/apples-macos-unix-certif...
Identical changes were made for Tahoe's certification. This includes disabling SIP.
https://www.opengroup.org/csq/repository/noreferences=1&RID=...
So Tahoe is certified, but what ships with every Mac isn't certified UNIX. Not that being certified makes any difference what-so-ever.
So, for all intents and purposes, nothing that would be relevant in any reasonable end-user way in 2025. It’s all just: here’s defaults and here’s scripts to set up your environment and here’s a dozen things to run brew with. But no standard.
https://en.wikipedia.org/wiki/Single_UNIX_Specification#Comp...
EDIT: already downvoted to negatives. The Linux folks really don't like to be reminded of that.
Can I call poll(2) on a terminal device's file descriptor?
Requirement for certification: https://pubs.opengroup.org/onlinepubs/9799919799.2024edition...
> The poll() and ppoll() functions shall support regular files, terminal and pseudo-terminal devices, FIFOs, pipes, and sockets.
Apple (last time I checked): https://developer.apple.com/library/archive/documentation/Sy...
> BUGS: The poll() system call currently does not support devices.
I asked the same question of Sequoia: https://news.ycombinator.com/item?id=41822308
> It's not simply that certification costs money. It's that a lot of modern UNIX-like operating systems don't adhere to the UNIX spec. For example, the OpenBSD man pages specify the ways in which they diverge from POSIX and UNIX in the Standards section: https://man.openbsd.org/sh.1#STANDARDS, https://man.openbsd.org/awk.1#STANDARDS. Often times these are small deviations that might not matter to most people, but it means that they aren't UNIX.
Except it seems like macOS diverges, too, yet it is certified. I wonder in what other ways it diverges.