J'adore coder, mais je ne fais actuellement que du développement web. J'aimerais faire quelque chose qui sera unique et amusant et très différent de la programmation Web.
Oui, cela pourrait être une question stupide, mais je pense que ce serait vraiment cool de construire un système d'exploitation très simple. Veuillez donc ne rien dire de grossier. Je veux juste savoir les choses suivantes:
*Où commencer? * Ressources * Quelle langue devrais-je utiliser?
Je pensais à quelque chose de simple comme un cmd
La "bible" absolue sur la conception des systèmes d'exploitation est et était celle d'Andrew Tanenbaum Conception et mise en œuvre des systèmes d'exploitation - le livre "Dragon" :-)
Il existe également de nombreuses autres références, par exemple Développement de votre propre système d'exploitation 32 bits .
Microsoft Research a également/avait un projet sur la création d'un système d'exploitation en code managé (C #) appelé Singularity - qui pourrait fournir des informations/documents, etc.
L'écriture d'un système d'exploitation complet n'est ni triviale ni rapide, cependant .....
Passer de webdev à backend sera assez frustrant.
Tout d'abord, choisissez une carte/matériel/architecture - peut-être même aller avec un simulateur de système d'exploitation que vous pouvez exécuter sur votre machine. Apprenez C et certains assemblages (Intel, MIPS, ARM, Coldfire/Motorolla 68k) en fonction de l'architecture du processeur pour laquelle vous construisez votre système d'exploitation.
J'ai vu des packages C++ qui vous permettront de créer un système d'exploitation en C++, puis de le convertir automatiquement pour vous en Assembly, mais c'est un tel casse-tête de les faire convertir correctement. Je ne les recommanderais pas.
Avant de commencer à écrire du code, vous devez concevoir votre système d'exploitation . Peut-être même mettez vos décisions de conception dans un document de 50 pages avec quelques diagrammes.
Quelques réflexions:
message envelopes {sender process id, receiver process id, message type, message}
)EDIT - Mise à jour d'URL Développer votre propre système d'exploitation 32 bits est épuisé mais est disponible en ligne: http: //www.ipdatacorp .com/mmurtl/mmurtlv1.pdf
Voici quelques liens pour vous aider à démarrer:
http://www.brokenthorn.com/Resources
http://wiki.osdev.org/Main_Page/
Tu vas avoir besoin de GCC et de NASM. Je pense que vous pouvez également utiliser GASM.
Apprenez les interruptions du BIOS.
Avant même de commencer, saisissez un tas de normes telles que: APIC A20 Gate PCI & PCIEx - Bonne chance pour en obtenir une. Coût un peu de changement. Intel et AMD - Regardez-les, vous donne beaucoup d'informations. VGA ATA & SATA etc ... Il y en a beaucoup.
Prenez également des émulateurs comme: bochs et qemu
Comprenez comment l'ordinateur fonctionne, c'est-à-dire comment il démarre.
Il y a beaucoup d'informations là-bas, vous devez juste faire vos recherches.
Bonne chance.
Commencez par lire quelques livres de systèmes d'exploitation - comme Tanenbaums ' Systèmes d'exploitation modernes .
Cela devrait vous donner une idée des problèmes que vous devez résoudre pour écrire un système d'exploitation.
Il existe de nombreuses ressources lorsque vous les recherchez sur Google, mais je vous encourage pas à franchir cette étape!
Pour écrire un système d'exploitation, même simple, vous aurez besoin d'une bonne compréhension du fonctionnement de votre ordinateur à un bas niveau, et vous aurez besoin d'au moins C ou C++ et de préférence Assembly également. Sans ces compétences, ce sera un projet fastidieux et frustrant. C'est difficile et difficile, même pour les programmeurs C qualifiés.
Écrire un OS est difficile. Je recommande de devenir développeur avant de devenir développeur OS. Vous aurez besoin de connaître C/C++ et Assembly pour créer un système d'exploitation de base. vous devrez réfléchir à la façon de créer votre système d'exploitation, c'est-à-dire le type de noyau, le mode réel ou le mode protégé, les cartes mémoire et bien d'autres choses.
Je suppose que vous feriez mieux de commencer à explorer le travail d'Andrew S. Tanenbaum .