[Mono-devel-list] Operating System in C# Project

2005-05-20 Thread Alejandro Serrano
Hi,
Is anyone interested in starting a project for doing an operating system 
completely in managed code, à la Singularity that is being done in 
Microsoft?
I don't know much C or C++, but I'm very knowledgeable on C# and MSIL. 
So the idea would be to start implementing the CLR in a way that it 
executes completely by itself, then porting GTK# and something more to 
make it usable. A far long project!!

Thanks in advance,
Serras
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-devel-list] Operating System in C# Project

2005-05-20 Thread Kornél Pál
Is anyone interested in starting a project for doing an operating system
completely in managed code, à la Singularity that is being done in
Microsoft?
An operating system cannot be written in managed code. If you will create
something like an operating system using managed code it will be only a
subsystem on the top of the underlaying operating system and other
subsystems like Mono.
An operating system is based on the hardware.
I think I am not the only person who think so:
http://www.google.co.hu/search?hl=en&q=define%3Aoperating+system
Kornél
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-devel-list] Operating System in C# Project

2005-05-20 Thread Elliot Paquette
At some level there will be some unmanaged code, sure, but I think
that the environment which you just described, Kornél, could be
considered an integral part of an operating system, if not for
simplicity's sake the operating system itself.  If you add the extra
contraint that only IL code will be executed (as in Singularity), then
the unmanaged requirements are further reduced.  I can not gauge the
technical challenges involved with such a project, however, and it may
well require hooking the Microsoft cash pump up to a vast team of
programmers.

http://research.microsoft.com/os/singularity/

Elliot Paquette

On 5/20/05, Kornél Pál <[EMAIL PROTECTED]> wrote:
> > Is anyone interested in starting a project for doing an operating system
> > completely in managed code, à la Singularity that is being done in
> > Microsoft?
> 
> An operating system cannot be written in managed code. If you will create
> something like an operating system using managed code it will be only a
> subsystem on the top of the underlaying operating system and other
> subsystems like Mono.
> 
> An operating system is based on the hardware.
> 
> I think I am not the only person who think so:
> http://www.google.co.hu/search?hl=en&q=define%3Aoperating+system
> 
> Kornél
> 
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-devel-list] Operating System in C# Project

2005-05-20 Thread Richard Matthias
It is mostly the work of two men so far, one OS expert and one
compiler expert. They have a C# compiler that creates native code
directly which helps of course. They also use C#'s unsafe mode
(something overlooked by many C# programmers) which is capable of
doing anything you can do in C. They use that for the low-level stuff
(as well as a little C++ and assembler) so you could say that it is
not all "managed code", but it is nearly all C#.

If you want more info head over to this thread on Channel9
http://channel9.msdn.com/ShowPost.aspx?PostID=68302
where one user who is just as skeptical as Kornél manages to take up
pages and pages of posts with their complete failure to understand how
an OS written in C# could be possible. There is also an interminable
discussion over what exactly "managed code" means and that really is
the core of the problem because it is a poorly defined term that is
really misapplied with respect to Singularity.

On 5/20/05, Elliot Paquette <[EMAIL PROTECTED]> wrote:
> At some level there will be some unmanaged code, sure, but I think
> that the environment which you just described, Kornél, could be
> considered an integral part of an operating system, if not for
> simplicity's sake the operating system itself.  If you add the extra
> contraint that only IL code will be executed (as in Singularity), then
> the unmanaged requirements are further reduced.  I can not gauge the
> technical challenges involved with such a project, however, and it may
> well require hooking the Microsoft cash pump up to a vast team of
> programmers.
> 
> http://research.microsoft.com/os/singularity/
> 
> Elliot Paquette
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-devel-list] Operating System in C# Project

2005-05-21 Thread Iain Jackson
I had a brief look around on similar work, such as JNode which is an OS 
written entirely in Java, when I pondered writing an OS like this a 
while back. The only way I can see this being done is that you build the 
kernel in C# with unsafe code, a few extra value types for Interupt 
handling, and a CLR and JIT in managed code. Then to make the thing boot 
you use the JIT compiler to compile both the JIT, CLR and Kernel into 
native code (using highest optimisation settings) and use that as an 
image for GRUB or your own favourite boot loader.


JNode have a good framework for drivers and are working on a graphics 
subsystem  which could be used but I think .NET would be faster as it 
has better access to datatypes and pointers.


I also have some space on sourceforge for it if you would like to use it.

Iain Jackson

Alejandro Serrano wrote:


Hi,

Is anyone interested in starting a project for doing an operating 
system completely in managed code, à la Singularity that is being done 
in Microsoft?
I don't know much C or C++, but I'm very knowledgeable on C# and MSIL. 
So the idea would be to start implementing the CLR in a way that it 
executes completely by itself, then porting GTK# and something more to 
make it usable. A far long project!!


Thanks in advance,
Serras

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list




___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-devel-list] Operating System in C# Project

2005-05-21 Thread Kornél Pál

This discussion seems to be a play with words.:)


From: "Richard Matthias" <[EMAIL PROTECTED]>
They have a C# compiler that creates native code directly which helps of
course.


If this is true then the operating system will not be implemented in managed
code it will be only in C#. An operating system can be written in BASIC as
well if you have good compiler (with some extra feautes:).


From: "Elliot Paquette" <[EMAIL PROTECTED]>
At some level there will be some unmanaged code, sure, but I think
that the environment which you just described, Kornél, could be
considered an integral part of an operating system, if not for
simplicity's sake the operating system itself.


.NET Framework is said to be an integral part of Windows Server 2003
altought I think it is a part and not an integral part of it.

But I'm sure that .NET Framework will be an itegral part of Windows Longhorn
as it is said to have functionality that will be available through managed
code only.


From: "Elliot Paquette" <[EMAIL PROTECTED]>
If you add the extra contraint that only IL code will be executed (as in
Singularity), then the unmanaged requirements are further reduced.


But saying that an operating system can be implemented using managed code
only in a nonsense.

Of course the answer depends on what do you mean on managed code. Usually it
means something that is based on the CLI and is in IL code. A less extensive
interpretation could be if you mean managed code on something that uses the
garbage collector. But in both situations the operating system cannot be
implemented in managed code as neither CLI nor GC can be based on itself.

The lowest level where the CLI can be implemented is the kernel. As a result
the kernel itself and the CLI cannot be based on themselves so they cannot
be in managed code.

And depends on what do you mean on an operating system. If you don't
consider the kernel to be part of the operating system then as all the user
mode code can be in managed code you can say that the operating system is
written entirely in managed code.

But the kernel is an important part of the operating system, for example if
you use an inefficient kernel the whole operating system will be
inefficient.

In the world of Unix/Linux it's normal that the kernel and other componets
are from different vendors but this doesn't mean that any of these comonets
alone are operating systems, this means that the system built from this
components is the operating system.

An operating system is a complex system that has the ability to run on a
computer without any other systems. This means that anything that is
required to run integral parts of the operating system has to be integral
part as well and if it's removed the operating system is not an operating
system anymore.


From: "Richard Matthias" <[EMAIL PROTECTED]>
...just as skeptical as Kornél manages to take up
pages and pages of posts with their complete failure to understand how
an OS written in C# could be possible.


I am not sceptical. I belive and know that an operating system can be
written in C# as it is a language. I only said (because I know) that it
cannot be implemented entirely in managed code as it requires a CLI that
cannot be implemented in managed code. As of the CLI has to be part of the
operating system if you want to run it the operating system itself cannot be
implemented entirely in managed code even if it's only unmanaged part is the
CLI.

As a conclusion an operating system can be implemented entirely in managed
code if and only if the native code that the underlaying hardware
understands and can execute is IL in other words when the CLI is implemented
at hardware level.

Kornél

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-devel-list] Operating System in C# Project

2005-05-21 Thread Andreas Nahr

This depends on what you call "managed" code.
Obviously you need a HAL (because you can't express some direct hardware 
access in C#) written in another language.
Then you need a kenel, which (at least partially) needs to be compiled to 
processor specific instructions (which can also be done from IL). You still 
can have code verification and garbage collection at that level even if you 
compile down to native.
Singularity has several other aspects that seem interesting. Especially 
using exclusively verifyable code and with that they don't need kernel/user 
mode anymore and they can operate without any hardware context switches 
which potentially could make a very-high perfomance kernel.
Then you have device drivers which singularity reportedly implements in 
verifyable managed code.
And last you have some shell oder execution mechanism, which can obviously 
be done entirely verifyable managed.


A.Nahr

- Original Message - 
From: "Kornél Pál" <[EMAIL PROTECTED]>

To: 
Sent: Friday, May 20, 2005 11:13 PM
Subject: Re: [Mono-devel-list] Operating System in C# Project



Is anyone interested in starting a project for doing an operating system
completely in managed code, à la Singularity that is being done in
Microsoft?


An operating system cannot be written in managed code. If you will create
something like an operating system using managed code it will be only a
subsystem on the top of the underlaying operating system and other
subsystems like Mono.

An operating system is based on the hardware.

I think I am not the only person who think so:
http://www.google.co.hu/search?hl=en&q=define%3Aoperating+system

Kornél

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list




___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-devel-list] Operating System in C# Project

