Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Crazed123 wrote:I have one last tidbit for the troll here. Troll, if Unix and BSD are the best operating systems on Earth and research efforts towards better operating systems can server no use, why in hell have you come to a board devoted to operating system development? Why are you making something new when the best already exists?
Oh, and I've always wanted to use that Harry Potter line.
Stop calling me a troll.. troll
I joined this forum with the simple interest in seeing how many people have made Unix-like or POSIX compliant Operating Systems. It's a hobby of mine.. everyone has a hobby
OpenBSD will never replace my Desktop OS.. but I still find it interesting to see who's interested in similar design philosophies..
You seem to freely defend your opinion.. but call other people "Weenies" if they have opinions of their own.. This is how you're hypocritical.
I myself often tell people my opinion of Microsoft.. but If I'm a troll you yourself are one too
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
C# is not the intermediate language. C# is a high-level language with C-like syntax and a feature-set mostly stolen from Java and Delphi that happens to compile to Microsoft's Common Intermediate Language.
As to using it in an OS... I see no reason why you couldn't put the JIT compiler into a library or module and simply attach its inputs and outputs to memory locations instead of files.
It's like bootstrapping a microkernel. You would load a small stub-kernel and the JIT compiler. The stub would JIT the real kernel, and then jump to it. Bammo.
Of course, this would all work rather slowly. I would recommend generating a native binary of your kernel itself.
The major feature of using CIL, however, is supposed to be moving protection into the language. An intermediate language that doesn't actually allow unsafe operations would allow an operating system to run all of its programs in supervisor mode. Everything could even run in one address space.
Of course, you have to expose "privileged" operations like I/O and interrupt handling to somebody. How can you do that without breaking the safety of CIL? Code scanning is one solution. The JIT compiler could scan for privileged instructions and refuse to compile any program that used them without proper authorization.
Singularity is aiming for something like all this. There's also a system called Go! that does something similar in native x86 code, IIRC.
Crazed123 wrote:As to using it in an OS... I see no reason why you couldn't put the JIT compiler into a library or module and simply attach its inputs and outputs to memory locations instead of files.
There is no JIT compiler in Singularity for many reasons... Read the papers. Bartok compiles MSIL to x86, much like ngen, only Bartok is more sophisticated.
Top three reasons why my OS project died:
Too much overtime at work
Got married
My brain got stuck in an infinite loop while trying to design the memory manager
Brynet-Inc wrote:You seem to freely defend your opinion.. but call other people "Weenies" if they have opinions of their own.. This is how you're hypocritical.
What got you branded as a Weenie was calling Singularity and C# "an abomination". Simply insulting something without actually making a point against its technical merits is the Mark of the Weenie.
Crazed123 wrote:What got you branded as a Weenie was calling Singularity and C# "an abomination". Simply insulting something without actually making a point against its technical merits is the Mark of the Weenie.
Because they are abominations, True this was a personal opinion..
But I'm free to have a personal opinion just like you are, I also have equal dislike for Java and using Interpreted languages like Python or Perl..
Why? Because I see them as fundamentally flawed.. Some languages are getting less and less sophisticated and let have no place in the world of system programming.
You seem to state countless personal opinions about peoples design choices.. (Your other topic as an example).
I'm definitely not a Weenie, but I'm going to tell people my opinion of the crap Microsoft produces.
A very good quote to live by: The day Microsoft makes something that doesn't suck is the day they make a vacuum cleaner.
If you don't like what I have to say you're perfectly free to ignore me..
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
Brynet-Inc wrote:I'm as free to having a personal opinion as you are, I also have equal dislike for Java and using Interpreted languages like Python or Perl..
Less and less sophisticated? Are you joking? Are you saying that the only 'sophisticated' language is C? C and it's relatives are amongst the simplest languages. Have you ever tried Lisp, Haskell, etc? (And, to note, Python is much more 'sophisticated' than C.)
Hrmm.. If you know that you'll get angry responses by writing something, then for the sake of this forum, don't write it. Punch a hole in the wall instead.
Brynet-Inc wrote:
Why? Because I see them as fundamentally flawed.. Some languages are getting less and less sophisticated and let have no place in the world of system programming.
So exactly how and why are all interpreted languages "getting less and less sophisticated"?
since I saw the Singularity videos on Channel 9 I've wanted to try to make an OS in c#. My main problem is that I don't have any experience in programming compilers and I can't find any information about it on the internet. So my question would be does anybody know a free or open-source msil to x86 compiler or a website with information about making one?
Thanks
The MSIL is an open standard "protocol", which means that you can download the specifications.
CTS/CLS
The MSIL Instruction Set Specification is included with the .NET SDK, along with the IL Assembly Language Programmers Reference. If a developer wants to write custom .NET programming languages, these are the necessary specifications and syntax. The CTS and CLS define the types and syntaxes that every .NET language needs to embrace. An application may not expose these features, but it must consider them when communicating through IL.
That aside, Why C#, If you like the extra utilities that C# offers, you will still have to implement them yourself. If you like C# for it's OO, then try C++ (everything you can do in C# you can do in C++ (and anything you can do in C++ you can do in C), except garbage collection, which can be emulated in C++ using a wrapper class), the only thing left is that you've been hypnotized by advertising. Well, in OS development you will some where discover the Alternative and wonder why you hadn't found it before(I'm talking about Unix)).
Microsoft: "let everyone run after us. We'll just INNOV~1"
If you really want C#'s better OOP features, try Object Pascal. Microsoft bought the guy who designed Object Pascal for Borland straight off them and assigned him to C#. Wouldn't you know it, there's a bizarre resemblance...
Crazed123 wrote:C# is not the intermediate language. C# is a high-level language with C-like syntax and a feature-set mostly stolen from Java and Delphi that happens to compile to Microsoft's Common Intermediate Language.
This is the exact reason I hate M$.
Let me make that a template for you if you ever have to say something about a M$ product product again
<insert M$ product> is not <insert competitors product> . <insert M$ product> is a <insert misconception> and a feature-set mostly stolen from <insert competitors product(s)>, that just happens to <insert contradiction to the previous misconception>.
Microsoft: "let everyone run after us. We'll just INNOV~1"
Singularity is a terrible idea. The idea of an operating system is to run code on a processor and manage it. Not in order to get inbetween the processor and program. The slowdown it causes is unacceptable and singluaritys concept, while good, has been terribly implemented.
A far better system would be better hardware context switiching, or (given the 64GB address space that make Singularity possible) for speciifc process protection that takes no switiching. There is too much concern about adding more software to balance hardware problems instead of a better, streamlined computer architecture that makes it simpler and far faster.
I advise you do not try writing a compiler for MSIL at the low level, though if you want to get on the side of Windows Users it should be implemented in the Upper levels. The thing that sickens me is this makes the idea of writing an OS in VB all that more realistic.
Also ignore the blasphomy, Singularity is not faster because it is better. It has none of the backward services Windows runs, none of the stupid backward compatability windows runs and Windows would be faster if implemented in a single Giant address space, which really would not be that hard.
Tyler wrote:A far better system would be better hardware context switiching, or (given the 64GB address space that make Singularity possible) for speciifc process protection that takes no switiching. There is too much concern about adding more software to balance hardware problems instead of a better, streamlined computer architecture that makes it simpler and far faster.
You know how Windows sucks because it started with a bad design, never had any extensibility or orthogonality, kept adding "features", never broke backwards compability, and somehow wound up dominant? Well x86 is the Windows of the architecture world.
In fact, I dare say that there has never been a "micro-architecture" that could support various architecture "personalities" in software the way a microkernel like L4 can support operating-system personalities in user-space.
Too true... i have nightmares about the bad code that sits on the worlds important computers because of those too companies. I do not see why i they cannot just restart, we have to transition to 64-bit anyway.