Cela pourrait être en vain, car je sais qu'écrire un système d'exploitation est insupportablement compliqué (surtout par soi-même).
Je ne m'attends pas à construire le prochain Linux ou Windows.
Je sais que ce sera horrible, bogué et ne fonctionnera pas, mais c'est bien.
Je veux tout écrire moi-même, en Assembly , C et (un peu) C ++ .
C'est un projet futur, car je suis occupé avec d'autres choses pour le moment et je n'ai pas le temps immédiatement, mais j'ai pensé que je le poserais maintenant, alors peut-être que je pourrais obtenir beaucoup de réponses à cela, et cela pourrait construire et être une ressource utile pour ce type d'approche (tout le reste que j'ai vu impliquait de construire à partir de minix, en utilisant un chargeur de démarrage existant, en le construisant dans un programme de démarrage virtuel, etc.).
Je souhaite configurer l'un de mes anciens ordinateurs de bureau avec un écran, un clavier et une souris, et commencer à travailler sur un disque dur vierge .
Je veux apprendre à écrire mon propre chargeur de démarrage (j'ai trouvé beaucoup de ressources à ce sujet, mais par souci d'exhaustivité, veuillez toujours en ajouter de bonnes), mon propre pilote USB (si nécessaire), un pilote de CD (si nécessaire) ), etc. Tout, de A à Z.
Comment mettre le code sur l'ordinateur? Est-il préférable de le faire avec une disquette? La plupart des ordinateurs peuvent-ils le faire à partir d'une clé USB?
De quels pilotes ai-je besoin et pouvez-vous suggérer des références pour les construire?
Après la séquence de démarrage - alors quoi? Comment passer en mode protégé, etc.
Comment gérer la mémoire sans l'aide d'un système d'exploitation? Dois-je utiliser les adresses que je veux? Aucune initialisation nécessaire?
Que vais-je sans aucun doute rencontrer qui me déroutera?
Comment puis-je en faire une ligne de commande O / S et une graphique?
Sur quoi repose un O / S graphique? Par exemple, comment pourrais-je faire quelque chose comme, une ligne de commande, avec une police et une image en haut?
Où puis-je lire sur la configuration d'un environnement multitâche? (c'est-à-dire, ayant deux lignes de commande de type graphique fonctionnant côte à côte).
Comment mettre en place une sorte de système de fenêtrage? Comment afficher des graphiques à l'écran une fois que le multitâche simple est configuré?
Croyez-moi, je comprends que c'est un projet très compliqué, et je ne pourrai probablement jamais le terminer ou y écrire quoi que ce soit.
Il y a beaucoup d'autres éléments que je n'ai pas mentionnés, si vous en pensez, n'hésitez pas à les ajouter également.
Veuillez mettre un "sujet" par réponse - par exemple, les pilotes USB, puis peut-être une liste de ressources, de choses à surveiller, etc.
De plus, veuillez ne pas suggérer de construire à partir d'un autre O / S ou d'un code préexistant. Je sais que je lirai beaucoup de code préexistant (comme le noyau Linux, ou des exemples de ressources, des pilotes existants, etc.) mais finalement je veux faire toute l'écriture moi-même. Je sais que je devrais partir de quelque chose d'autre, et il y a beaucoup d'autres questions sur SO à ce sujet que je pourrais lire si je change d'avis et emprunte cette voie. Mais celui-ci consiste à tout faire à partir de zéro.
Des suggestions sur la façon de le rendre graphique? Différents modes vidéo et comment travailler avec eux, etc.?