CosmosOS / Cosmos

Cosmos is an operating system "construction kit". Build your own OS using managed languages such as C#, VB.NET, and more!
https://www.goCosmos.org
BSD 3-Clause "New" or "Revised" License
2.93k stars 553 forks source link

Can Cosmos use the work done by .NET Native, LLILC, CoreRT? #316

Closed omariom closed 8 years ago

omariom commented 8 years ago

If it were possible that would greatly increase the pace.

LLILC CoreRT

mterwoord commented 8 years ago

Not really. They do interesting stuff, but still assume a traditional kernel with processes. We implement everything.

czhower commented 8 years ago

LLVM also is more suited to traditional compilation, ie parsing etc. IL compilation can be done that way, but its a lot of layers that aren't needed and would only complicate our process.

CoreRT is more interesting, but not useful as Matthijs says because we are not running on top of an existing OS..... We ARE the OS.

omariom commented 8 years ago

But is LLVM's toolchain tied to the OS details like processes and threads? And why not to accommodate LLVM and parts of CoreRT to Cosmos?

czhower commented 8 years ago

"LLVM also is more suited to traditional compilation, ie parsing etc. IL compilation can be done that way, but its a lot of layers that aren't needed and would only complicate our process"

czhower commented 8 years ago

ie there are a lot of unnecessary things in it for us.. IL compilation is a LOT different than a traditional parse based compilation (ie lex/yacc type stuff).

Its like trying to parse Chinese using an English toolset.

omariom commented 8 years ago

You mean llvm's frontend?

czhower commented 8 years ago

The whole structure of LLVM is for traditional compilers. IL is already 75%+ compiled. LLVM would only complicate what we need to do.

fanoI commented 8 years ago

Nevertheless parts of CoreRT could be interesting for Cosmos itself because citing from [here]:(https://github.com/dotnet/corert/blob/master/Documentation/intro-to-corert.md)

Many other parts of the traditional .NET runtime, such as the type system, are implemented in C#. We've always wanted to implement runtime functionality in C#. We now have the infrastructure to do that. In addition, library implementations that were built deep into CoreCLR, have also been cleanly refactored and implemented as C# libraries.

That is there is the chance that from that repository we get implementations that does not call continually native code and so our work can be made easily. I don't know if the license permits to directly copy their code.

czhower commented 8 years ago

we can look at it for code, but we can't use it directly.. its too different.. it expect to run on an existing OS, not BE the OS... it would cause Cosmos to "become" an OS layer under it which would drastically and negatively affect Cosmos.. we might as well use a minilinux to run on...

On 12/30/2015 11:13 AM, fanoI wrote:

Nevertheless parts of CoreRT could be interesting for Cosmos itself because citing from here https://github.com/dotnet/corert/blob/master/Documentation/intro-to-corert.md

Many other parts of the traditional .NET runtime, such as the type
system, are implemented in C#. We've always wanted to implement
runtime functionality in C#. We now have the infrastructure to do
that. In addition, library implementations that were built deep into
CoreCLR, have also been cleanly refactored and implemented as C#
libraries.

That is there is the chance that from that repository we get implementations that does not call continually native code and so our work can be made easily. I don't know if the license permits to directly copy their code.

— Reply to this email directly or view it on GitHub https://github.com/CosmosOS/Cosmos/issues/316#issuecomment-168017302.

liquidboy commented 8 years ago

I'd love to be able to enable something like this but for Cosmos

https://github.com/dotnet/corert/issues/541

fanoI commented 8 years ago

Yes Cosmos could be the Unikernel they are talking!

xied75 commented 8 years ago

Given the concept is bit clear now, should we close this and create a new issue or just update the title to be "Turn CosmosOS into unikernel"? And then have concrete plan to see that happens.