Bibliothèques, environnement, dépendances

De Wiki info-lab.fr
Aller à : Navigation, rechercher

Présentation

  • Une bibliothèque est un ensemble de fonctions réunies dans un fichier afin qu'un programme puisse appeler ces fonctions et les utiliser. Seul les imbéciles désirant employer un anglicisme pensant que cela masquera leur ignorance crasse utiliseront le terme "librairie" (librairie = boutique où l'on vent des livres. Bibliothèque = ensemble de livres, collection de livres et dans notre cas ensemble, collection de fonctions).
  • Afficher un caractère sur la sortie standard, supprimer un fichier, lire le nom d'un fichier dans son répertoire sont des exemples de fonctions. La plupart des systèmes d'exploitations possèdent un certain nombre de bibliothèques possédant de nombreuses fonctions. Quand un développeur a besoin d'une fonction pour son application, il recherche si quelqu'un a déjà développé cette fonction, comment appeler la fonction dans la bibliothèque et enfin savoir si cette bibliothèque est naturellement présente sur le système cible de son application. Si la bibliothèque est absente du système cible, elle devra y être ajoutée. Si personne n'a encore pensé à créer cette fonction ou que la bibliothèque correspondante n'est pas libre d'utilisation, le développeur pourra développer la fonction et soit l'inclure à son exécutable, soit la déposer dans une bibliothèque afin que d'autres programmes puissent aussi l'appeler.
  • Ajouter ses fonctions dans une bibliothèque plutôt que dans un exécutable permet donc de réutiliser plus facilement son travail, celui des autres, de partager le sien, et d'éviter de réinventer l'eau tiède.
  • Une bibliothèque incluse dans l'exécutable d'une application est désignée par le vocable de "statique". Si elle est externe à l'exécutable on la nomme "dynamique" ou "partagée". Par convention sur les systèmes *NIX une bibliothèque statique a pour extension .a (pour archive), alors qu'une bibliothèque dynamique a pour extension .so (pour Shared Object). Les bibliothèques dynamiques sont en général stockées dans /lib ou mieux /usr/lib.
  • Il arrive très souvent que /usr/lib contienne des liens symboliques sans précision de version pointant vers le véritable fichier mentionnant lui la version. Par exemple :
lrwxrwxrwx 1 root root  19 2010-09-29 19:21 libx.so.0 -> libx.so.1.9.2
  • La commande ldd (List Dynamic Dependencies) affiche les bibliothèques qu'un exécutable ou qu'une autre bibliothèque peut utiliser, puisque les bibliothèques peuvent être liées entre elles.

Une bibliothèque occupant un espace mémoire différent de l'exécutable qui la appelée, elle peut-être en théorie utilisée par d'autres programmes qui ont besoin des fonctions qu'elle propose.

Boite à outils (Toolkit) et Socle d'applications (FrameWork)

Un toolkit ou boite à outils est un ensemble de bibliothèques et de fonctions en général spécialisées dans un domaine particulier, le plus souvent celui de la création d'interfaces graphiques. QT et GTK+ sont des exemples de boites à outils.
Un socle ou cadre d'applications ou cadriciel (framework) est un grand ensemble de composants logiciels tels que : bibliothèques, outils, paramètres, scripts, bases de données, exécutables, fichiers divers ... Contrairement à une boite à outils (toolkit), un cadriciel est plus vaste, plus complet et par nature moins spécialisé. Il permet souvent le développement d'applications complexes en fournissant une aide au développement sur des sujets aussi divers que l'interface graphique, les connexions réseau, le squelette... en mettant en avant certaines bonnes pratiques communes : Une application développée avec l'aide d'un cadriciel sera sans doute plus "standard" dans son architecture qu'une application développée sans. Le même cadriciel sert aussi en général à maintenir l'application et l'accompagne pendant toute sa mise en production. Les cadriciels les plus connus sont Django, Eclipse, .Net, Ruby on rails, Zend et Zope.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Outils