Questions For an OS Designer |
Here are questions that you should answer before you start to code an OS. It's not a secret that every program must be designed before it is written (implemented). Also it's not a secret that a very few of programs are written this way... Most are written under pressure and hardly have a complete requirements list when coding starts.
Such an approach is very harmful. Design is finished in breaks between coding work and is dictated by things that are already written and work. Programmers tend to think "I'll change it later" but mostly later never comes. Nobody really wants to change already working code to fit a changed design.
It may be very painful if you write an OS. Because of design flaws or incomplete design the whole project may be brought down or at best take months to redesign and rewrite big parts.
Answering questions suggested here will not form a full design specification. However it will not let coding go completely off road. All of them should be answered before writing a line of code. Certain questions may be ignored if they are irrelevant, e.g. you don't need to think about file systems if you don't plan to support mass storage devices. From the other hand, all the answered questions should not contradict. Where I feel necessary, hints are typed as italic.