I, Hacker

Hungry hungry macros 
« Back to blog

Renraku: Future OS

Renraku is a family of managed research kernels I've been working on
for around 4 years. Though the goals and implementations have changed
over the years, they're all designed to be highly reliable, fast,
portable, and flexible enough to keep up with the changing needs of
today's technology.

Background


 
Initially, Renraku (known as Colorblind at the time) was simply an
experiment. Inspired by Unununium in its Python era, I saw the value
in kernels being very high level. Ease of development, in the hands
of the right hacker, could mean vast improvements in a short period of
time. With this in mind, I set out to build a prototype. I built a
number of revisions on top of existing OSes, but in the end I couldn't
get the design I wanted, so I shelved the project, but never forgot
about it.
 
Shortly thereafter, I started playing around with the development of
Talk, an L4-inspired microkernel. It was very simple (written in
straight x86 assembly) and was intended to see how small such a
microkernel could be without sacrificing critical functionality. It
didn't get far due to not having enough time, but while designing the
set of base services and their interactions, it made me think back to
Renraku.
 
The project sat on the back burner for about a year and a half, until I saw
MSR's Singularity project, some time around 2006. At this point, I
started seriously thinking about what I want in a future OS and how I
can go about implementing it. I've since written a few prototypes in
a mix of C# and Nemerle, and the goals have largely solidified.

Goals


 
High level:

  • Pure managed code. No C, no assembly not generated by the compiler, no pointer access outside of the object manager and certain parts of the kernel.
  • Everything is an object. Turtles all the way down.
  • Single address space and no userland. Everything is ring 0.
  • Completely network-transparent objects.
  • Object store instead of a traditional filesystem.
  • System-wide orthogonal persistence.
  • All components reloadable at runtime.


 
Implementation:

  • Pure .NET. Currently playing around with Boo for it, due to their new macro syntax and functionality.
  • Ahead of time compilation for the base services.
  • Object model implemented on top of itself. That is, the object model is implemented in terms of value types and pointers, and the compiler has intrinsics for object model instructions to auto-call the implementation.
  • While designing/implementing any feature, now is always better than later. Always, always, always go for the practical, simple route before considering a more complex one.

 

Roadmap


 
This is a rough roadmap of the implementation of Renraku. How far
this ends up going is really up in the air; it could go to the end,
it could be abandoned half way and rewritten again. Eventually, I'd
love to see these ideas come to fruition, though.

  • Initial CIL->x86 compiler. Uses the actual stack to execute code, as optimizations can be added later.
  • Initial memory/object manager. Nothing fancy, just enough to get things up and running.
  • Begin implementing the .NET BCL. Get basic string manipulation and collections working.
  • Implement keyboard support.
  • Implement a basic shell. Allow object inspection/manipulation.
  • Implement initial object store.
  • Implement basic networking and network transparent objects.
  • Build framebuffer support and a basic GUI library.
  • Implement the dependencies of the Boo, C#, and Renraku compilers.
  • Implement a basic terminal and REPL.


 
Once these things are implemented, development should be able to
progress very rapidly. There's just a lot of work to do to get there.
 
What would you want to see in a future OS? What would you like to see
go away? What new UI paradigms ought to be used? I'd love to hear
feedback on this, as there's simply a lot to think about.
 
Happy Hacking,
- Cody Brocious (Daeken)

Comments (9)

Jul 03, 2009
Noxn said...
Im not that technical about this kind of stuff actually. Kernels and stuff.
Everything is an object is nice. I liked that in linux.

I dunno what i want to see in a future OS.
I mean, what is there really to say?
Do you mean on the technical side of it, or what the user wants?
Make it work, make it have a shell, and make other awesome stuff, and ill be happy
Or maybe i should just stay with linux.

Anyway, good luck!

Jul 03, 2009
Gabriel Munoz said...
Hi, Same guy here who linked to the singularity project on the HN thread.

Something I've been re-reading about lately is Marc Andreessen's "Level 3" "online platform": http://blog.pmarca.com/2007/09/the-three-kinds.html

I remember it resonated with me because it could go hand-in-hand with an OS such as you're working on. Rather than just thinking of an OS that will run on a traditional computer, the whole "cloud" stuff opens up a whole new opportunity right now.

I think you could be onto something huge here that could take off in the near future. I know I'd love to use it!

Jul 03, 2009
Gabriel Munoz liked this post.
Jul 03, 2009
Cody Brocious said...
@Gabriel I've been thinking about exactly that. In one of the earlier Renraku versions, it was planned for the CPU to defined as an object that executed code, so it could be network transparent like any other. I don't particularly like that abstraction, but I definitely want 'cloud' support to be an important feature.
Jul 04, 2009
halcyonmuse said...
Shadowrun reference?

Also, Renraku is Japanese for "contact; communication; correspondence; connection."

Jul 04, 2009
Cody Brocious said...
Started as a Shadowrun reference (I want a deck running Renraku ;) ) and then I found out about the meaning of the word, and it just fit.
Jul 04, 2009
dutchkabuki said...
.NET. Don't do it!!! if you want this think to last +10-yrs you don't want to be a part of the msft implosion... no longevity in .net.
Jan 23, 2010
Man, I <3><3>

My desire: Tag based filesystem, not hierarchy. Also, meander around http://ignorethecode.com for other OS fiddly bits.

Jan 23, 2010
That should be I HEART SHADOWRUN and I HEART NEW OS'S

Leave a comment...