IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

[program snapshot] Renseignement


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 4
    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

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    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.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 4
    Par défaut
    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.

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    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.

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 4
    Par défaut
    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.

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 4
    Par défaut
    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

Discussions similaires

  1. Comment renseigner la variable autocommit dans my.ini
    Par Charroin dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/09/2003, 16h23
  2. [Dev-Pascal] Le compilateur renseigne la fonction Str comme illégale
    Par goto dans le forum Autres IDE
    Réponses: 3
    Dernier message: 16/08/2003, 17h22
  3. [Renseignement] Compilateur C pour µC
    Par Vincent PETIT dans le forum C
    Réponses: 6
    Dernier message: 19/01/2003, 01h24
  4. demande de renseignements
    Par canada1975 dans le forum Développement
    Réponses: 6
    Dernier message: 26/12/2002, 23h18
  5. Renseignement concernant MulDiv
    Par bastien dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/06/2002, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo