Apple macOS 15 Sequoia is officially UNIX. If anyone cares...
- Reference: 1728651673
- News link: https://www.theregister.co.uk/2024/10/11/macos_15_is_unix/
- Source link:
Apple macOS 15 Sequoia [1]appeared in mid-September and is an official, compliant version of UNIX™, but that may not mean exactly what you think. For instance, macOS does not use any AT&T source code – "Unix" stopped meaning that way back in 1993 when Novell bought UNIX from Bell Labs, as we discussed early last year when we announced that [2]Unix is dead .
Shortly after the release of Sequoia, news surfaced regarding [3]some security software breakages followed by the first update, [4]version 15.0.1 , earlier this month. The arrival of 15.0.1 was followed by a couple of other events. One is not very significant at all. A day or so later, The Reg FOSS desk's MacBook Air started offering the update.
[5]
The other is of a little more significance to the wider world – if only slightly. Sequoia [6]showed up as the newest entry on the Open Group's Register of [7]UNIX® Certified Products . In fact, it has both the number one and two spots because there are separate entries for the [8]Apple Silicon version and the [9]x86-64 version . There's no particular significance to the order, but if Apple continues to pay for the certification, at some point the x86-64 version will fall off the list when Apple stops supporting its Intel-powered kit.
Unix is just a newer name for POSIX
It's not about the code. It hasn't been for more than 30 years, since Novell bought the original Unix from AT&T. Really, what UNIX™ certification means now is what used to be called "POSIX compatible" – an abbreviation [10]coined by Richard Stallman, as it happens.
POSIX is essentially a set of compatibility specifications and tests, including having the right tools present in the right locations. So long as they are there, an OS can pass the test, which is how systems such as IBM's z/OS mainframe operating system are on the list. z/OS is a distant descendant of [11]IBM's 24-bit MVS for the System/370 mainframe from 1974, which is at heart not much more similar to Unix than an Apple II running ProDOS.
[12]
[13]
That's why a young Linus Torvalds asked the comp.os.minix newsgroup on the third of July 1991:
Due to a project I'm working on (in minix), I'm interested in the posix standard definition. Could somebody please point me to a (preferably) machine-readable format of the latest posix rules?
The POSIX standard has evolved over the years, and interestingly enough, Apple is only claiming [14]UNIX 03 from 2002. A single product, IBM AIX 7, [15]boasts compatibility with version 4 of the standard, branded [16]UNIX® V7 – AKA POSIX.1-2008.
The standard has continued to evolve since then. The version 4 specification was [17]last revised in 2018, and there's a [18]2024 version as well. Nobody much seems to pay attention any more, which is fair enough. The world has moved on from proprietary Unix, and now that all the significant Unix-like OSes are either FOSS or freeware, you can add any missing bits without paying.
For instance, POSIX resolved the differences between various archiving tools by adding a new command, called [19]pax , that could handle all the main formats. It's a hybrid of tar and cpio , and most Linux distros don't include it because existing tools can handle the files. Lacking a pax command means an OS isn't compliant with POSIX-1.2001 or later, but nobody cares anymore.
So what makes an OS Unix-like?
If you don't need to use any of the original AT&T source code, and even the handful of companies who continue to pay for official Unix certification don't bother to aim at compliance with the latest versions of POSIX, then what makes an OS Unix-like?
Taking a much more high-level view, what constitutes a Unix is that it looks like Unix, it behaves like Unix, and you can port programs written for Unix to it without major modification.
[20]
The core of macOS is close enough to qualify. It uses a kernel called XNU (which, ironically, stands for "XNU is Not Unix"), and a user-land mostly derived from BSD code. XNU is based on the [21]Mach kernel [PDF]. Specifically, after Apple bought NeXT, it updated the [22]Mach components of the NeXTstep kernel with the enhanced version from [23]DEC OSF/1 (later [24]marketed as Compaq Tru64 ). It also has a large in-kernel "Unix server" derived from BSD code – meaning that the industry's most famous and successful microkernel OS isn't really a true microkernel at all.
[25]Version 7.6 – the 'OpenBSD of Theseus' – released
[26]Thunderbird for Android is go – at least the beta is
[27]Switching customers from Linux to BSD because boring is good
[28]Xfce 4.20 creeps toward Wayland support while Mint 22.1 polishes desktop routine
On top of that, the "user-land" – the text-mode stuff underneath the GUI, the various commands, shells, and so on – is mostly open source, and much of it comes from BSD. For instance, the [29]XNU kernel is on GitHub, as are [30]large chunks of macOS and iOS. It's the GUI layers, the visible parts that make it look pretty, that are proprietary; those are the bits mostly written in Objective-C and more recently Swift.
Apple used to make a mostly standalone version of these lower layers of the OS available as a project called Darwin, and there were several distros that tried to complete it using bits from other FOSS OSes, such as [31]OpenDarwin and [32]PureDarwin . For us, one of the more interesting projects was [33]NextBSD , which went the other way. It kept the FreeBSD kernel, but modified it so that it could use some of Apple's higher-level code, such as [34]launchd , Apple's next-generation init system. In other words, Cupertino's equivalent of systemd.
Apple announced that it would acquire NeXT Computer at the end of 1996, and in October 1997 released a preview of its next-generation OS called [35]Rhapsody . Rhapsody was effectively [36]NeXTstep 5 . In 1999, it became [37]Mac OS X Server 1.0 , still [38]visibly NeXTstep-like . That evolved into [39]Mac OS X 1.0 in 2000 .
NeXTstep – the capitalization [40]changed a few times – became OPENSTEP, which became Rhapsody, then Mac OS X Server, Mac OS X, and then just OS X with [41]10.8 Mountain Lion , and as of [42]10.12 Sierra , it was [43]simply macOS . But it's recognizably the same OS as [44]NeXTstep 0.8 , as demonstrated by a young Steve Jobs in 1988. ®
[45]
[46]Youtube Video
Bootnote: So, all in C?
No, it doesn't even have to be implemented in C. [47]Serenity OS is implemented in C++, and [48]Redox OS is written in Rust, and both are very Unix-like. To go to extremes, both C++ and Rust are curly bracket languages in the wider C family, but [49]TUNIS, the Toronto University System , was a [50]Unix Seventh Edition -compatible OS implemented in [51]Concurrent Euclid , a variant of Pascal.
Get our [52]Tech Resources
[1] https://www.apple.com/cm/newsroom/2024/09/macos-sequoia-is-available-today-bringing-apple-intelligence-updates-to-safari-and-more-to-mac/
[2] https://www.theregister.com/2023/01/17/unix_is_dead/
[3] https://www.theregister.com/2024/09/23/security_in_brief/
[4] https://support.apple.com/en-us/120283
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZwlLpoV9VxBt4bCF0Gq8CQAAAI4&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[6] https://www.osnews.com/story/140868/macos-15-0-now-unix-03-certified/
[7] https://www.opengroup.org/openbrand/register/
[8] https://www.opengroup.org/openbrand/register/brand3710.htm
[9] https://www.opengroup.org/openbrand/register/brand3715.htm
[10] https://stallman.org/articles/posix.html
[11] https://wiki.ucc.asn.au/MVS
[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZwlLpoV9VxBt4bCF0Gq8CQAAAI4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[13] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZwlLpoV9VxBt4bCF0Gq8CQAAAI4&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[14] https://unix.org/version3/
[15] https://www.opengroup.org/openbrand/register/brand3658.htm
[16] https://unix.org/unixv7.html
[17] https://unix.org/version4/
[18] https://pubs.opengroup.org/onlinepubs/9799919799/
[19] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html
[20] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZwlLpoV9VxBt4bCF0Gq8CQAAAI4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[21] https://codex.cs.yale.edu/avi/os-book/OS9/appendices-dir/b.pdf
[22] https://en.wikipedia.org/wiki/XNU#Mach
[23] https://betawiki.net/wiki/OSF/1
[24] https://www.theregister.com/1999/11/04/compaq_to_offer_tru64_cheap/
[25] https://www.theregister.com/2024/10/10/version_76_openbsd_of_theseus/
[26] https://www.theregister.com/2024/10/09/thunderbird_for_android_beta/
[27] https://www.theregister.com/2024/10/08/switching_from_linux_to_bsd/
[28] https://www.theregister.com/2024/10/07/xfce_420_and_mint_221/
[29] https://github.com/apple-oss-distributions/xnu/tree/main
[30] https://github.com/apple-oss-distributions
[31] https://www.macintoshrepository.org/16940-opendarwin
[32] https://www.puredarwin.org/
[33] https://github.com/NextBSD/NextBSD
[34] https://www.launchd.info/
[35] http://www.rhapsodyos.org/misc/what_is/what_is_1.html
[36] http://rhapsodyos.org/
[37] https://betawiki.net/wiki/Mac_OS_X_Server_1.0
[38] https://www.macintoshrepository.org/1449-mac-os-x-server-1-x-rhapsody-
[39] https://www.theregister.com/2000/12/07/macos_x/
[40] https://blog.pizzabox.computer/posts/hp712-nextstep-part-1/
[41] https://www.theregister.com/2012/07/25/first_look_apple_mac_os_x_10_8_mountain_lion/
[42] https://www.theregister.com/2016/10/03/apple_automatic_installs_of_macos_sierra/
[43] https://www.theregister.com/2016/10/14/apples_macos_sierra_update/
[44] http://toastytech.com/guis/ns08.html
[45] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZwlLpoV9VxBt4bCF0Gq8CQAAAI4&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[46] https://www.youtube.com/watch?v=92NNyd3m79I
[47] https://www.theregister.com/2022/03/31/serenityos/
[48] https://www.theregister.com/2022/11/29/redox_os_version_08/
[49] https://dl.acm.org/doi/10.1145/1041466.1041467
[50] https://gunkies.org/wiki/Unix_Seventh_Edition
[51] https://dl.acm.org/doi/10.1145/947923.947931
[52] https://whitepapers.theregister.com/
Re: POSIX and UNIX
I do recall a flame war once in which Linux broke from POSIX compliance when Linus declared that POSIX was a broken standard and he had no intention of breaking Linux.
As for whether Linux is or is not a UNIX, do I detect a slight change of heart? ;o)
Am I missing something?
MacOS has been UNIX certified for many years. At least since 10.11, El Capitan in 2015. Is this a different level of UNIX certification or just a slow news day?
Re: Am I missing something?
Apple have separately listed Sequoia for Apple Silicon as a separate entry, even if the OS is ostensibly the same.
I don't know why they've done this specifically for their ARM based systems, unless the port involved a significant re-write of some of the main parts, but I guess they may be trying to differentiate the product lines for the future, although I don't see Apple selling any more Intel based Macs.
Re: Am I missing something?
They probably suddenly realised they had discontinued their last Intel machine a year ago (Mac Pro 2019) and won't renew the Intel certification.
Re: Am I missing something?
Potentially interesting for those who haven't encountered it before: [1]this is the story of why and how OS X became UNIX certified by its primary architect.
Short version: Apple was calling it a UNIX despite not being certified. The Open Group filed a $200m lawsuit. One of Apple's tech leads was therefore paid $10m (!) to satisfy certification requirements within a year, of which he describes rewriting the kernel's internal signalling mechanism as the biggest chunk.
Nice work if you can get it.
[1] https://www.quora.com/What-goes-into-making-an-OS-to-be-Unix-compliant-certified
The UNIX brand
There are now very few companies that are really interested in UNIX as a brand. The only company that I know about that is still developing a UNIX system (apart from this addition from Apple) is IBM, and AIX appears to be the only certified UNX V7 compliant system (this announcement by Apple is basically saying that Apple Silicon MacOS is the same as their Intel products, and is only UNIX 03 branding). I don't expect any other company to put a product up for certification.
I can't imagine that there ae enough companies interested to keep the brand evolving. I think that even IBM will lose interest as their interest in AIX wanes, and they deprecate it in favour of RedHat Linux on Power.
Re: The UNIX brand
I wonder why IBM bothered to certify AIX 7.2 TL5 as a UNIX V7 in 2020, when UNIX V7 is ancient (1979). The previous versions of AIX, including AIX 7.1, are all certified as UNIX 03.
Unless they somehow managed to fail a test for compliance with UNIX 03?
Re: The UNIX brand
No. You've missed some of the more recent subtleties over the UNIX brand.
UNIX V7 is the latest in the UNIX branding sequence, superseding the UNIX 03 standard (See https://www.opengroup.org/openbrand/register/catalog.htm).
It is NOT the version of UNIX from 1979. It is confusing, but I actually went back into a lot of ancient documentation when The Open Group first published their UNX V7 standard, and UNIX circa 1979 was actually called UNIX Edition 7 in almost all of the documentation published with that release, after Edition 7 of the UNIX manual,
I used to use UNIX Version 7 as an identifier for the 1979 release right up until the UNIX V7 standard was released, when I switched to calling it Edition 7, just to make sure there was no confusion about what I was saying. But it is notable that TUHS has got various branches of the source code labeled as V7, so I don't think I was alone in using that nomenclature.
I can't imagine what you would have to break in a modern UNIX to make it deemed as only UNIX Edition 7 compatible. Although things are recognisably similar, System 3 and System 5 added many, many more commands and features, and tried to regularize some of the options syntax. Using an Edition 7 system (in emulation, or using the i386 port that was done after SCO opened it up to a very permissive license) reminds one of just how primitive the systems we used to use were (I first used UNIX Edition 6 on a PDP11/34e in 1978 when I went to Uni,). No networking other than what you could run over serial lines, no graphical interfaces, not even Curses terminal handling, and a whole lot of things we take for granted (like vi) just not being present at all!
Strangely, usine a FreeBSD system recently reminded me (because of the syntax of some of the commands like "ps") that BSD systems are actually derrived from UNIX Edition 7, not UNIX System III or V.
POSIX.1 vs POSIX.2
The POSIX.1 specification is all about C, it contains [1]C header definitions and the C library specification . As does the [2]2004 revision , the [3]2017 revision , the [4]2024 revision ...
POSIX.2 is for the command interpreter, shell, user environment, and related utilities.
If a system is not UNIX-like and not written in C and doesn't offer a C-like API and ABI, it's going to have a hard time being compliant with the POSIX.1 specification so it can't be a certified UNIX.
[1] https://en.wikipedia.org/wiki/POSIX#Parts_before_1997
[2] https://pubs.opengroup.org/onlinepubs/009695399/
[3] https://pubs.opengroup.org/onlinepubs/9699919799/
[4] https://pubs.opengroup.org/onlinepubs/9799919799/
Saying the DEC OSF/1 was later marketed as Tru64 UNIX is a bit reductive. That latter was based on OSF/1, but it was a full featured commerical OS release. DEC OSF/1, the product, was mainly used on workstations. DEC sold MIPS based workstations running DEC OSF/1. Tru64 ran on Alpha and was either ported or was in the process of being ported to IA64 when HP pulled the plug on the Tru64 project.
I worked at DEC and made it through the Compaq and HP acquisitions, but sadly did not survive the end of Tru64 UNIX>
OSF/1 was supposed to be a standard version of UNIX, in opposition to SVR4, created by UNIX vendors who either didn't want to take part, or were excluded from the SVR4 initiative that was being driven by AT&T, Sun, Amdahl, ICL, SCO (the original one) and several other UNIX system vendors of the time.
But the list of those excluded was mainly IBM, HP and DEC, and these three decided to set up this competing standard, for whatever reason they thought it was justified (I think they just wanted to muddy the waters and protect their own proprietary UNIX offerings).
Initially, IBM offered the kernel they were writing for AIX Version 3 (which was being written at the time for the upcoming RS/6000 line of systems), and they also contributed an early cut of their Logical Volume Manager. I don't remember which of the other parts came from HP or DEC.
The intention was to try to make a standardized version of UNIX that was not SVR4,
But it was interesting to note that it was only DEC that actually produced systems that ran a version of OSF/1. HP adopted some of the features back into HP/UX, and of course IBM went forward with AIX 3.1 and later, which was not compliant with OSF/1.
It is now somewhat ironic that IBM is the last player standing, after bringing AIX up to the POSIX 1003 standards, and effectively adopting the features to allow it to become System V compliant (AIX was already SVR2 compliant, IBM having a source code license for that version from earlier UNIX products) but adding the SVR3 and 4 features to comply with the later POSIX and SUS standards.
POSIX and UNIX
The original POSIX 1003.1 was essentially the same as the UNIX System V Interface Definition (SVID), Issue 2 published by AT&T around 1986. This was effectively the definition for System V release 3 (SVR3), although I think that it may have included stuff that appeared in SVR3.2. The last version of the SVID was issue 4, that was updated to conform to one of the slightly later versions of POSIX 1003.1, maintaining compatibility between the core genetic UNIX and POSIX.
I attended the SVR4 Developer conference in around 1988, and as part of the bundle of bumph given out, it included a copy of this issue of the SVID, which is still sitting on a shelf in one of my bookcases. I was told that I would get a copy of Issue 3 sent to me (which was updated for SVR4), but it never arrived.
The SVID (and hence the first edition of POSIX 1003.1) defined more than just the command set. It also defines a mandatory set of system calls, (essentially Chapter 2 in the UNIX manual) but does not describe any of the other sections, like the C library or device types.
POSIX 1003.1 has evolved quite a lot since then, and the various UNIX standards now maintained by The Open Group have taken over the maintenance of the UNIX brand, merging POSIX with the other UNIX branding.
I know why, but it's a shame that Linux as a community (whatever that is) has not bought into the standards promoted by The Open Group, or have not set up a similar single branding standard (forget the Linux Standard Base - it's dead), because variation between different Linux distributions are one of the reason why we see fragmentation of the Linux ecosystem.