2005-05-21 Thread Elliot Paquette
> I only said (because I know) that it
> cannot be implemented entirely in managed code as it requires a CLI that
> cannot be implemented in managed code. As of the CLI has to be part of the
> operating system if you want to run it the operating system itself cannot be
> implemented entirely in managed code even if it's only unmanaged part is the
> CLI.
Well Kornél, you just said the _very_ same thing as I did.  I think
the case rests. Oh and by the way, to help clarify my definition of an
operating system:
"Debian is a free operating system (OS) for your computer. An
operating system is the set of basic programs and utilities that make
your computer run. Debian uses the Linux kernel (the core of an
operating system), but most of the basic OS tools come from the GNU
project; hence the name GNU/Linux."

Anyway, this conversation is rapidly diverging from its poster's
intent.  What Alejandro proposed is quite possible, and if he wants to
do it, he should be able to try without being told he can't.  I think
it's an interesting project, but I don't know enough about operating
system coding to really contribute.

Elliot Paquette
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-devel-list] Operating System in C# Project

2005-05-21 Thread Kornél Pál

From: "Elliot Paquette" <[EMAIL PROTECTED]>
What Alejandro proposed is quite possible, and if he wants to
do it, he should be able to try without being told he can't.


What he wants is possible and is a good idea and as it was figured out that
using verified code there is no need for separating kernel and user mode is
a really good thing because it results in better performance.

But it figured out as well that what he has written (fully managed OS) is
not possible but most of the operating system can be in managed code.

Kornél

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-devel-list] Operating System in C# Project

2005-07-02 Thread Konstantin Triger
Lets make an additional clarification about what managed code is. You 
say that it's a code based an CLI + IL + GC, I'll would also add a 
"Verified" attribute, meaning the code is checked to not harm the system 
(stack overflow etc). I'll indicate Verified as "V".


I would say that
1. CLI can be implemented as IL+GC + some parts no V.
2. GC can be implemented as IL+CLI + some parts no V.

The parts being not validated mainly lie in CPU specific code and 
pointer arithmetic. Possibly they can be even "closed" in special drivers.


The boot process can be made as the following: bootloader loads CLI + 
GC, jits them, start some entry point and unloads.
The bootloader itself can be a CLI+GC subset with a relevant 
"application" above. It can be prejitted per CPU architecture.


Regards,
Konstantin Triger



Kornél Pál wrote:


This discussion seems to be a play with words.:)


From: "Richard Matthias" <[EMAIL PROTECTED]>
They have a C# compiler that creates native code directly which helps of
course.



If this is true then the operating system will not be implemented in 
managed
code it will be only in C#. An operating system can be written in 
BASIC as

well if you have good compiler (with some extra feautes:).


From: "Elliot Paquette" <[EMAIL PROTECTED]>
At some level there will be some unmanaged code, sure, but I think
that the environment which you just described, Kornél, could be
considered an integral part of an operating system, if not for
simplicity's sake the operating system itself.



.NET Framework is said to be an integral part of Windows Server 2003
altought I think it is a part and not an integral part of it.

But I'm sure that .NET Framework will be an itegral part of Windows 
Longhorn
as it is said to have functionality that will be available through 
managed

code only.


From: "Elliot Paquette" <[EMAIL PROTECTED]>
If you add the extra contraint that only IL code will be executed (as in
Singularity), then the unmanaged requirements are further reduced.



But saying that an operating system can be implemented using managed code
only in a nonsense.

Of course the answer depends on what do you mean on managed code. 
Usually it
means something that is based on the CLI and is in IL code. A less 
extensive
interpretation could be if you mean managed code on something that 
uses the

garbage collector. But in both situations the operating system cannot be
implemented in managed code as neither CLI nor GC can be based on itself.

The lowest level where the CLI can be implemented is the kernel. As a 
result
the kernel itself and the CLI cannot be based on themselves so they 
cannot

be in managed code.

And depends on what do you mean on an operating system. If you don't
consider the kernel to be part of the operating system then as all the 
user

mode code can be in managed code you can say that the operating system is
written entirely in managed code.

But the kernel is an important part of the operating system, for 
example if

you use an inefficient kernel the whole operating system will be
inefficient.

In the world of Unix/Linux it's normal that the kernel and other 
componets
are from different vendors but this doesn't mean that any of these 
comonets

alone are operating systems, this means that the system built from this
components is the operating system.

An operating system is a complex system that has the ability to run on a
computer without any other systems. This means that anything that is
required to run integral parts of the operating system has to be integral
part as well and if it's removed the operating system is not an operating
system anymore.


From: "Richard Matthias" <[EMAIL PROTECTED]>
...just as skeptical as Kornél manages to take up
pages and pages of posts with their complete failure to understand how
an OS written in C# could be possible.



I am not sceptical. I belive and know that an operating system can be
written in C# as it is a language. I only said (because I know) that it
cannot be implemented entirely in managed code as it requires a CLI that
cannot be implemented in managed code. As of the CLI has to be part of 
the
operating system if you want to run it the operating system itself 
cannot be
implemented entirely in managed code even if it's only unmanaged part 
is the

CLI.

As a conclusion an operating system can be implemented entirely in 
managed

code if and only if the native code that the underlaying hardware
understands and can execute is IL in other words when the CLI is 
implemented

at hardware level.

Kornél

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


[Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-09-29 Thread Suresh Shukla
This is very interesting idea.I had been thinking about this for some time. To bring the language cleanliness and clarity of Java / C# down to OS layer.The OS I have in my focus is mikrokernel based distributed servers architecture, actually MINIX. Minix brings many best practices and cleanliness from OS side.In my opinion a compiler for generating native code from C# would be required. Then the task could boil down to a port/rewrite of MINIX.Suresh   
	

	
		 
Find out what India is talking about on  - Yahoo! Answers India  
Send FREE SMS to your friend's mobile from Yahoo! Messenger Version 8. Get it NOW___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: SPAM: Re: [Mono-devel-list] Operating System in C# Project

2005-05-24 Thread Elliot Paquette
I think that's an excellent idea, Michael.  A few weeks back, I began
work on a managed window manager, mostly just to play around with
System.Drawing, but also because I think a project with that general
direction would be fairly exciting.  If there's such a project, count
me in! :)

Elliot Paquette

On 5/24/05, Michael J. Ryan <[EMAIL PROTECTED]> wrote:
> Reading on this topic, what I think would be interesting would be a UI layer
> built on top of X for a managed-mostly UI ... from the desktop up essentially,
> leaving the under-layers to Linux/BSD + X11 and have the UI framework be
> managed code, to host processes running managed code.. in addition to a
> workaround to support managed .exe files directly.
> 
> --
> Michael J. Ryan - tracker1(at)theroughnecks(dot)com - www.theroughnecks.net
> icq: 4935386  -  AIM/AOL: azTracker1  -  Y!: azTracker1  -  MSN/Win: (email)
> 
>
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-09-28 Thread Suresh Shukla
This is very interesting idea.I had been thinking about this for some time. To bring the language cleanliness and clarity of Java / C# down to OS layer.The OS I have in my focus is mikrokernel based distributed servers architecture, actually MINIX. Minix brings many best practices and cleanliness from OS side.In my opinion a compiler for generating native code from C# would be required. Then the task could boil down to a port/rewrite of MINIX.Suresh 
	

	
		 
Find out what India is talking about on  - Yahoo! Answers India  
Send FREE SMS to your friend's mobile from Yahoo! Messenger Version 8. Get it NOW___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-09-28 Thread Mart Roosmaa
Hi,

I think a IL to native "translator" would be a better choice as that
way you wouldn't restrict users to C# and they could use any .NET
language to contribute features to your kernel. I have been thinking
of that sort of "translator" myself, but it would require a lot of
work to get all the .NET features working correctly.

But if you aren't planning to use Reflection and other
hard-to-implement-in-native features, you can take a look at Vala[1] -
It's a GObject based language very similar to C#.

Best wishes,
Mart

[1] http://vala.paldo.org/

On 28/09/06, Suresh Shukla <[EMAIL PROTECTED]> wrote:
> This is very interesting idea.
>
> I had been thinking about this for some time. To bring the language
> cleanliness and clarity of Java / C# down to OS layer.
>
> The OS I have in my focus is mikrokernel based distributed servers
> architecture, actually MINIX. Minix brings many best practices and
> cleanliness from OS side.
>
> In my opinion a compiler for generating native code from C# would be
> required. Then the task could boil down to a port/rewrite of MINIX.
>
> Suresh
>
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-09-28 Thread Michael Hutchinson
On 9/28/06, Suresh Shukla <[EMAIL PROTECTED]> wrote:
> This is very interesting idea.
>
> I had been thinking about this for some time. To bring the language
> cleanliness and clarity of Java / C# down to OS layer.
>
> The OS I have in my focus is mikrokernel based distributed servers
> architecture, actually MINIX. Minix brings many best practices and
> cleanliness from OS side.
>
> In my opinion a compiler for generating native code from C# would be
> required. Then the task could boil down to a port/rewrite of MINIX.
>
> Suresh

I couldn't find the email to which this was a reply, so I'm probably
bringing up something that's already been mentioned.

MS Research is currently running a fascinating OS project called
Singularity, of which large portions are written in C# (and
derivatives), though it does use some C, ASM and C++. There's a bit
about it at http://en.wikipedia.org/wiki/Singularity_(operating_system)

