Apple’s macOS UNIX certification is a lie

As an online discussion grows longer, the probability of a someone mentioning macOS is a UNIX approaches 1. In fact, it was only late last year that The Open Group announced that macOS 15.0 was, once again, certified as UNIX, continuing Apple’s long-standing tradition of certifying macOS releases as “real” UNIX®. What does any of this actually, mean, though? Well, it turns out that if you actually dive into Apple’s conformance statements for macOS’ UNIX certification, it doesn’t really mean anything at all. First and foremost, we have to understand what UNIX certification really means. In order to be allowed to use the UNIX trademark, your operating system needs to comply with the Single UNIX Specification (SUS), which specifies programming interfaces for C, a command-line shell, and user commands, more or less identical to POSIX, as well as the X/Open Curses specification. The latest version is SUS version 4, originally published in 2008, with amendments published in 2013 and 2016, which were rolled up into version 4 in 2018. The various versions of the SUS that exist, in turn, correspond to a specific UNIX trademark. In table form: Trademark SUS version SUS published in: SUS last amended in: UNIX® 93 n.a. n.a. n.a. UNIX® 95 Version 1 1994 n.a. UNIX® 98 Version 2 1997 n.a. UNIX® 03 Version 3 2002 2004 UNIX® V7 Version 4 2008 2016 (2018 for roll-up) When you read that macOS is a certified UNIX, which of these versions and trademarks do you assume macOS complies with? You’d assume they would just target the latest trademark and SUS version, right? This would allow macOS to carry the UNIX® V7 trademark, because they would conform to version 4 of the SUS, which dates to 2016. The real answer is that macOS 15.0 only conforms to version 3 of the SUS, which dates all the way back to the ancient times of 2004, and as such, macOS is only UNIX® 03 (on both Intel and ARM). However, you can argue this is just semantics, since it’s not like UNIX and POSIX are very inclined to change. So now, like the UNIX nerd that you are, you want to see all this for yourself. You use macOS, safe in the knowledge that unlike those peasants using Linux or one of the BSDs, you’re using a real UNIX®. So you can just download all the tests suites (if you can afford them, but that’s a whole different can of worms) and run them, replicating Apple’s compliance testing, seeing for yourself, on your own macOS 15 installation, that macOS 15 is a real UNIX®, right? Well, no, you can’t, because the version of macOS 15 Apple certifies is not the version that’s running on everyone’s supported Macs. To gain its much-vaunted UNIX certification for macOS, Apple cheats. A lot. The various documents Apple needs to submit to The Open Group as part of the UNIX certification process are freely available, and mostly it’s a lot of very technical questions about various very specific aspects of macOS’ UNIX and POSIX compliance few of us would be able to corroborate without extensive research and in-depth knowledge of macOS, UNIX, and POSIX. However, at the end of every one of these Conformance Statements, there’s a text field where the applicant can write down “additional, explanatory material that was provided by the vendor”, and it’s in these appendices where we can see just how much Apple has to cheat to ensure macOS passes the various UNIX® 03 certification tests. In the first of these four documents, Internationalised System Calls and Libraries Extended V3, Apple’s “additional, explanatory material” reads as follows: Question 27: By default, core file generation is not enabled. To enable core file generation, you can issue this command: sudo launchctl limit core unlimited Testing Environment Addendum: macOS version 15.0 Sequoia, like previous versions, includes an additional security mechanism known as System Integrity Protection (SIP). This security policy applies to every running process, including privileged code and code that runs out of the sandbox. The policy extends additional protections to components on disk and at run-time, only allowing system binaries to be modified by the system installer and software updates. Code injection and runtime attachments to system binaries are no longer permitted. To run the VSX conformance test suite we first disable SIP as follows: – Shut down the system.– Press and hold the power button. Keep holding it while you see the Apple logo and the message “Continue holding for startup options”– Release the power button when you see “Loading startup options”– Choose “Options” and click “Continue”– Select an administrator account and enter its password.– From the Utilities menu in the Menu Bar, select Terminal.– At the prompt, issue the following command: “csrutil disable”– You should see a message that SIP is disabled. From the Apple menu, select “Restart”. By default, macOS coalesces timeouts that are scheduled to occur within 5 seconds of each other. This can randomly cause some sleep calls to sleep for different times than requested (which affects tests of file access times) so we disable this coalescing when testing. To disable timeout coalescing issue this command: sudo sysctl -w kern.timer.coalescing_enabled=0 By default there is no root user. We enable the root user for testing using the following series of steps:– Launch the Directory Utility by pressing Command and Space, and then typing “Directory Utility”– Click the Lock icon in Directory Utility and authenticate by entering an Administrator username and password.– From the Menu Bar in Directory Utility:– Choose Edit -> Enable Root User. Then enter a password for the root user, and confirm it.– Note: If you choose, you can later Disable Root User via the same menu. ↫ Apple’s appendix to Internationalised System Calls and Libraries Extended V3 The second conformance statement, Commands and Utilities V4, has another appendix, and it’s a real doozy (the indicate repeat remarks from the previous appendix; I’ve removed them for brevity): Testing Environment Addendum: The third and fourth conformance statements have

