Je suis très curieux de jouer avec HW. Mais mon niveau de "déconner" jusqu'à présent était lié ou assembleur en ligne dans le programme C. Si ma compréhension du CPU et du mode anneau est correcte, je ne peux pas accéder directement depuis l'application en mode utilisateur à certaines fonctions du CPU, comme désactiver les interruptions ou changer les segments du mode protégé, donc je dois utiliser les appels système pour faire tout ce que je veux. Mais, si j'ai raison, les pilotes peuvent fonctionner en mode anneau 0. Je ne sais pas grand-chose sur les pilotes, mais c'est ce que je demande. Je veux juste savoir, est d'apprendre à écrire vos propres pilotes et de les appeler comme je devrais aller faire ce que j'ai écrit? Je sais que je pourrais écrire tout nouveau système d'exploitation (au moins jusqu'à un certain point), mais ce que je veux exactement, c'est accéder à certaines fonctionnalités de bas niveau de HW de l'application standart windows. Alors, le conducteur est-il le chemin à parcourir?Quick question de protection de mode de l'anneau CPU
Répondre
Réponse courte: oui. Réponse complète: La gestion de l'accès aux fonctionnalités matérielles de bas niveau est exactement la tâche du noyau du système d'exploitation. Si vous souhaitez uniquement accéder à une fonctionnalité unique, vous n'avez pas besoin de démarrer votre propre système d'exploitation. La plupart des systèmes d'exploitation modernes, tels que WIndows, Linux ou les BSD, vous permettent d'ajouter du code au noyau via les modules du noyau. Lorsque vous écrivez un module noyau (ou un pilote de périphérique), vous écrivez du code qui va être exécuté dans le noyau OS et sera donc exécuté dans l'anneau CPU 0. Une grande puissance s'accompagne d'une grande responsabilité, ce qui signifie dans ce cas que vous devriez vraiment savoir ce que vous faites car il n'y aura pas d'interface pré-configurée pour vous empêcher de faire les mauvaises choses. Vous devriez donc étudier les manuels de votre matériel (par exemple, les manuels du développeur de logiciels x86 d'Intel, les spécifications de l'appareil, ...) ainsi que la documentation standard de développement de systèmes d'exploitation (où vous trouverez également beaucoup sur le web - OSDev, OSDever, OSR, Linux Device Drivers).
Si vous voulez jouer avec HW, écrivez quelques programmes pour le mode réel 16 bits (ou même avec votre propre transition vers le mode protégé). Là, vous devez gérer ASM, les interruptions du BIOS, les segments, la mémoire vidéo et beaucoup d'autres choses de bas niveau.