Ce que vous devez faire, c'est concevoir le système d'exploitation. Même si, par exemple, vous décidez qu'il doit s'agir d'un système de type UNIX, il reste encore beaucoup de décisions à prendre. Dans quelle mesure voulez-vous que ce soit UNIX? Quelles parties d'UNIX aimez-vous et lesquelles pensez-vous avoir besoin d'être améliorées?
Si vous n'êtes pas déterminé à ce qu'il ressemble à UNIX, vous vous retrouvez avec encore plus de questions à répondre: les processus devraient-ils former un arbre, ou sont-ils "plats"? Quels types de communication inter-processus souhaitez-vous prendre en charge? Voulez-vous qu'il soit multi-utilisateur, ou simplement multi-tâches (ou éventuellement mono-tâches)? Voulez-vous que ce soit un système en temps réel? Quel degré d'isolement souhaitez-vous assurer entre les tâches? Où voulez-vous qu'il tombe à l'échelle monolithique vs micro-noyau? Dans quelle mesure (le cas échéant) souhaitez-vous qu'il prenne en charge le fonctionnement distribué?
Je conseille généralement contre étudier le noyau Linux pour votre inspiration. Ce n'est rien contre le noyau Linux lui-même, mais un simple fait que Linux est principalement destiné à la production, pas à l'éducation. Il a beaucoup d'optimisation, de hacks de compatibilité descendante, etc., qui sont extrêmement utiles pour la production mais plus susceptibles de distraire que d'éduquer.
Si vous pouvez le trouver, une copie du livre de Lion ( Commentaire des Lions sur UNIX 6e édition , avec code source , par John Lions) est un point de départ beaucoup plus facile. La 6e édition d'UNIX était encore petite et assez simple pour lire et comprendre assez rapidement, sans être un système de jouets trop simplifié.
Si vous prévoyez de cibler le x86 (au moins principalement), vous pouvez également consulter MMURTL V 1.0 de Richard Burgess. Cela présente un système pour le x86 qui utilise le matériel x86 beaucoup plus que les concepteurs de CPU l'ont prévu à l'origine - quelque chose que la plupart des vrais systèmes évitent en faveur de la portabilité vers d'autres CPU. Comme vous pouvez le deviner, cela tend à être orienté beaucoup plus fortement vers la fin matérielle des choses. Les copies imprimées semblent coûteuses et difficiles à trouver, mais vous pouvez télécharger le texte et le code gratuitement.
Heureusement, il existe également quelques possibilités supplémentaires - Conception et mise en œuvre de systèmes d'exploitation , par Andrew Tanenbaum et Albert Woodhull, par exemple.