Linked by Thom Holwerda on Fri 8th Feb 2008 22:47 UTC
.NET (dotGNU too) "Developers are working to create experimental open-source operating systems with modular microkernels using the C# programming language. The SharpOS and Cosmos projects both announced their first major milestone releases last month, demonstrating the technical viability of the concept. Although some previous research has been conducted in the area of VM-based operating systems, the Cosmos and SharpOS projects break a lot of new ground. One particularly notable prior effort in this field is Microsoft's Singularity experiment, a research project that that began in 2003 with the intent of creating a managed code operating system that uses the Barktok compiler and leverages static analysis and programmatic verifiability to ensure high dependability."
Thread beginning with comment 300175
To read all comments associated with this story, please click here.
managed
by trenchsol on Sat 9th Feb 2008 14:08 UTC
trenchsol
Member since:
2006-12-07

When one writes in Java, the code is "managed" by JVM. The term "managed" is not used in Java circles, but you know what I mean. What is managing C# code ? I thought it was some .NET framework. And .NET framework is supposed to run in an OS, usually Windows, or Mono under UNIX. So, how is an OS written in managed code supposed to run and boot ?

DG

RE: managed
by Nelson on Sat 9th Feb 2008 14:45 in reply to "managed"
Nelson Member since:
2005-11-29

The OS is technically not managed..yet, the kernel is converted into the intermediate language by Visual Studio and then they use an in-house tool to convert that IL to x86 Opcodes and build the executable header information.

So it may not be truly managed yet, but they can still make great security assumptions when converting to x86.

The next logical step would be getting as much runtime support as they can in the IL-to-x86 compiler and use that to build proofed low level kernel components.

From there it'd be possible to build an in-house VM capable of running true managed code.

Reply Parent Bookmark Score: 2

RE[2]: managed
by modmans2ndcoming on Sun 10th Feb 2008 23:23 in reply to "RE: managed"
modmans2ndcoming Member since:
2005-11-09

why not work with some chip researchers to create a code manager in the chip? one that is more extensive than the buffer overrun protection that intel and AMD chips have now?

Reply Parent Bookmark Score: 1

verifiable
by tummy on Sat 9th Feb 2008 15:43 in reply to "managed"
tummy Member since:
2005-09-14

What people really should be saying is that C#/MSIL is verifiable. The verifiability of the code allows the VM (or OS in this case) to allow the code to run in the same process as the kernel without causing it to do silly things like overwrite critical bits of memory, blowing up the stack or heap, changing the current instruction pointer etc.

Reply Parent Bookmark Score: 4

RE: managed
by jayson.knight on Sat 9th Feb 2008 18:14 in reply to "managed"
jayson.knight Member since:
2005-07-06

When one writes in Java, the code is "managed" by JVM. The term "managed" is not used in Java circles, but you know what I mean. What is managing C# code ? I thought it was some .NET framework. And .NET framework is supposed to run in an OS, usually Windows, or Mono under UNIX. So, how is an OS written in managed code supposed to run and boot ?

DG


The JVM equivalent for .Net is called the Common Language Runtime: http://en.wikipedia.org/wiki/Common_Language_Runtime

There are some noticeable differences in architecture between it and the JVM though. Google is your friend.

Reply Parent Bookmark Score: 1

RE: managed
by PlatformAgnostic on Sat 9th Feb 2008 19:50 in reply to "managed"
PlatformAgnostic Member since:
2006-01-02

As someone said earlier, the more important aspect of IL is that it contains enough information for memory safety to be verified at compile and runtime. In the case of Singularity, the IL is actually compiled down to machine code ahead of time by a trusted compiler (either the Bartok optimizing research compiler or the Phoenix compiler that's the backend of the next Visual C++). Work is being done to keep the type information next to the ASM code so that the compiler does not really need to be trusted and only a smaller verification system needs trust.

Ultimately you do need to trust the correctness of some pieces of code... and of the hardware.

Reply Parent Bookmark Score: 3

RE: managed
by Almafeta on Sun 10th Feb 2008 16:30 in reply to "managed"
Almafeta Member since:
2007-02-22

When one writes in Java, the code is "managed" by JVM. The term "managed" is not used in Java circles, but you know what I mean. What is managing C# code ? I thought it was some .NET framework. And .NET framework is supposed to run in an OS, usually Windows, or Mono under UNIX. So, how is an OS written in managed code supposed to run and boot ? DG


The design of the .NET framework is that that they first compile down to a platform- and processor-independent common intermediate language (CIL); this CIL bytecode can either be run via interpreter, or (this is the important part) compiled a second time into native code (as is done the most often, trading off portability for speed). This may seem roundabout, but since you only have to worry about optimizing the compilation for CIL, instead of all the umpteen .NET languages, you can get very strong optimization.

Reply Parent Bookmark Score: 3