Fonctionnement d'un programme sous Linux

Plissken -  
 Manu -
Bonjour à tous !

J’aimerai savoir si lorsqu’on lance un programme sous Linux celui-ci est copié en RAM pour s’exécuter. En fait j’ai l’intention de faire une fonction de mise à jour automatique de mon programme principal. J’aimerai donc savoir si je peux supprimer mon programme originel sur le disque alors qu’il est lancé pour le remplacer par le nouveau. Bref, savoir si on peut supprimer sur le disque dur un programme lancé sans altérer le fonctionnement de ce dernier.

Merci d’avance pour toute réponse ou lien.

Plissken.

2 réponses

  1. gbenay Messages postés 61 Statut Membre 11
     
    bonjour,

    C'est le principe general de l'execution des programmes.
    Un programme devient a l'execution un processus. Il est en memoire (vive ou virtuelle, suivant son etat) et en mode execution ,sleep, .... suivant
    les ressources dont il a besoin, et ce que le systeme d'exploitation lui a attribue.
    La modification du source, puis sa compilation, puis son edition de lien
    ne peut alterer le processus, tant qu'il s'execute, sauf si dans le programme
    on a prevu une modification "dynamique" de celui-ci, ce qui tout en etant possible, est tres difficile a gerer.
    Comment savoir si a l'execution de telle instruction on est dans la nouvelle version ou dans l'ancienne.

    Je te conseille d'essayer sur des exemples simples pour voir leur
    comportement.

    Bon courage
    0
    1. Plissken
       
      Merci gbenay!

      Ta réponse était très claire.

      Reste donc à savoir si je retiens cette solution.

      Ciao et encore merci :o)
      0
  2. Manu
     
    Bonjour,

    On ne peux pas supprimer le fichier d'un programme actif sous Unix (bien qu'on puisse sans doute retirer son nom du répertoire).

    Un fichier "effacé" perdure jusqu'à ce qu'il ne soit plus ouvert.

    Il te faudra probablement gérer deux instances et ordonnancer la commutation.

    Manu.
    0