OSes have difficulties both scaling up to very large-scale systems, and scaling down to the smallest of IoT devices. This is especially true when providing strength in non-functional constraints such as security, reliability, predictability, and efficiency. Composite provides abstractions and mechanisms tailored toward a world in which tail-latency, system resiliency, and dependability are increasingly important.Try it out!
The kernel has no locks, and avoids the contention that threatens scalability to very large numbers of cores. Composite uses quiescence techniques, along with wait-free algorithms to mediate contention, and namespace partitioning to avoid it where possible.
Access control pervasively controls access to fine-grained system resources, including not only memory and kernel abstractions such as threads, but also computation time itself. Capability propagation policies are controlled by user-level policies, simplifying kernel design.
The kernel contains no scheduling policy, instead defining system-wide scheduling in isolated user-level components, thus enabling heightened configurability, isolation, and performance.
Inter-process communication performance is the cornerstone of microkernel design. To enable high performance, fine-grained decomposition of the system into components, and control over end-to-end thread latencies, Composite uses a highly optimized form of thread migration.
We have an internal slack where most communication takes place. To kick off communication, you're best off emailing Gabe. More information can be found in our publications and in some of the background posts.
If you're interested in discussing the application of Composite in interesting domains, or are in a company interested in its goals, don't hesitate to email Gabe.
© Gabriel Parmer, 2013, all rights reserved, background image designed by Vector Open Stock