The OS runs CIL code, and because it's fully verifiable so they can
completely do away with hardware memory management. The GC is at the
OS level (and written in C#). Then after it's been verified they can
compile the CIL down to native code.

The problem with writing an OS in C# is of course making a fully
managed runtime and class libraries. Even if you can compile to native
code (e.g. Mono's AOT compiler) you'll still need some kind of
runtime, and if that's managed it'll need a runtime etc... Basically
you have to break this cyclic dependency somehow with bits of
unmanaged code somewhere, even if it's implemented as specialised
compiler output.

-- 
Michael Hutchinson
http://mjhutchinson.com
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-09-28 Thread Andrés G. Aragoneses [ knocte ]
Michael Hutchinson escribió:
> I couldn't find the email to which this was a reply, so I'm probably
> bringing up something that's already been mentioned.


The email was this[1]. It's easy to find threads if you have an NNTP 
access to an archive in which messages don't expire ever [2] :)

Regards,

Andrés  [ knocte ]

[1]
http://lists.ximian.com/pipermail/mono-devel-list/2005-May/thread.html#11980
[2] http://www.gmane.org/

-- 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-09-28 Thread Daniel Morgan
Two things you ought to look at that may help you in
your research:
1. Mono.Cecil
2. Mono Managed Runtime

There is Mono.Cecil which allows you to do more than
what System.Reflection can provide.  It is also
included with Mono.
http://www.mono-project.com/Cecil

There is Joshua Tauberer’s Mono Managed Runtime which
is at its early stages of development.  He says it can
run Hello Word.  Basically, its a CLR interpreter
written in C#.
http://razor.occams.info/blog/?p=43

--- Suresh Shukla <[EMAIL PROTECTED]> wrote:

> This is very interesting idea.
> 
> I had been thinking about this for some time. To
> bring the language cleanliness and clarity of Java /
> C# down to OS layer.
> 
> The OS I have in my focus is mikrokernel based
> distributed servers architecture, actually MINIX.
> Minix brings many best practices and cleanliness
> from OS side.
> 
> In my opinion a compiler for generating native code
> from C# would be required. Then the task could boil
> down to a port/rewrite of MINIX.
> 

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-09-28 Thread William Lahti
Hello, Suresh!

Your managed OS idea intrigues me. I have been working on a
Linux-based OS which uses C# solutions for as much of the high-level
(non-OS level) stuff like the boot agent, toolkit, OS tools, etc.
Perhaps that code would be usefuI for your project? I have been
considering doing C# rewrites of UNIX tools too.

In any case, I am very interested in this project and would like to
help/participate.

Kernel and user space code translation shouldn't be all too difficult,
considering mono does just that. Assuming the translated code would
still require a runtime, mono's AOT facilities could handle this.

As for the runtime being managed-- that depends on the ability to
translate the entirety of it's CIL to 100% unmanaged code (without
runtime-support). I'd say this is where the real challenge is.

Yeah, the ability to generate fully-native executable files instead of
shared libraries when invoking AOT compilation... perhaps instead of a
new tool, this change could be implemented as another mono runtime
compilation option like AOT (IE, mono --native or such). This would
minimize the amount of redundant work, and since it would be right in
the runtime, the checks for runtime-dependent code would probably be
easier/complete. It would also provide a way to create unmanaged ELF
executables based on C# software.

Another idea: a subset of C# could be defined so the compiler can
report runtime-dependent code as errors...

On 9/28/06, Suresh Shukla <[EMAIL PROTECTED]> wrote:
> This is very interesting idea.
>
> I had been thinking about this for some time. To bring the language
> cleanliness and clarity of Java / C# down to OS layer.
>
> The OS I have in my focus is mikrokernel based distributed servers
> architecture, actually MINIX. Minix brings many best practices and
> cleanliness from OS side.
>
> In my opinion a compiler for generating native code from C# would be
> required. Then the task could boil down to a port/rewrite of MINIX.
>
> Suresh
>
>
>  
>  Find out what India is talking about on - Yahoo! Answers India
>  Send FREE SMS to your friend's mobile from Yahoo! Messenger Version 8. Get
> it NOW
>
>
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
>
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-09-28 Thread Michael Hutchinson
On 9/28/06, "Andrés G. Aragoneses [ knocte ]" <[EMAIL PROTECTED]> wrote:
> The email was this[1]. It's easy to find threads if you have an NNTP
> access to an archive in which messages don't expire ever [2] :)

Oops, thanks. I thought my own archive was older than Singularity, but
i was couple of months out. That'll teach me not to trust my memory
;-)

I do think it's important to define exactly why the OS will be written
in C#. If it's just for the sake of using a high-level language, then
one without a runtime would be a much easier choice. Using CIL has got
to involve more work because there's an additional dependency to work
out -- the runtime.

What MS is doing with Singularity make sense because they are
requiring CIL for userland programs, in order to make it verifiable.
They already need a CIL-to-native compiler for that (called 'Bartok'
IIRC), so it's probably not so difficult to adapt it for use in the
kernel. The key piece of technology is a CIL-to-native compiler that
produces code that needs a minimal runtime.

-- 
Michael Hutchinson
http://mjhutchinson.com
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-03 Thread Suresh Shukla
> As for the runtime being managed-- that depends on the ability to> translate the entirety of it's CIL to 100% unmanaged code (without> runtime-support). I'd say this is where the real challenge is.CIL required for this task requires to be identified. One good point to start the project can be rewriting of an OS (preferably MINIX) in C# and to find the CIL generated. This would give fair idea of how much work is required. Also if language has all constructs to support our task.> It would also provide a way to create unmanaged ELF> executables based on C# software.You are right on the nail. Combined with the above resulting OS and CIL-native  compiler this would allow system programming in C#.Mono AOT and DotGNU runtime already have something on this. I found this interesting: http://dotgnu.info/html2.0/pnet.htmlWilliam Lahti <[EMAIL PROTECTED]> wrote: Hello, Suresh!Your managed OS idea intrigues me. I have been working on aLinux-based OS which uses C# solutions for as much of the high-level(non-OS level) stuff like the boot agent, toolkit, OS tools, etc.Perhaps that code would be usefuI for your project? I have beenconsidering doing C# rewrites of UNIX tools too.In any case, I am very interested in this project and would like tohelp/participate.Kernel and user space code translation shouldn't be all too difficult,considering mono does just that. Assuming the translated code wouldstill require a runtime, mono's AOT facilities could handle this.As for the runtime being managed-- that depends on the ability totranslate the entirety of it's CIL to 100% unmanaged code (withoutruntime-support). I'd say this is where the real challenge is.Yeah, the ability to
 generate fully-native executable files instead ofshared libraries when invoking AOT compilation... perhaps instead of anew tool, this change could be implemented as another mono runtimecompilation option like AOT (IE, mono --native or such). This wouldminimize the amount of redundant work, and since it would be right inthe runtime, the checks for runtime-dependent code would probably beeasier/complete. It would also provide a way to create unmanaged ELFexecutables based on C# software.Another idea: a subset of C# could be defined so the compiler canreport runtime-dependent code as errors...On 9/28/06, Suresh Shukla <[EMAIL PROTECTED]> wrote:> This is very interesting idea.>> I had been thinking about this for some time. To bring the language> cleanliness and clarity of Java / C# down to OS layer.>> The OS I have in my focus is mikrokernel based distributed servers>
 architecture, actually MINIX. Minix brings many best practices and> cleanliness from OS side.>> In my opinion a compiler for generating native code from C# would be> required. Then the task could boil down to a port/rewrite of MINIX.>> Suresh>>>  >  Find out what India is talking about on - Yahoo! Answers India>  Send FREE SMS to your friend's mobile from Yahoo! Messenger Version 8. Get> it NOW>>> ___> Mono-devel-list mailing list> Mono-devel-list@lists.ximian.com> http://lists.ximian.com/mailman/listinfo/mono-devel-list>>>___Mono-devel-list mailing listMono-devel-list@lists.ximian.comhttp://lists.ximian.com/mailman/listinfo/mono-devel-list 
	

	
		 
Find out what India is talking about on  - Yahoo! Answers India  
Send FREE SMS to your friend's mobile from Yahoo! Messenger Version 8. Get it NOW___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-15 Thread Victor Costan
Hi, guys!

I've been thinking of something similar.

I've seen a Singularity presentation at MIT, and it seems to me that they're
placing a lot of focus on static verification -- when they talked to us,
they were trying to make driver contracts, so that drivers can be verifiable
too. I think that's taking it a bit too far... and this means there's room
for another C#-based OS.

I wrote an e-mail about this on the Mono list in late August, and I didn't
get any answer, so I kind of gave up hope. I think there's value in having a
.net OS, for (at least) the following reasons:
* easier debugging and optimization because of metadata
* easier development due to high-level languages
* (if properly made) better test bed for research projects
* more security, due to the .net verification process

I think that most of the OS kernel, and everything on top of that, can be
managed (although not safe) code. C# supports unsafe pointers, and that can
be used to implement memory management (which is needed by the runtime) and
most resource management functions you'd expect in a kernel. I conjecture
that we only need asm and C/C++ for a boot loader and a small library of
architecture-dependent functionality (interrupts, context switching, TLB
flushing, and GDT/IDT setup come to mind).

The way I was thinking of doing this is:
* use g++ to compile the native functions
* use mono's AOT process to compile the C# kernel
* use a tool (written in C#) to build an executable image
* patch the AOT output to make it run
* statically link the native g++ output into the image

My problem is that I'd like architecting the new system and implementing the
new kernel and the library... but I don't want to spend the time to develop
the tool I mentioned, or modify the mono compiler. Of course, this can
change if other people are willing to help.

Please let me know what you think,
Victor


From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Suresh Shukla
Sent: Tuesday, October 03, 2006 7:14 AM
To: William Lahti; mono-devel-list@lists.ximian.com
Subject: Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

> As for the runtime being managed-- that depends on the ability to
> translate the entirety of it's CIL to 100% unmanaged code (without
> runtime-support). I'd say this is where the real challenge is.

