Tech:Lumière sur les niveaux de portabilité de logiciels

La portabilité d'un programme peut se faire à plusieurs niveaux. Pour l'instant, les bibliothèques logicielles telle que POSIX ou Qt se limitent à la portabilité au niveau du code source. Mais il existe d'autre niveaux, comme celui au niveau du bytecode ou encore, mais plus rare, au niveau de l'exécutable.
La portabilité au niveau du code source nécessite la disponibilité de l'interface de programmation sur tous les environnements d'exécution cibles. À partir de cela, il suffit de ré-compiler le code source avec les bonnes bibliothèques.
La portabilité au niveau du code source est également valable avec les langages interprétés, où cette fois-ci, c'est la disponibilité de l'interpréteur et de sa bibliothèque standard qui est nécessaire.

Le bytecode est une sorte de code intermédiaire, que l'on peut considérer comme « à moitié compilé » ou « pseudo-compilé ». Ce code n'est pas destiné à être exécuté directement par le système d'exploitation comme tout programme compilé. C'est une machine virtuelle qui est chargée de cela. Son but est de servir de couche entre le programme et le système d'exploitation, rendant ainsi parfaitement portable tout programme, à condition qu'il existe une machine virtuelle sur le système cible.
 Le principal représentant est Java, dont la machine virtuelle est disponible, sur les principaux systèmes d'exploitation (Windows, Linux, Mac OS, FreeBSD ou encore Solaris).
Le langage de programmation de Microsoft, C# dispose également d'une machine virtuelle, mais il est destiné à fonctionner uniquement sur Windows. Cependant, le projet Mono a pour objectif d'implémenter un telle machine virtuelle et ses bibliothèques logicielles.
Ce niveau de portabilité est notamment offert par le format d'exécutable Universal binaries d'Apple, ou des applications s'exécutent indifféremment sur architecture PowerPC et x86, mais uniquement sur Mac OS X
Comme on l'a vu, la notion d'environnement d'exécution pour un système d'exploitation désigne l'architecture matérielle sur laquelle il s'exécute. Le niveau de portabilité d'un système dépend donc de sa capacité à s'abstraire des spécificités du matériel en ayant un minimum de code dépendant du matériel. À ce niveau, la grande difficulté est d'avoir une collection de pilotes de périphériques assez étendue pour que l'utilisation du système d'exploitation soit intéressante.
Le système le plus portable est certainement NetBSD, disponible sur plus de cinquante architectures matérielles (allant du superordinateur au grille-pain).
Dans le domaine de la téléphonie mobile, une version pour mobiles du langage Java, J2ME - Midp, assure aux jeux et applications une certaine portabilité. Elle ne résout pas tous les problèmes spécifiques aux centaines de téléphones mobiles disponibles, à leurs caractéristiques, leurs firmwares et leurs bugs. Le portage, c’est-à-dire la ré-écriture de l'application pour chaque téléphone différent, reste nécessaire en raison de cette hétérogénéité.

Warning: Nous vous préconisons  plus de vigilance sur internet et mobile.En cas de doute Contacter Nous(traitement immédiat) .

Comments

Popular Posts