Very good suggestions!!!

Bruce Markham wrote:
> Welcome back! I'm going to try to tackle this piece by piece. Because 
> I don't think the rest of us have really understood your proposal, and 
> I think my questions before went unanswered both due to your possible 
> frustration, as well as an understandable preoccupation with the rest 
> of your life. ;-)
>
>
>     First, our boot loader loads up assembly called init. Init is written
>     in C# (doesn't have to be, but it would be nice), and basically only
>     has hard coded read-only file system drivers. It's compiled as EIC,
>     meaning that the AOT compiler can compile it as simple machine code,
>     no dependencies.
>
>
> Okay, I understand that well enough. A set of hard coded read-only 
> file system drivers also means it will need the ability to enumerate 
> file storage devices: floppy, hard disk, USB mass storage, CD/DVD-ROM, 
> etc. (I don't think any of us here want an EIC-based hardware 
> abstraction...)
Yes, without a FS in the kernel we cant load anything.
>  
>
>     Init's job is pretty simple. First, it sets up the stack and the heap
>     (stack grows downward in memory, heap upward). Next, it mounts the
>     root device as read-only, loads mscorlib into a special place in
>     memory, and then loads the kernel executable into another place in
>     memory. It then sets up any last environment things, and jumps to the
>     kernel.
>
>
> I don't understand why you are saying it has to setup a "stack" that 
> is a different thing from the "heap". Is there a specific reason or 
> methodology that I am missing? The term is also confusing because 
> there is already the x86 CPU stack, but I believe you are describing a 
> secondary heap. Regardless, it sounds like you want two 
> point-of-origins for memory allocation. You'll have to elaborate why 
> two specifically, (and not say, just 1 for the kernel, and then 1 for 
> every process or every page of every process.)
Erm, you do have two memory spaces in .Net. Once for Method-Scoped and 
one for 'Class-Scoped'. That is anything that you create in a method is 
put on the stack, and anything you put in a class that will live for 
longer than a method call is put on the the heap.
>
>     The kernel then has control and has a working stack and heap. It can
>     start loading modules. It can start doing its work. 
>
>
> By loading modules - the only thing it can do is read binary data from 
> disk. So unless it is loading AOTed "modules", it can't load anything 
> useful...
>
> So I assume the mscorlib it loaded is AOTed?
>
> Does this "kernel" that you say "init" loads, have the virtual 
> execution system in it? (That is, does it have the JIT compiler?) We 
> want as little code AOTed as possible. You have to remember that that 
> is the tenet driving most of us here.
Agreed, as little AOTed code as possible. How about this:

Init Loads -> Reads JITter from HDD -> Continues loading CIL modules.

We could make a pluggable JITter, which would allow someone to create a 
specific JITter for their needs.
>
> [...]
>
>     So, I ask you, what's wrong with this picture? I never understood the
>     need for a "stripped down" mscorlib.
>
The reason we need a stripped down corlib is because the AOT (currently) 
compiles everything in an assembly. So the kernel would get scary big.

Another perspective (I am not 100% clear on the topic) is that the 
korlib is just a convenient way to separate the stubs from the kernel.
>
> [...]
Just one thought. What happens to a bad OS? In terms of a broken one? 
Surely we need some AOTted *nix commands to allow the user to rescue the 
system. Just a thought for much later on.

-- 
                              Jonathan Dickinson


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
SharpOS-Developers mailing list
SharpOS-Developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sharpos-developers

Reply via email to