Tag Archives: linux

GNU, Linux, Logiciels Libres et Open Source

20030718-windows-sucks-more

Introduction

Ce texte vise à introduire l’historique de GNU/Linux et des Logiciels Libres et ’Open Source’ ainsi que leurs avantages de façon succinte. Strictement parlant, il serait plus correct de commencer chronologiquement par GNU et Richard Stallman. Cependant, j’ai préféré mentionner le plus familier avant d’aborder les parties moins connues afin de permettre au lecteur de mieux faire les connexions de lui-même.

Linus Torvalds et Linux

Linux est aujourd’hui un système d’exploitation compatible avec les normes Posix (et on peut dire compatible avec les systèmes et logiciels UNIX) très sécurisé, très rapide et très robuste, et en plus gratuit, dont le code source est disponible.

Linux fut d’abord un noyau de système d’exploitation, conçu et développé à l’origine uniquement par un jeune étudiant Finlandais, Linus Torvalds. En 1991, âgé de 26 ans, en deuxième année d’études en Sciences Informatiques à l’Université de Helsinki, Linus Torvalds débuta le développement sur une machine abordable avec un processeur Intel 386, mais ensuite, décida aussi de mettre le noyau ainsi que son code source à disposition d’autres personnes gratuitement, en les rendant accessible via Internet.

Les points qui motivèrent Torvalds à développer Linux furent :

  • Les énormes coûts associés aux matériels et logiciels nécessaires pour faire tourner un environnement UNIX
  • Les faibles capacités et la faible réactivité par rapport aux demandes d’améliorations des utilisateurs du système d’exploitation MINIX d’Andrew Tannenbaum, un professeur d’Université, utilisé surtout dans l’univers académique
  • Les grands délais associés au développement du système d’exploitation du projet GNU lancé presque neuf ans auparavant par Richard Stallman.

La disponibilité du code source au public fit qu’un nombre grandissant de personnes détectèrent des améliorations possibles et aussi envoyèrent leurs propres ajouts au code de Linus. Ainsi, le système Linux a toujours été continuellement amélioré depuis, grâce au travail de très nombreux collaborateurs de diverses parties du monde. Les collaborateurs travaillent de façon volontaires, et très souvent durant leur temps libre.

Plus de dix ans plus tard, de nos jours, Linux est un système qui est grandement utilisé dans tous les domaines ou sont nécessaires une fiabilité, une sécurité, une robustesse, une rapidité accrues, ainsi qu’une approche économiques avec en plus la possiblité d’adapter le code source.

Linux se retrouve ainsi dans les Compagnies commerciales, les Gouvernements, les secteurs de l’Education et de l’Enseignement avancé, la Recherche, etc…

De nombreuses compagnies commerciales ont migré leurs opérations et leurs logiciels vers Linux pour des raisons de fiabilité, de rapidité, de sécurité, de robustesse et d’impact économique positif. En effet, de nombreuses séquences à effets spéciaux dans les films récents sont produits sur des logiciels tournant sous Linux. IBM est un grand supporter de ce système d’exploitation. Oracle, PeopleSoft et SAP ont tous commencé la migration de leurs produits sous Linux.

Liens:

Richard Stallman, GNU et la FSF

Une licence particulière décrit ainsi l’utilisation du code source de Linux. C’est la licence GPL : la GNU Public Licence, qui stipule, entre autres, que quiconque modifie le code source mis à disposition a le devoir de réinjecter le nouveau code source dans la communauté des utilisateurs.

GNU est un projet préexistant à Linux, de Richard Stallman, un étudiant de Harvard qui a travaillé pendant longtemps aboratoire d’intelligence artificielle de MIT, le AI Lab. Dans l’environnement de AI Lab, il existait déjà une culture de partage de codes sources afin que tous les employés puissent apporter leur améliorations afin que la communauté internet au AI Lab en bénéficie. Ainsi, de nombreux problèmes avec les machines et les logiciels de l’époque furent réglés par ces collaborations et ces ententes tacites en plus de l’approche de partage de codes sources.

En 1983-1984, Richard Stallman fit de cette façon de procéder un projet, qui deviendra son projet de vie, son chef d’oeuvre en quelque sorte. L’idée de GNU est de produire et de promouvoir une combinaison de Système d’Exploitation et de Logiciels Libres compatibles UNIX, gratuitement si possible ou pour des sommes modiques à tous ceux qui en ont besoin.

Dans la sphère GNU, la notion de ’liberté’ dans ’Logiciel Libre’ décrit les caractéristiques suivantes pour l’utilisateur qui peut donc :

  • l’utiliser librement,
  • le donner à quelqu’un d’autre librement,
  • le modifier librement,
  • le vendre si on veut,
  • en utiliser une partie dans un autre travail, même non libre.