CIL required for this task requires to be identified. One good point to
start the project can be rewriting of an OS (preferably MINIX) in C# and to
find the CIL generated. This would give fair idea of how much work is
required. Also if language has all constructs to support our task.

> It would also provide a way to create unmanaged ELF
> executables based on C# software.

You are right on the nail. Combined with the above resulting OS and
CIL-native  compiler this would allow system programming in C#.

Mono AOT and DotGNU runtime already have something on this. 
I found this interesting: http://dotgnu.info/html2.0/pnet.html

William Lahti <[EMAIL PROTECTED]> wrote:
Hello, Suresh!

Your managed OS idea intrigues me. I have been working on a
Linux-based OS which uses C# solutions for as much of the high-level
(non-OS level) stuff like the boot agent, toolkit, OS tools, etc.
Perhaps that code would be usefuI for your project? I have been
considering doing C# rewrites of UNIX tools too.

In any case, I am very interested in this project and would like to
help/participate.

Kernel and user space code translation shouldn't be all too difficult,
considering mono does just that. Assuming the translated code would
still require a runtime, mono's AOT facilities could handle this.

As for the runtime being managed-- that depends on the ability to
translate the entirety of it's CIL to 100% unmanaged code (without
runtime-support). I'd say this is where the real challenge is.

Yeah, the ability to generate fully-native executable files instead of
shared libraries when invoking AOT compilation... perhaps instead of a
new tool, this change could be implemented as another mono runtime
compilation option like AOT (IE, mono --native or such). This would
minimize the amount of redundant work, and since it would be right in
the runtime, the checks for runtime-dependent code would probably be
easier/complete. It would also provide a way to create unmanaged ELF
executables based on C# software.

Another idea: a subset of C# could be defined so the compiler can
report runtime-dependent code as errors...

On 9/28/06, Suresh Shukla wrote:
> This is very interesting idea.
>
> I had been thinking about this for some time. To bring the language
> cleanliness and clarity of Java / C# down to OS layer.
>
> The OS I have in my focus is mikrokernel based distributed servers
> architecture, actually MINIX. Minix brings many best practices and
> cleanliness from OS side.
>
> In my opinion

Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-16 Thread Miguel de Icaza
Hello,

> I've seen a Singularity presentation at MIT, and it seems to me that they're
> placing a lot of focus on static verification -- when they talked to us,
> they were trying to make driver contracts, so that drivers can be verifiable
> too. I think that's taking it a bit too far... and this means there's room
> for another C#-based OS.

Singularity is a research project with a specific goal in mind;   Like
you say, there is room for other operating systems to be built on top of
a managed language.

Various Java-based OSes were built a few years ago, and there is a very
cute one called "jnode" that has matured a lot in the last few months.

> I think that most of the OS kernel, and everything on top of that, can be
> managed (although not safe) code. C# supports unsafe pointers, and that can
> be used to implement memory management (which is needed by the runtime) and
> most resource management functions you'd expect in a kernel. I conjecture
> that we only need asm and C/C++ for a boot loader and a small library of
> architecture-dependent functionality (interrupts, context switching, TLB
> flushing, and GDT/IDT setup come to mind).

This is one possibility, there are many more in between, you can
certainly tune how much code you want in C/C++/assembler and how much
code you want to keep managed. 

Are you still in MIT?   The Novell office is next to the Stata center,
we could do lunch some time.   Also we are having our annual Mono Summit
this week and the next, it might be interesting to talk.

Miguel.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-21 Thread Suresh Shukla
Hi,I later found a reference to "D language". It has most of the features  I liked in Java/C#. Its compilers are already available. This language  is more suitable to my purposes of (re)writing a more  readable/modifiable Minix and system programming.SureshMiguel de Icaza <[EMAIL PROTECTED]> wrote:  Hello,> I've seen a Singularity presentation at MIT, and it seems to me that they're> placing a lot of focus on static verification -- when they talked to us,> they were trying to make driver contracts, so that drivers can be verifiable> too. I think that's taking it a bit too far... and this means there's room> for another C#-based OS.Singularity is a research project with a specific goal in mind;   Likeyou say, there is room for other operating systems to be built
 on top ofa managed language.Various Java-based OSes were built a few years ago, and there is a verycute one called "jnode" that has matured a lot in the last few months.> I think that most of the OS kernel, and everything on top of that, can be> managed (although not safe) code. C# supports unsafe pointers, and that can> be used to implement memory management (which is needed by the runtime) and> most resource management functions you'd expect in a kernel. I conjecture> that we only need asm and C/C++ for a boot loader and a small library of> architecture-dependent functionality (interrupts, context switching, TLB> flushing, and GDT/IDT setup come to mind).This is one possibility, there are many more in between, you cancertainly tune how much code you want in C/C++/assembler and how muchcode you want to keep managed. Are you still in MIT?   The Novell office is next to the Stata
 center,we could do lunch some time.   Also we are having our annual Mono Summitthis week and the next, it might be interesting to talk.Miguel. 
	

	
		 
Find out what India is talking about on  - Yahoo! Answers India  
Send FREE SMS to your friend's mobile from Yahoo! Messenger Version 8. Get it NOW___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread jmacdonagh

Glad to see I'm not the only one interested in ths. I've also toyed around
with this idea for some time. I began looking at traditional operating
system development to learn a little more.

I envision an operating system where applications and shared libraries are
first-class citizens. Meaning, the operating system knows exactly what is
installed (and doesn't rely on an installer to tell it that an application
is installed), what versions are installed, and what dependencies they have.
IL assemblies provide all of this (versioning and dependencies).

It ended up coming down to me deciding what language I would consider
first-class. Meaning, what language or runtime environment would my
operating system consider first-class. I could choose C/C++, but that locks
people into a language. Instead, I could choose IL, which can be generated
by any number of languages.

I'm very interested in this project. You can do a LOT with unsafe code in
C#, more than enough to write most of a kernel (especially if GRUB was used
as the bootloader). But the problem regarding the runtime still arises. We
would still need a runtime in the background, which would most likely be
unmanaged. Mono comes to mind ;)

My abstract idea was to look at how IL assemblies could communicate with the
mono runtime. If we could break it down into some standards (such as
standard shared library calls), then we could simply load the mono runtime
environment first, and have that load up the actual kernel.

I have many more ideas for such an operating system, including an operating
system regulated area for application configuration files, as well as a
regulated system for overriding configuration files (making a removal of an
application completely seamless).

If anyone else is interested, just reply back.

Regards,

Johann MacDonagh



Suresh Shukla-2 wrote:
> 
> This is very interesting idea.
> 
> I had been thinking about this for some time. To bring the language
> cleanliness and clarity of Java / C# down to OS layer.
> 
> The OS I have in my focus is mikrokernel based distributed servers
> architecture, actually MINIX. Minix brings many best practices and
> cleanliness from OS side.
> 
> In my opinion a compiler for generating native code from C# would be
> required. Then the task could boil down to a port/rewrite of MINIX.
> 
> Suresh
> 
>   
> -
>  Find out what India is talking about on  - Yahoo! Answers India 
>  Send FREE SMS to your friend's mobile from Yahoo! Messenger Version 8.
> Get it NOW
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7079342
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Martin Hinks
It is indeed a very interesting concept

Surely the main limiting factor will be that the runtime is never
going to be as fast as unmanaged C for low level tasks such as
file/memory management...

Martin

On 10/30/06, jmacdonagh <[EMAIL PROTECTED]> wrote:
>
> Glad to see I'm not the only one interested in ths. I've also toyed around
> with this idea for some time. I began looking at traditional operating
> system development to learn a little more.
>
> I envision an operating system where applications and shared libraries are
> first-class citizens. Meaning, the operating system knows exactly what is
> installed (and doesn't rely on an installer to tell it that an application
> is installed), what versions are installed, and what dependencies they have.
> IL assemblies provide all of this (versioning and dependencies).
>
> It ended up coming down to me deciding what language I would consider
> first-class. Meaning, what language or runtime environment would my
> operating system consider first-class. I could choose C/C++, but that locks
> people into a language. Instead, I could choose IL, which can be generated
> by any number of languages.
>
> I'm very interested in this project. You can do a LOT with unsafe code in
> C#, more than enough to write most of a kernel (especially if GRUB was used
> as the bootloader). But the problem regarding the runtime still arises. We
> would still need a runtime in the background, which would most likely be
> unmanaged. Mono comes to mind ;)
>
> My abstract idea was to look at how IL assemblies could communicate with the
> mono runtime. If we could break it down into some standards (such as
> standard shared library calls), then we could simply load the mono runtime
> environment first, and have that load up the actual kernel.
>
> I have many more ideas for such an operating system, including an operating
> system regulated area for application configuration files, as well as a
> regulated system for overriding configuration files (making a removal of an
> application completely seamless).
>
> If anyone else is interested, just reply back.
>
> Regards,
>
> Johann MacDonagh
>
>
>
> Suresh Shukla-2 wrote:
> >
> > This is very interesting idea.
> >
> > I had been thinking about this for some time. To bring the language
> > cleanliness and clarity of Java / C# down to OS layer.
> >
> > The OS I have in my focus is mikrokernel based distributed servers
> > architecture, actually MINIX. Minix brings many best practices and
> > cleanliness from OS side.
> >
> > In my opinion a compiler for generating native code from C# would be
> > required. Then the task could boil down to a port/rewrite of MINIX.
> >
> > Suresh
> >
> >
> > -
> >  Find out what India is talking about on  - Yahoo! Answers India
> >  Send FREE SMS to your friend's mobile from Yahoo! Messenger Version 8.
> > Get it NOW
> > _______________
> > Mono-devel-list mailing list
> > Mono-devel-list@lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-devel-list
> >
> >
>
> --
> View this message in context: 
> http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7079342
> Sent from the Mono - Dev mailing list archive at Nabble.com.
>
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>


