

Ask HN: Why people are developing their own open-source OS? - websirnik

I fairy savvy in technology, but I&#x27;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:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;List_of_Linux_distributions  . There are lots, I&#x27;m sure it&#x27;s not a complete list and I believe there are many which are not Linux-forks.<p>A few noobie questions on the topic:<p>- 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)<p>- Why to maintain your own open source OS, and not to adapt or contribute to an existing OS?<p>- Who is behind these non-mainstream open-source OS? - What is the end goal of having your own open-source OS?
======
nanofortnight
Quite a number of people who are into OS development hang out around
[http://osdev.org/](http://osdev.org/) and similar places.

I quote, from that site:

> Why develop an OS?

> There are various reasons why people choose to develop an operating system.
> Each individual developer may have their own, but some reasons are common
> among some (if not most) developers:

> * Having complete control over the machine. When developing an application
> or other userspace program, the developer has to take the code written by
> others into consideration: the operating system, the libraries, other
> programs, etc. It is a powerful feeling for the only code to be running on a
> machine to be your own.

> * Research. Quite a few operating system projects are started as homework or
> research projects. While starting an operating system as a homework
> assignment in a pre-tertiary or first-year environment is generally
> considered a bad idea (due to short deadlines), a long-term project is quite
> fine. Research projects are usually undertaken to improve on existing
> operating systems. A common beginner mistake, however, is to underestimate
> the time needed to write an operating system from scratch.

> * To replace the currently available operating systems. Maybe they don't
> have a particular feature that the developer wants. Maybe they just
> generally suck (Linux is bloated, Windows is unstable, etc). This may be for
> profit; although any returns are likely to be a long time away.

> * Because it's fun. Low level programming is a fun and exciting task,
> because you have to do everything. This may seem more difficult (it is,
> don't worry) but by the same reasons more fun. You know how everything
> works, how it all fits, and the inner-most workings of your program.

If nothing else, building your own operating system teaches you a lot about
the internals of the magic suite of programs that run on your machine and
makes them less mystical. Nothing compares to writing your own syscall or
scheduler, and I certainly have learnt far more from my experiments than I
would have if I had simply read Linux source code.

------
rajat
Because you'll come out of the experience a MUCH better programmer; MUCH, MUCH
better. In fact, until you've written a low level device driver and understood
the complexities involved, you cannot really understand how much better a
programmer you can be.

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.

------
lutusp
> What are the reasons people decide to start a new OS development project?

Dissatisfaction with existing operating systems? A desire to advance the state
of the art?

> Why to maintain your own open source OS, and not to adapt or contribute to
> an existing OS?

You might as well have asked why people have children. Aren't existing people
satisfactory? Why try something new?

> Who is behind these non-mainstream open-source OS?

What does "non-mainstream" mean? There is no main stream, either here or in
nature. Evolution doesn't work that way. And OS development follows the rules
of natural selection -- the fittest survive.

Look at Microsoft Windows -- it's about to be extinguished by its excessive
size and inability to adapt to change. Just as with the dinosaurs -- because
of their size, they were extinguished by an environmental change they couldn't
adapt to. Smaller, more nimble creatures survived and took over.

------
LarryMade2
>>\- What are the reasons people decide to start a new OS development project?

They want to learn how to do it the hard way, they have ideas on how to do it
better or just differently, why not?

>>\- Why to maintain your own open source OS, and not to adapt or contribute
to an existing OS?

They don't like how others are written, they are ignored or repeatedly flamed
by some community they were interested in, they want to be in control, they
don't like the change cycle or direction of the OS that interests them

>>\- Who is behind these non-mainstream open-source OS? - What is the end goal
of having your own open-source OS?

Aliens?, the Illuminati? Naw, jut geeks like us - for some folks low level OS
development is a relaxing passtime.

------
logical42
QwA

