this post might sound strange, but after working with ruby for so long,
I’ve been thinking about writing a ruby operating system. I’ve been
thinking about doing my M.D. thesis about it, but I want to hear some
of your opinions.
First of all, the philosophical questions
- Does it make any sense? (that is, does it sound useful?)
Of course it does!
A Ruby OS? Not that I know of. A dynamic language OS? Tons: various
Smalltalk OSes, LISP OSes. A VM OS? Several: Inferno, IBM OS/400,
NewOS, Microsoft Research’s Singularity.
The House operating system (Haskell) might be of interest to you.
And then the technical stuff. I though about doing things this way:
Well, I can’t comment on those. I’m just gonna be an excited
bystander, witnessing in awe …
Anyway, I kinda like the Singularity OS from Microsoft Research. The
most important thing about it is that MSR chose to do two things
radically different: over 4 decades the overarching goal of all
operating systems has been performance. And over 4 decades the design
of all operating systems has been driven by hardware innovations.
Singularity is different: its overarching design goal is dependability
and its design is driven by language and tools innovations (in the
case of Microsoft that obviously means statically verifiable/provable
safe programming languages (i.e. C#, Spec#, Sing#) and automatic
static program verification). And, I mean, they’re right: look at
today’s operating systems: most of them are implemented using
technology from the 70s (i.e. C) and if you look at it from way high
above then Windows Vista is still Digital VMS and Linux and MacOS X
are still MULTICS.
This language driven operating system design makes Singularity pretty
different from today’s mainstream operating systems and IMHO also
makes it pretty cool. (Of course there have been other similar
attempts before, I don’t mean to sound like a Microsoft fanboy,
because, actually, I ain’t one.)
You might wonder where I’m getting at … Well: I just wanted to say,
I’m looking forward to what interesting design choices a Ruby based OS
might lead to. Obviously it would look totally different from
Singularity (because of its strong roots in static verification) and
it would also look totally different from today’s mainstream systems.
As a closing remark, you might want to take a look at The TUNES
Project http://TUNES.Org/. They want to build an entirely new
operating system (well, actually an entirely new computing system,
including hardware, OS and language) based on the very latest and
greatest in dynamic languages, AI, cybernetics, … However, they have
been around for many years and all they have accomplished so far is
three relaunches of their website …
- Make the ruby VM run on bare metal. (that is, a ruby VM operating
Don’t forget: there’s more than one Ruby VM. JRuby and IronRuby might
be of interest to you because people have already gotten the JVM and
the CLR to run on bare metal. And of course Rubinius might be of very
great interest because it is written mostly in Ruby.
Anyway, I’m looking forward to what’s coming out of this, even if it’s
just a thread on ruby-talk that makes a nice evening’s read (-;