Linux 6.14 with Rust: “We are almost at the ‘write a real driver in Rust’ stage now”

With the Linux 6.13 kernel, Greg Kroah-Hartman described the level of Rust support as a “tipping point” for Rust drivers with more of the Rust infrastructure having been merged. Now for the Linux 6.14 kernel, Greg describes the state of the Rust driver possibilities as “almost at the “write a real driver in rust” stage now, depending on what you want to do.“ ↫ Michael Larabel Excellent news, as there’s a lot of interest in Rust, and it seems that allowing developers to write drivers for Linux in Rust will make at least some new and upcoming drivers comes with less memory safety issues than non-Rust drivers. I’m also quite sure this will anger absolutely nobody.

OpenAI doesn’t like it when you use “their” generated slop without permission

OpenAI says it has found evidence that Chinese artificial intelligence start-up DeepSeek used the US company’s proprietary models to train its own open-source competitor, as concerns grow over a potential breach of intellectual property. ↫ Cristina Criddle and Eleanor Olcott for the FT This is more ironic than writing a song called Ironic that lists situations that aren’t actually ironic. OpenAI claims it’s free to suck up whatever content and data it can find on the web without any form of permission or consent, but throws a tamper tantrum when someone takes whatever they regurgitate for their own use without permission or consent? Cry me a river.

Google Maps is run by cowards

Google, on its Google Maps naming policy, back in 2008: By saying “common”, we mean to include names which are in widespread daily use, rather than giving immediate recognition to any arbitrary governmental re-naming. In other words, if a ruler announced that henceforth the Pacific Ocean would be named after her mother, we would not add that placemark unless and until the name came into common usage. Google, today, in 2025: Google has confirmed that Google Maps will soon rename the Gulf of Mexico and Denali mountain in Alaska as the “Gulf of America” and “Mount McKinley” in line with changes implemented by the Trump Administration, but users in the rest of the world may see two names for these locations. Nothing is worth less than the word of a corporation.

Reviving a dead audio format: the return of ZZM

Long-time readers will know that my first video game love was the text-mode video game slash creation studio ZZT. One feature of this game is the ability to play simple music through the PC speaker, and back in the day, I remember that the format “ZZM” existed, so you could enjoy the square wave tunes outside of the games. But imagine my surprise in 2025 to find that, while the Museum of ZZT does have a ZZM Audio section, it recommends that nobody use the format anymore; because nobody’s made a player that doesn’t require MS-DOS. Let’s fix that by making a player with way higher system requirements, using everyone’s favorite coding environment: Javascript. ↫ Nicole Branagan ZZM’s history and Branagan’s journey to make this work without having to rely on DOS took a lot more work than I expected, and is quite interesting, too. Very niche, for sure, but that’s kind of what we’re here for.

The invalid 68030 instruction that accidentally allowed the Mac Classic II to successfully boot up

