Closed omariom closed 8 years ago
Not really. They do interesting stuff, but still assume a traditional kernel with processes. We implement everything.
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.
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?
"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"
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.
You mean llvm's frontend?
The whole structure of LLVM is for traditional compilers. IL is already 75%+ compiled. LLVM would only complicate what we need to do.
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.
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.
I'd love to be able to enable something like this but for Cosmos
Yes Cosmos could be the Unikernel they are talking!
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.
If it were possible that would greatly increase the pace.
LLILC CoreRT