Fondamentalement, je suis d'accord avec rpj. Le Code doit être dans l'espace utilisateur, sauf si c'est VRAIMENT nécessaire.
Mais, pour mettre en valeur votre question, quelle condition?
Certaines personnes prétend que le pilote a être dans le noyau, ce qui n'est pas vrai. Certains pilotes ne sont pas sensibles au temps, en fait, beaucoup de pilotes sont comme ça.
Par exemple, l'encadreur, le CCF de la minuterie, les composants i2c, etc. Ces pilotes peuvent être facilement déplacé vers l'espace utilisateur. Il y a même certains systèmes de fichiers qui sont écrites dans l'espace utilisateur.
Vous devez vous déplacer vers l'espace noyau d'où la surcharge, par exemple. l'utilisateur noyau de swap, devient inacceptable pour votre code fonctionne correctement.
Mais il y a beaucoup de façon de traiter avec cela. Par exemple, /dev/mem fournit un bon moyen d'accéder à la mémoire physique, tout comme vous le faites à partir de l'espace du noyau.
Quand les gens parlent de va RTOS, je suis généralement sceptique.
Ces jours-ci, le processeur est si puissant, que la plupart du temps, le temps réel de l'aspect devient négligeable.
Mais même, disons-le, vous avez à traiter avec SONET, et vous avez besoin de faire une protection de commutation à l'intérieur de 50ms (en fait même moins, depuis le 50ms limite s'applique à l'ensemble de l'anneau), vous pouvez toujours faire la commutation très rapide, SI votre matériel le supporte.
Beaucoup de l'encadreur de ces jours peut vous donner un support matériel qui réduit la quantité de écrit que vous devez faire. Votre travail est fondamentalement répond à l'interruption aussi rapidement que possible. Et Linux est pas mal du tout. La latence d'interruption que j'ai eu était de moins en moins de 1 ms, même si j'ai des tonnes d'autres interruptions en cours d'exécution (par exemple. IDE, ethernet, etc.).
Et si cela ne suffit toujours pas, alors peut-être votre conception du matériel est mauvais. Certaines choses sont mieux gauche sur le matériel. Et quand j'ai dit que le matériel, je veux dire l'ASIC, FPGA, Processeur Réseau, ou d'autres fonctions de la logique.