Open The Open Group's UNIX register today and you'll find nine certified products: IBM's AIX and z/OS, HP-UX, and two SCO products. There's no Apple and no macOS anywhere on that page. On 7 October it still listed macOS 26 Tahoe.
So is macOS still Unix? On paper, mostly yes, for now. In practice it never was the kind of Unix you're thinking of, and the certificate had nothing to do with the stuff that actually breaks your scripts.
What The Open Group's UNIX register shows right now
The Hacker News thread had commenters calling it a removal, a rendering bug and a non-story all at once, so I went to the HTML myself.
The main register page (/openbrand/register/), fetched on 11 October 2026, lists IBM, Hewlett Packard Enterprise and The SCO Group. Apple isn't there. The Wayback Machine has had "macOS version 26.0 Tahoe" for Apple silicon and for Intel Macs on that URL since September 2025, and the capture from 7 October 2026 still shows all the Apple entries, Tahoe down to Monterey. The capture from 11 October 2026 has none of them. So Apple went missing sometime in those four days. The HN thread went up on 10 October.
The UNIX 03 product page still lists Tahoe:
<li><b>Apple Inc.</b>: <a href=brand3725.htm>macOS version 26.0 Tahoe</a> on Apple silicon-based Mac computers</li>
<li><b>Apple Inc.</b>: <a href=brand3720.htm>macOS version 26.0 Tahoe</a> on Intel-based Mac computers</li>
<!--<li><b>Apple Inc.</b>: <a href=brand3710.htm>macOS version 15.0 Sequoia</a> on Apple silicon-based Mac computers</li>
Look at the last line. Sequoia and Ventura are still in the file, wrapped in HTML comments. Old releases apparently get hidden once a newer one is certified. Both Tahoe certificates say "Registered on: 29-Aug-2025". I found no entry for macOS 27.
My reading, and the HTML doesn't support much more than this: Tahoe is still certified, the front page of the register no longer mentions Apple, and macOS 27, which shipped on 14 September, hasn't been registered. Maybe Apple files late, maybe it stopped bothering, maybe somebody tidied up the front page. "Apple quit Unix" goes further than the evidence, but so does "nothing happened", because Apple used to be on that front page and now isn't.
The UNIX 03 certificate was always a paperwork exercise
OSNews went through Apple's conformance documents for macOS 15.0. It reported that passing the UNIX 03 test suites means disabling System Integrity Protection, enabling the root account, formatting APFS as case-sensitive, and copying uucp binaries into /usr/local/bin with the setuid bit set. So the certified system is a Mac nobody runs.
UNIX 03 also means version 3 of the Single UNIX Specification, which was last updated in 2004. Apple never certified against UNIX V7, and on the V7 page only AIX shows up.
Commenters in the thread argued about why Apple bothered at all. Some brought up The Open Group suing Apple for calling Mac OS X UNIX, and said Apple decided it was cheaper to pass the tests and pay the license fee than to fight. Others pointed to government procurement checklists that ask for "UNIX". Either way, the people who cared about the badge were lawyers and purchasing departments. Developers have had a different problem the whole time.
BSD sed and date vs GNU on Linux
Your CI runs on Linux with GNU tools, and your Mac ships BSD-derived ones. Both claim POSIX, and POSIX says nothing about sed -i. I tested the GNU side on a Debian 13 box (GNU sed 4.9, coreutils 9.7). The BSD behaviour comes from the macOS man pages.
The one everybody hits is in-place sed. On a Mac, BSD sed requires an argument after -i, so people write:
sed -i '' 's/localhost/db/' conf.txt
Run that same line on GNU sed in your Linux CI and you get:
sed: can't read s/localhost/db/: No such file or directory
GNU took '' as the script and your substitution as a filename, then exited with status 2 and left the file alone. Drop the '' and it works on Linux, but on macOS BSD sed takes your script as the backup suffix and the command breaks there instead.
Dates are worse, because the two implementations use different flags for the same job:
date -u -d '2026-10-11 +2 days' +%F # GNU: 2026-10-13
date -v+2d +%F # BSD: works on macOS
On GNU, the second one dies with date: invalid option -- 'v'.
readlink -f used to be the third classic. Before macOS 12.3 you'd get illegal option -- f, which filled years of bug trackers. Monterey 12.3 added -f, so this one is mostly over, unless your team still has Big Sur machines.
| Task | GNU (Linux CI) | BSD (macOS) | Works on both |
|---|---|---|---|
| In-place edit | sed -i 's/a/b/' f |
sed -i '' 's/a/b/' f |
sed -i.bak 's/a/b/' f && rm f.bak |
| Date math | date -d '+2 days' |
date -v+2d |
none in date; use gdate or a real language |
| Canonical path | readlink -f p |
readlink -f p (12.3+) |
realpath p on current systems |
/bin/sh |
dash on Debian/Ubuntu, bash on RHEL | bash 3.2 in POSIX mode | write to POSIX, test with both |
None of these differences was ever going to be fixed by The Open Group, because both implementations are conformant. That's my whole complaint about the badge. It certified that macOS meets a 2004 spec, and it said nothing about whether your Makefile from Linux will run on it.
Portable sed, date and readlink: what I'd actually do
Roughly in order of how much each one will annoy your teammates:
Write the portable form.
sed -i.bakwith a suffix attached (no space) works on both implementations. I ran it on GNU and it edited the file and leftconf.txt.bakbehind. Delete the backup and you're done.Use Perl when sed gets clever.
perl -i -pe 's/db/cache/' conf.txtbehaves the same everywhere Perl exists, and macOS still ships it. I ran it here on Perl 5.40.1.Install GNU tools under their g-names. Homebrew's
coreutilsformula (9.12 at the time of writing) installsgdate,greadlink,glsand the rest with agprefix.gnu-sedgives yougsed. Scripts can then check for the GNU name first:
SED=$(command -v gsed || command -v sed)
- Or put GNU first in your PATH. The formula's caveat spells it out:
PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
That makes your interactive shell behave like your CI. The catch is that scripts you write on your machine will quietly depend on GNU and break on a teammate's stock Mac. I'd only do this if your scripts never run anywhere but your laptop and Linux.
- Run the scripts where they'll actually run. If production is Linux, lint and test the shell scripts in a Linux container. Everything above is damage control.
So is macOS still Unix?
Legally, Tahoe still has a UNIX 03 certificate, and that's true whether or not it appears on the front page. Practically, macOS is Darwin (the XNU kernel) with a FreeBSD-flavoured userland, zsh as the login shell and an ancient bash behind /bin/sh, and it'll keep being that whether Apple registers macOS 27 or not. Your terminal won't notice, and sed -i will keep failing the same way it did last week.
What I'd watch is the part the certificate never covered. SIP, Gatekeeper and a read-only system volume push macOS further from "a Unix box you control" with every release, and no register entry tracks that.
Do you still think of your Mac as a Unix machine, or just a nice-looking client for Linux servers? And if Apple never registers another release, would anyone on your team notice?
Sources
- The Open Group, main register: https://www.opengroup.org/openbrand/register/
- The Open Group, UNIX 03 register: https://www.opengroup.org/openbrand/register/xy.htm
- Tahoe certificate (Apple silicon): https://www.opengroup.org/openbrand/register/brand3725.htm
- Hacker News discussion: https://news.ycombinator.com/item?id=50031653
- OSNews, "Apple's macOS UNIX certification is a lie": https://www.osnews.com/story/141633/apples-macos-unix-certification-is-a-lie/
- Scripting OS X, readlink -f in macOS 12.3: https://scriptingosx.com/2022/03/some-cli-updates-in-macos-monterey/
- Homebrew coreutils formula: https://formulae.brew.sh/formula/coreutils
Top comments (0)