Wovon du keine Ahnung hast, das kannst du nicht designen. Ich gehe davon aus, dass du noch keine große OS-Dev-Erfahrung hast, insofern wirst du einfach mal machen müssen. Du kannst aber gleich einplanen, ein paar Kernel wegzuwerfen, bevor du was hast, womit du zufrieden bist.
Naja, ich würde nicht sagen das ich ein Anfänger bin, im Programmieren bin ich schon seit langem ein Fortgeschrittener (Aus meiner Sicht) und im OS-Dev bin ich auch schon seit 2 Jahren. Aber das man Sachen nicht designen kann, wovon man keine Ahnung hat ist richtig. Aber man kann sich sein Framework (Ein OS ist auch teilweise ein Framework) in Module und mehr einteilen, was eigentlich nichts anderes ist als designen.
Aber sonst stimme ich dir zu, ich selber habe schon 2, 3 Kernel weggeschmissen bzw. eingefroren (Ich schmeiße nichts weg - ist mir zu schade).
Bei mir wird am Anfang alles per Bleistift gezeichnet und die Dependies werden relativ känntlich gemacht.
Danach, wenn ich Zeit hab, digitalisiere ich es und fange mit einem anderen Bereich von vorne an.
Das alles passiert meistens parrallel zum Implementieren des Codes.
Aber eigentlich sollte sowas vorher gemacht werden (Nicht alles, die Details ändern sich so oder so), sonst hat man später meistens Probleme was das designen und strukturieren des Codes anbelangt.
Bei mir sind schon viele Projekte zu Boden gegangen, aber naja ich bin auch kein Profi, aber ein Anfänger genauso wenig.
Ahh ja, man bekommt nicht immer Probleme, Ausnahmen bestätigen bekanntlich die Regel.