Effectivement CDE permet de faire à peu près la même chose que CARE (pour être honnête, CARE est arrivé après CDE).
Par contre (et c'est très important), CDE a 2 gros inconvénients par rapport à CARE :
- CDE n'est plus vraiment maintenu
- CED est plus un prototype qu'un programme bullet proof
Ce qui veux dire que :
- sur un noyaux/glibc récent, CED ne fonctionne pas à cause de certains sycalls non pris en charge
- nous avons beaucoup d'exemple sur lesquels CDE ne marche pas (re-exécution non fonctionnelle), alors que CARE fonctionne correctement
- CDE est beaucoup moins portable que CARE
Sur la portabilité de CARE il sera possible d'écrire un article entier. Pour faire simple :
- CARE est compilé statiquement afin de ne dépendre d'aucune libraires externe (facile à faire avec CDE)
- CARE n'utilise aucun syscall qui n'était pas présent sur le noyaux 2.6.0 (un peu plus technique à faire avec CDE)
- Si le noyaux sur lequel est tourné la re-exécution ne supporte pas certains sycalls demandé par l'application re-exécuté, CARE émulera les syscalls en question, suivant ce qui est disponible sur le noyaux de la machine effectuant la re-exécution (beaucoup plus difficile)
[^] # Re: CDE: Automatically create portable Linux applications
Posté par Rémi Duraffort (site web personnel) . En réponse à la dépêche CARE et la reproductibilité des exécutions. Évalué à 5.
Effectivement CDE permet de faire à peu près la même chose que CARE (pour être honnête, CARE est arrivé après CDE).
Par contre (et c'est très important), CDE a 2 gros inconvénients par rapport à CARE :
- CDE n'est plus vraiment maintenu
- CED est plus un prototype qu'un programme bullet proof
Ce qui veux dire que :
- sur un noyaux/glibc récent, CED ne fonctionne pas à cause de certains sycalls non pris en charge
- nous avons beaucoup d'exemple sur lesquels CDE ne marche pas (re-exécution non fonctionnelle), alors que CARE fonctionne correctement
- CDE est beaucoup moins portable que CARE
Sur la portabilité de CARE il sera possible d'écrire un article entier. Pour faire simple :
- CARE est compilé statiquement afin de ne dépendre d'aucune libraires externe (facile à faire avec CDE)
- CARE n'utilise aucun syscall qui n'était pas présent sur le noyaux 2.6.0 (un peu plus technique à faire avec CDE)
- Si le noyaux sur lequel est tourné la re-exécution ne supporte pas certains sycalls demandé par l'application re-exécuté, CARE émulera les syscalls en question, suivant ce qui est disponible sur le noyaux de la machine effectuant la re-exécution (beaucoup plus difficile)