hello all, and i've decided to take on a very large project, i'll be creating an os with an ephasis, on graphics, so, my first question is what do i want to look into? i plan on developing alot of my own base libraries, but i eventually want to make a C# compiler for this, any comments at all would be quite helpful
karbon
hello all
RE:hello all
You'll need to look into what everyone else is looking into. That is, supporting the hardware.
Also, why C#? C or C++ would be a much better goal. C and C++ are standard languages and a number of applications have been written in these languages. C# doesn't belong in the same class, doesn't have many applications, and, what's more, what if microsoft decided it didn't like your idea?
Also, why C#? C or C++ would be a much better goal. C and C++ are standard languages and a number of applications have been written in these languages. C# doesn't belong in the same class, doesn't have many applications, and, what's more, what if microsoft decided it didn't like your idea?
RE:hello all
Out of curiousity, what's your graphics programming background?
I would suggest learning as much as possible about different graphics architectures existing on current operating systems.
For example, the interfaces are much different on Win32, Linux, QNX, and BeOS. Each have their own strengths and weaknesses.
At the lowest level, most are _similar_, but with a different implementation. Linux/XFree86, however, is natively network aware, and sends all graphics routines over the network, which means graphical applications are able to be run over the network with little to no extra work.
Linux/SVGALib provides an interface much like was seen in the DOS days. Very quick, and low level, but perhaps not overly well suited to GUIs and windowing systems.
The BeOS has a native object oriented interface to its graphics subsystem (written in C++) which is excellent for GUI-centric applications. Using and extending the interface is as simply as inheriting previous graphics class.
For speed, however, I revert to the low level C library.
QNX does have an X11 layer, which means it can also recognise the X11R6 protocol (which XFree86 uses), and as such is similar to Linux/XFree86 in this instance.
QNX, however, also has its own native graphics toolkit called Neutrino, which I liken to the GTK toolkit on Linux (although, in my opinion, QNX's interface looks much nice )
Anyway, point being, I'd suggesting getting ideas from these systems (and others).
I'd also suggest making it as modular as possible, and make sure the task of writting graphics drivers is as simple as possible. Any code fragments that might be common to a graphics driver should be written by you, and supplied as a shared library to each driver developer. Leads to more stable and consistant code.
As for the C# compiler, that's definitly be a nice touch! Not only would you have a generally accepted and (relatively) streamlined compiler available for your system, but you'd have access to a huge code base of applications already written (especially if you implment the windows.form.* namespace).
For a good source on C# stuff, check out www.go-mono.com (.org?) which is the initiative behind bringing C# to Linux. It's a pretty impressive and fast paced project. I've used on my system, and was impressed. The windows.forms.* namespace is already partially implemented using WineLib, so you might be able to port simple VS.NET apps over to Linux. More interesting, however, is the new namespace for GTK#, allowing full GTK applications to be written in Linux, using C#
If you need any help with graphics routines, etc, I can probably help.
Cheers,
Jeff
I would suggest learning as much as possible about different graphics architectures existing on current operating systems.
For example, the interfaces are much different on Win32, Linux, QNX, and BeOS. Each have their own strengths and weaknesses.
At the lowest level, most are _similar_, but with a different implementation. Linux/XFree86, however, is natively network aware, and sends all graphics routines over the network, which means graphical applications are able to be run over the network with little to no extra work.
Linux/SVGALib provides an interface much like was seen in the DOS days. Very quick, and low level, but perhaps not overly well suited to GUIs and windowing systems.
The BeOS has a native object oriented interface to its graphics subsystem (written in C++) which is excellent for GUI-centric applications. Using and extending the interface is as simply as inheriting previous graphics class.
For speed, however, I revert to the low level C library.
QNX does have an X11 layer, which means it can also recognise the X11R6 protocol (which XFree86 uses), and as such is similar to Linux/XFree86 in this instance.
QNX, however, also has its own native graphics toolkit called Neutrino, which I liken to the GTK toolkit on Linux (although, in my opinion, QNX's interface looks much nice )
Anyway, point being, I'd suggesting getting ideas from these systems (and others).
I'd also suggest making it as modular as possible, and make sure the task of writting graphics drivers is as simple as possible. Any code fragments that might be common to a graphics driver should be written by you, and supplied as a shared library to each driver developer. Leads to more stable and consistant code.
As for the C# compiler, that's definitly be a nice touch! Not only would you have a generally accepted and (relatively) streamlined compiler available for your system, but you'd have access to a huge code base of applications already written (especially if you implment the windows.form.* namespace).
For a good source on C# stuff, check out www.go-mono.com (.org?) which is the initiative behind bringing C# to Linux. It's a pretty impressive and fast paced project. I've used on my system, and was impressed. The windows.forms.* namespace is already partially implemented using WineLib, so you might be able to port simple VS.NET apps over to Linux. More interesting, however, is the new namespace for GTK#, allowing full GTK applications to be written in Linux, using C#
If you need any help with graphics routines, etc, I can probably help.
Cheers,
Jeff
RE:hello all
Microsoft has little to no say in the matter.
Besides, that's the entire point of C#... it's CLR package allows C# programs to be run on any system. That's what CIL was designed for.
As long as a developer can implement the namespaces and compiler legally (and they can) there's nothing Microsoft can say about it.
Jeff
Besides, that's the entire point of C#... it's CLR package allows C# programs to be run on any system. That's what CIL was designed for.
As long as a developer can implement the namespaces and compiler legally (and they can) there's nothing Microsoft can say about it.
Jeff
RE:hello all
Actually, Microsoft would have final say in the matter, legally. They're the original authors of such work, therefore, in a case in court, they would have a dominating force in such judgements. Didn't you mean CLI instead of CIL?
RE:hello all
Not to start a war here, or anything, but Microsoft is the originator of _their own work_. I doubt they have any say in a 3rd party developing an application that looks and acts like .NET
Projects like this exist all over the place (ie, WINE, DosEMU, etc... even OpenOffice supporting MS file types)
That's why development projects like that must (usually!) sign a legal document stating they've never worked for microsoft and/or seen any of the code they're about to "duplicate"/mimick.
And no, I meant CIL = Common Intermediate Language.
And that's the point, there, really. CIL is an intermediate byte code language developed for the sole purpose of allowing the same binary to run on multiple platforms, similarly to Java (but with a twist in the implementation). What use is the software if it only runs on Windows?
Microsoft's ideal plan, no doubt, is for .NET to have universal acceptance umong all development platforms, therefore securing a huge hold on the development tools market.
MS isn't going to squash "YourOS.NET" If anything, it secures a position for them, in the future, if Windoze is ever to fall from dominance thanks to all these new (and vastly supperiour.. ahem...) operating systems in existance today.
Jeff
Projects like this exist all over the place (ie, WINE, DosEMU, etc... even OpenOffice supporting MS file types)
That's why development projects like that must (usually!) sign a legal document stating they've never worked for microsoft and/or seen any of the code they're about to "duplicate"/mimick.
And no, I meant CIL = Common Intermediate Language.
And that's the point, there, really. CIL is an intermediate byte code language developed for the sole purpose of allowing the same binary to run on multiple platforms, similarly to Java (but with a twist in the implementation). What use is the software if it only runs on Windows?
Microsoft's ideal plan, no doubt, is for .NET to have universal acceptance umong all development platforms, therefore securing a huge hold on the development tools market.
MS isn't going to squash "YourOS.NET" If anything, it secures a position for them, in the future, if Windoze is ever to fall from dominance thanks to all these new (and vastly supperiour.. ahem...) operating systems in existance today.
Jeff
RE:hello all
I wouldn't say that they would, I'd just say that they could and a court would probably hear it out.
However, I'm like you, I'm not interested in starting a war...it does no good to do so.
However, I'm like you, I'm not interested in starting a war...it does no good to do so.
RE:hello all
They can't legally challenge you if you develop your own C# compiler. You can't patent a programming language. They could copyright some development software, or patent some clever technique within the compiler, or register the name 'C#' as a trademark. They can't copyright, patent or trademark the language itself.
RE:hello all
>You can't patent a programming language.
Perhaps things are more sane in Europe. In America, patent examiners
are paid based on how many patents they grant, and the corporations
are going patent-crazy.
Patents on DNA:
http://slashdot.org/article.pl?sid=02/0 ... 57&tid=155
Patents on e-commerce:
http://yro.slashdot.org/article.pl?sid= ... ad&tid=155
Apple's patent on TrueType font hinting (why Linux fonts look crappy):
http://www.engin.umd.umich.edu/~npietran/linux1.html
Patent fees for free MP3 encoders: a mere $25,000 per year:
http://www.sslug.dk/patent/fri-software ... blemer#8hz
Monsanto sues farmers for re-using "their" seeds:
http://nelsonfarm.net/issue.htm
More to the point: Microsoft Applies For .NET Patent:
http://yro.slashdot.org/article.pl?sid= ... 09&tid=155
To make a long rant short, I don't trust Microsoft. A corporation that
big and that nasty can squash you like an ant if you piss them off.
Perhaps things are more sane in Europe. In America, patent examiners
are paid based on how many patents they grant, and the corporations
are going patent-crazy.
Patents on DNA:
http://slashdot.org/article.pl?sid=02/0 ... 57&tid=155
Patents on e-commerce:
http://yro.slashdot.org/article.pl?sid= ... ad&tid=155
Apple's patent on TrueType font hinting (why Linux fonts look crappy):
http://www.engin.umd.umich.edu/~npietran/linux1.html
Patent fees for free MP3 encoders: a mere $25,000 per year:
http://www.sslug.dk/patent/fri-software ... blemer#8hz
Monsanto sues farmers for re-using "their" seeds:
http://nelsonfarm.net/issue.htm
More to the point: Microsoft Applies For .NET Patent:
http://yro.slashdot.org/article.pl?sid= ... 09&tid=155
To make a long rant short, I don't trust Microsoft. A corporation that
big and that nasty can squash you like an ant if you piss them off.