SYSTEMES OUVERTS ET LOGICIELS LIBRES : DEFINITIONS ET FORMATION ADAPTEES
Qu'est ce qu'un système ouvert ?
Quels systèmes informatiques peuvent être qualifiés d'ouverts ?
En quoi ces systèmes sont-ils vraiment ouverts?
Un élément de système ouvert donne-t-il obligatoirement lieu à normalisation ?
Comment son évolution est-elle assurée ?
Quels sont les avantages procurés par les systèmes ouverts ?
Qu'est-ce qu'un logiciel libre ?
Quelle différence entre un logiciel libre et un système ouvert ?
Quelques exemples de logiciels libres ?
Quelle est l'attitude des constructeurs et des éditeurs de logiciels face aux systèmes ouverts et aux logiciels libres ?
Ces ajouts, présentés par les constructeurs comme des améliorations, doivent-ils être considérés comme des pièges ou sont-ils bénéfiques ?
Alors comment faire pour se former correctement ?
Que penser des formations proposées par les constructeurs ? Ne sont-ils pas les mieux placés pour délivrer de la formation sur leurs machines ?
Est ce qu'il ne suffit pas de se former aux normes existantes pour être à l'abri de toute surprise ?
Certaines techniques dans notre organisation demandent de suivre telle ou telle formation bien spécifique du matériel qui va être utilisé. Quelle attitude adopter ?
Je dois pourtant former mon personnel aux spécificités des matériels et des outils qu'il va prendre en charge. Comment faire pour préserver mon indépendance tout en me formant au mieux ?
En conclusion, que peut on attendre d'une formation axis&agix ?
A qui s'adresse t-elle ?

Qu'est ce qu'un système ouvert ?
Un système ouvert est un ensemble informatique, composé d'éléments matériels et logiciels dont chacun remplit conjointement les deux conditions suivantes :
- les spécifications internes du produit sont complètement disponibles. Les fonctionnalités ainsi spécifiées peuvent être implémentées telles quelles, ou librement reproduites par les spécialistes concernés.
- le produit est développé et commercialisé par plusieurs constructeurs ou éditeurs, c'est-à-dire qu'il a été implicitement «adopté» par l'industrie.


Quels systèmes informatiques peuvent être qualifiés d'ouverts ?
UNIX, TCP/IP, X11, Motif, les langages C, C++, SQL, Java, PostScript, HTML sont des systèmes ouverts.
L'architecture PC à base de processeur Intel est un système ouvert.

En quoi ces systèmes sont-ils vraiment ouverts?
Le code source d'UNIX a été largement diffusé. Ses mécanismes sont parfaitement connus et décrits dans un grand nombre de documents. Il est disponible sur une large variété de plate-formes.
De même, TCP/IP est standardisé par un ensemble de documents intitulés RFC (Request For Comment) accessibles à tous. On en trouve des implémentations pour toutes les plates-formes, sous tous les systèmes d'exploitation.
Mêmes constatations pour X11, Motif, que l'on peut mettre en oeuvre sous différents systèmes d'exploitation, pour C et C++ dont il existe des compilateurs pour tous les environnements, pour SQL, implémenté dans tous les SGBDR et pour Java.
Dans tous ces exemples, la facilité d'accès aux spécifications du produit est une volonté de la société créatrice.
L'autre critère pour accéder au statut de "système ouvert" est le succès et l'adoption du marché.
Tous les systèmes cités ci-dessus ont connu le succès c'est à dire qu'ils ont été repris par différents éditeurs ou constructeurs qui ont produit leurs propres versions.
Dans le domaine du matériel l'architecture "PC" est l'archétype du système ouvert, et les clones sont dans ce cas innombrables.

Il ne suffit donc pas de publier les spécifications internes d'un produit pour prétendre que c'est un système ouvert. Un logiciel dont les spécifications et même les sources sont publiés ne deviendra un système ouvert que s'il suscite l'intéret d'autres fournisseurs, qu'il est repris, et que la compétition s'installe.


