NextBSD OS Development Resumes, Merging FreeBSD & MacOS

Work has officially commenced on the rejuvenated project NextBSD, which is focused on developing an operating system that leverages macOS technologies, including the system manager launchd, the Mach IPC interprocess communication mechanism, and the libdispatch task parallel dispatch library, on top of a modern FreeBSD codebase. The new implementation is being built from scratch, separate from the code base of the previous NextBSD project that dissolved a decade ago, but it upholds the same objectives and concepts.

The initiative to revive the project was spearheaded by Joe Maloney, a key contributor to the old NextBSD and other associated projects such as helloSystem, ravynOS, FreeNAS/TrueNAS, PCBSD/TrueOS, and GNUstep. Joe Maloney is also recognized as the developer of the Gershwin desktop environment utilized in GhostBSD. The code for the project is openly available under the BSD-2 license and is being developed with the support of the Claude AI assistant. Daily experimental builds are accessible for download.

NextBSD utilizes the FreeBSD kernel, along with a patch for implementing the Mach-based interprocess communication mechanism and various add-ons. Specific NextBSD modifications are layered on top of the default FreeBSD kernel codebase without creating a fork. At the ABI level, the kernel maintains compatibility with FreeBSD. In place of kernel modules loaded by the kldload utility, the project employs kernel extensions (kext) loaded using the kextload and kextstat tools from Darwin’s kext_tools.

For communication via Mach IPC, NextBSD utilizes various libraries from the Darwin environment, such as libsystem_kernel, libdispatch, libxpc, liblaunch, and libCoreFoundation. In managing hardware device events, the project integrates the IORegistry mechanism (/dev/ioregistry) within the kernel, leveraging the Mach IPC bus for message transmission, with event processing facilitated through the libIOKit library and the ioreg utility.

As its initialization system (PID 1) and system manager, NextBSD employs the launchd toolkit based on the most recent public release of launchd-842.92.1, which has been modified to work with the Mach components and libxpc stack integrated into the FreeBSD kernel. The port of the libxpc interprocess messaging stack was transferred from the ravynOS project.

/Reports, release notes, official announcements.