Richard Stallman fonda par la suite, la Free Software Foundation, FSF, spécifiquement pour promouvoir les notions de liberté liées aux logiciels.

De par son effort personnel initialement, et ensuite de par la contribution de centaines d’autres personnes de par le monde, le projet GNU se voit depuis son lancement, grandir en termes de logiciels libres disponibles. Par exemple, GNU Emacs, l’éditeur personnalisable, et GCC, l’ensemble de compilateurs GNU, sont des produits de Stallman à qui d’autres ont contribués.

Cependant, le Système d’Exploitation prévu par Richard Stallman, le GNU Hurd, fut très longtemps en développement ce qui rendait une bonne partie de son projet incomplet. En effet, bien que les logiciels GNU devenaient plus nombreux et disponibles, il fallait encore utiliser les coûteux environnements UNIX pour les utiliser alors que Stallman voulait démocratiser l’accès au couple Système d’Exploitation et Logiciels.

Liens:

GNU/Linux, collaboration via Internet et autres synergies

C’est donc grâce au mariage des concepts et des application GNU au système d’exploitation Linux, que purent se concrétiser les rêves de Richard Stallman. Ce dernier d’ailleurs insiste toujours à raison que ce que l’on appelle communément une distribution Linux devrait en fait être plus correctement nommé GNU/Linux.

Une distribution Linux est donc en fait une collection de Logiciels GNU avec le Système d’Exploitation Linux, généralement regroupés et distribués gratuitement (FTP, CDROMS) ou commercialement (généralament en boîte avec CDROMS) par des équipes voire des compagnies, comme Red Hat, SuSe, Mandrake, etc…

L’avènement de Linux a aussi fortement bénéficié des possibilités de collaboration à distance offertes par le noyau Internet Pré-Web de la période 1983-1995 (e.g. les listes de diffusion, Usenet, etc…), mais ensuite aussi des possibilités de collaborations grâce au Web, tels que SourceForge et d’autres environnements tels les forums de discussions.

Eric Raymond et les Logiciels ’Open Source’

Eric Raymond est un de ces contributeurs au projet GNU. En l’occurrence, il a développé le logiciel SendMail. De plus, il est un fin observateur des processus de collaboration et de développement qui sont particuliers au domaine GNU/Linux et Logiciels Libres.

Plus précisément, dans ses textes, dont “The Cathedral and the Bazaar”, il décrit comment d’après-lui, l’approche partage de code source et collaboration ouverte a permis le développement de l’ensemble complexe GNU/Linux, alors que beaucoup de compagnies commerciales, ont des équipes entières de développeurs qui se cassent les dents sur la complexité grandissante des logiciels.

En d’autres mots, Eric Raymond pense que ce qui explique la plus grande fiabilité, sécurité et robustesse des logiciels développés avec cette approche collaborative particulière, c’est bien l’aspect développement ouvert avec code source disponible. Ceci s’explique en partie pour lui, par le fait que vu le nombre de collaborateurs grandissant, pour au moins une personne dans le monde, tel ou tel bug, sera une chose triviale à régler. Et dans le développement de logiciels, même si les temps de développements peuvent être estimés, la découverte de bugs et leur élimination sont souvent des inconnues.

Et en vérité, il existe des exemples où certains bugs liés à la sécurité furent éliminés en une période d’une journée grâce à un ou plusieurs collaborateurs via Internet. Cette grande réactivité est à comparer avec une compagnie commerciale, qui d’abord nie l’existence du bug, pour ensuite prendre deux semaines ou plus pour de régler le problème. Pendant ce temps, l’utilisateur du système se retrouve avec un environnement vulnérable.

Lorsqu’en 1998, Netscape annonce la mise à disposition du code source de son browser Web, cela est interprété par Raymond comme le premier exemple provenant d’une compagnie commerciale, de l’acceptation de la supériorité du modèle ’Logiciel Libre’ et partage de code source si prisé par Stallman, Torvalds et les nombreux collaborateurs des environnements GNU/Linux.

De plus, il réalise alors qu’il est peut-être nécessaire de mieux moduler et exprimer les concepts car il apparaît alors que le futur sera fait de plus étroites collaborations entre les compagnies commerciales et les collaborateurs souvent altruistes et non-commerciaux des projets GNU/Linux. C’est ainsi qu’il décide d’adopter les termes ’Open Source’ plutôt que ’Free Software’ que propose toujours Richard Stallman. Mis à part certains détails fins, dans l’ensemble ces deux termes peuvent être interchangés sans problèmes dans de nombreux cas. Cependant, il semble que les termes ’Open Source Software’ sont plus courants que ’Free Software’ de nos jours.

