Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/09/2011, 11h58   #1
Invité régulier
 
Homme
Inscription : septembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 4
Points : 5
Points : 5
Par défaut [program snapshot] Renseignement

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
krauser666 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/09/2011, 13h26   #2
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
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.
matafan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/09/2011, 14h04   #3
Invité régulier
 
Homme
Inscription : septembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 4
Points : 5
Points : 5
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.
krauser666 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 27/09/2011, 15h21   #4
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
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.
matafan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/09/2011, 16h45   #5
Invité régulier
 
Homme
Inscription : septembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 4
Points : 5
Points : 5
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.
krauser666 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/09/2011, 11h33   #6
Invité régulier
 
Homme
Inscription : septembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 4
Points : 5
Points : 5
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
krauser666 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h49.


 
 
 
 
Partenaires

Hébergement Web