StardustOS: Library operating system for building light-weight Unikernels(github.com)
github.com
StardustOS: Library operating system for building light-weight Unikernels
https://github.com/StardustOS
12 comments
It reminds me of the old OSKit project from the Univ of Utah, which was also developed for research and teaching.
https://www-old.cs.utah.edu/flux/oskit/
https://www-old.cs.utah.edu/flux/oskit/
I would argue that stateful services (databases, message queues, CDNs) all perfectly fit the unikernel model. The question is whether the additional engineering effort and system design is worth the performance gain.
Interesting. Are there any research and papers on potential performance gains?
Looks promising but the last update appears to be a few years ago. OPS is a modern alternative: https://docs.ops.city/ops/
I’m one of the authors of Stardust - thanks to everyone who’s taken the time to look at it and share their thoughts here.
The project started with two questions:
- How small can a deployment unit be while still supporting real service workloads?
- What if distributed systems were built from components that can be deployed quickly or dynamically relocated across a network?
Instead of large virtual machines or container images, we turned to Unikernels; tiny, and easily deployable anywhere a hypervisor runs. If deployment becomes cheap, we can rethink system design: mobile agents, compute-near-data, ephemeral tasks, dynamic composition, and so on.
Stardust lets us explore that space, and both the C and Rust versions are stable.
Stateful services are possible with Unikernels, though library porting still takes work, and there’s plenty of room for innovation around hypervisor and tooling. WebAssembly is a promising direction as well, though it would require adapting Stardust to support an appropriate runtime. Some Unikernels have already gone down that path, and there’s definitely room for more experimentation.
The project started with two questions:
- How small can a deployment unit be while still supporting real service workloads?
- What if distributed systems were built from components that can be deployed quickly or dynamically relocated across a network?
Instead of large virtual machines or container images, we turned to Unikernels; tiny, and easily deployable anywhere a hypervisor runs. If deployment becomes cheap, we can rethink system design: mobile agents, compute-near-data, ephemeral tasks, dynamic composition, and so on.
Stardust lets us explore that space, and both the C and Rust versions are stable.
Stateful services are possible with Unikernels, though library porting still takes work, and there’s plenty of room for innovation around hypervisor and tooling. WebAssembly is a promising direction as well, though it would require adapting Stardust to support an appropriate runtime. Some Unikernels have already gone down that path, and there’s definitely room for more experimentation.
Could this be good for compiling as a small Wasm OS for the Browser? Instead of Alpine Linux or things like that?
Good for simple stateless services (web servers, API endpoints, microservices) applications that fit the unikernel model - single-purpose, statically linked Running on one's own Xen hypervisor infrastructure.