Developer | Jordan Hubbard, Kip Macy |
---|---|
Written in | C |
OS family | Unix |
Working state | Still in launch phase (see below) |
Source model | Open source |
Initial release | 2015 |
Latest release | Beta / 2015 |
Available in | English |
Platforms | Intel 80386 |
Kernel type | Monolithic |
Userland | NextBSD |
Default user interface | Command-line interface |
License | BSD licenses |
Official website | www |
NextBSD is an operating system initially based on the trunk version of FreeBSD as of August 2015. It is a fork of FreeBSD which implements new features developed on branches but not yet implemented in FreeBSD.
The basic features of launchd, notifyd, asld, and libdispatch work.
These can be installed by cloning the NextBSD repository from GitHub, building GENERIC or MACHTEST kernels, installing a new world on an existing 10.x or CURRENT system, and then following the instructions in the README.
Launchd will start the initial jobs that are part of the repo now.
The project refers to an installer as the first planned milestone on their website.
Future plans include convert to rc and tying notifyd in to potential consumers.
NeXTBSD was announced by Jordan Hubbard and Kip Macy in August 2015 at the Bay Area FreeBSD Users Group (BAFUG).
NeXTBSD is based on the FreeBSD-CURRENT kernel while adding in Mach IPC, Libdispatch, notifyd, asld, launchd, and other components derived from Darwin, Apple's open-source code for OS X.
The units of resource ownership; each task consists of a virtual address space, a port right namespace, and one or more threads. (Implemented as an extension to a process.)
The units of CPU execution within a task. Simple extension to kthreads.
In conjunction with memory managers, Mach implements the notion of a sparse virtual address space and shared memory. (No modifications)
The internal units of memory management. Memory objects include named entries and regions; they are representations of potentially persistent data that may be mapped into address spaces. (Unsupported)
Secure, simplex communication channels, accessible only via send and receive capabilities (known as port rights).
Message queues, remote procedure calls, notifications, semaphores, and lock sets. (Mach semaphores and lock sets are not supported).