Un élément de système ouvert donne-t-il obligatoirement lieu à normalisation ? Comment son évolution est-elle assurée ?
Non. UNIX a été développé par AT&T de façon totalement indépendante et en dehors de toute norme pendant de longues années. De même le bus PCI est clairement une création d'Intel, le langage PostScript une création d'Adobe, et Java une création de Sun. Dans tous ces cas c'est la disponibilité totale des spécifications qui rend le système «ouvert» (et qui fait son succès).
Toutefois les systèmes ouverts sont souvent pris en charge à terme, par des organismes de normalisation et des groupements d'utilisateurs ou de constructeurs. C'est le cas notamment:
- d'UNIX dont les spécifications sont précisées par l'Open group.
- du langage C qui est devenu une norme ANSI après plus de quinze ans d'existence;
- de TCP/IP dont l'évolution est coordonnée et supervisée par l'IAB (Internet Activities Board).


Quels sont les avantages procurés par les systèmes ouverts ?
- La multiplicité des fournisseurs potentiels rend l'offre très compétitive.
- Les développements peuvent être menés en toute sécurité avec toute la documentation et toutes les spécifications nécessaires.
- La pérennité des produits est assurée.

Qu'est ce qu'un logiciel libre ?
Un logiciel libre est un logiciel dont la licence prévoit
- La disponibilité des sources
- La possibilité de modifier, améliorer, adapter le logiciel sous réserve que ces modifications soient rendues accessibles à toute personne interessée
- La possibilité de copier et de diffuser le logiciel sous réserve que les termes de la licence ne soient pas modifiés.

Bien qu'il soit théoriquement possible de vendre un logiciel libre une des conséquences de ce type de licence est la gratuité de fait.


Quelle différence entre un logiciel libre et un système ouvert ?

Les logiciels libres sont une extension du concept de système ouvert.
Les systèmes ouverts prônent la liberté de comprendre et de maîtriser le fonctionnement interne d'un système et donc de le reproduire (les "UNIX-Like")
Les logiciels libres ajoutent la liberté de copier et de modifier le logiciel original.


Quelques exemples de logiciels libres ?
Le plus connu est évidemment Linux, un UNIX-like c'est à dire une réécriture d'UNIX.
Parmi les systèmes les plus répandus, on peut citer Samba, Tex - LaTex, Apache, MySQL, PostgreSQL, ...


Quel est l'attitude des constructeurs et des éditeurs de logiciels face aux systèmes ouverts et aux logiciels libres ?
Les constructeurs informatiques ont tous une offre basée sur UNIX, X11, et TCP/IP. Parfois contraints et forcés par la demande du marché, ils ont franchi le pas des systèmes ouverts et sont entrés dans l'arène que représente ce marché très concurrentiel. Toutefois, pour affirmer leur différence, et se protéger d'une concurrence trop vive, leurs systèmes sont parsemés de différences ou d'ajouts qui rendent les comparaisons moins évidentes. Ces ajouts ne sont pas clairement dissociés du reste du système.
L'engouement récent pour Linux a également provoqué des manoeuvres stratégiques visant à intégrer ce système. Le portage de Linux, système libre, sur des architectures propriétaires permet aux constructeurs de récupérer l'impressionnant catalogue d'applicatifs et de projets du monde Linux.


Ces ajouts, présentés par les constructeurs comme des améliorations, doivent-ils être considérés comme des pièges ou sont-ils bénéfiques ?
Tout dépend de la formation de celui qui va utiliser ces systèmes. Celui qui a reçu une formation standard et ouverte telle qu'elle est proposée par axis&agix saura faire la différence entre ce qui est standard et ce qui est rapporté et saura s'adapter aux circonstances.
Prenons l'exemple de l'administration des systèmes UNIX. La plupart des UNIX commerciaux comprennent des couches d'administration «simplifiées». Ces couches sont propriétaires. Celui qui se forme à l'administration UNIX à travers l'une de ces couches perd tout le bénéfice des systèmes ouverts. Il sera incapable de prendre en main une autre plateforme. Il sera incapable d'écrire des scripts d'installation «portables». Il sera incapable de réagir en cas de problème non prévu par son interface propriétaire. Dans ce cas, ces ajouts sont clairement un piège. A l'inverse, une personne formée dans les règles de l'art pourra parfaitement utiliser l'une de ces interfaces, à bon escient, comme un «raccourci» pratique, tout en sachant faire face à une situation imprévue. Dans ce cadre, les ajouts en question sont bénéfiques.