C’est ainsi que Eric Raymond formalisera ’The Open Source Initiative”, un organisme qui décrit les avantages des logiciels à code source ouvert.

Liens:

GNU/Linux à Maurice

GNU/Linux est présent à Maurice dans divers secteurs. Cependant il est probable que GNU/Linux bénéficie d’une faible visibilité. C’est dans l’optique de mieux faire connaître cet sphère, le Système d’Exploitation Linux, les Logiciels GNU, les Logiciels Libres et ’Open Source’ qu’est écrit ce texte.

Les enjeux et les avantages pour divers secteurs du pays, voire pour les projets specifiques et stratégiques du pays sont nombreux. Prenons l’exemple du projet CyberCité : tous les produits GNU/Linux sont fortement basés sur des Standards et des protocoles standards qui sont le coeur même de la communication Internet. Mieux encore, des études ont démontré que certaines des implantations des protocoles standards dans les produits GNU/Linux sont les meilleurs au monde (e.g. la pile TCP).

Cela veut dire que l’adoption de GNU/Linux prépare d’autant mieux le pays à s’intégrer dans la nouvelle économie à l’échelle mondiale dont une très grande composante est le commerce électronique via Internet, avec un investissement économique optimisé. Ceci, d’autant plus que certaines compagnies commerciales sont connues pour leurs pratiques monopolistiques, visant à continuellement augmenter le prix de leurs logiciels, ou enfermer les utilisateurs dans soit des licences qui les exploitent soit dans des protocoles non-standards.

Il est d’autant plus important de faire une bonne évaluation en ce qui concerne les projets spécifiques et stratégiques gouvernementaux car les coûts seront souvent répercutés sur les contribuables. Les gouvernements de nombreux pays étrangers ont décidé de soit évaluer de près les alternatives GNU/Linux ou de les adopter dans leurs projets. On peut notamment citer le Pérou, la France, l’Allemagne, les USA, la Chine, l’Afrique du Sud, l’Angleterre, et de nombreux autres pays.

Si vous êtes dans le Gouvernement, le Secteur Privé, le secteur de l’Education ou utilisateur individuel, pour avoir plus de renseignements concernant GNU/Linux, les Logiciels Libres et ’Open Source’, il est fortement recommandé de visiter régulièrement le site du M.L.U.G. (voir ci-dessous).

Le paysage local de GNU/Linux est composé en autres de :

  • Le Linux User Group of Mauritiu au travers duquel ce texte a vu le jour. Pour plus de renseignements sur GNU/Linux et les Logiciels Libre et ’Open Source’, il est fortement recommandé de visiter le site régulièrement voire de s’inscrire à la liste de diffusion.
  • Linux User Group de l’Université de Maurice
  • IBL, qui représente la compagnie commerciale Red Hat qui vend une distribution GNU/Linux réputée, et partenaire d’IBM qui est un grand promoteur et vendeur de produits Linux.
  • TuxCafe, qui est une cybercafé entièrement constitué de machines tournant sous GNU/Linux.

Liens :

Copyright Yash Nursinghdass | Published under the Gnu Free Document License

Open source versus proprietary software

20030501-gnu-logo

Abstract

The purpose of this article is to make an unbiased and objective comparison of open source and proprietary software. For the sake of argument, the Linux operating system will be taken as an example of open source software while the Windows operating system will be an example of proprietary software. Both short-term and long-term issues will be examined with a view of providing enough data for someone to be able to make an informed decision between these two software families.

Introduction

The terms of use of either an open source software (OSS) or a proprietary software (PS) are clearly stated by its license. The exact definition of an open source license (OSL) can be found on the Open Source Initiative website. It should be noted that most open source softwares are under the GNU Public License including the Linux operating system.

On the other hand, there is not an exact definition of proprietary license (PL). My personal stance is to consider that if a license is not open source then it is proprietary. More concretely, if the license associated with a software is not in conformity with at least ONE of the terms defined by the Open Source Initiative, then the license is proprietary. The Microsoft Windows 98 Second Edition End-User License Agreement will be taken as an example of a proprietary license.

Methodology of the comparison

Being readily available, the comparison will be based on each term of the Open Source Initiative’s definition of an Open Source license. An interpretation will be made regarding Linux. This will be followed by investigating whether an equivalent term exist in the Microsoft End-User License Agreement.

The comparison: Redistribution

“The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.” [OSI] In other words, an OSS can be given for free. For example, installing Linux on several hundred computers does not cost anything. On the other hand, installing Windows requires the payment of a fee for each and every installation. It can be argued that Microsoft can also decide to give copies of Windows freely. But, in the long run, when upgrading Windows to a newer version (which comes out about every two years), fees will have to be paid given that Microsoft is a commercial entity whose main objective is to make profits by selling Windows and other proprietary software.

