views:

435

answers:

5

Is it possible to make an operating system using VB.NET?

+7  A: 

Yes it is possible to make an operating system using vb.net.

giri
+1 for to the point answer.
KMan
A: 

No!

Unless you re-define what an operating system is and make the problem fit the solution. This has been standard practice in this industry for decades. Given the right definition of Operating System, you can even use Esperanto to write it:) So what is your definition of Operating System?

Square Rig Master
It isn't so much the definition as to having the tools to accomplish it. You could compile VB into pure assembly, or you could write a low level VM loaded at runtime (like singularity). Both would accomplish the questions parameters without needing to question the definition of what an operating system "is".
envalid
+1 Completely agree with envalid.
KMan
Just for the record, my answer is exactly the same as the accepted answer! Note that the first sentence starts with the qualifier "Unless". Religious knee jerk reaction on the word "No!" is to be expected :)
Square Rig Master
The accepted answer started with a "Yes, But..." and my answer with "No, Unless...". If someone is planning to jump in at the deep end and start on an arduous journey my advice - after 30 years of computing - will start with the negative to encourage caution and research. May be I am getting too old for this, but I stand by my answer:)
Square Rig Master
+1  A: 

Yes, it is possible.

But first you will have to identify what an operating system is; and then define what would you want in your operating system? An operating system does a lot of work on the background as well as on the foreground; there are applications, memory, threading, network, ports, a separate world that make things work.

I would agree with Aviad that probably your OS may be called a .NET CLR, but thats what that would be called. An answer to your question is that it is possible provided that you define your OS and probably limit yourself to what you really require.

KMan
+1  A: 

It has been done (well C# at least, but since they are both CLR languages...)

It's called Singularity by Microsoft Research. http://en.wikipedia.org/wiki/Singularity_(operating_system)

Paolo
+3  A: 

You've got a serious bootstrap problem. Compiled VB.NET code cannot run without the services of the CLR and the JIT compiler. Existing implementations of it (mscorwks.dll and mscorjit.dll for example) have a heavy dependency on services provided by an operating system. You'll have to write your own, that's non-trivial to put it mildly. In addition, many classes in the framework rely on P/Invoke to directly call a Windows API function. Very basic classes like Console, Control, FileStream, Socket. You'll have to replace those too. That's where Singularity was stuck last time I saw a video of it.

The "starter kit" for any project like this is Rotor. That's how Mono got started. Take a look at what your in for, focus on the Platform Adaption Layer (PAL). Needs to be written in unmanaged C/C++ in its current form though.

Hans Passant