> [...]
> 
> Definitely.
> It gets worse actually, the whole domain/assembly design of .net and
> mono seems to kind of assume that there's another OS layer underneath
> with things like processes.. which doesn't necesarily have to be the
> case in a managed OS
> Afterall, processes and domains overlap a great deal when it comes to
> functionality.
> We probably have to have some sort of internal 'domain/process'
> classes and expose functionality
> trough an external 'domain' class that the applications actually see..
> 
> It still requires some thought, nothing is set in stone as it is...
[Jonathan Dickinson] 
Sorry Sander, I really use ASCII in email because I can't really see another
way of doing it. Can't you copy it into notepad/vim? Maybe we can set up
something for creating such artwork on the website (a flash app perhaps?).

Okay, cause we are writing a thread scheduler. Are we wasting our time? I
know it's a basic prerequisite of an operating system. But beg, should we
not put more thought into it before we write it?

Threads have served us well for what? 30 years? Are we still holding on
hydrocarbon technology (you know, petrol/diesel is obsolete, but everyone
uses it because that the way it is done)? What could we do instead of
threads?

Let's get the basics down. What we need (I luurv ASCII art :):

+---------------------------+         +---------------------------+
| PROCESS                   | = IPC = | PROCESS                   |
| SUB-PROCESS | SUB-PROCESS | = IPC = | SUB-PROCESS | SUB-PROCESS |
+---------------------------+         +---------------------------+

So that's the way we see it today. I know the scheduler will be a nightmare
to implement, but I saw the gist of it in old posts to the mailing list.

/ = IPC (horizontally i.e. "<=> IPC <=>" )

+-------------------------------+
| PNODE                         |
| PNODE         / PNODE         |
| PNODE / PNODE | PNODE / PNODE |
| PN/PN | PN/PN | PN/PN | PN/PN |
+-------------------------------+

So now there is no such thing as a process. Every process has its own
stack/heap which sits 'on top' of its parent stack/heap: as does everything
else. They can all communicate directly with their parent but must
communicate via IPC to their siblings' stacks/heaps (which makes things a
lot safer IMHO). It would practically force developers into a good
programming paradigm:

+---------------------------------+
| CONTROL                         |
| UI            / IO              |
| EVENTS / DRAW | CDR / HDD / NET |
+---------------------------------+

So what we are talking about is OO within threads. For those of you who use
Windows, imagine what fun it would have been if MS implemented it like this
in the first place. Explorer.exe wouldn't freeze every time you looked at a
CDROM for the first time :(.

A lot of threading issues would also fall away because the developer would
be required to use a reliable communication path. As per the above example:

+---------------------------------+
| CONTROL                         |
|           >>>>/>>V              |
|        /  ^   |  V  /     /     |
+---------------------------------+

Jeez, IPC would become a convenience here, we could just write it into the
main process. We would land up with this!!!

+---------------------------------+
| ROOT        V<<<<<<<<<<<<<<<<^  |
| GAME        V | EVIL CHEATS  ^  |
+---------------------------------+

Wow. I must say that is unity at its best. I do know that I can be a bit
ambitious at times, so do tear my idea apart :).

> 
> [...]
>  
> Well we have no IO yet, nor a JIT compiler.. i'm not entirely sure
> what problem you're trying to solve here...
> We could use a function which can execute a binary resource perhaps..
> Might be usefull to start with drivers.. (especially the IO driver! ;)
> 
[Jonathan Dickinson] 
Just thinking ahead :). I just think that we don't want to have to write a
JIT until we actually need it (which is never, really, we could just AOT
everything every time it is changed). 'nor a JIT compiler' is precisely what
I am getting at: we need to have something in the mean time. When we include
JIT it must fall away by changing/including one line (ideally).

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