Est-il possible d'appeler un utilisateur de l'espace de fonction de rappel à partir de l'espace noyau sous Linux (ioctl)?

Est-il possible d'étendre l'interface ioctl dans Linux, de sorte que l'application de l'espace utilisateur peut envoyer un pointeur à une fonction de l'espace du noyau conducteur?

Je suis en particulier la pensée de façons de gérer le flux dans contrôlable par l'utilisateur moyen, mais le faire dans le noyau. Ces opérations pourraient être attachées à des modules du noyau, mais cela ferait de développement beaucoup plus facile que je n'aurais pas besoin de jouer avec le noyau au cours du développement.

Plus précisément, ce serait le processus:

  1. Les données sont lues par le conducteur d'un tampon.
  2. De données est gérée par ces fonctions définies par l'utilisateur.
  3. Peu plus de la manipulation se fait, peut-être avec quelques HW blocs.
  4. De données est utilisé par une application de l'espace utilisateur.
Utilisateur exécutant le code fourni dans l'espace noyau serait d'ouvrir un énorme trou de sécurité dans le système.
Je sais, mais même si ce n'était que pour le développement initial, il serait très utile.
Je ne pense pas qu'il veut exécuter en mode utilisateur code dans le contexte du noyau, mais plutôt quelque chose comme l'appel de son syscall de code d'utilisateur, disparition il du gestionnaire de rappel pointeur, un noyau de retour au mode utilisateur sur chaque appel, de sorte qu'il semble juste comme un rappel de l'utilisateur perspective de code.
C'est à peu près ce que je pensais, j_kubik.

OriginalL'auteur Makis | 2010-04-22