Chargeurs de programmes pour Ndless...
Posted: 01 Apr 2012, 14:42
tangrs, déjà auteur de nombreux travaux et programmes fort intéressants pour la Nspire (entre autres: compilation de C++ avec Ndless, effet rétro à l'extinction de la machine, Nspire Movie Player, prototype de multi-threading, horloge), continue à travailler sur le chargement de programmes
Les lecteurs se demanderont peut-être pourquoi il est utile d'avoir ce genre de chargeurs. La réponse est simple: pour pouvoir bénéficier d'une facilité de programmation plus proche de ce qui se fait sur la plupart des environnements de programmation, dont les TI-68k d'ailleurs - par exemple, les variables globales relogées
L'absence de relocation automatique nécessite de faire ces relocations à la main, ce qui complique singulièrement la réalisation des gros programmes. Ndless fournit nl_relocdata, mais c'est fastidieux à utiliser, et peut être difficile.
Bref, un petit peu d'historique des loaders de tangrs:
* il y a des mois, tangrs avait fait ndless-elfloader, prototype de chargeur ELF, c'est à dire le format extensible et portable de fichiers objet et binaires, utilisé sur Linux depuis des années. C'était assez compliqué et lourd, et certains fichiers à charger étaient très gros alors qu'ils ne contenaient que très peu de code. Voir http://www.omnimaga.org/index.php?topic=11904.0 pour plus de détails.
* hier, il a fait un chargeur ajouté au programme par un outil côté ordinateur, qui a pour but de reloger le programme avant de déclencher son exécution, ndless-standalone-relocator: http://www.omnimaga.org/index.php?topic=13117.0 . Et au cours de cette dernière discussion, "bFLT" a de nouveau été mentionné.
bFLT est un format beaucoup plus simple qu'ELF, il peut facilement être obtenu à partir de fichiers ELF et facilement chargé, mais il est suffisant pour résoudre les plus gros problèmes de relocation que nous rencontrons actuellement. De plus, il est utilisable pour gérer des librairies dynamiques et des binaires compressés (le loader bLFT du kernel Linux sait faire).
* tangrs s'est donc vraiment intéressé à bFLT... et quelques heures plus tard, le nouveau prototype ndless-bflt-loader est né, avec sa documentation développeur pour ajouter le convertisseur ELF -> bFLT à l'environnement de développement et changer les Makefiles
Il l'a annoncé dans le même topic que ndless-standalone-relocator: http://www.omnimaga.org/index.php?topic ... #msg240684 .
Puis un topic a été créé: Ndless bFLT loader .
Gageons que ce loader va continuer à se développer rapidement, puisque tangrs développe vite, et qu'il sera vite adopté (par nSDL, par exemple)
Les lecteurs se demanderont peut-être pourquoi il est utile d'avoir ce genre de chargeurs. La réponse est simple: pour pouvoir bénéficier d'une facilité de programmation plus proche de ce qui se fait sur la plupart des environnements de programmation, dont les TI-68k d'ailleurs - par exemple, les variables globales relogées
L'absence de relocation automatique nécessite de faire ces relocations à la main, ce qui complique singulièrement la réalisation des gros programmes. Ndless fournit nl_relocdata, mais c'est fastidieux à utiliser, et peut être difficile.
Bref, un petit peu d'historique des loaders de tangrs:
* il y a des mois, tangrs avait fait ndless-elfloader, prototype de chargeur ELF, c'est à dire le format extensible et portable de fichiers objet et binaires, utilisé sur Linux depuis des années. C'était assez compliqué et lourd, et certains fichiers à charger étaient très gros alors qu'ils ne contenaient que très peu de code. Voir http://www.omnimaga.org/index.php?topic=11904.0 pour plus de détails.
* hier, il a fait un chargeur ajouté au programme par un outil côté ordinateur, qui a pour but de reloger le programme avant de déclencher son exécution, ndless-standalone-relocator: http://www.omnimaga.org/index.php?topic=13117.0 . Et au cours de cette dernière discussion, "bFLT" a de nouveau été mentionné.
bFLT est un format beaucoup plus simple qu'ELF, il peut facilement être obtenu à partir de fichiers ELF et facilement chargé, mais il est suffisant pour résoudre les plus gros problèmes de relocation que nous rencontrons actuellement. De plus, il est utilisable pour gérer des librairies dynamiques et des binaires compressés (le loader bLFT du kernel Linux sait faire).
* tangrs s'est donc vraiment intéressé à bFLT... et quelques heures plus tard, le nouveau prototype ndless-bflt-loader est né, avec sa documentation développeur pour ajouter le convertisseur ELF -> bFLT à l'environnement de développement et changer les Makefiles
Il l'a annoncé dans le même topic que ndless-standalone-relocator: http://www.omnimaga.org/index.php?topic ... #msg240684 .
Puis un topic a été créé: Ndless bFLT loader .
Gageons que ce loader va continuer à se développer rapidement, puisque tangrs développe vite, et qu'il sera vite adopté (par nSDL, par exemple)