|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : septembre 2011 Messages : 4 ![]() |
Bonjour,
Suite à de nombreuses recherches, vaines, je viens poser ma question ici. J'ai en vue de programmer en C / assembleur un programme tournant sous Unix permettant la capture d'instances et la remise en route de programmes à un moment T. J'envisage au long terme un programme qui serait capable d'analyser l'ensemble du processus en boite noir. (échanges réseaux / appels systèmes / modifications de fichiers, etc) ainsi que l'automatisation de tâche (intégration d'un mode console re-exécutante une partie du programme préalablement enregistrée) Pour donner des exemples je peux citer ce que fais Vmware avec ses machines virtuelles, (snapshot), ou bien valgrind / gdb (analyse et suivit du flux d'exécution). Je souhaite si possible avoir des pistes ou de la documentation sur lesquelles je pourrais m'appuyer pour débuter. Merci Cordialement |
|
|
10
|
|
|
#2 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
ptrace() ?
Je n'ai pas compris ce que tu cherches à faire exactement. En fait je ne comprend pas le rapport entre d'une part le mécanisme de snapshot/restart que tu sembles vouloir mettre en place, et ta question sur la façon de tracer un process. |
|
|
10
|
|
|
#3 |
|
Invité régulier
![]() Inscription : septembre 2011 Messages : 4 ![]() |
Je connais ptrace et strace. Ils sont efficaces pour tracer les appels systèmes.
Je vais essayer de reformuler. Ce que je souhaiterais entreprendre dans un premier temps est la réalisation d'un programme qui sauvegarde l'état d'un processus (en incluant les registres, la pile, les files descriptors, la mémoire allouée, etc). Par manque de documentation j'ai des difficultés à trouver une piste. Selon moi, cela débuterait par une sauvegarde du contexte d'exécution et de données se trouvant dans /proc/. (Je n'ai que très peu d'idée du comment je pourrais m'y prendre pour réussir par la suite à relancer le processus) C'est surtout par curiosité personnel. Pour faire simple il agirait comme un programme de reverse ingienering en décortiquant un fonctionnement et faciliter sa compréhension. La partie snapshot/restart me permettrait de travailler facilement sur plusieurs moment du programme, en modifier les composantes et relancer le cours par la suite (apprendre et étudier le comportement face à tel ou tel modification). La partie traçage servirait quant à elle à fournir une quantité plus importante d'information. Si cette partie fonctionne bien j'envisage une évolution permettant d'enregistrer une série d'action, puis de les reproduire (analyse du comportement et association à un commande en console) Exemple : Je possède un pare feu avec un fichier de configuration. Certaines actions sur ce programme altère ce fichier (changer les règles de filtrage). Le programme modifie donc le fichier, et remet à jour ses règles. Je souhaite reproduire ces actions sans passer par une interface graphique. Ce n'est qu'un exemple. L'objectif étant avant tout lucratif. |
|
|
01
|
|
|
#4 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
Si c'est juste pour suspendre un processus le temps de regarder un truc, tu peux te contenter de lui envoyer un SIGSTOP.
Après, si tu veux carrément stopper le processus, sauvegarder son état dans un fichier, le virer de la mémoire et pouvoir le redémarrer plus tard à partir du fichier sauvegardé, sache que ça s'appèle du checkpoint-restart, que c'est extrêmement complexe et que ça se fera forcément au moins en partie au niveau du kernel. Si tu cherches un peu checkpoint-restart tu verra qu'il existe de nombreux projets, et qu'aucun n'a encore vraiment abouti. |
|
|
10
|
|
|
#5 |
|
Invité régulier
![]() Inscription : septembre 2011 Messages : 4 ![]() |
Merci pour la réponse.
C'est effectivement ce que je souhaite faire. Je vais me renseigner, si vous avez de la documentation ou des recommandations à ce sujet j'en serais heureux. |
|
|
10
|
|
|
#6 |
|
Invité régulier
![]() Inscription : septembre 2011 Messages : 4 ![]() |
J'ai fait mes recherches et commence la programmation noyau.
Je poste le lien sur lequel je travaille actuellement. http://www.tldp.org/LDP/lkmpg/2.6/html/index.html http://jungla.dit.upm.es/~jmseyas/li...kers-docs.html Je suis ouvert à d'autres pistes concernant le checkpoint / restart. Cordialement |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com