-- 
Martin Hinks
http://www.pynchon.net/
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Johann MacDonagh

Although there is a lot of overhead to start up a managed executable, I'm
sure unsafe pointer operations are just as fast as their C counterparts.


Martin Hinks wrote:
> 
> It is indeed a very interesting concept
> 
> Surely the main limiting factor will be that the runtime is never
> going to be as fast as unmanaged C for low level tasks such as
> file/memory management...
> 
> Martin
> 
> -- 
> Martin Hinks
> http://www.pynchon.net/
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7079958
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Martin Hinks
I suppose the overhead shouldn't be enormous on unsafe ops - except
that the runtime is still consuming background resources and, as you
say, startup times are increased.


On 10/30/06, Johann MacDonagh <[EMAIL PROTECTED]> wrote:
>
> Although there is a lot of overhead to start up a managed executable, I'm
> sure unsafe pointer operations are just as fast as their C counterparts.
>
>
> Martin Hinks wrote:
> >
> > It is indeed a very interesting concept
> >
> > Surely the main limiting factor will be that the runtime is never
> > going to be as fast as unmanaged C for low level tasks such as
> > file/memory management...
> >
> > Martin
> >
> > --
> > Martin Hinks
> > http://www.pynchon.net/
> > ___
> > Mono-devel-list mailing list
> > Mono-devel-list@lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-devel-list
> >
> >
>
> --
> View this message in context: 
> http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7079958
> Sent from the Mono - Dev mailing list archive at Nabble.com.
>
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>


-- 
Martin Hinks
http://www.pynchon.net/
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Levi Bard
> Meaning, what language or runtime environment would my
> operating system consider first-class. I could choose C/C++, but that locks
> people into a language. Instead, I could choose IL, which can be generated
> by any number of languages.

This one's a pretty empty point.  You wouldn't actually be choosing C,
you'd be choosing a binary format (e.g. ELF), to which code in many
languages can be compiled.

-- 
Tcsh: Now with higher FPS!
http://www.gnu.org/philosophy/shouldbefree.html
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Brian Crowell
jmacdonagh wrote:
> Glad to see I'm not the only one interested in ths. I've also toyed around
> with this idea for some time. I began looking at traditional operating
> system development to learn a little more.

What interests me most about this is a C# program as a first-class citizen, or 
really, every API in the system being not only available, but *designed for* 
managed programs.

I think a good example of that can be found in Microsoft's DirectX, which we 
were just discussing. Compare Managed DirectX to XNA. The differences are big. 
XNA exposes, for the most part, the very same APIs, but in a much more 
intuitive and friendly manner than Managed DirectX.

You could consider fully object-oriented operating systems, where the design of 
the API is every bit as important as its concept. You could organize the system 
around safe plug-ins, each providing some service to the whole, such as a 
windowing system, file systems, etc., but which are most importantly *as easy 
to write as implementing an interface or an abstract base class.*

I'd be very interested in participating on design of such a thing. I've been 
trying to teach myself good object-oriented design over the years, and I think 
I would have some good input to give past the initial problem of booting such 
an environment.

Perhaps the project could be approached in two stages? Half where we boot the 
managed environment, and half where we assume the managed environment. You 
could design and implement these independently of each other. You could even 
design a set of classes to emulate the kernel on top of an ordinary runtime, 
for the purposes of unit testing. One strategy I've become fond of, especially 
where components and unit testing come into play, is generous use of the 
IServiceProvider interface; if components accessed kernel objects this way (or 
a similar way, where you ask for a base class but not a specific 
implementation), they would neither need to know or care whether they're using 
the real thing or not.

Several thoughts. Exciting stuff.

--Brian
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Johann MacDonagh


Brian Crowell wrote:
> 
> What interests me most about this is a C# program as a first-class
> citizen, or really, every API in the system being not only available, but
> *designed for* managed programs.
> 

Right. I dislike how current mainstream operating systems regard executables
as "just another file". Also, a managed API into the actual kernel would
make managed application development much easier.


Brian Crowell wrote:
> 
> I think a good example of that can be found in Microsoft's DirectX, which
> we were just discussing. Compare Managed DirectX to XNA. The differences
> are big. XNA exposes, for the most part, the very same APIs, but in a much
> more intuitive and friendly manner than Managed DirectX.
> 

I agree. I always considered managed APIs to be easier to use versus a
non-managed API (such as a C library). Perhaps it was because of the extra
meta-data attached to an IL assembly, or perhaps it was because everything
*could* be organized much better (without global consts, etc...). Certainly
the same thing could be achieved with a managed operating system.


Brian Crowell wrote:
> 
> You could consider fully object-oriented operating systems, where the
> design of the API is every bit as important as its concept. You could
> organize the system around safe plug-ins, each providing some service to
> the whole, such as a windowing system, file systems, etc., but which are
> most importantly *as easy to write as implementing an interface or an
> abstract base class.*
> 

This was also an idea I had. Taking a page from ASP.net 2.0's new
"providers" mentality. The problem is that those usually require some level
of reflection to execute the correct assembly, which may or may not be easy
at such a low level.


Brian Crowell wrote:
> 
> I'd be very interested in participating on design of such a thing. I've
> been trying to teach myself good object-oriented design over the years,
> and I think I would have some good input to give past the initial problem
> of booting such an environment.
> 
> Perhaps the project could be approached in two stages? Half where we boot
> the managed environment, and half where we assume the managed environment.
> You could design and implement these independently of each other. You
> could even design a set of classes to emulate the kernel on top of an
> ordinary runtime, for the purposes of unit testing. One strategy I've
> become fond of, especially where components and unit testing come into
> play, is generous use of the IServiceProvider interface; if components
> accessed kernel objects this way (or a similar way, where you ask for a
> base class but not a specific implementation), they would neither need to
> know or care whether they're using the real thing or not.
> 
> Several thoughts. Exciting stuff.
> 
> --Brian
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 
> 

I'm in the same state as you are. I have many ideas that such an operating
system could evolve into, but lack the knowledge of getting such a system to
boot. There are some problems.

Could we use Mono in it's entirety? Certainly the code for the base class
libraries (mscorlib, System, etc...) could be used. Mono's compiler could
also be used (perhaps slighly adjusted if need be). Its Virtual Execution
Environment would cause the biggest problem. Again, I haven't taken a look
at it in enough detail to make any real claims.

I wouldn't have any reservations against setting up a central location for
brainstorming ideas (a wiki and a Subversion code repository), if there were
enough people interested. The hardest part would be to get someone with
experience in system programming (someone who has created a simple kernel in
C/C++), who would lend a hand in the translation between C# to native code.
-- 
View this message in context: 
http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7081676
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Johann MacDonagh


Levi Bard wrote:
> 
>> Meaning, what language or runtime environment would my
>> operating system consider first-class. I could choose C/C++, but that
>> locks
>> people into a language. Instead, I could choose IL, which can be
>> generated
>> by any number of languages.
> 
> This one's a pretty empty point.  You wouldn't actually be choosing C,
> you'd be choosing a binary format (e.g. ELF), to which code in many
> languages can be compiled.
> 
> -- 
> Tcsh: Now with higher FPS!
> http://www.gnu.org/philosophy/shouldbefree.html
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 
> 

Correct. And I'll admit I don't have enough experience in low level binary
executable formats, but doesn't C compile it's functions (entry points) in a
certain manner that other languages might not share? For example, I know
that C likes to push its function arguments right to left, whereas Pascal
pushes them left to right. I'm not sure if this would create a problem in
the end.

Again, it is a pretty empty point. Perhaps my statement you quoted was
simply a side-effect of my interest in an all-managed operating system.
-- 
View this message in context: 
http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7081760
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Michael Schurter
Brian Crowell wrote:
> jmacdonagh wrote:
>> Glad to see I'm not the only one interested in ths. I've also toyed
>> around with this idea for some time. I began looking at traditional
>> operating system development to learn a little more.
> 
> What interests me most about this is a C# program as a first-class
> citizen, or really, every API in the system being not only available,
> but *designed for* managed programs.
> 
> I think a good example of that can be found in Microsoft's DirectX,
> which we were just discussing. Compare Managed DirectX to XNA. The
> differences are big. XNA exposes, for the most part, the very same
> APIs, but in a much more intuitive and friendly manner than Managed
> DirectX.
> 
> You could consider fully object-oriented operating systems, where the
> design of the API is every bit as important as its concept. You could
> organize the system around safe plug-ins, each providing some service
> to the whole, such as a windowing system, file systems, etc., but
> which are most importantly *as easy to write as implementing an
> interface or an abstract base class.*
> 
> I'd be very interested in participating on design of such a thing.
> I've been trying to teach myself good object-oriented design over the
> years, and I think I would have some good input to give past the
> initial problem of booting such an environment.
> 
> Perhaps the project could be approached in two stages? Half where we
> boot the managed environment, and half where we assume the managed
> environment. You could design and implement these independently of
> each other. You could even design a set of classes to emulate the
> kernel on top of an ordinary runtime, for the purposes of unit
> testing. One strategy I've become fond of, especially where
> components and unit testing come into play, is generous use of the
> IServiceProvider interface; if components accessed kernel objects
> this way (or a similar way, where you ask for a base class but not a
> specific implementation), they would neither need to know or care
> whether they're using the real thing or not.

