The Trion Object Oriented Operating system is an OS that is designed to meet the needs for the 21st century, with a kernel written in C++ and modelled in UML. The project is ran by a team of OSDev.org community members and version 0.1 was released recently.
I think C++ is a nice language for kernel development. Its much more high-level than C, but has the nice property that all the high-level stuff maps quite precisely to the generated machine code.
Though, its a bit complicated getting C++ code to run in kernel mode. Without runtime support, you can’t use features like global static initializers, exception handling, etc. I still remember poring through hex dumps trying to figure out how Intel C++ handled these things. Once I got it working, though, it ended up working pretty nicely. Having the STL handy, in particular, simplifies a lot of code.
What’s UML?
I didn’t see any screenshots and the sourceforge site said it was still in the planning stages.
I’m most interested in finding out if this OS is going to have an underlying command line like the Windows 9X series and Linux or whether it will only have a graphical component and an emulated command line like Windows XP. The later is more user friendly but a command line (emulated or not) is still a very important thing to have for those apps that are too simple to need a GUI.
Unified Modeling Language. http://www.uml.org/ I think. Its used to help groups of programers understand how the small functions/tasks they are working on fit into the bigger picture of the total system being built by the team.
Thanks, plenty stuff to read!
I can’t seem to open either osdev.org or find any info on the SF page so does anyone know if there are any places for this to be kernel for a *NIXy OS or something completely different? actually another more specific what makes something a *NIX? Could the Windows kernel given the right .h filesystem and user land tools become a *NIX?
actually another more specific what makes something a *NIX? Could the Windows kernel given the right .h filesystem and user land tools become a *NIX?
Well, this is a very good question with several different answers depending upon who you ask…
The official line is that you have to meet the requirements of the Open group (http://www.unix.org/), who are the stewards of the UNIX trademark.
The unofficial line is the tried and true duck theory: if it looks like a *NIX, walks like a *NIX and quacks like a *NIX, then it’s a *NIX.
Now to answer your other question, yes, Windows could actually become a *NIX in both senses with the right API, filesystem and user land tools. In fact, with SFU or Cygwin installed, several people could argue that it IS in fact a *NIX.
Hope that helped a little bit.
I don’t disagree to create yet another operating system but couldn’t they tell more about what os they are going to create? I find really nothing about this and source code in CVS seems nothing more than reinventing the wheel. Am I missing something?
There was at one time (perhaps it is still around) a project that reimplemented the Linux kernel in C++.
“Meet the needs for the 21st century?” Well, that’s a noble goal. Is it just gonna do everything? It’s the 21st century, and I need a new car and a hot latte. Can we get some coders working on that module, please? 😉
..is all I can say
I like C++ much better than C, OOP nut as I am, but I hope for them that they implement it with care when using C++; Many of the nice C++ language features (like virtual calls) come at a cost (virtual method -> function pointer -> chance of cache miss).
C has the advantage that it puts you so close to the generated code that you don’t forget yourself and write expensive inner loops, which is what you want to avoid in really low level code.
Then again – what the hell do I know? They probably know what they are doing.
So whats the angle? It sounds like yet another project to recreate linux in C++, which is a nonstarter. Hey, if they are just doing this for fun or to learn, cool beans, but if they actually want people to use it, I think they need to go back to the drawing board (sourceforge is down, I cannot see the site to confirm motivations).
At least I will give the Hurd folks credit in this respect – they actually are exploring a different (not to be confused with new) theoretical basis for how an OS should work (albeit one that has been shown elsewhere to also be a non-starter). Or look at BeOS – they focused on multimedia. Once again, they had a unique (or at least differentiating) modus operandi distinct from implementation details.
Monolithic kernels written in C have won in the market, because they are flexible enough while being performant as a first-order of business. If a kernel is nonperformant, no one cares how hackable it is.
Using C++ for a kernel appeals to me on a lot of levels – the OO concept that calling a member of an object is sending a message to that object, and the object replying, maps very well into OS design. And an OS does map very nicely as an OO construct anyway (drivers and stuff – a Linux device driver structure is really just a way of getting round the lack of objects in the C language).
Of course, they’ve not got very far with it – maybe I missed it, but there didn’t seem to be anything in the way of a scheduler at the process or thread level yet….?
….is an operating system written in Forth. Just to get the blood moving.
http://cliki.tunes.org/Forth%20OSes