Replies: 9 comments 23 replies
-
|
That's awesome! At least with Darwin, we'll be able to get the Mach-O stuff running. But despite the stuff that is lost in the move, they can be regained later with porting them. :) |
Beta Was this translation helpful? Give feedback.
-
Counter phrasing: "We lose more by not moving"; for linux there is darwin docker (via the containers framework we can run much of linux tools in a "typical" way) (also homebrew can help with a lot of porting); for ELF, much of freebsd 'ports' is ported by 'macports'. and regarding hardware we might be able to leverage the bootloaders from Clover (by the hackntosh folks) |
Beta Was this translation helpful? Give feedback.
-
|
I like the thought of moving ahead with Darwin/XNU, but have you considered leaving anything in the code open to also coming back and making userland multi-platform later? Someobody else could take up FreeBSD backend support and making the shims and compatibility components for that at some point, if they wanted to. Some modularity might help. Maybe that's too difficult, though. Additionally, maybe the existing coupling assumptions needed in reproducing macOS behavior are still too tight, at least for now. |
Beta Was this translation helpful? Give feedback.
-
|
Well, and where we will get device drivers? FreeBSD has many drivers which absent in Darwin. |
Beta Was this translation helpful? Give feedback.
-
|
May be we will stay with FreeBSD as is but make some layer to launch flatpack as Mac application with all frameworks inside? Nothing outside. And translate system calls to a set of FreeBSD system calls (like wine). |
Beta Was this translation helpful? Give feedback.
-
|
yoooo this is so cool actually. |
Beta Was this translation helpful? Give feedback.
-
Plea to leverage git submodules when transitioning@mszoek, this may be a bit technical, and off topic, but can we leverage git submodules (and I am willing to help get these all setup) for the projects that we are shifting to? My Rationale:maintaining the whole OS in the repo will:
and more:
Suggestions for what to submodule
so what's the catch?Mostly that these need to be configured initially and committed like any other change to the top-repository. As far as configuration:
As far as overhead: small network performance impact to fetch the multiple git-repos 🤷 As far as typical usage: need to checkout/update submodules (e.g., after a git-pull) $ #git fetch
$ #git pull
$ git submodule update --init --force --remote --checkout
everything to know about git-submodules (and more)
|
Beta Was this translation helpful? Give feedback.
-
|
If Darwin really is macOS-compatible, stick to it |
Beta Was this translation helpful? Give feedback.
-
|
I fully support this decision. From my perspective, moving to Darwin/XNU is the most logical path if the long-term goal is to build a truly usable and open macOS-like operating system rather than spending years reimplementing large parts of Darwin on top of FreeBSD. While it is certainly disappointing to lose some of the advantages that FreeBSD provides, such as broader hardware support, ZFS, Linux compatibility, and some of its excellent system characteristics, I believe the benefits outweigh the drawbacks. Starting with the real Darwin foundation gives the project a much stronger base for binary compatibility, Mach-O support, launchd, dyld, IOKit, and the countless details that would otherwise need to be recreated and maintained indefinitely. Most importantly, it allows development effort to be focused on what makes ravynOS unique: the desktop environment, frameworks, user experience, applications, and overall vision of an open and modern Darwin-based operating system. I also believe that, at this stage of the project, hardware support and additional filesystem support such as ZFS should not be the primary focus. While those features are undoubtedly valuable in the long term, they can be expanded and improved over time. The most important thing right now is establishing a solid foundation: the kernel, runtime, frameworks, desktop architecture, application model, and overall system design. Once that foundation is in place and running solid on a VM, hardware support, drivers, filesystems, and platform-specific optimizations can continue to evolve around it. In many ways, this feels like the project's "holy grail" moment. A strong Darwin-based foundation is the part that is hardest to replace later and the part that unlocks everything else. It is the platform upon which the entire future of ravynOS can be built, refined, and modernized for years to come. Personally, I am incredibly excited to see where this new direction leads. I have been following the project with great interest, and this announcement has only increased my enthusiasm. I cannot wait to see the next beta build and to start experimenting with it in KVM as the Darwin foundation continues to mature. Thank you for all the hard work and for sharing your thought process so openly with the community. I am looking forward to the next chapter of ravynOS. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
We're at a crossroads in this project and I need to decide the future direction. Gonna ramble a bit but it's important so please try to stick with me.
I started this project mostly as a joke and a challenge... "could I really do that?"... and I feel that I've shown how possible it is. I satisfied myself that my claws are sharp. While I was doing that, the project grew a life of its own and I don't want to let you all down.. Also, I'm still having fun with this and want to make it a reality! So here's the thing...
We have to get to Mach-O now. Let's not go into why or timing or whatever - I know we need to and why but I don't want to explain it all. We have to. Now, how?
If I stick with FreeBSD, the road ahead is mainly gonna be porting Apple tools like
ld64, thecctoolsstuff,dyld, and so on, then getting alllll of FreeBSD to build as Mach-O instead of ELF, then fixing all the breakage. Vastly oversimplified but there... so that's a FUCKING SLOG and quite honestly I Don't Wanna. Plus, even when we get all that done, we still have to figure out how much of Mach and what other system calls I missed that real Mac binaries actually need. I know there's stuff missing. And stuff returns the wrong values. So this road leads to implementing lots of missing bits, and slowly getting towards compatibility. All of that takes time away from me working on the GUI and the interesting bits.The other path is Darwin. I would essentially start with Apple's opensource 'distribution-macOS' for 10.15, set up a build system using BSD's make system, then add in the missing tools etc from FreeBSD, and layer our frameworks and GUI and such on top of the real Darwin/xnu. Now this... sounds fun. But also, it's my best shot to actually make Mac software run on it. The kernel, system libs, binary format, runtime linker, launchd, everything the same as Catalina. It's a big lift, but it frees me up afterwards to spend less time dicking around and more time making a slick desktop and getting apps to work.
So guess what? We're moving to Darwin!
And yeah, we're going to lose some things in that move. Hardware support - much better than xnu will give us. ZFS. Linux binary compatibility. Fantastic BSD performance, threading, stability... However. We also gain some things. A much better foundation for the goal. A platform that has a big Hackintosh developer community, as well as the PureDarwin folks and others. The toolchain will be identical. All the headers and versions are the right ones. Full Mach and all the syscalls. A good HFS implementation and likely APFS. There are a lot of good reasons.
I've been playing with all this (both paths) for a few days now. Oh... and I promise to not force-push a new
mainon you :)Beta Was this translation helpful? Give feedback.
All reactions