A bug in the ROM for the Macintosh II was recently discovered that causes a crash when booting in 32-bit mode. Doug Brown discovered and documented the bug while playing with the MAME debugger. Why did it never show up before? It seems a quirk in Motorola’s 68030 CPU inadvertently fixes it when executing an illegal instruction that shouldn’t have been executed in the first place. What follows is his process for investigating the room on emulated hardware, and then testing it on actual hardware.

PebbleOS becomes open source, new Pebble device announced

Eric Migicovsky, founder of Pebble, the original smartwatch maker, made a major announcement today together with Google. Pebble was originally bought by Fitbit and in turn Fitbit was then bought by Google, but Migicovsky always wanted to to go back to his original idea and create a brand new smartwatch. PebbleOS took dozens of engineers working over 4 years to build, alongside our fantastic product and QA teams. Reproducing that for new hardware would take a long time. Instead, we took a more direct route – I asked friends at Google (which bought Fitbit, which had bought Pebble’s IP) if they could open source PebbleOS. They said yes! Over the last year, a team inside Google (including some amazing ex-Pebblers turned Googlers) has been working on this. And today is the day – the source code for PebbleOS is now available at github.com/google/pebble (see their blog post). ↫ Eric Migicovsky Of course, this is amazing news for the still-thriving community of Pebble users who have kept the platform and their devices going through sheer force of will, but it also means Pebble is going to making a comeback in a more official capacity: alongside the announcement of PebbleOS becoming open source, there’s also the unveiling of rePebble, a brand new Pebble watch that retains all of the popular features and specifications of the original devices. It’ll run the open source PebbleOS, of course, and will be compatible with the existing ecosystem of applications. I’ve never had a Pebble, but there’s no denying the company hit on something valuable, and I know people who still rock their original Pebble devices to this day. The excitement about this announcement is palpable, and I’m pleasantly surprised Google cared enough to work on making an open source PebbleOS a reality (I know of quite a few other companies sitting on deeply loved code and IP rotting away in obscurity). I can’t wait to see what the new device will look like!

Chinese researchers just built an open-source rival to ChatGPT in 2 months, and Silicon Valley is freaked out

Speaking of “AI”, the Chinese company DeepSeek has lobbed a grenade dead-centre into the middle of the “AI” bubble, and it’s been incredibly entertaining to watch. DeepSeek has released several new “AI” models, which seem to rival or even surpass OpenAI’s latest ChatGPT models – but with a massive twist: DeepSeek, being Chinese, can’t use NVIDIA’s latest GPUs, and as such, was forced to work within very tight constraints. They’ve managed to surpass ChatGPT’s best models with a fraction of the GPU horsepower, and thus a fraction of the cost, and a fraction of the energy requirements. But unlike ChatGPT’s o1, DeepSeek is an “open-weight” model that (although its training data remains proprietary) enables users to peer inside and modify its algorithm. Just as important is its reduced price for users — 27 times less than o1. Besides its performance, the hype around DeepSeek comes from its cost efficiency; the model’s shoestring budget is minuscule compared with the tens of millions to hundreds of millions that rival companies spent to train its competitors. ↫ Ben Turner at LiveScience The fallout has been disastrous for NVIDIA, in particular. The company’s stock price tumbled 17% today, and more entertaining yet, the various massive investments of hundreds of billions of dollars into western “AI” seem like a huge waste of money. The DeepSeek models are also nominally open source, and are clearly showing that most likely, there simply isn’t a huge “AI” market worth hundreds of billions of dollars dollars at all. On top of that, the US is clearly not ahead in “AI” at all, as was the common wisdom pretty much until yesterday. Of course, DeepSeek is Chinese, and that means censorship – the real kind – is a thing. Asking the latest DeepSeek model about the massacre at Tiananmen Square returns nothing, suggesting the user ask about other topics instead. I’m sure over the coming weeks more and more or these kinds of censorship will be discovered, but hopefully its open source nature will allow the models to be adapted and changed to remove such censorship. Do note that all of these “AI” models are all deeply biased because they’re trained on content that is itself deeply biased, thereby perpetuating and amplifying damaging stereotypes and inaccuracies, especially since people have a tendency to assume computers can’t be biased. Whatever may happen, at least OpenAI losing its job to “AI” is hilarious.

AI bots paralyze Linux news site and others

