AiryxOS open desktop operating system

Frequently Asked Questions

General

Why BSD instead of Linux?

In theory, it will be easier to build Mac code on FreeBSD because it is closer to macOS than Linux is. FreeBSD's kernel also supports a foreign system call interface which should help make emulating Mach system calls easier, and eliminates the need to emulate BSD system calls like Darling (on Linux) does.

Also, why not? Devils need love too!

Why BSD instead of Darwin?

The short answer is "hardware support". Airyx should run on most commodity x86_64 hardware using FreeBSD's very stable and performant drivers.

The longer answer is that plus I don't see any real advantage to using xnu or building my own Mach/BSD combination kernel. Any Mach syscalls that we eventually might need can be emulated so the xnu approach just seems to add complexity and the effort of writing and maintaining drivers.

Considering how big this project is already, I opted to stick with the BSD kernel - at least for now.

Is this... legally sketchy?

No. Consider projects like ReactOS, a from-scratch effort to create an OS compatible with Microsoft Windows, GNUstep, which provides an open implementation of Cocoa APIs and other things, or Darling, a Darwin (macOS) emulation on Linux. Airyx is similar and stands on the shoulders of many such projects.

All code used is freely available under open source licenses. No proprietary elements like fonts, icons, trademarks, etc can be used. Original code must be written using "clean room" techniques - that is, from public documentation like developer guides by people who have never seen the proprietary code - and released under the FreeBSD license or the MIT license.

What programming languages does Airyx use?

The goal is to use a small core set of languages as much as possible: the "C" family (C, C++, Objective-C, and Objective-C++), Swift, Python, Java, and shell scripts. This should cover most needs.

I can code in those! How can I help?

Great! Take a look at the issues list to find something that interests you, or contact mszoek.

I don't code but this looks awesome! Can I still help?

Absolutely! There will be art, documentation, testing, UX and UI work, release management, project management, legal advice, and many other ways to contribute. This project is huge and help is very welcome. Check out the issues for ideas on how to contribute, or contact mszoek.

Can I support the project financially?

You sure can! I've signed up for GitHub Sponsors to make monthly sponsorship easy. You can also make a contribution via PayPal.

Why aren't you working with project XXXX? Isn't this a duplication of effort?

This one has been asked a lot so:

Notwithstanding the above, I'm open to collaboration with anyone who finds parts of Airyx useful or who has code they think might be useful to it.

This is a huge effort. Y'all must be crazy!

Yes. Here's to the crazy ones... because the people who are crazy enough to think they can change the world are the ones that do.

In all seriousness, though, it's not my first rodeo. I have no illusions about the scale of building an OS or how long projects like Haiku, ReactOS or GNUStep took to get usable. This is just something I like doing in my Copious Spare Time™ and that I hope will be useful someday.

I've always liked Apple's design and elegance, but am not thrilled with the direction of recent macOS® or how closed the hardware has become. And I'm a big believer in open source. So ... let's build something that feels as elegant, without all the lock-in, and maybe (just maybe) I can get it to a point that reasonably useful Mac apps build & run on it. And if not, we'll build a lot of cool pieces along the way and learn a ton. I'm OK with that.

Troubleshooting

Why won't it start in VirtualBox?

Airyx 0.2.2 may hang after booting the LiveCD with a black screen if you run in VirtualBox with the default VMSVGA driver. Changing to the VBoxSVGA driver for display may fix the issue. See issue #74 for details.