Profile photo for John Ohno

Writing an OS is worthwhile for experience, if your time is plentiful and you don't assign much value to it. It's a great learning experience, and it will force you to learn many of the things that a CS degree should teach you (but that CS degrees rarely actually do).

However, expect to spend about six months dealing with a large, unsimplifiably messy / difficult to understand codebase, fixing bugs without the benefit of a debugger or (depending on how far you get) a print function, even if you write something fairly minimal -- and if you write something of any interest, expect to spend much longer. That's six months if you work on it all day, and get relatively little sleep. And you don't try to support disks. And you don't try to write a network stack.

Also, expect professional developers (particularly embedded developers) to be completely unimpressed. Embedded developers write stuff that's essentially OS-level all the time. Very goal-oriented developers will see the project in a fairly objective light: as a learning experience that takes a lot of time but doesn't produce useful code.

At the same time, if you have a masochistic streak, os development is a lot of fun -- and if you don't have a masochistic streak, why the hell are you studying CS? Writing an OS is a little bit like writing a C compiler in Forth, or writing an mp3 decoder in befunge, or writing anything in Prolog that isn't a constraint solving problem: you're solving a problem that doesn't need to be solved, and you're solving it with tools that aren't quite well-enough tailored to the problem to hide much of the implicit complexity of it.


Source: I've written 3 OSes, one of them being the first or second OS ever written in D.

View 74 other answers to this question
About · Careers · Privacy · Terms · Contact · Languages · Your Ad Choices · Press ·
© Quora, Inc. 2025