The 2 stages sounds sensible: kernel and framework/platform/libraries.

Personally I couldn't care less about a managed kernel, but I'd love to 
help implement the rest of the stack.

So where do we start?  Monix (Mono + Unix) doesn't seem to be a taken 
name!  :)

I could throw up svn, wiki, and mailing-list on my personal domain name 
to get things started.  I hate to keep continuing this discussion on 
mono-devel as its pretty OT.

Perhaps Miguel to give some advice on the first steps to starting this 
project as he's probably started more large-scale FOSS projects than anyone!

-- 
Michael Schurter
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Mauricio Henriquez
sorry, what is the main idea??, develop a operating system in C#, sorry 
I lost the first post.
If that is the case, I have a prototype OS in C# (for educational 
pospuses only), offcourse is very, very, very basic, for the moment only 
open one or more "proto-assembler" files (like compiled programs), and 
allocate memory for each "proceess", define a PCB for each process and 
begin the execution of each assembly line with a implementation of the 
"Round-Robbin" algorith, also do "context change" to change from one 
process to other "ready" process, and show all the execution information.

anyone interesting??

Mauricio

Brian Crowell wrote:
> jmacdonagh wrote:
>   
>> Glad to see I'm not the only one interested in ths. I've also toyed around
>> with this idea for some time. I began looking at traditional operating
>> system development to learn a little more.
>> 
>
> What interests me most about this is a C# program as a first-class citizen, 
> or really, every API in the system being not only available, but *designed 
> for* managed programs.
>
> I think a good example of that can be found in Microsoft's DirectX, which we 
> were just discussing. Compare Managed DirectX to XNA. The differences are 
> big. XNA exposes, for the most part, the very same APIs, but in a much more 
> intuitive and friendly manner than Managed DirectX.
>
> You could consider fully object-oriented operating systems, where the design 
> of the API is every bit as important as its concept. You could organize the 
> system around safe plug-ins, each providing some service to the whole, such 
> as a windowing system, file systems, etc., but which are most importantly *as 
> easy to write as implementing an interface or an abstract base class.*
>
> I'd be very interested in participating on design of such a thing. I've been 
> trying to teach myself good object-oriented design over the years, and I 
> think I would have some good input to give past the initial problem of 
> booting such an environment.
>
> Perhaps the project could be approached in two stages? Half where we boot the 
> managed environment, and half where we assume the managed environment. You 
> could design and implement these independently of each other. You could even 
> design a set of classes to emulate the kernel on top of an ordinary runtime, 
> for the purposes of unit testing. One strategy I've become fond of, 
> especially where components and unit testing come into play, is generous use 
> of the IServiceProvider interface; if components accessed kernel objects this 
> way (or a similar way, where you ask for a base class but not a specific 
> implementation), they would neither need to know or care whether they're 
> using the real thing or not.
>
> Several thoughts. Exciting stuff.
>
> --Brian
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>   

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Johann MacDonagh



Michael Schurter wrote:
> 
> Brian Crowell wrote:
>> jmacdonagh wrote:
>>> Glad to see I'm not the only one interested in ths. I've also toyed
>>> around with this idea for some time. I began looking at traditional
>>> operating system development to learn a little more.
>> 
>> What interests me most about this is a C# program as a first-class
>> citizen, or really, every API in the system being not only available,
>> but *designed for* managed programs.
>> 
>> I think a good example of that can be found in Microsoft's DirectX,
>> which we were just discussing. Compare Managed DirectX to XNA. The
>> differences are big. XNA exposes, for the most part, the very same
>> APIs, but in a much more intuitive and friendly manner than Managed
>> DirectX.
>> 
>> You could consider fully object-oriented operating systems, where the
>> design of the API is every bit as important as its concept. You could
>> organize the system around safe plug-ins, each providing some service
>> to the whole, such as a windowing system, file systems, etc., but
>> which are most importantly *as easy to write as implementing an
>> interface or an abstract base class.*
>> 
>> I'd be very interested in participating on design of such a thing.
>> I've been trying to teach myself good object-oriented design over the
>> years, and I think I would have some good input to give past the
>> initial problem of booting such an environment.
>> 
>> Perhaps the project could be approached in two stages? Half where we
>> boot the managed environment, and half where we assume the managed
>> environment. You could design and implement these independently of
>> each other. You could even design a set of classes to emulate the
>> kernel on top of an ordinary runtime, for the purposes of unit
>> testing. One strategy I've become fond of, especially where
>> components and unit testing come into play, is generous use of the
>> IServiceProvider interface; if components accessed kernel objects
>> this way (or a similar way, where you ask for a base class but not a
>> specific implementation), they would neither need to know or care
>> whether they're using the real thing or not.
> 
> The 2 stages sounds sensible: kernel and framework/platform/libraries.
> 
> Personally I couldn't care less about a managed kernel, but I'd love to 
> help implement the rest of the stack.
> 
> So where do we start?  Monix (Mono + Unix) doesn't seem to be a taken 
> name!  :)
> 
> I could throw up svn, wiki, and mailing-list on my personal domain name 
> to get things started.  I hate to keep continuing this discussion on 
> mono-devel as its pretty OT.
> 
> Perhaps Miguel to give some advice on the first steps to starting this 
> project as he's probably started more large-scale FOSS projects than
> anyone!
> 
> -- 
> Michael Schurter
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 
> 

Actually if it's all the same, I'd like to keep this operating system
separate from the Unix mentality. That's not to say we wouldn't borrow some
of Unix's ways of doing things, but there are certain things that would need
to be changed.

SharpOS.org isn't taken. Kind of shows both sides of the issue.

If there was enough brains behind this, then I wouldn't mind paying for some
shared hosting on a separate domain name. Set up a wiki (for brainstorming,
designing), svn, and perhaps some forums (I prefer them over mailing lists).
-- 
View this message in context: 
http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7085656
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Johann MacDonagh

I would love to see what you have accomplished so far. What portion of what
you mentioned is in C#?


Mauricio Henriquez wrote:
> 
> sorry, what is the main idea??, develop a operating system in C#, sorry 
> I lost the first post.
> If that is the case, I have a prototype OS in C# (for educational 
> pospuses only), offcourse is very, very, very basic, for the moment only 
> open one or more "proto-assembler" files (like compiled programs), and 
> allocate memory for each "proceess", define a PCB for each process and 
> begin the execution of each assembly line with a implementation of the 
> "Round-Robbin" algorith, also do "context change" to change from one 
> process to other "ready" process, and show all the execution information.
> 
> anyone interesting??
> 
> Mauricio
> 
> Brian Crowell wrote:
>> jmacdonagh wrote:
>>   
>>> Glad to see I'm not the only one interested in ths. I've also toyed
>>> around
>>> with this idea for some time. I began looking at traditional operating
>>> system development to learn a little more.
>>> 
>>
>> What interests me most about this is a C# program as a first-class
>> citizen, or really, every API in the system being not only available, but
>> *designed for* managed programs.
>>
>> I think a good example of that can be found in Microsoft's DirectX, which
>> we were just discussing. Compare Managed DirectX to XNA. The differences
>> are big. XNA exposes, for the most part, the very same APIs, but in a
>> much more intuitive and friendly manner than Managed DirectX.
>>
>> You could consider fully object-oriented operating systems, where the
>> design of the API is every bit as important as its concept. You could
>> organize the system around safe plug-ins, each providing some service to
>> the whole, such as a windowing system, file systems, etc., but which are
>> most importantly *as easy to write as implementing an interface or an
>> abstract base class.*
>>
>> I'd be very interested in participating on design of such a thing. I've
>> been trying to teach myself good object-oriented design over the years,
>> and I think I would have some good input to give past the initial problem
>> of booting such an environment.
>>
>> Perhaps the project could be approached in two stages? Half where we boot
>> the managed environment, and half where we assume the managed
>> environment. You could design and implement these independently of each
>> other. You could even design a set of classes to emulate the kernel on
>> top of an ordinary runtime, for the purposes of unit testing. One
>> strategy I've become fond of, especially where components and unit
>> testing come into play, is generous use of the IServiceProvider
>> interface; if components accessed kernel objects this way (or a similar
>> way, where you ask for a base class but not a specific implementation),
>> they would neither need to know or care whether they're using the real
>> thing or not.
>>
>> Several thoughts. Exciting stuff.
>>
>> --Brian
>> _______
>> Mono-devel-list mailing list
>> Mono-devel-list@lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>
>>   
> 
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7085657
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Mauricio Henriquez
...tell me if you have problems with the rar attached files...