Apparently, since the beginning of the year, AI bots have been ensuring that websites can only respond to regular inquiries with a delay. The founder of Linux Weekly News (LWN-net), Jonathan Corbet, reports that the news site is therefore often slow to respond. The AI scraper bots cause a DDoS, a distributed denial-of-service attack. At times, the AI bots would clog the lines with hundreds of IP addresses simultaneously as soon as they decided to access the site’s content. Corbet explains on Mastodon that only a small proportion of the traffic currently serves real human readers. ↫ Dirk Knop at Heise.de I’m sure someone will tell me we just have to accept that a large percentage of our bandwidth is going to overpriced bullshit generators, and that we should just suck it up and pay for Sam Altman’s new house. I hope these same people realise “AI” is destroying the last vestiges of the internet that haven’t fallen victim to all the other techbro fads so far, and that sooner rather than later there won’t be anything left to browse to. The coming few years are going to be fun.

When a sole maintainer steps down, Linux drivers become orphans

The Linux kernel has become such an integral, core part of pretty much all aspects of the technology world, and corporate contributions to the kernel make up such a huge chunk of the kernel’s ongoing development, it’s easy to forget that some parts of the kernel are still maintained by some lone person in Jacksonville, Nebraska, or whatever. Sadly, we were reminded of this today when the sole maintainer of a few DRM (no, not the bad kind) announced he can no longer maintain the gud, mi0283qt, panel-mipi-dbi, and repaper drivers. Remove myself as maintainer for gud, mi0283qt, panel-mipi-dbi and repaper. My fatigue illness has finally closed the door on doing development of even moderate complexity so it’s sad to let this go. ↫ Noralf Trønnes There must be quite a few obscure parts of the Linux kernel that are of no interest to the corporate world, and thus remain maintained by individuals in their free time, out of some personal need or perhaps a sense of duty. If one such person gives up their role as maintainer, for whatever reason, you better hope it’s not something your workflow relies, because if no new maintainer is found, you will eventually run into trouble. I hope Trønnes gets better soon, and if not, that someone else can take over from him to maintain these drivers. The gud driver seems like a really neat tool for homebrew projects, and it’d be sad to see it languish as the years go by.

Android 16 Beta 1 has started rolling out for Pixel devices

Basically, this seems to mean applications will no longer be allowed to limit themselves to phone size when running on devices with larger screens, like tablets. Other tidbits in this first beta include predictive back support for 3-button navigation, support for the Advanced Professional Video codec from Samsung, among other things. It’s still quite early in the release process, so more is sure to come, and some things might not make it to the final release at all.

Snowdrop OS: a homebrew operating system from scratch, in x86 assembly language

Snowdrop OS was born of my childhood curiosity around what happens when a PC is turned on, the mysteries of bootable disks, and the hidden aspects of operating systems. It is a 16-bit real mode operating system for the IBM PC architecture. I designed and developed this homebrew OS from scratch, using only x86 assembly language. I have created and included a number of utilities, including a file manager, text editor, graphical applications, BASIC interpreter, x86 assembler and debugger. I also ported one of my DOS games to it. After all, what kind of an operating system doesn’t have games? ↫ Snowdrop OS’ website It seems like every talented programmer will, at some point, think to themselves: I should write my own operating system. Most of these efforts strand pretty quickly – and that’s fine! – but Sebastian Mihai’s effort did not, and it has grown into a very capable operating system, especially given the constraints stemming from the chosen architecture – 16bit realmode x86 – and programming language – x86 assembly. Snowdrop OS is an incredibly impressive labour of love, and comes with a unique extra I haven’t seen before: a daily development log covering over 600 days of development. No, this won’t take over the world, but I love that is exists. More of this, please.

NixBSD: an unofficial NixOS fork with a FreeBSD kernel

