I fairy savvy in technology, but I've never fully understood this. After reading on HN about new releases of ReactOS and MenuetOS, I had a look at the list of Linux distributions http://en.wikipedia.org/wiki/List_of_Linux_distributions . There are lots, I'm sure it's not a complete list and I believe there are many which are not Linux-forks.
A few noobie questions on the topic:
- What are the reasons people decide to start a new OS development project? (assume they are not backed by Google, Mozilla or other big organisation who can build commercial products with it)
- Why to maintain your own open source OS, and not to adapt or contribute to an existing OS?
- Who is behind these non-mainstream open-source OS? - What is the end goal of having your own open-source OS?
1) You get better because you learn to manage complexities that are simply not found in MOST application level programs; exceptions are stuff like high-performance database servers and their ilk. You should come out with a really good understanding of how to write multithreaded code, for example;
2) You learn to manage a really big project with lots of related, but complex interconnections;
3) There really is a huge benefit from learning just how a system works at the low-level in becoming a master programmer. Things like cache-issues, virtual memory management, are topics that you may not use everyday, but knowledge of how and what goes on gives you a whole new level of insight.
Anyone who wants to become a master programmer should implement a toy operating system (we can't all be Linus) and a toy compiler. Even better, implement a compiler and then implement the operating system using that compiler.
And the final reason: because it's amazing FUN. That is, if you really like programming. It's so complex, so much hard work and hard thinking, that when your first application program, just Hello World, actually runs to completion, you get high.