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.
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.
For example, Apple federated accounts are a great idea. But, in your global directory the UPN and email must be the same. For us it's not, with good reason. We're not going to change our entire setup globally to suit Mac users that make up 0.5% of our systems. And there's never going to be more unless they become more accommodating. We even looked at JAMF but it's too much work to implement a whole separate management system. And the options in apple's configuration profiles are way too limited.
Another issue, every account that has already been created as a private Apple id on the corporate email must be manually resolved. Impossible with many tens of thousands of users.
AD binding while rudimentarily supported, causes so many issues. If someone's password expires there's no way to log in unless they're physically on the company network. The problem is that our security team demand we bind to AD. Not Azure AD. That's just reality in enterprise.
Having a managed local admin account is also a really big problem and there isn't really any tooling for that.
Maybe if you go all in on Apple like IBM did, then yeah you could adapt your environment to all their quirks. But it's a big blocker for small deployments. And really besides IBM nobody in enterprise did this. Apple meanwhile doesn't really care anyway. They only care about the customer market.
POSIX conformance is a cherry on top, and it helps get them certain sales that require a conforming Unix. But that's not the real value to the platform.
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.
The Unix don’t really share much between each other apart from a small core.
Everything except a package manager!
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.
Does anyone want to be the person that removes regression tests from active use, only to be responsible when something breaks that would have been caught by that test? Far easier to just fix your code so the test passes.
(And for many years, OS X then macOS had a reputation for being rock-solid, capable of going much longer betwen restarts, going into BSOD much less frequently than Windows would. Having a set of third-party tests certainly didn't hurt this!)
Also, Apple is a huge company, there's the question of who's going to make the call the not update a certification that's negligible within the scope of macOS development. Better to not be that person and just rubberstamp the invoice from The Open Group. If management disagree, they can make the call, but they won't because the cost is to small for them to deal with.
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.
If they balk, it's precisely because they want to be able to be free to cheat you out of it once the work is done.
> 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.
I'm not sure what you mean by "Unix specification". But if you mean the international standard POSIX, yes, people care. Red Hat routinely participates in POSIX spec revision.
There are a very few deviations where you have to enable "POSIXLY_CORRECT". If that's what you mean, then you can turn that on. But in every area that matters, Linux distros implement the POSIX spec by default, and you can even turn on the POSIXLY_CORRECT mode to exactly follow it. They extend beyond it, but that is allowed and expected.
The people who build the tools in Linux distros care a lot. I know the implementors of dash and GNU make routinely refer to POSIX. The Linux distros don't have to as much with POSIX because that is generally a conpleted work and it's the maintainers of the tools who must address the updates to POSIX.
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.
That window window of optimism—roughly mid-1980s to mid-1990s—closed fast. Open source projects and _de facto_ standards proved far more powerful in deciding where applications would run, where investments would be made, and which variants survived. Today, the real baseline isn’t POSIX in a binder or some Open Group brand certificate, but Linux + GNU + the APIs everyone codes to. In some ways we've regressed—or more charitably, we shifted back to a more pragmatic form of standardization.
i would not call that a regression. compare that to the browser standard which is largely controlled by google.
Instead it's a bunch of corporations with very similar motives, including profit, so the end result isn't all that different. Just look at who the majority of committers work for.
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
Meanwhile poll() just works on Linux and the BSDs, certified or not.
> 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.
Mach absolute time is monotonic. It pauses while the system is asleep, which may or may not be what you want.
If need the timer to keep incrementing while the system is asleep, there's no way to do it directly with a timed wait, but you can use kevent with EVFILT_TIMER + NOTE_MACHTIME + NOTE_MACH_CONTINUOUS_TIME.
[1] https://github.com/apple-oss-distributions/libpthread/blob/1...
[2] https://github.com/apple-oss-distributions/libpthread/blob/1...
[3] https://github.com/apple-oss-distributions/xnu/blob/e3723e1f...
The context is a UDP network receiver which infers packet loss after a timeout:
https://github.com/facebook/netconsd/blob/main/threads.c#L15... https://github.com/facebook/netconsd/blob/main/worker.c#L526
Time while sleeping doesn't matter here.
Browser standards managed to do this in a lot of ways despite far more complex standards, more complex variations in behavior, and much more rapid continue evolution ...
I also like the fact that I have a very polished desktop manager running on great hardware with a lot of battery life.
I wouldn't trade this for anything.
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...
https://pubs.opengroup.org/onlinepubs/9799919799/
So a conforming OS has to make case-sensitive file systems available (which MacOS does: you can create case-sensitive HFS or APFS volumes). But I'm not sure if a conforming OS instance (i.e., running system) has to have any case-sensitive mount points, and either way, AFAIK there's no practical and race-free way for a conforming application to detect whether any particular mount point behaves case-sensitively.
So I believe that as far as the standard goes, a conforming application might run on a conformingly-extended OS where no portion of the the file namespace behaves case-sensitively. IOW, a conforming application cannot rely on case-sensitivity for file names.
> 3. APFS file systems can be formatted as either case-sensitive or case-insensitive. Always format as case-sensitive for UNIX Conformant behavior.
[0] https://www.opengroup.org/csq/repository/noreferences=1&RID=...
TESTDIR=$(mktemp -d -p ${WHEREVER})
touch ${TESTDIR}/FOO
ls ${TESTDIR}/foo && failEDIT: already downvoted to negatives. The Linux folks really don't like to be reminded of that.
Have they? I'm not aware that any of the desktop linux projects particularly care about POSIX or being a certified Unix™.
The Linux desktop is widely used all across the world in the form of ChromeOS and, if you count touch screen devices, Android.
It only got usable when SUA came to be.