The comparison: Source Code

“The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost – preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.” [OSI] The source of a program describes its inner working, allows one to be sure that no hidden (and potentially dangerous) feature exists, lets other programmers (or students) learn by example and, most important, allows one to correct and modify the software. This “opening” of the software is the most distinguishing feature of OSS. For instance, the Linux operating system is about 4,700,000 lines of industrial quality C code. Someone learning to build an operating system or enhancing one only has to look at those lines of code. In the same way, a paranoiac system administrator can read the code and convince herself that Linux is not harmful in any way. This is the ultimate empowerment of the final user.

On the other hand, Windows is distributed without its source code and, therefore, it is absolutely impossible to learn how it is done, audit it for maximum security, correct errors or improve it. It is impossible for our paranoiac system administrator to be 100% sure that she is not introducing a major vulnerability in her network when installing a new version of Windows. It is also absolutely impossible for a motivated student to learn how Windows is internally built.

A very important consequence is that whenever a defect is detected in Windows, it is only Microsoft (the sole owner of the source code) who can correct it. And if Microsoft decides that the error is not worth correcting, it will remain in all subsequent versions of Windows.

The comparison: Derived Works and Integrity of The Author’s Source Code

“The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.” [OSI]

“The license may restrict source-code from being distributed in modified form only if the license allows the distribution of “patch files” with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.” [OSI] This is a direct consequence of the fact that the source code of an OSS can readily be obtained. All modifications, either correction or additions, must always remain open source. That is, someone is not permitted to take Linux, change it in some minute way and sell it under a proprietary license. Obviously, this is what has permitted the open source community to prosper. “Secondly, an open source license must guarantee that source be readily available, but may require that it be distributed as pristine base sources plus patches. In this way, “unofficial” changes can be made available but readily distinguished from the base source.” [OSI]. In other words, there must be a way to distinguish between the original work and the derived work (so that the final user has the possibility to choose which one to use).

Windows, being distributed without its source code, does not, obviously, allow for derived works.

The comparison: No Discrimination Against Persons or Groups

“The license must not discriminate against any person or group of persons.” [OSI] An open source software can be used by any person irrespective of nationality, ethnic group, economic group or religious group. This might seem natural but one only has to look at the Microsoft End-User License Agreement to find that Windows cannot be used by certain groups of people :

“You agree that you will not export or re-export the software product to any country, person, or entity subject to U.S. export restrictions. You specifically agree not to export or re-export the software product :

(i) to any country to which the U.S. has embargoed or restricted the export of goods or services, which as of March 1999 include, but are not necessarily limited to Cuba, Iran, Iraq, Libya, North Korea, Sudan and Syria, or to any national of any such country, wherever located, who intends to transmit or transport the software product back to such country ;” [MIC] What is surprising is that the distributor of Windows is the one responsible for enforcing U.S. export restrictions. One question arises : what happens if a country decides to choose Windows and then afterward gets on the black list of the U.S.A. ?

The comparison: No Discrimination Against Fields of Endeavor

“The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.” [OSI] An open source software can be used by someone working in any field whatsoever. On the other hand, Windows cannot be used in the following fields of endeavour :

“You agree that you will not export or re-export the software product to any country, person, or entity subject to U.S. export restrictions. You specifically agree not to export or re-export the software product :

[…]

(ii) to any person or entity who you know or have reason to know will utilize the software product or portion thereof in the design, development or production of nuclear, chemical or biological weapons ;” [MIC] This seems to be sensible until one considers that doing research in the fields of nuclear, chemical or biological weapons is what many top U.S. scientists have been doing for decades… One, therefore, cannot see the rationale behind such arguments.

The comparison: Distribution of License

“The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.” [OSI] This implies that every redistribution of an open source software must remain open source. “This clause is intended to forbid closing up software by indirect means such as requiring a non-disclosure agreement.” [OSI] On the other hand, Windows is distributed with a “closed” license which, basically, give you the right to have no rights…

The comparison: Additional requirements

There exist some additional requirements for a license to be open source :

The license must not be specific to a product. That is, the rights attached to the software must not depend on the program’s being part of a particular software distribution. [OSI] The license must not restrict other software. This implies that an open source software can be distributed with other types of softwares (be them open source or not). OSI 02 The license must be technology-neutral. This indicates that the software be available through all classical modes of distribution (CD, HTTP, FTP…) [OSI]

Conclusion

Both open source and proprietary software exist. And they mostly work as expected. But, freedom of use, of redistribution and of modification really exists only in the case of open source software.

For this reason, my recommendation is to always choose an open source version of a software over a proprietary and closed alternative.

My recommendation is therefore to choose Linux over Windows.

Copyright Avinash Meetoo | Published under the Gnu Free Document License