New OS aims to provide (some) compatibility with macOS

18 hours ago (github.com)

Wine works because Microsoft spends billions on backwards compatibility and APIs are stable over time.

Apple regularly deprecates frameworks and adds new ones at rapid rates. It's a moving target with the added complication of moving build targets.

If you implement your own version of Apple's XyzKit, that might only be used in macOS 12 to 14, and not before or after that, so you put in a lot of work to essentially support binaries that were released between X date and Y date and that's it. And you have to do that for a sliding window of dates, macOS versions and framework releases and deprecations.

  • Wine works, because it doesn't cover many modern APIs, I would assess.

    New Microsoft under Satya has a different stance on anything WinRT related, or even newer Win32/COM APIs since Windows 8.

    Also .NET Framework is the Python 2 of .NET, the breaking changes are a reason there are still new projects being done in .NET Framework 4.8.x.

I've been paying attention to this project periodically over the past few years. It would be nice to have a FOSS clone of macOS, similar to how FreeDOS, ReactOS, and Haiku are FOSS clones of MS-DOS, Windows, and BeOS, respectively.

The only thing is that this project has been quite slow going, which is similar to the histories of FreeDOS, ReactOS, and Haiku, where it took a long time for those projects to get to a usable state. It is a lot of work cloning an operating system, especially with an aim for binary compatibility. The Linux kernel benefited from the fact that there was an entire GNU ecosystem of tools that can run on Unix, and even in that case, the GNU ecosystem was seven years in the making in 1991 when the first version of the Linux kernel was released. It would've taken much longer for Linux to have been developed had GNU tools not existed.

