[Mono-devel-list] Operating System in C# Project
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
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
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
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
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
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
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
> 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
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
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
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
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
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
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
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
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
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 Tauberers 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
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
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
> 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
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
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
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
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
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
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
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
> 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
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
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
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
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
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
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
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
...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
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
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
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
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
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
...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
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
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
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
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
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
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
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
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
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
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
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
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