Similaire à comment l'appel système fonctionne sur int 0x80
, est-il possible d'implémenter mon propre ISR dans le noyau de sorte que sur softirq assumer int 0x120
ou avec un autre programme Softirq Counter peut passer de espace utilisateur à espace noyau? Est-ce que entrer le noyau en mode privilégié est associé uniquement à int 0x80
, ou avec n'importe quelle implémentation de softirq je peux entrer en mode privilégié automatiquement ou pour désactiver le mode protégé et entrer en mode privilégié nous devons faire manuellement en écrivant son drapeau associé?Y at-il un moyen de faire un appel au noyau Linux avec mon propre softirq
et encore une chose, s'il est possible de mettre en œuvre ce type de ISR, est la meilleure façon d'échanger des données avec les registres EBX, ECX, EDX, ESI, EDI et EBP ou autre?
J'ai déjà vu How to define and trigger my own new softirq in linux kernel? mais je n'ai pas eu la solution que je recherchais. Je voudrais que ce soit plus clair, pourquoi j'ai besoin de cela
J'avais implémenté quelques fonctions du noyau, qui sont directement en communication avec les périphériques matériels, je veux qu'elles se déclenchent à partir de l'espace utilisateur en utilisant l'interruption logicielle. Je ne peux pas utiliser les appels système avec l'architecture de pilote disponible car j'ai besoin de réduire le temps d'exécution.
Le noyau Linux * ne rentre jamais en mode réel (http://wiki.osdev.org/Real_Mode) une fois qu'il l'a quitté. Une fois que le bootloader a terminé son travail, un système d'exploitation décent garantit que le (s) processeur (s) sont tous en [protected] (http://wiki.osdev.org/Protected_Mode)/[long] (http://wiki.osdev.org/Long_Mode # Long_Mode) mode jusqu'à un redémarrage. Peut-être que vous vouliez dire [anneau 0] (https://en.wikipedia.org/wiki/Protection_ring)? – 3442
oui droit je voulais dire 0 anneau, édité. Merci –
Le moyen le plus simple d'entrer en mode noyau sous Linux est d'écrire votre propre pilote. –