Hi All,

I am VERY excited about this project. The idea has been dominating my mind
for some time now and it's time I put it into action. This would be my first
OS but it's about time after:

13 Years Programming XP (from VIC 20 - C#)
7 Years C# Programming (pre-beta 1, nice to have a brother in Microsoft)
Numerous other languages along the way (sorry, limited Assembler)

Architecturally speaking I hope I would be able to help out: but don't count
me out on the development (once things get a bit further).

--

So, right into my first post:

Mono is absolutely fantastic; but it was designed, like .Net Framework, for
a classical operating system like Windows\Linux\BSD. We just have to be
REALLY careful about how much we copy 'n paste from it lest we lock
ourselves into writing an OS Kernel like Windows\Linux\BSD. I feel if we
can't make something in Mono (for example, System.IO) work then we ditch it
and re-write it so that it suits our OS. We can always go and abstract it in
a clever way later on in Mono so that we can run .Net assemblies coming from
the Linux Mono world.

--

Currently the AOT namespace is 'dirty'. We don't find ourselves writing
against a WindowsXP.Forms.Form class: instead it is tucked away /neatly/ in
System.Windows.Forms.Form. Before our codebase gets really big lets think
about what the namespaces should really be: i.e. Architecture.Core instead
of SharpOS.AOT. Obviously it really doesn't matter what we use is the
Kernel, because no-one ever calls it using 'normal' .Net methodologies. Just
my 2c.

--

Came up with an temp solution for the JITter. The MS CLR also supports
precompiled MSIL (create these using the ILASM tool). So shouldn't we? I.e.

public static void Load(string file) // Really the wrong sig, but this is
just a concept.
{
        String binFile = Path.ChangeExtension(file, ".bin");
        if(File.Exists(binFile))
        {
                LoadBinary(binFile);
                return;
        }

#if JIT
        // TODO: Actually write the JIT.
        JIT.Activate(file);
#else
        throw new InvalidOperationException("MSIL is not currently
supported. Please AOT " + file ".");
#endif
}

public static void LoadBinary(string file)
{
        // Execute machine code here.
}

--

Next post on architecture... Didn't want to make this one too long ;).

Great work guys, you guys really have done commendable progress. I am really
impressed: when I first booted it in VMWare I was expecting a lot less. Wow.
Simply amazing. Kudos for all of you.

Jonathan Chayce Dickinson



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
SharpOS-Developers mailing list
SharpOS-Developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sharpos-developers

Reply via email to