peut être mis en œuvre sur checkpoint / redémarrage à l'aide du vidage du noyau d'un processus? Le fichier principal contient une mémoire de mémoire complète du processus, donc en théorie, il devrait être possible de Restaurer le processus au même état dans lequel le noyau a été largué. P>
4 Réponses :
Non, ce n'est pas possible en général sans support spécial du noyau. Le noyau conserve beaucoup d'état par traitement, tel que la table descripteur de fichier, les objets IPC, etc. p>
Si vous étiez disposé à gagner beaucoup d'hypothèses de simplification, tels que aucun fichier ouvert, pas de prises ouvertes, pas d'objets IPC vivants, pas de régions de mémoire partagées, et plus encore, alors en théorie em> ce serait possible, mais dans la pratique, je ne crois pas que ce soit possible avec Linux, même avec ces concessions. P>
Toutes les informations sont sur le DDR pourquoi n'est-il pas possible de restaurer la machine à l'état exact qu'il était avant le crash?
@ 0x90: Il est impossible de contrôler l'état entier, l'ECAUSE Les sockets, les IPCS, etc. ... dépendent non seulement du processus du point choisi, mais également de facteurs externes (autres processus, raccords Connections TCP, etc.)
Oui, c'est possible. GNU EMACS Cela pour optimiser son temps de démarrage. Il charge un tas de fichiers LISP pour produire une image puis décharge un noyau qui peut être redémarré. P>
Il y a plusieurs années, j'ai créé un patch pour GNU FAIT 3,80 pour faire exactement la même chose (en utilisant le code emprunté à GNU emacs). P>
Avec ce correctif, vous avez une nouvelle option pour faire: C'était une économie, car le projet était si important que le chargement de toutes les règles de fabrication de l'arbre source a fallu trente secondes! Avec cette optimisation, des constructions incrémentielles lancées presque instantanément, sans la pénalité de démarrage de la demi-minute. P>
aucun support de noyau n'est requis pour cela. Ce qui est requis, c'est la connaissance de la structure du fichier principal. P>
En plus de cette approche, il y avait un projet de point de contrôle de processus pour Linux il y a de nombreuses années (merveille ce qui est arrivé à cela). P> make -dump code>. L'utilitaire lit maintenant votre
Makefile code>, puis au lieu d'exécuter les règles, il produit un vidage de base qui peut être redémarré pour effectuer la construction réelle (évaluation de l'arborescence de règles analysée). P>
Pouvez-vous enrichir votre réponse avec un lien vers le code et d'autres références?
Je peux, mais cela prendrait du travail. Le patch faire code> n'a jamais été publié au public, afin de le trouver, je dois creuser certains disques archivés qui sont hors ligne. Le code de députage de base GNU emacs est facile à trouver dans le petit noyau de sources C.
Le non exec code> de EMACS ne vule pas un fichier noyau i>, mais mettant en œuvre des machines de tas de perstates, ce qui n'est pas exactement la même chose. L'affiche originale pourrait utiliser une bibliothèque de points de contrôle comme ftg.lbl.gov/projects/checkpointRestart Voir Aussi en.wikipedia.org/wiki/Checkperrying
Comme je l'ai commenté, vous pouvez rechercher Point de contrôle d'application et utiliser des bibliothèques comme Berkley Lab Checkpoint & redémarre . Cependant, ces bibliothèques n'utilisent pas exactement un noyau (5) a > Dump Fichier et plusieurs limitations et conventions sur ce que le programme de point de contrôle peut faire et ce qui est persistant exactement dans l'image de point de contrôle. (Ouvrir les descripteurs de fichier et les prises de réseau ne peuvent généralement pas être persistés). P>
Un peu unix (et peut-être des noyaux de linux patchés) avaient des installations de point de contrôle limitées dans le noyau lui-même (dans les années 1980, unix de l'Unix de 1980). P>
Debian a un certain nombre de packages que vous pourriez vouloir regarder: p>
Ceci est lié à la blog (Berkeley Lab Checkpoint / redémarrage), voir https://upc-bugs.lbl.gov/blcr/blcr/doc/html/faq.html#whatisblcr P>
criu - Point de contrôle et restauration dans les utilisateurspace https://criu.org/main_page p>
2.1 Docker -Supports de contrôle de contrôle dans les versions récentes, voir https://criu.org/docker P >
2.1. Contenerd - Daemon pour contrôler Runc P> Li> ol>
Ceci contient une installation de point de contrôle intéressant. P>
Voir aussi Openvz qui prend en charge la migration en direct: https://openvz.org/checkpointing_and_live_migration p>
news.ycomminator.com/item?id=12180914 Voir cet article avec beaucoup de discussion.
En fait, je demande un processus particulier.La la table descripteur de fichier est maintenue par le noyau et ne se trouve donc pas dans l'espace d'adressage du processus, la restauration des descripteurs de fichiers peut être gênant.