Mauricio Henriquez wrote:
> all that I mention is in C#, please keep in mind that is a "probe of 
> concepts" test code, is not a serious effor as the proposed in this 
> thread, I love to work on this proyect, I know about assembler on 
> windows, linux and a little IL, I also know a lote of OSs behinds (I'm 
> "Operating System" class teacher on my university)
>
> Mauricio
>
> Johann MacDonagh wrote:
>> I would love to see what you have accomplished so far. What portion 
>> of what
>> you mentioned is in C#?
>>
>>
>> Mauricio Henriquez wrote:
>>  
>>> sorry, what is the main idea??, develop a operating system in C#, 
>>> sorry I lost the first post.
>>> If that is the case, I have a prototype OS in C# (for educational 
>>> pospuses only), offcourse is very, very, very basic, for the moment 
>>> only open one or more "proto-assembler" files (like compiled 
>>> programs), and allocate memory for each "proceess", define a PCB for 
>>> each process and begin the execution of each assembly line with a 
>>> implementation of the "Round-Robbin" algorith, also do "context 
>>> change" to change from one process to other "ready" process, and 
>>> show all the execution information.
>>>
>>> anyone interesting??
>>>
>>> Mauricio
>>>
>>> Brian Crowell wrote:
>>>
 jmacdonagh wrote:

> Glad to see I'm not the only one interested in ths. I've also toyed
> around
> with this idea for some time. I began looking at traditional 
> operating
> system development to learn a little more.
> 
 What interests me most about this is a C# program as a first-class
 citizen, or really, every API in the system being not only 
 available, but
 *designed for* managed programs.

 I think a good example of that can be found in Microsoft's DirectX, 
 which
 we were just discussing. Compare Managed DirectX to XNA. The 
 differences
 are big. XNA exposes, for the most part, the very same APIs, but in a
 much more intuitive and friendly manner than Managed DirectX.

 You could consider fully object-oriented operating systems, where the
 design of the API is every bit as important as its concept. You could
 organize the system around safe plug-ins, each providing some 
 service to
 the whole, such as a windowing system, file systems, etc., but 
 which are
 most importantly *as easy to write as implementing an interface or an
 abstract base class.*

 I'd be very interested in participating on design of such a thing. 
 I've
 been trying to teach myself good object-oriented design over the 
 years,
 and I think I would have some good input to give past the initial 
 problem
 of booting such an environment.

 Perhaps the project could be approached in two stages? Half where 
 we boot
 the managed environment, and half where we assume the managed
 environment. You could design and implement these independently of 
 each
 other. You could even design a set of classes to emulate the kernel on
 top of an ordinary runtime, for the purposes of unit testing. One
 strategy I've become fond of, especially where components and unit
 testing come into play, is generous use of the IServiceProvider
 interface; if components accessed kernel objects this way (or a 
 similar
 way, where you ask for a base class but not a specific 
 implementation),
 they would neither need to know or care whether they're using the real
 thing or not.

 Several thoughts. Exciting stuff.

 --Brian
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list

 
>>> ___
>>> Mono-devel-list mailing list
>>> Mono-devel-list@lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>>
>>>
>>> 
>>
>>   
>

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Victor Costan
Hi, Mauricio and Brian! To everyone else -- I'm sending this to the entire
list so that people that might be interested in see there's more interest.

I'm interested in the managed OS idea. I've written some thoughts about this
some time ago, just search for my thoughts through the archive.

Mauricio, you mentioned that you already have code running? I'm very curious
as to how you managed to get it to boot, about the build process, and about
the overall design. Do you have any place where the code is stored, and
could I possibly get access to it?

Thanks,
Victor


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Mauricio
Henriquez
Sent: Monday, October 30, 2006 5:43 PM
To: Brian Crowell
Cc: mono-devel-list@lists.ximian.com; jmacdonagh
Subject: Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

sorry, what is the main idea??, develop a operating system in C#, sorry 
I lost the first post.
If that is the case, I have a prototype OS in C# (for educational 
pospuses only), offcourse is very, very, very basic, for the moment only 
open one or more "proto-assembler" files (like compiled programs), and 
allocate memory for each "proceess", define a PCB for each process and 
begin the execution of each assembly line with a implementation of the 
"Round-Robbin" algorith, also do "context change" to change from one 
process to other "ready" process, and show all the execution information.

anyone interesting??

Mauricio

Brian Crowell wrote:
> jmacdonagh wrote:
>   
>> Glad to see I'm not the only one interested in ths. I've also toyed
around
>> with this idea for some time. I began looking at traditional operating
>> system development to learn a little more.
>> 
>
> What interests me most about this is a C# program as a first-class
citizen, or really, every API in the system being not only available, but
*designed for* managed programs.
>
> I think a good example of that can be found in Microsoft's DirectX, which
we were just discussing. Compare Managed DirectX to XNA. The differences are
big. XNA exposes, for the most part, the very same APIs, but in a much more
intuitive and friendly manner than Managed DirectX.
>
> You could consider fully object-oriented operating systems, where the
design of the API is every bit as important as its concept. You could
organize the system around safe plug-ins, each providing some service to the
whole, such as a windowing system, file systems, etc., but which are most
importantly *as easy to write as implementing an interface or an abstract
base class.*
>
> I'd be very interested in participating on design of such a thing. I've
been trying to teach myself good object-oriented design over the years, and
I think I would have some good input to give past the initial problem of
booting such an environment.
>
> Perhaps the project could be approached in two stages? Half where we boot
the managed environment, and half where we assume the managed environment.
You could design and implement these independently of each other. You could
even design a set of classes to emulate the kernel on top of an ordinary
runtime, for the purposes of unit testing. One strategy I've become fond of,
especially where components and unit testing come into play, is generous use
of the IServiceProvider interface; if components accessed kernel objects
this way (or a similar way, where you ask for a base class but not a
specific implementation), they would neither need to know or care whether
they're using the real thing or not.
>
> Several thoughts. Exciting stuff.
>
> --Brian
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>   

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Victor Costan
I would like to conjecture that a good MSIL -> native compiler work make the
C# memory management code execute at the same speed as compiled C code.
After all, C code gets converted to an intermediate language too, as part of
the compilation. Both methods express the same computations, so it should be
possible to express them in similar ways when outputting binary code. If
anything, MSIL has more annotations, so it should enable more optimizations
and better tools.

That being said, I don't think mono or .net have reached the maturity
required for this goal. However, having the managed OS running (perhaps
slower) should provide some reasons and an experimental platform for
optimizing the MSIL to native compilers.

Bottom line: it might run slower now, but let's still do it :D

Victor


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Martin Hinks
Sent: Monday, October 30, 2006 1:24 PM
To: Johann MacDonagh
Cc: mono-devel-list@lists.ximian.com
Subject: Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

I suppose the overhead shouldn't be enormous on unsafe ops - except
that the runtime is still consuming background resources and, as you
say, startup times are increased.


On 10/30/06, Johann MacDonagh <[EMAIL PROTECTED]> wrote:
>
> Although there is a lot of overhead to start up a managed executable, I'm
> sure unsafe pointer operations are just as fast as their C counterparts.
>


___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Brian Crowell
Mauricio Henriquez wrote:
> all that I mention is in C#, please keep in mind that is a "probe of 
> concepts" test code, is not a serious effor as the proposed in this 
> thread, I love to work on this proyect, I know about assembler on 
> windows, linux and a little IL, I also know a lote of OSs behinds (I'm 
> "Operating System" class teacher on my university)

That's actually more of an emulator than an operating system, but it would 
still be worthwhile to have someone on hand with assembly experience, so stick 
around.

--Brian
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Johann MacDonagh

So does anyone have any problems with calling this project SharpOS? If not,
I'll register www.sharpos.org right now and set up a wiki.
-- 
View this message in context: 
http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7087087
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Brian Crowell
Johann MacDonagh wrote:
> Actually if it's all the same, I'd like to keep this operating system
> separate from the Unix mentality. That's not to say we wouldn't borrow some
> of Unix's ways of doing things, but there are certain things that would need
> to be changed.

There are lots of things to address, for sure. Device drivers are a hairy issue 
all by themselves, but I could see you encapsulating things like IRQs and I/O 
ports into classes.

One good place to start might be to write a file-system driver. You would 
assume that the operating system would hand you a stream tailored for block 
devices (e.g. BlockStream) and you just go to town. I'd design it at three 
levels:

* The classes and structures that encapsulate various internal states of the 
file system (e.g. inodes, directories, journals)

* A class that encapsulates all the external behavior of the file system (e.g. 
EfsFileSystem) upon being given a block device, where you can ask for streams 
and query/set attributes, but which knows nothing about other loaded drivers, 
or even about the system at all

* A class that presents the file system to the operating system (e.g. 
EfsFileSystemComponent)

Certainly a lot of good ideas and good sample code can come from Unix. One 
question will come up right away: what do we port, and what do we re-write? In 
practice, I've rarely been satisfied when porting projects to C#. It's one 
thing to wrap an API, but to try to translate pointer/error code mentality to 
reference/exception mentality on the fly is rough. I suggest we re-write most 
things, with an eye toward using testing to achieve compatibility, rather than 
hoping that we get the translation right.


> SharpOS.org isn't taken. Kind of shows both sides of the issue.

Sounds awesome to me.


> If there was enough brains behind this, then I wouldn't mind paying for some
> shared hosting on a separate domain name. Set up a wiki (for brainstorming,
> designing), svn, and perhaps some forums (I prefer them over mailing lists).

I like mailing lists because I get them in my mail client; I don't have to 
browse anywhere, remember passwords, or learn yet another bulletin board 
system. My two cents.