NixBSD is an attempt to make a reproducible and declarable BSD, based on NixOS. Although theoretically much of this work could be copied to build other BSDs, all work thus far has been focused on building a FreeBSD distribution. ↫ NixBSD GitHub page Look, it’s my job to make sure I use and am familiar with as many operating systems and related tools as possible. As much as you guys support OSNews on Patreon or Ko-Fi, it’s going to take a lot of you to push me to dive into Nix and NixOS, because every time I hear anything about it, people seem entirely in over their heads and spending way, way too much time trying to properly use it. I have a wife and two little children, and as much as Nix intrigues and fascinates, I’m not going to lose my sanity to it. Anyway, combining NixOS with FreeBSD seems like a fun project and a great idea, and also kind of an inevitability – any cool technology eventually makes its way to BSD in one way or another, after all. The project is in flux, and they’re not at the stage where you can just download an ISO and get going, but if you’re already knee-deep in Nix and want a new challenge, this might be right up your alley. Me, I’m not learning a programing language just to manage my packages. Or should I? For the memes?

SDL 3.2.0 released

SDL, the Simple DirectMedia Layer, has released version 3.2.0 of its development library. In case you don’t know what SDL is: Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve‘s award winning catalog and many Humble Bundle games. ↫ SDL website This new release has a lot of improvements and changes, and going through the changelog, you’ll notice that they’ve massively improved the documentation, made the API naming conventions more consistent, added a ton of features for better platform integration, added camera and pen APIs, improved HiDPI support, and a ton more.

9front “THIS TIME DEFINITELY” released

The operating system I’m not cool enough to run has pushed out a new release: 9front “THIS TIME DEFINITELY” is now available. 9front is a fork of plan9, created after plan9 languished at Bell Labs. This release enables gefs, the new file system, in the installer, “ip/ipconfig now support dhcpv6 dynamic allocations and handles prefix expirations”, and it comes with some smaller changes, too, of course. Despite every piece of evidence to the contrary, I am simply not cool enough to run 9front. Maybe one day they’ll notice me, and I get invited to the cool table where the Puffs eat lunch. Who doesn’t want to ring a bell in the headmaster’s office at midnight?

Right to root access

I believe consumers, as a right, should be able to install software of their choosing to any computing device that is owned outright. This should apply regardless of the computer’s form factor. In addition to traditional computing devices like PCs and laptops, this right should apply to devices like mobile phones, “smart home” appliances, and even industrial equipment like tractors. In 2025, we’re ultra-connected via a network of devices we do not have full control over. Much of this has to do with how companies lock their devices’ bootloaders, prevent root access, and prohibit installation of software that is not explicitly sanctioned through approval in their own distribution channels. We should really work on changing that. ↫ Medhir Bhargava Obviously, this is preaching to the choir here on OSNews. I agree with Bhargava 100%. It should be illegal for any manufacturer of computing devices – with a possible exception for, say, things like medical implants, certain aspects of car control units, and so on – to lock down and/or restrict owners’ ability to install whatever software they want, run whatever code they want, and install whatever operating system they want on the devices that they own. Computers are interwoven into the very fabric of every aspect of our society, and having them under the sole control of the biggest megacorporations in the world is utterly dystopian, and wildly dangerous. Personally, I would take it a step further: any and all code that runs on products sold must be open. Not necessarily open source, but at the very least open, so that it can be inspected when malice is suspected. This way, society can make sure that the tech billionaire oligarchs giving nazi salutes aren’t in full, black-box control over our devices. Secrecy as a means of corporate control is incredibly dangerous, and forcing all code to be open is the perfect way to combat this. Copyright is more than enough intellectual property protection for code. The odds of this happening are, of course, slim, especially with the aforementioned tech billionaire oligarchs giving nazi salutes effectively running the most powerful military in human history. Reason is in short supply these days, and I doubt that’s going to change any time soon.

How UNIX spell ran in 64kB RAM

How do you fit a 250kB dictionary in 64kB of RAM and still perform fast lookups? For reference, even with modern compression techniques like gzip -9, you can’t compress this file below 85kB. In the 1970s, Douglas McIlroy faced this exact challenge while implementing the spell checker for Unix at AT&T. The constraints of the PDP-11 computer meant the entire dictionary needed to fit in just 64kB of RAM. A seemingly impossible task. ↫ Abhinav Upadhyay They still managed to do it, but had to employ some incredibly clever tricks to make it work, and make it work fast. Such skillful engineers interested in optimising and eeking the most possible performance out of underpowered hardware still exist today, but they’re not in any position to make lasting changes at any of the companies defining our technology today. Why spend money on skilled engineers, when you can just throw cheap hardware at the problem? I wonder just how many resources the spellchecking feature in Word or LibreOffice Writer takes up.

