|
Les outils de développement libres GNU
Last modified:
12/19/2007 03:36 PM
Les outils de développement libres GNU
Le projet GNU, initié par Richard Stallman en 1984, vise à créer un
système d'exploitation complet qui réponde aux principes du logiciel
libre: chacun des programmes qui le composent est disponible sous
forme de code source et peut être librement modifié voire incorporé dans
un autre logiciel libre.
Une partie importante de ces programmes est réalisée au sein de la
Free Software Foundation (FSF), une
organisation à but non lucratif basée à Boston aux Etats-Unis qui
finance une partie du développement du projet GNU. La société
américaine
Cygnus Software
(Cygnus: Your GNU Support) joue également un rôle important dans
le projet GNU.
Tous les logiciels développés par la FSF sont placés sous la
licence GPL qui impose une restriction sévère à l'usage
qui peut être fait de leurs sources: on ne peut y apporter de modifications
ou les intégrer dans d'autres programmes qu'en divulguant les sources
de ces modifications ou de ces programmes.
Une exception notable est la librairie C, qui est placée sous
licence LGPL: elle peut être utilisée sans restriction
particulière pour réaliser des logiciels propriétaires.
D'autres logiciels développés indépendamment de la FSF font officiellement
partie du projet GNU. Certains sont sous licence GPL et d'autres non.
Enfin plusieurs projets font référence dans leur nom au projet GNU, sans
avoir été officiellement approuvés par la FSF.
La plupart des outils du projet GNU se trouvent dans les différentes
variantes du système Linux (que certains baptisent GNU/Linux), mais
aussi, pour certains cas, dans l'offre commerciale de vendeurs de
systèmes Unix.
Le projet GNU reprend un élément essentiel de la ``philosophie Unix'':
utiliser des programmes qui réalisent chacun une tâche précise, qui sont
hautement configurables, et qui peuvent être combinés entre eux pour
réaliser des opérations complexes.
Parmi les qualités premières des logiciels GNU, on peut noter:
- La portabilité: les programmes du projet GNU sont disponibles
pour la majorité des système Unix et souvent aussi pour d'autres systèmes
d'exploitation.
- Le respect des standards: le projet GNU vise à réaliser une
implémentation d'Unix conforme au standard international POSIX. Les
différents outils de programmation GNU sont toujours respectueux
(mais avec parfois des extensions spécifiques) des spécifications publiques
des langages de programmation.
- Les performances: les outils GNU égalent le plus souvent en qualité,
et parfois dépassent, les outils commerciaux correspondants.
A l'usage, il s'avère que les outils GNU sont d'une approche
sensiblement plus difficile que les environnements de programmation
intégrés commerciaux, mais qu'ils se révèlent avec l'expérience
incomparablement plus satisfaisants.
- Les compilateurs sont des logiciels qui servent à
convertir le code source d'un programme (la suite
d'instructions telle qu'elle a été écrite par le programmeur) en un
code machine qui peut s'exécuter sur le processeur d'un
ordinateur. Les langages compilés les plus courants actuellement sont:
- C, le langage le plus couramment employé à l'heure actuelle,
notamment pour la programmation système. Le noyau Linux et la plupart des
logiciels du projet GNU sont écrit en langage C.
- C++ et Objective-C, deux extensions orientées objets du langage C.
- Fortran, un langage très ancien mais encore souvent utilisé pour les
calculs numériques.
- Pascal, un langage utilisé principalement dans l'enseignement.
- Eiffel, un langage à objets purs créé par le français Bertrand
Meyer, qui met l'accent sur la qualité des programmes.
- Ada, le langage du TGV, de la navette
spatiale américaine, des centrale nucléaires, de Boeing, d'Airbus,
du contrôle aérien nord-américain...
- Java, langage à objet portable pour le Web et les applications
commerciales.
- Les interpréteurs permettent d'exécuter directement
un programme. Les principaux langages interprétés sont des langages
de scripts comme Perl, Python, Tcl/Tk.
Il permettent de combiner les outils Unix afin de réaliser des tâches
complexes.
- Les outils de contrôle de source servent à gérer les
différentes versions d'un logiciel et à coordonner le travail des
équipes de programmeurs.
- Les débogueurs aident à corriger les fautes de
programmations (``bogues'') en permettant au programmeur d'inspecter les
valeurs des variables d'un programme de façon interactive au cours
de son exécution.
- Les éditeurs de textes permettent aux programmeurs
d'écrire et de modifier le code source de leurs programmes.
- Le compilateur gcc est la pièce maîtresse du projet GNU.
C'est un compilateur C, C++ et Objective-C de très grande qualité.
Ses performances dépassent souvent celles des meilleurs compilateurs
commerciaux. Il est développé, notamment par Richard Stallman, au
sein de la FSF.
EGCS est une variante de gcc actuellement développée
par une équipe de programmeurs animée par la société
Cygnus Software.
DJGPP est un portage de gcc sous MS-DOS réalisé par
D.J. Delorie.
- Glibc est la version GNU de la librairie standard C.
Le projet GNU propose également une implémentation de la librairie
standard C++.
D'autres librairies, comme gdb (gestion des données persistantes)
ncurses (gestion des terminaux textes) ou nana
(assertions étendues, pour la ``programmation par contrats'') viennent
compléter la librairie C standard.
- GNU Fortran, aussi connus sous le nom g77, est
un compilateur Fortran 77.
- GNAT est le compilateur ADA 95 du projet GNU. Il est
développé par la société
Ada Core Technologies et placé sous licence GPL.
- Gpc, compilateur Pascal du projet GNU, est développé
par l'université d'Essen en Allemagne.
- SmallEiffel est le compilateur Eiffel du projet GNU.
Il est développé en France à Nancy par le LORIA.
- Japhar est la machine virtuelle Java (JVM) officielle du
projet GNU. Kaffe est une autre machine virtuelle Java réalisée
par la société
Transvirtual Technologies et placée sous licence GPL.
- Guavac est un compilateur Java.
- Emacs est un éditeur de textes multifonctions,
configurable à volonté pour s'adapter aux idiosyncrasies de chaque
langage de programmation et qui peut faire aussi office d'environnement
intégré de programmation (IDE). C'est le premier programme majeur
réalisé depuis 1981 par Richard Stallman.
Xemacs est une variante
d'Emacs développée indépendamment de la FSF.
- Make permet d'automatiser l'ordonnancement des
différentes étapes de compilation qui mènent du code source (qui se
trouve le plus souvent sous forme de nombreux fichiers différents) au
code exécutable.
- Automake et Autoconf sont deux compléments de
Make qui permettent de s'affranchir en grande partie des
problèmes de portabilité entre les plateformes.
- Gdb est un débogueur pour les langages C, C++ et Fortran.
Plusieurs programmes aditionnels, et notamment l'excellent
DDD, apportent une interface graphique
au-dessus de gdb qui rend cette activité un peu moins
pénible pour le programmeur.
- DejaGnu est un système qui permet d'automatiser le test
des programmes, une étape importante si l'on souhaite maintenir un
haut niveau de qualité au cours de la vie d'un logiciel.
- RCS et CVS sont deux logiciels de contrôle de
versions de sources. CVS, qui permet à des programmeurs situés
à distance les uns des autres de coordonner leur travail, a notamment
été adopté par les principaux projets de logiciels libres comme
Mozilla, le navigateur Web libre
de Netscape. CVS est principalement développé et supporté par
la société
Cyclic Software.
- GNUStep est un projet d'implémentation des spécifications
OpenStep, l'environnement graphique développé par le français
Jean-Marie Hulot pour la société NeXT, et repris par Apple pour son
système d'exploitation Rhapsody.
- GNOME est un modèle d'objets distribués qui vise à
réaliser un environnement de travail complet et qui repose sur le
standard international
CORBA
et la librairie graphique
Gtk.
Le projet GOME bénéficie du soutien affirmé de la société
Red Hat Software.
- GNU indent est un embellisseur de code source C.
- Guile est un implémentation du langage scheme
qui est considérée comme le langage de scripts officiel du projet GNU.
- Gawk est l'implémentation GNU du langage AWK,
l'un des ancêtres des langages de scripts actuels.
- Perl est un autre langage de scripts officialisé par le
projet GNU. Il est développé par Larry Wall et n'est pas placé sous
licence GPL. Deux autres langages de scripts, Python et
Tcl/tk, sont également omniprésents sur les différentes
variantes du système Linux. L'un comme l'autre ne font pas partie
officiellement du projet GNU, bien que Tcl/Tk soit utilisé par
DejaGNU.
- Gettext est un ensemble d'outils qui aide à
l'internationalisation (traduction en langues étrangères) des logiciels.
- Bison et Flex sont des implémentations
des outils Unix d'aide à la réalisation de compilateurs Yacc
et Lex.
Les outils de développement GNU ont fait leurs preuves depuis bientôt dix
ans dans les milieux les plus exigeants (industrie du logiciel et instituts
de recherche). Ils constituent la fondation des systèmes d'exploitation
libres actuels, comme le système Linux.
|
|