Alors comment faire pour se former correctement ?

Si on veut tirer parti des systèmes ouverts, il est impératif de se former réellement aux systèmes ouverts et non à telle ou telle plate forme particulière. Si on veut programmer portable en C, il est bien évident qu'il faut se former au tronc commun que l'on retrouve sur toutes les machines du marché et qu'il faut savoir identifier une librairie non standard pour éviter de l'employer, ou pour l'employer en connaissance de cause.


Que penser des formations proposées par les constructeurs ? Ne sont-ils pas les mieux placés pour délivrer de la formation sur leurs machines ?

Prendre une formation chez un constructeur après avoir acheté sa machine est dangereux. Les cours mélangent les ajouts propriétaires et les standards liés à UNIX et aux systèmes ouverts sans qu'il soit possible aux élèves de discerner la frontière entre les deux.
Certaines organisations perdent ainsi tout le bénéfice du choix des systèmes ouverts décidé par leur direction. Les équipes d'exploitation ou de développement peuvent devenir complètement dépendantes d'un constructeur suite à un mauvais choix de formation.
Dans le domaine du développement, une mauvaise formation peut aboutir à de véritables catastrophes dont on ne s'apercoit souvent que plusieurs années après !


Est ce qu'il ne suffit pas de se former aux normes existantes pour être à l'abri de toute surprise ?
Non, car les normes sont souvent en avance ou en retard sur les pratiques réelles du marché. Pendant longtemps le C ne fut pas normé officiellement et pourtant une norme de fait existait, représentée par le «Kernighan & Ritchie». Les «specs 1170» définies par X Open pour UNIX ont pendant longtemps été largement en avance sur la réalité du marché.


Certains techniques dans notre organisation demandent à suivre telle ou telle formation bien spécifique du matériel qui va être utilisé. Quelle attitude adopter ?

Les techniques, impliqués dans un déploiement de machines ou dans un projet de développement ont tendance à choisir des solutions de facilité. Ils sont peu concernés par la productivité à long terme ou par la portabilité et la pérennité des outils et des méthodes employées. C'est à la direction informatique qu'il incombe de prendre les bonnes décisions et d'imposer les stages les mieux adaptés à la politique de l'entreprise.


Je dois pourtant former mon personnel aux spécificités des matériels et des outils qu'il va prendre en charge. Comment faire pour préserver mon indépendance tout en me formant au mieux ?
Il n'y a aucun inconvénient à suivre des formations sur tel ou tel aspect propriétaire, complémentaire des systèmes ouverts, si les règles de base sont acquises. Dans cet esprit, axis&agix a créé des modules de spécialisation sur les principales plateformes UNIX du marché: AIX, HP-UX, Linux et SOLARIS. Ces modules ne traitent que des particularités de ces machines. Ils ne se recouvrent donc pas les uns les autres ce qui est un avantage supplémentaire par rapport aux formations constructeurs.


En conclusion, que peut on attendre d'une formation axis&agix ? A qui s'adresse t-elle ?
Un stagiaire formé chez axis&agix acquiert des méthodes de travail standards et portables. Il pourra tirer le meilleur parti des systèmes ouverts et des logiciels libres et en faire profiter son entreprise. On peut donc attendre d'une formation axis&agix des gains de productivité potentiels très importants pour le stagiaire et pour son employeur. Cette formation s'adresse à des entreprises dont les décideurs ont fait un choix total ou partiel en faveur des systèmes ouverts et des logiciels libres et qui sont pleinement conscients et informés sur les enjeux et les gains de productivité qu'ils peuvent en retirer.