Comment by sph

Comment by sph 7 hours ago

0 replies

After years of wondering what the post-UNIX paradigm of computing could look like, these past few months I've been prototyping a software platform built around capabilities and message passing, targeting Linux and bare-metal RISC-V. The big ideas I'm pursuing is a stackless design running on a flat address space with lightweight processes to minimize message-passing latency, and all the benefits of capabilities so every process is sandboxed and has only access to capabilities they have been explicitly passed via message passing.

I've also built a RISC-V emulator to integrate with this platform, so eventually it'll be able to run native binaries written in any language, completely sandboxed, completely built around message-passing. Basically a native, low-level BEAM-like platform to build an entire operating system and user-space.

While my day job is writing boring applications, this is the stuff that keeps me awake at night, and I would love so much to talk and write more about this, about the trial-and-errors I'm facing, but it's still so much in flux every week I'm exploring a new approach. Most of my work has been around the stackless scheduler, and I have a plan to achieve preemption for long-running or misbehaved tasks without having to compromise on memory usage (i.e. without giving each process its own stack and allocate memory for context switching).

Eventually I'd like to layer on top either Cap'n Proto or another high-performance serialisation system to create a distributed, introspectable environment of object-capabilities that are sending typed messages between each other, achieving the ultimate goal of creating an unholy hybrid between Smalltalk and the Erlang VM.

God, how I wish I was paid to work on this type of problems :-)

If this sounds close to your area of interests, please send me an email and I’d love to chat.