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.
A voir également:

2 réponses

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
Plissken
 
Merci gbenay!

Ta réponse était très claire.

Reste donc à savoir si je retiens cette solution.

Ciao et encore merci :o)
0
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