Technical Details
Technical information about the current version of ravynOS.
ravynOS™ is an open-source desktop operating system that aims to provide a similar experience and compatibiilty with macOS® on x86-64 systems, and eventually ARM systems. It builds on the solid foundations of Darwin, FreeBSD, Apple's open-source releases, existing open source packages in the same space, and new code to fill the gaps. ravynOS aims to feel sleek, stable, familiar and intuitive, handle your daily tasks, and provide as much compatibility as possible with the commercial OS that inspired it.
ravynOS puts system things mainly into /System, /Library,
and /usr. The /usr/local tree is reserved for user additions.
User home directories are appropriately under /Users, and each has a
~/Library folder for Cocoa
apps to use. Zsh is the default system shell.
Properly packaged applications will typically live under /Applications
or ~/Applications and are built as a .app
Bundle. These types of
applications are self-contained, do not usually need installers or de-installers, and
can be moved around the filesystem without breaking. Traditional Unix-like applications
are installed into fixed directories as usual.
ravynOS provides an implementation of Cocoa (still incomplete) and modern
Objective-C runtime installed into /System/Library/Frameworks. It also
provides a growing list of Mac-compatible APIs such as LaunchServices, Grand Central Dispatch,
XPC, and compatibility with Darwin Mach system calls and C functions. There is a growing
list of compatible commands as well, such as open and launchctl.
launchd is the system init (PID 1) and some services now run as LaunchDaemons
and LaunchAgents.
Some compatibility with Xcode projects is provided via Meta's xcbuild tool.
The desktop environment is powered by our custom WindowServer, an implementation of the Quartz/CoreGraphics APIs which is fully integrated with AppKit. There is no other way to render on the framebuffer (just like macOS). System applications (Filer, Dock, global menu system, default app bundles, etc) are being carefully designed from the ground up to fit well together, have Mac-compatible APIs, and provide consistency and a familiar look & feel. Please note we are not there yet - the UI is very blocky and unoptimized. This will be done once all core functionality works.
ravynOS is still very early in development and considered pre-alpha, for developers only at this time. If this sounds like your dream system and you understand Darwin, xnu, Objective-C and C, please join us to help make it a reality!