Introduction to GrapheneOS

GrapheneOS (written GOS from now on) is an Android based operating system that focuses security. It is only compatible with Google Pixel devices for multiple reasons: availability of hardware security components, long term support (series 8 and 9 are supported at least 7 years after release) and the hardware has a good quality / price ratio. The goal of GOS is to provide users a lot more control about what their smartphone is doing. A main profile is used by default (the owner profile), but users are encouraged to do all their activities in a separate profile (or multiples profiles). This may remind you about Qubes OS workflow, although it does not translate entirely here. Profiles can not communicate between each others, encryption is done per profile, and some permissions can be assigned per profile (installing apps, running applications in background when a profile is not used, using the SIM…). This is really effective for privacy or security reasons (or both), you can have a different VPN per profile if you want, or use a different Google Play login, different applications sets, whatever! The best feature here in my opinion is the ability to completely stop a profile so you are sure it does not run anything in the background once you exit it. ↫ Solène Rapenne I switched to GrapheneOS on my Pixel 8 Pro as part of my process to cleanse myself of as much Big Tech as possible, and I’ve been incredibly happy with it. The additional security and privacy control GrapheneOS brings is amazing, and the fact it opted for a sandboxed Google Play Services basically means there’s no compatibility issues, unlike when using microG, where compatibility problems are a fact of life. GrapheneOS’ security and other updates are on par or even faster than the stock Google Pixel’s Android, and the overall user experience is virtually identical to stock Android. The only downside is the reliance on Pixel devices – it’s an understandable choice, but does mean giving money to Google if you don’t already own a Pixel. A workaround, if you will, is to buy a used or refurbished Pixel, but that may not always be an option either. For me personally, I’ll be sticking with my Pixel 8 Pro for a long time, but if it were to break, I’d most likely go the used Pixel route to avoid enriching Google. For pretty much anyone reading OSNews, GrapheneOS would be a great choice, and if you already have a Pixel, I strongly urge you consider switching.

Linux 6.13 released

Linux 6.13 comes with the introduction of the AMD 3D V-Cache Optimizer driver for benefiting multi-CCD Ryzen X3D processors, the new AMD EPYC 9005 “Turin” server processors will now default to AMD P-State rather than ACPI CPUFreq for better power efficiency, the start of Intel Xe3 graphics bring-up, support for many older (pre-M1) Apple devices like numerous iPads and iPhones, NVMe 2.1 specification support, and AutoFDO and Propeller optimization support when compiling the Linux kernel with the LLVM Clang compiler. Linux 6.13 also brings more Rust programming language infrastructure and more. ↫ Michael Larabel A big release, with a ton of new features. It’ll make its way to your distribution soon enough.

MorphOS 3.19 released

It’s been about 18 months, but we’ve got a new release for MorphOS, the Amiga-like operating system for PowerPC Macs and some other PowerPC-based machines. Going through the list of changes, it seems MorphOS 3.19 focuses heavily on fixing bugs and addressing issues, rather than major new features or earth-shattering changes. Of note are several small but important updates, like updated versions of OpenSSL and OpenSSH, as well as a ton of new filetype definitions – and so much more. Having a release focused on fixing bugs and addressing smaller issues isn’t exactly a bad thing though – I’ve used MorphOS on my 17″ 1.25Ghz PowerBook G4 often enough to know MorphOS is quite complete, stable, and a ton of fun to use, and much more capable than it has any right to be considering what must be its relatively small developer team and user base. That being said, I do wish MorphOS was available on hardware newer than 20 year old PowerPC Macs, because as much as I like me some classic hardware, the world’s moving on and even basic web browsing requires much more performant hardware now. Maybe I should try and buy one of the supported Apple PowerPC G5 machines to see just how much better MorphOS runs on that than on my G4.