Singularity is a research project at Microsoft to write an OS using managed code. Although it will probably never be seen out in the wild, it incorporates some interesting ideas nonetheless. Read about it here and here (ppt).
Actually interpreted languages usually have much smaller binaries, java for example can have fairly large programs that are smaller than a Mb. While the interpreter will take up about 50 mb of space, the resulting small binaries will quickly result in a lot of space saved.
I have to agree with Celerate here. The RAM and hard drive requirements for an interpreted OS should be significantly less than an equivalent compiled OS. Anonymous (IP: 64.119.120.—) might be right about needing a 10 Ghz cpu though. It all depends upon how the layers of abstraction are structured.
When MSIL programs are run and JIT’d the resulting native code is cached, and on subsequest runs, the loading of the cached components gets optimized which ultimately results in higher performance.
Having said that, I’ve been playing around with Microsoft’s Rotor code on FreeBSD, and the first run is *always* painful. It does get better.
If for example, Windows were ever completely rewritten using managed code, Microsoft would be shipping it already JIT’d, and even if they didn’t, by the time they get around to doing such a rewrite, the processors of the day would be mighty damned fast indeed.
Looks a bit like JNode. But some features of MSIL such as value types make it more suited to low level development. Could be interesting.
But unfortunately only very few of the cool things they research at MS research make it into their products. It is almost like Xerox 🙂
I would like to know more about the compiling the “MSIL direct to metal” as mentioned here.
Very cool project…
At Channel 9, you can find a video of an interview with the researchers of Singularity:
http://channel9.msdn.com/ShowPost.aspx?PostID=69063
I’m sorry, the right URL for that video is:
http://channel9.msdn.com/ShowPost.aspx?PostID=68302
Quad core 10GHz Pentium whatever, 16GB RAM, 500GB HD.
Hardware vendors are gonna love it…
:p
Actually interpreted languages usually have much smaller binaries, java for example can have fairly large programs that are smaller than a Mb. While the interpreter will take up about 50 mb of space, the resulting small binaries will quickly result in a lot of space saved.
this could be a very viable solution. i hope this sees the light of day.
What the hell is the point of running an OS as a machine within a machine?!!!
Seems like Inferno did the whole managed code OS thing a long time ago.
what is managed code?
A pretty good summary is here:
http://blogs.msdn.com/brada/archive/2004/01/09/48925.aspx
there’s a reason for managed code always being associated with JIT?
why a program has to be recompiled every time i launch it?
> there’s a reason for managed code always being associated with JIT?
portability, compatibility, security, efficiency (what?)…
> why a program has to be recompiled every time i launch it?
why not? oh wait… you are launching it several hundred times per second
I have to agree with Celerate here. The RAM and hard drive requirements for an interpreted OS should be significantly less than an equivalent compiled OS. Anonymous (IP: 64.119.120.—) might be right about needing a 10 Ghz cpu though. It all depends upon how the layers of abstraction are structured.
managed code is not interpreted code
If you write the OS, you could implement a cache for the final output of the JIT. Of course no application may access it.
When MSIL programs are run and JIT’d the resulting native code is cached, and on subsequest runs, the loading of the cached components gets optimized which ultimately results in higher performance.
Having said that, I’ve been playing around with Microsoft’s Rotor code on FreeBSD, and the first run is *always* painful. It does get better.
If for example, Windows were ever completely rewritten using managed code, Microsoft would be shipping it already JIT’d, and even if they didn’t, by the time they get around to doing such a rewrite, the processors of the day would be mighty damned fast indeed.
What can I say? I’m a dreamer ;^)
I guess it doesn’t yet iclude handling release shedules?