Writing an entire operating system is long, hard work, even when provided the resources of companies like Microsoft, Apple, and Google. Hopefully projects like ravynOS and the similar HelloSystem (https://hellosystem.github.io/docs/) will lead to FOSS clones of macOS eventually, even if we need to wait another 5-10 years.

  • Sometimes it strikes me that something like this might be one of the better litmus tests for AI — if it’s really good enough to start 10x-ing engineers (let alone replacing them) it should be more common for more projects like this should begin to accelerate to practical usability.

    If not, maybe the productivity dividends are mostly shallow.

    • The problem is that many of these clean room reimplementations require contributors to not have seen any of the proprietary source. You can't guarantee that with ai because who knows which training data was used

      5 replies →

    • There's also a cost problem here.

      Who's paying $30 to run an AI agent to run a single experiment that has a 20% chance of success?

      On large code-bases like this, where a lot of context gets pulled in, agents start to cost a lot very quickly, and open source projects like this are usually quite short on money.

      1 reply →

    • The organisational bottleneck still remains though. People need to discuss and coordinate at human speed.

      I think AI will likely create more fragmentation initially, if a 10x developer is forced to run at 0.1x they're going to fork a project.

      I believe in the AI 10x developer, but I suspect it only works for individuals or small teams at the moment.

      1 reply →

    • This was my thought here as well. Getting one piece of software to match another piece of software is something that agentic AI tools are really good at. Like, the one area where they are truly better than humans.

      I expect that with the right testing framework setup and accessible to Claude Code or Codex, you could iterate your way to full system compatibility in a mostly automated way.

      If anyone on the team is interested in doing this, I’d love to speak to them.

    • I have the unpopular opinion that like I have witness in person the transition from Assembly into high level languages, eventually many tasks that we manually write programs for, will be done with programable agents of some sort.

      In an AI driven OS, there will be less need for bare bones "classical" programming, other than the AI infrastructure.

      Now is this possible today, not really as the misteps from Google, Apple and Microsoft are showing, however eventually we might be there with a different programming paradigm.

      Having LLMs generate code is a transition step, just like we run to Compiler Explorer to validate how good the compiler optimizer happens to be.

> A BSD-based OS project that aims to provide source and binary compatibility with macOS® and a similar user experience.

I am curious - what is the motivation for this project?

Is it to replicate macOS? - If yes, why?

Is it to provide application compatibility on a non-macOS? If yes, why a full OS? Why not take the route like Wine or other such layers that make compatibility possible? Also, is there such a need for running macOS apps on a non-macOS? Who is the target audience?

Would the energy be better spent in making Linux more stable or usable for the general public?

If its just a hobby, sure, that is well & good.

  • A lot of these questions are answered here: https://ravynos.com/faq

    To summarize...

    There is a WINE-analogous project, called Darling: https://www.darlinghq.org/

    The goal for ravynOS is to be analogous to ReactOS. Much like ReactOS and WINE, ravynOS and Darling share a lot of Cocoa code.

    For the problem of OpenStep implementations specifically, a bespoke software stack has the benefit of being able to put Mach messaging into the kernel, where it is much more performant.

    They chose the FreeBSD kernel over Darwin for the sake of hardware compatibility (though of course NeXT Mach is one of the most widely-ported kernels of all time...)

    There is also overlap with GNUstep, helloSystem, and other projects in the broader "open-source Mac/NeXT" space, though ravynOS (obviously) prefers BSD/MIT/Apache-style licensing over GNU-style licensing. Nevertheless, ravynOS currently uses the GNUstep libobjc2 runtime, a bit like how most of the Unix world used to depend on gcc.

  • I'm not affiliated with ravynOS, but I've been periodically following the project for a few years.

    The main page (https://ravynos.com/) expresses the philosophy of ravynOS:

    "We love macOS, but we’re not a fan of the ever-closing hardware and ecosystem. So, we are creating ravynOS — an OS aimed to provide the finesse of macOS with the freedom of FreeBSD."

    rayvnOS seems to be designed for people who love macOS, particularly its interface, its UI guidelines, and its ecosystem of applications, but who do not like the direction that Apple has moved toward under Tim Cook (soldered RAM, limited and inflexible hardware choices, notarization, iOS-influenced interface changes, increased pushiness with advertising Apple's subscription services, etc.) and who would be unhappy with either Windows or the Linux desktop.

    Speaking for myself, I used to daily-drive Macs from 2006 through 2021, but I now daily-drive PCs running Windows due primarily to the lack of upgradable RAM in ARM Macs. I'm not a big fan of Windows, but I need some proprietary software packages such as Microsoft Office. This makes switching to desktop Linux difficult.

    It would be awesome using what is essentially a community-driven clone of macOS, where I could continue using a Mac-like operating system without needing to worry about Apple's future directions.

    On the Unix side of things, I believe the decision to base ravynOS on FreeBSD rather than on Linux may make migrating from macOS to ravynOS easier, since macOS is based on a hybrid Mach/BSD kernel, and since many of the command-line tools that ship with macOS are from the BSDs. This is known as Darwin. It's not that a Mac clone can't be built on top of Linux, but FreeBSD is closer to Darwin than Linux is.

    • > soldered RAM

      Hold on a minute.

      It's not "soldered". It's integrated with the SoC. The benefit is memory latency and bandwidth.

      If you know Framework, their entire mission is to build upgradeable laptops, and they keep delivering. Now they also wanted to build an incredibly powerful, but small and quiet desktop. They went directly to AMD, asked their engineers to make the memory upgradeable. AMD worked really hard and said not possible, not unless you want all of these cores to sit idle.

      https://frame.work/blog/framework-desktop-deep-dive-ryzen-ai...

      The world has moved on. Just as you no longer have discrete cache chips or discrete FPUs, you can't do discrete memory anymore - unless you don't need that level of performance, in which case CAMM is still an excellent choice.

      But that's not what Apple does. M1 redefined the low-end. It will remain a great choice in 5 years, even when macOS kills it off - Asahi remains very decent.

      3 replies →

    • This description really resonates with me, so I guess I’m a potential user.

      I’ve been running macOS most of my life. In college I ran Linux on my laptops, but I switched back to macOS as the user experience was better - I could spend far less time messing with things and instead rely on system defaults and first party apps.

      Year by year though I feel more like I don’t own my computer. I’ve tried switching back to Linux, but I always give up because despite the freedom, it starts feeling like a chore. Even Asahi Linux on macOS hardware I couldn’t get into.

      The rayvnOS vision is something I could get behind. A fully packaged, macOS-like user experience, where the default settings are good and things work out of the box. I’d LOVE to have that as on option.

      Linux compatibility or even macOS binary compatibility matters less to me than, say, an out of the box Time Machine like backup tool based on ZFS snapshots. So FreeBSD makes sense from that perspective.

    • So somehow running MacOS in 2025 on hot, loud, horrible battery life x86 based computers is a good thing?

      Not to mention x86 Mac apps are not long for this world. I can’t think of a single application I would miss moving from Macs to Windows. It’s more about the hardware and the integration with the rest of my Apple devices.

      7 replies →

  • > Also, is there such a need for running macOS apps on a non-macOS?

    Arguably there's a need for running macOS apps on macOS even. E.g. my parents are stuck having an old Intel Mac Pro around on an old OS for a few 32-bit programs (not sure if it changed, but IIRC you couldn't run an OS that supported them as a VM on Apple Silicon). Pretty soon Rosetta 2 will go away as well.

  • I have the same sentiment. I am forced to use a MacBook in my new job while waiting for them to procure a laptop that I can put Linux on. I can say that Linux with KDE Plasma desktop is in almost every way superior to Mac OS. Much better UX, configurability and core applications. And even little things are more polished and thought through compared to what a trillion dollar company was able to produce. It's really beyond me how people use Apple products, and it's the absolute majority of them in my field.

    • “Better” is largely subjective. For some (including myself), a Windows-like paradigm like KDE uses is not desirable, and UI papercuts like the many that KDE has are highly visible.

      13 replies →

    • Just curious... did your employer agree to getting you a Lennucks Bocks 'cause you asked nice or were they frightened of running afoul of one of the many #a11y or security evaluation frameworks?

  • It would be great if it runs on mac too. macOS doesn't have much compatibility with itself.

  • I would much rather emulate linux apps on a more stable and consistent OS than vice versa. The sheer number of toolkits and window managers leaves my head spinning, and unifying their behavior even before you can begin to improve it feels like a nightmare.

    I personally don't care much about the dock or the look and feel or whatever; I just want access to the usability of macos without having to accept how closed it is.

    • If it is no longer closed, it might proliferate just like Linux once it gathers a critical amount of users. :)

  • > Would the energy be better spent in making Linux more stable or usable for the general public?

    Linux is stable and widely used, whether as Android, Ubuntu, WSL on Windows or Crostini on ChromeOS (itself Linux under the hood).

    The general public buy products like Macs, Lenovos, Steam Decks, Chromebooks or Frameworks. Nobody buys a "Linux".

    Linux and it's ecosystem are features of those products, not products themselves.

This is so cool, the little mini screenshots look gorgeous because it replicates MacOS. I’m not sure if a lot of people feel the same but over the years I always thought it was a shame that Linux’ overall UX and aesthetics seemed a little bit more rushed and “crowd sourced” (in the sense that it felt diverse in terms of ui opinions and taste etc). It almost makes me want to try Linux again just for that look and feel (because I love my Mac’s but would like something different and more free)

  • > the little mini screenshots look gorgeous because it replicates MacOS.

    I have the opposite reaction. To me the screenshots look like someone tried to replicate macOS but failed. The text antialiasing is off, the font is different (and worse), the border-radii on menus are off, etc.

    Besides, the actual screenshots of the current OS (https://ravynos.com/screenshots) are... really rough.

    • i didn't expect it to look so...dated[0]? the things are approximately where they are on MacOS, but it looks like Window 2000/ME/98.

      [0]or retro, for anyone who's offended by me calling it dated.

This is all nice and well, while https://www.puredarwin.org/wiki/#/news/Support-Cliff-Sekel

Wouldn't it be more natural if this project made use of XNU/Darwin... But with the way things are going, with XNU going more and more proprietary, I suppose FreeBSD is "close enough". In any case, there's nothing we can do about it but these "macOS" alternatives are too fragmented. I would love to see "The" macOS clone.

Why is every new OS project just a rehash of 60/70's tech. What about something new that actually attempts to move the field forward.

  • Microsoft came close with Midori but bailed out and canned the product just before it should have been released in alfa / beta 1

    > Midori is an experimental managed code operating system that was in development until 2015. A joint effort by Microsoft and Microsoft Research, it had been reported to be a possible commercial implementation of the OS Singularity, a research project begun in 2003 to build a highly dependable OS whose kernel, device drivers, and application software would all be written in managed code. It was designed for concurrency, and would run a program spread across multiple nodes at once.[1]

    [1] https://en.wikipedia.org/wiki/Midori_(operating_system)

    https://joeduffyblog.com/2015/11/03/blogging-about-midori/

  • Because writing even a remotely modern OS is really really hard. I speak from experience. Even getting old hardware from the 90s and early 00s to work is a pain. Then of course you have the more modern standards (although even SATA is still modern for some definition of modern, but AHCI is a nightmare), and then you have things like modern NICs and GPUs which has documentation that is very hard to find, or in the case of even modern Intel GPUs, documentation that is 13 plus volumes and is absolutely massive... And the list just goes on and on and on. Before you know it your codebase is 100k LoC and like 80-90 percent of it is device drivers alone. And if you thought all that was bad, wait until you get into ACPI...

    Yeah. OS dev is, I think it's safe to say, the hardest and most difficult project a software engineer could do, right alongside a modern compiler if you ditched LLVM and decided to make your own backend.

  • Because many open an UNIX book, and rather copy what was already done.

    Note that Smalltalk, Interlisp-D, Mesa, Cedar, safe systems programming are also 60/70's tech, but these ones hardly anyone bothers to copy in such attempts.

  • My dream is to work on an operating system that at least gets us to the 1990s and 2000s when it comes to research ideas.

    I have a soft spot for the Smalltalk-80 environment and Lisp machines. They had a single address space. In my opinion, the two most interesting things about these environments are (1) their facilitation for component-based software based on live, dynamic objects, and (2) the malleability of the system, where every aspect of the system can be modified by the user in real time.

    Of course, a critical downside of Smalltalk-80 and Lisp machine environments is the lack of security; any piece of code can modify the system. There are two solutions to this that I'm thinking about: (1) capability-based security for objects in the system, and (2) work on single-address space operating systems that still have memory protection (Opal was a research system that had this design; see Sharing and Protection in a Single-Address-Space Operating System [Chase et al. 1994]).

    One of the nice things about Lisp is its metaprogramming facilities, from macros to the metaobject protocol. Metaprogramming makes it feasible to implement domain-specific languages that make expressing problems more aligned to their domains.

    During the late 2000s and early 2010s, Alan Kay's Viewpoints Research Institute had a project named STEPS that investigated the pervasive use of DSLs to implement an entire desktop environment. They did not use Lisp as a substrate, but they did use OMeta (https://tinlizzie.org/ometa/) for handling parsing expression grammars (PEGs), which are used to describe many of the systems in STEPS. Two DSLs that immediately come to mind are one for describing the 2D graphics system and another for describing TCP.

    So now I've described my dream substrate: a single-address operating system with capability-based security, where each subsystem is expressed as a live object, ideally coded in a DSL.

    Now comes the interface. The programmer's interface would be similar to Smalltalk-80 and Lisp machines, with a live REPL for interactive coding. All objects can be accessed programmatically by sending messages to them. The end-user interface would be heavily based on the classic Mac OS, and applications would conform to human interface guidelines similar to System 7.5, but with some updates to reflect usage patterns and lessons in UI/UX that weren't known at the time. Application software would be similar to the OpenDoc vision, where components can be combined based on the user's wishes.

    The end result sounds like a synthesis of various Apple projects from the late 1980s until 1996: component-based applications backed by a live object system with capability-based security.

    This is my dream and is a side project I'd love to create.

    • If you're okay with a System 6 appearance, I've already made one <https://github.com/jjuran/metamage_1/tree/master/68k/modules...>, for Advanced Mac Substitute <https://www.v68k.org/ams/>.

      I do appreciate Alan Kay's thinking, in particular his talk "Normal Considered Harmful" <https://www.youtube.com/watch?v=FvmTSpJU-Xc>

      My own high-level language, Varyx, has somewhat LISPy internals and is very dynamic — for example, you can annotate a variable with a type that's determined only at run time — and has an eval() that insulates the caller from the payload and vice versa. You can sequester mutable state within a closure, which can't be cracked open. Using an experimental Varyx build with some bindings for Apple's Core Graphics API, I wrote a script that rendered an arrow cursor (which I donated to the ravynOS project).

      Perhaps we should talk. :-)

    • I share the sentiment, which is why someone I ended up gravitating around technologies somehow related to it like Java, .NET, and the related languages on their ecosystems.

      Also why despite not agreeing how Google went down with Java in Android, I appreciate their approach, because this kind of platforms apparently only get adoption with such kind of hard pushes, otherwise it would be yet another tiny UNIX clone.

      Ironically is probably the closest we have on the market from Inferno/Limbo ideas on a mainstream OS.

  • I would argue that iPadOS (built on iPhone's coat tails) moved the field forward significantly in terms of isolation and user security.

    While this has left a long tail of inconveniences, many resolved and some not, I am very confident that using 1 app on my iPhone/iPad will not leak data to another in any case that I am likely to care about as a non-significantly interesting person (political figure, etc).

    ... and for those people Apple even makes lockdown mode to move the bar, while acknowledging it adds extra inconvenience: https://support.apple.com/en-au/105120

    I have no such confidence about macOS, Linux or Windows, in fact the reverse. macOS has done the best at trying to bolt on some sandboxing (and linux has it too) but that's still very holey and not all-in like iOS/iPadOS has ended up.

    Yes, I know there have been many bugs and leaks in iOS but the security level is far and above the desktops currently, and designed that way from the ground up. So when they finally make something work like copy and paste or sharing between apps, etc... it's by and large done very well.

    It's been very difficult to add that kind of thing to Linux because you're trying to do the reverse and lock things down and it breaks everything... making it very challenging.. as opposed to Apple where basically nothing useful worked at the start (no copy/paste, one app at a time, no meaningful filesystem, etc).. but managed to get the product successful in the limited state and has slowly unlocked that stuff over time. Admittedly very slowly.

    I cannot speak for Android as I just have never used it or surrounded myself in info about it's design, security, etc.. it may well be very similar although they from my casual observation seemed to do a much worse job at granular privacy permissions (e.g. for the longest time permissions were all granted at install time, and so many apps want so many most people are blind to it.. as opposed to Apple's model where even if notarised for something on the app store in most cases you have to agree to it when the app first uses it.. I know they fixed that a while back but I have no idea how well things have transitioned to that now). As a very techy person deeply knowledge in many things, and using desktop Linux since 2002, it's kindof a hilarious personal failing that I have never used Android.. I really should try and resolve that at some point.

    • > While this has left a long tail of inconveniences, many resolved and some not, I am very confident that using 1 app on my iPhone/iPad will not leak data to another in any case that I am likely to care about as a non-significantly interesting person (political figure, etc).

      Log in to YouTube with one Google account. Log in to Google Drive with a different one.

      Google knows that both accounts are owned by the same person, because Apple lets Google's apps access the data of the others on the same system.

      1 reply →

  • It takes an astronomical amount of work to not only write an OS but handle 30 years worth of both hardware, and lessons learned.

    People do write new OSes from scratch all the time, you can see the result of no popularity/usage because they can't do much for even enthusiasts.

    Not to mention, if you want users, you need apps, and that involves trying to run what already exists or making it as easy as possible to port. All of that shapes the OS.

It doesn't seem to be their focus, but this could be amazing for macOS build machines, and servers. There have been a number of changes in recent years focussed on improving the security of macOS when used as a Desktop OS. These work well for their intended purpose, but they have made macOS harder and harder to deploy headlessly, and use as a server.

I hope to see this become an open source OS that runs the full xcode command line suite, deploys easily to headless machines, and inherits FreeBSD's server hardware compatibility.

Does it key the command and control keys separate? That's maybe the biggest thing I can't get today from a linux-based MacOS replacement

The website looks sleek, I get the impression that the ui for the os will be the same. But then when I look at the screenshots, it look like macOS stuck in 2008.

If you don't provide CoreFoo (for Foo in *), there's not really much point in talking about compatibility with macOS. I see no sign that they provide any of the possible CoreFoo libraries/frameworks.

Repo has zero Objective-C or C++ (IO, DriverKit, MSL), hardly anything relevant if the goal is macOS compatibility.

This considering the last macOS version before Swift was announced as goal.

The RavynOS project would have a good chance at being binary compatible with Mac OSX if it copied all the Darwin libraries from the Darling project and used LLVM to generate all the appropriate dylibs. That's something I would support and contribute to. It could get to the point where it could run macOS console based applications.

But if macOS binary compatibility is not the goal, then there's no need for a Mach-O loader - it brings nothing to the table. Just use ELF binaries. Although at that point there's nothing macOS about it - it's just a Mac-like UI facade for FreeBSD distro with a different API. If Ravyn doesn't want to be to macOS like WINE is to Windows, I don't see the point.

  • Frankly I was a bit surprised that was not what they were doing. As a user I’d prefer a “mere” macOS UI on top of FreeBSD, so long as its quality is of the same. Use Darling as a compatibility loader, like WINE/Proton in SteamOS.

  • > copied all the Darwin libraries from the Darling project and used LLVM to generate all the appropriate dylibs

    I'm just starting for the day and misread that as "...used LLM to generate...", and I wondered what kind of crack you were smoking.

    • In future, your OS will be an agentic LLM which runs software by YOLOing the binaries, and then continuously fixing and refining the environment until it runs without crashing.

Replicating MacOS is more than just a nice UI, there’s a lot of sw/hw engineering under the hood. Hopefully these guys get closer to that over time.

Can it run stock macOS programs like Photos? I want a non-chaotic way to import my old fart's iPhone galleries without a Mac Mini (HEIC and Lives are annoying), and docker-osx/vm's don't work for everyone.

Perhaps I need to understand something first, but at this point in time I see no value in projects like this. Beyond the obvious fact of hacking. Ideally, I don’t even want, say, Linux to have any binary compatibility with Windows. I want native apps, games included. I don’t want to see Photoshop working on Linux, I want Gimp to become successful (maybe, start with the name change), or, well, Krita then. Same with macOS. I don’t miss any app from macOS, I want to run so badly. I want Linux to catch up where it isn’t.

Apple releases part of the source code of XNU, it would make much more sense to me, to re-create something like the original Darwin CD out of this for x86-64.

There are a number of MacOS CLI tools and drivers for x86_64.

It may be a motivation to continue work.

Even commercially it could be something interesting.

I am not sure if it is easier though.

PureDarwin seems to do very slow progress.

  • It appears they’ve actually made that decision: making FreeBSD Mach-O is too much, so XNU is the new plan …