Speaking of two cents, I'd be willing to chip in on hosting costs. Actually, 
I've been meaning to try out virtual hosting for awhile; those things almost 
look too good to be true, at US$50/month.

--Brian 
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Mauricio Henriquez
...try from here:
http://mhenriquez.no-ip.com/descargas/
but please move the kernel.rar file to other place when you can access, 
is a very unestable server...sorry

...at least is an object oriented kernel emulator.

Mauricio

Brian Crowell wrote:
> Mauricio Henriquez wrote:
>   
>> all that I mention is in C#, please keep in mind that is a "probe of 
>> concepts" test code, is not a serious effor as the proposed in this 
>> thread, I love to work on this proyect, I know about assembler on 
>> windows, linux and a little IL, I also know a lote of OSs behinds (I'm 
>> "Operating System" class teacher on my university)
>> 
>
> That's actually more of an emulator than an operating system, but it would 
> still be worthwhile to have someone on hand with assembly experience, so 
> stick around.
>
> --Brian
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>   

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Victor Costan
Two issues come to mind:

1) C# and J# are registered by Microsoft. Let's make sure the # can't cause
trouble :)

2) You don't know if this'll work or tank, so I suggest using sf.net, and
getting free project hosting from them, at least for a while.

Either way, please let us know how this is going!
Victor


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Johann
MacDonagh
Sent: Monday, October 30, 2006 9:12 PM
To: mono-devel-list@lists.ximian.com
Subject: Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project


So does anyone have any problems with calling this project SharpOS? If not,
I'll register www.sharpos.org right now and set up a wiki.
-- 
View this message in context:
http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project
-tf2349909.html#a7087087
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Johann MacDonagh

True. But there are projects such as SharpDevelop who haven't been harrassed
yet.

SF doesn't offer a Wiki do they? For the initial brainstorming of this
project, a wiki would work great.


Victor Costan wrote:
> 
> Two issues come to mind:
> 
> 1) C# and J# are registered by Microsoft. Let's make sure the # can't
> cause
> trouble :)
> 
> 2) You don't know if this'll work or tank, so I suggest using sf.net, and
> getting free project hosting from them, at least for a while.
> 
> Either way, please let us know how this is going!
>   Victor
> 
> 
> -Original Message-
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Johann
> MacDonagh
> Sent: Monday, October 30, 2006 9:12 PM
> To: mono-devel-list@lists.ximian.com
> Subject: Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project
> 
> 
> So does anyone have any problems with calling this project SharpOS? If
> not,
> I'll register www.sharpos.org right now and set up a wiki.
> -- 
> View this message in context:
> http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project
> -tf2349909.html#a7087087
> Sent from the Mono - Dev mailing list archive at Nabble.com.
> 
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7087496
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Johann MacDonagh
I did a little research and it looks like it is possible to install MediaWiki, although it can be painful at times.

Anyway, Michael Schurter contacted me and said that he has some space
on his hosting account. He is going to register www.sharpos.org and set
up MediaWiki. We can better communicate there.

I've never used SF either, but I know they're getting more picky with
their project selections. Since this project might end up being all
brainstorming and no code, it might be better to start on our own host.

I'll keep everyone updated once we have a functioning website.Johann MacDonaghOn 10/30/06, Brian Crowell <
[EMAIL PROTECTED]> wrote:Johann MacDonagh wrote:> SF doesn't offer a Wiki do they? For the initial brainstorming of this
> project, a wiki would work great.If I'm reading the Sourceforge docs right, you should be able to install a PHP-based wiki (such as MediaWiki) without too much trouble: 
http://sourceforge.net/docs/E07/en/#topSourceForge apparently offers both mailing lists and forums. You know, I've never actually used SourceForge, other than the hundreds of files I've downloaded from them. I didn't know they had a donation system, either :P
--Brian
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Brian Crowell
Johann MacDonagh wrote:
> I did a little research and it looks like it is possible to install 
> MediaWiki, although it can be painful at times.

You could go the Google Project Hosting route. They offer Subversion hosting 
and their own (primitive) issue tracking service:

  http://code.google.com/hosting/
  example: http://code.google.com/p/s3net/

They also offer wiki-like page editing and file hosting in their latest Google 
Groups implementation:

  http://groups-beta.google.com/

Google Groups is sort of a cross between a forum and a mailing list anyhow.

--Brian
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Brian Crowell
Johann MacDonagh wrote:
> SF doesn't offer a Wiki do they? For the initial brainstorming of this
> project, a wiki would work great.

If I'm reading the Sourceforge docs right, you should be able to install a 
PHP-based wiki (such as MediaWiki) without too much trouble:

 http://sourceforge.net/docs/E07/en/#top

SourceForge apparently offers both mailing lists and forums. You know, I've 
never actually used SourceForge, other than the hundreds of files I've 
downloaded from them. I didn't know they had a donation system, either :P

--Brian
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread William Lahti
Aww, I let the thread go for a bit and it's packed!

I have expressed support for the managed kernel idea because I am
already in the process of building a managed operating system. I call
it Jeto. Currently it consists of...
- A GNU/Linux distribution with a new filesystem layout
- A foundation library (written in C#) called Emotion which covers
advanced URI-based IO, filesystem layout abstraction, localization,
graphics, user interface, media recording/playback, hardware access,
scalar values (values with units) and the conversion between those
units, application support, IPC, and more.
- A C# boot system called Shoe
- A set of Core utilities written in C# to manage the OS
- A set of BuildTools to build packages for the OS
- SharedCache, a package management system that uses the filesystem to
track installed packages. Again, all written in C# using Emotion.
- Regen, a cutting-edge network package retriever which can scan FTP
directories for source tarballs, download the source and build it
automatically, as well as download binary packages

Emotion is the best part. It is very plugin-based, and complex tasks
are handed off to them. For instance, the audio/video stuff is handed
off to a plugin.

Emotion uses Cairo for it's graphics system, HAL for hardware
discovery, and D-BUS for IPC, but only Cairo is currently a hard
dependency.

Perhaps this code might be of use in this project? I am planning on
publishing it soon anyway.

On 10/30/06, Brian Crowell <[EMAIL PROTECTED]> wrote:
> Johann MacDonagh wrote:
> > SF doesn't offer a Wiki do they? For the initial brainstorming of this
> > project, a wiki would work great.
>
> If I'm reading the Sourceforge docs right, you should be able to install a 
> PHP-based wiki (such as MediaWiki) without too much trouble:
>
>  http://sourceforge.net/docs/E07/en/#top
>
> SourceForge apparently offers both mailing lists and forums. You know, I've 
> never actually used SourceForge, other than the hundreds of files I've 
> downloaded from them. I didn't know they had a donation system, either :P
>
> --Brian
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread William Lahti
Related to Microsoft's C# and .NET trademarks:

I have been referring to .NET as the Common Language Infrastructure,
but C#... well C# is really it's name. Would it be better to call it
ECMA-335 :)?
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread Brian Crowell
William Lahti wrote:
> I have expressed support for the managed kernel idea because I am
> already in the process of building a managed operating system. I call
> it Jeto. Currently it consists of...

That figures. We've already drafted budgets and purchased an office.

Kidding, kidding. Sort of. Mr. Schurter has cobbled together sharpos.org and a 
mailing list. And yes, of course we'd be interested in what you have.

--Brian
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-30 Thread William Lahti
Aye, I'm on the list now. Just have to set up a label for it. I'll
post code and more info about Jeto on a new page in the wiki so it can
be considered. This project looks like some fun.

On 10/31/06, Brian Crowell <[EMAIL PROTECTED]> wrote:
> William Lahti wrote:
> > I have expressed support for the managed kernel idea because I am
> > already in the process of building a managed operating system. I call
> > it Jeto. Currently it consists of...
>
> That figures. We've already drafted budgets and purchased an office.
>
> Kidding, kidding. Sort of. Mr. Schurter has cobbled together sharpos.org and 
> a mailing list. And yes, of course we'd be interested in what you have.
>
> --Brian
>
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-31 Thread Stefan Dösinger
Thought it might be worth bringing up this:

http://research.microsoft.com/os/singularity/

Ms has a research project like this, and the paper describing the design is 
the first paper from Microsoft that states that Linux is faster than 
Windows :-)


pgpNizoILMaPw.pgp
Description: PGP signature
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-31 Thread Michael Schurter
Stefan Dösinger wrote:
> Thought it might be worth bringing up this:
> 
> http://research.microsoft.com/os/singularity/
> 
> Ms has a research project like this, and the paper describing the design is 
> the first paper from Microsoft that states that Linux is faster than 
> Windows :-)

An excellent paper to be sure.  :-)  Although, I think we're trying to 
move this discussion to the new [EMAIL PROTECTED] 
I'm afraid this thread is dominating mono-devel.

Sign up for the new list here: 
http://lists.sharpos.org/listinfo.cgi/sharpos-devel-list-sharpos.org

-- 
Michael Schurter
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Mono-devel-list] Operating System in C# Project

2006-10-31 Thread Jacques Beaurain
Hi,

This sounds very interesting indeed, I'll be sure to watch this and
possibly would like to get involved.

On 10/30/06, Johann MacDonagh <[EMAIL PROTECTED]> wrote:
>
> So does anyone have any problems with calling this project SharpOS? If not,
> I'll register www.sharpos.org right now and set up a wiki.
> --

I also like O# to play on the acr. OS, but SharpOS is not bad.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list