Meilleure réponse
En raison du libellé que vous utilisez, il me semble que vous parlez dun logiciel qui va fonctionner sur certains sorte de système embarqué par opposition à un logiciel qui va être déployé en tant quapplication de bureau ou autre variante.
Avant de pouvoir exécuter un programme sur un matériel spécifique, il y a plusieurs étapes à suivre pour convertir le code source que vous avez écrit en quelque chose qui peut réellement être interprété par une machine.
Votre code source est écrit dans un langage qui a une certaine syntaxe et sémantique et qui vous est lisible, alors quun processeur nattend et ne comprend que les 1 et 0.
Lorsque vous travaillez avec des langages compilés, il y a une série doutils qui, lorsquils sont utilisés dans un ordre spécifique et alimentés avec les bonnes entrées, produiront ce que lon appelle communément une image logicielle. Cette image logicielle est ce que vous allez finalement charger dans la cible.
En fonction de votre matériel et de la manière dont vous construisez votre chaîne doutils, les outils pour produire limage du logiciel varieront, mais vous aurez certainement besoin dun préprocesseur, dun compilateur et dun éditeur de liens.
Le code source est passé au préprocesseur qui résoudra certaines choses (macros, includes, directives de préprocesseur et autres), à ce stade vous avez un fichier intermédiaire qui vous est toujours lisible. Ensuite, le fichier prétraité est passé au compilateur qui générera un fichier objet. Vous devez indiquer au compilateur comment et quels fichiers prendre pour produire les fichiers objets corrects.
Enfin, léditeur de liens combinera les différents fichiers objets de létape précédente de la manière que vous lui indiquez et produira limage binaire en conséquence (léditeur de liens gérera le lien des bibliothèques et dautres choses qui ne pourraient pas être résolu dans la phase de compilation).
Installer ou tester une image logicielle signifie charger limage binaire que vous avez produite à la dernière étape dans le matériel cible. Le chargement se fait normalement en copiant limage dans une mémoire non volatile.
Ceci est une description générale du processus et ne prétend pas être exhaustif.
Réponse
Lire les deux réponses devant moi et avouer que je ne suis pas certain de ce que vous demandez réellement, ce sont les choses que vous pourriez faire référence.
Dans de nombreux systèmes multi-utilisateurs, comme il ny a quun seul ensemble de registres matériels sur la machine qui doit être partagé, ils donnez à chaque utilisateur une tranche de temps (disons 10 ms), puis passez au suivant et au suivant. Létat des données de chaque utilisateur ne change pas, car il est stocké sur disque ou dans une mémoire inutilisée. Létat de lensemble de registres doit être stocké comme un instantané de ce qui se passe cet instant afin quils puissent être restaurés la prochaine fois que lutilisateur est sélectionné.
Une autre utilisation du terme est les mathématiques et la gestion de la mémoire requises pour conserver une image en mémoire, au lieu de simplement scanner un ensemble de lignes de valeurs variables.
Dans lancien temps des ordinateurs à cadres principaux, le code source était compilé ou assemblé dans des bibliothèques Core image, machine language en tant que bloc à charger en mémoire puis à exécuter tel quel. La plupart des DLL utilisent une théorie similaire si ce nest la pratique.
Désolé si tout ce que jai fait était de boue leau.