Logiciel libre - Roberto Di Cosmo
Transcription
Logiciel libre - Roberto Di Cosmo
Pas si simple . . . Même les meilleurs peuvent se tromper PHP : Rasmus Lerdorf Jun 8 1995, 9 :00 am Announcing the Personal Home Page Tools (PHP Tools) vers 1.0. . . . The tools are in the public domain distributed under the GNU Public License. Yes, that means they are free ! Logiciel libre : une introduction. Roberto Di Cosmo http://www.dicosmo.org Janvier 2006 Information sur le cours ◮ 18h de cours plus 10h de TD = 28h sur deux mois ATTENTION : le premier TD est le 9 Février ◮ une mailing liste est en place sur http://sympa.pps.jussieu.fr/wws ◮ la page du cours est en ligne ◮ on travaillera ensemble aux notes de cours Plan du cours ◮ Introduction et histoire ◮ Le cadre légal ⊲ droit d’auteur ⊲ brevets ⊲ droit des marques ⊲ droit du travail ◮ La trousse à outils du Logiciel Libre ◮ Un survol des mecanismes de formation des standards ouverts ◮ Un survol des problématiques d’ingénierie logiciel ◮ Acteurs et modèles économiques ◮ Le cas specifique de l’Administration Publique ◮ Modèles de Securité “by obscurity”, histoire, et aproche moderne ◮ Étude du vote éléctronique ◮ Étude de cas : Gnat, OCaml, Advi, Scilab, Mandrakesoft, OpenCascade, Cybeosphere, EDF, Lutetia, RedHat ◮ Le cas du contenu : de la publication scientifique libre à la free art NTIC : le moteur de la croissance est né en Europe Quelques exemples : bases : projet LeLisp à l’INRIA (France) ⇒ Ilog ⇒ NeXTStep (parti aux US) WWW : 1989, CERN (Suisse), T. Berners-Lee, R. Cailleau sur NeXTStep WebCrawler : 1992, US, avec l’IndexingKit de NeXTSTEP Linux : 1990, Linus Torvalds, Finlande Les raisons profondes du succés : la liberté, l’interoperabilité protocoles de communication ouverts communiquer librement formats de données ouverts échanger librement du contenu logiciels libres reprendre le contrôle de la technologie Quelques définitions Freeware logiciel gratuit Shareware logiciel payant, mais avec une période d’essai gratuite Free Software (Open Source, Logiciel Libre) Quelque chose de radicalement différent, à l’origine du succés du Web et de l’Internet mais encore : abandonware, public domain, . . . Free, Open Source Software : Logiciel libre Gratuit (anglais : free) : logiciel non payant (aujourd’hui) Libre (anglais : free) : logiciel avec 4 droits ◮ Liberté d’utiliser le logiciel ◮ Liberté d’étudier les sources du logiciel et de l’adapter à ses besoins ◮ Liberté de distribuer des copies ◮ Liberté de distribuer les sources (éventuellement modifiées) (ceci est garanti par http://www.opensource.org/docs/definition.php). Il y a des obligations aussi, qui varient selon la licence : GPL/BSD/Mozilla/X, etc. Quelques statistiques Apache (free software) domine le marché des serveurs web sans vente forcée, sans milliards gaspillés en marketing aggressif⇐ Linux (free software) leader sur le marché des OS pour serveur web idem comme ci-dessus (Source : NetCraft, Janvier 2006) Libre n’est pas gratuit non libre, gratuit : Internet Explorer, MacTCP, Acrobat Reader, freeware, etc. non libre, non gratuit : no comment . . . libre, gratuit : Mozilla, Linux, FreeBSD, OpenBSD, sendmail, perl, etc. libre, non gratuit : distributions commercialesa de Linux, etc. Le logiciel libre respecte le droit des auteurs n’est pas Napster L’auteur choisit librement d’écrire du logiciel libre n’est pas du “domaine public”, ni “libre de droits” L’auteur protège la liberté de son logiciel par une licence ne relève pas d’une “logique d’abandon” L’auteur choisit une logique de valorisation innovante pour son logiciel protège la propriété intellectuelle La disponibilité de logiciels équivalents libres . . . reduit la copie illégale ! Le logiciel : libre vs. propriétaire Logiciel libre accès au code, liberté de modifier et distribuer : ◮ avantages pédagogiques indéniables : accès à une meilleure formation (à l’informatique) ◮ multipliea le nombre des programmeurs qui vérifient le code, divise les pirates : l’accès au code source attire les programmeurs compétents ◮ redonne le contrôle aux utilisateurs ◮ permet d’échapper à la fuite en avant technologique Logiciel propriétaire : pas d’accés au codeb , pas de modifications, pas de distribution ◮ ne permet pas d’adapter le logiciel, ni de le comprendre ◮ aucun contrôle de l’évolution technologique ◮ multiplie les pirates, divise les vérificateurs ◮ peut vous emprisonner dans formats et protocoles propriétaires Cours n. 2 : un peu d’Histoire ◮ Logiciel libre ante litteram ◮ La proprietarisation du logiciel ◮ Donald Knuth et TEX ◮ AT&T et Unix ◮ Richard Stallman, GNU et la Free Software Foundation ◮ Linux, GNU/Linux et les années 1990 Logiciel Libre ante litteram Jusqu’à la fin des années 1960, le logiciel, avec les sources, était distribué gratuitement, comme un complément pour les ordinateurs vendus (très chers) à l’époque. I think there is a world market for maybe five computers. Thomas J. Watson, fondateur d’IBM, 1943 Encore en fin des années 197O n paye le temps de calcul à la seconde. Logiciel Libre ante litteram N’oublions pas les raisons techniques de cette réalité : ◮ modèle de service clé en main comprenant hw & sw & service ◮ logiciel très dépendant de la machine utilisateur (n. de disques, taille de la mémoire, etc.), donc . . . ◮ nécéssité de recompiler sur la machine cible ◮ des idées comme BIOS sont beaucoup plus tardives Encore dans les années 1970, des vastes communautés d’utilisateurs échangeaient librement le code source, au milieu de réseaux comme DECUSa ou SHAREb . La propriétarisation du logiciel Cela commence à changer en 1969 : sous la menace d’une action antitrust, initiée à la demande d’un groupe d’industriels dirigés par CDC, IBM separe (“unbundles”) le logiciel, et crée un premier marché pour les services et les logiciels. A number of professional services companies felt encouraged to produce packaged programs and market them aggressively. IBM’s Unbundling, Burton Grad, IEEE AHC 2002 La propriétarisation du logiciel et les PC 1974 : Intel commercialise le 8080a , Motorola le 6800b 1975 : Altair 8800, avec 256 bytes de RAM est introduit sur le marché, $397 in kit, $439 assemblé. Micro-Soft est fondé et license BASICc pour le Altair, MOS introduit le 6502, 4000 commandes pour le Altair 1976 : Bill Gates écrit une lettre aux hobbystes, en protestant contre la “piratérie” software, adviwait What hobbist can put 3-man years into programming, finding all bugs, documenting his product and distribute for free ? Bill Gates General Partner, Micro-Soft Steve Jobs et Steve Wozniak créent Appled et réalisent le Apple I La propriétarisation du logiciel et le droit d’auteur ”the object phase of a computer program was not a ’copy’ within meaning of the Copyright Act of 1909 or common law” and ”The Copyright Act of 1976 applies to computer programs in their flow chart, source and assembly phases, but not in their object phase.” Datacash vs. JS&A (79 C 591, 26 Septembre 1979) Illinois District Court 1977 : Apple II (avec 4Kbytes de Ram) fait tourner VisiCalca , Radio Shack vend le TRS-80 1981 : IBM introduit le 5150 PC (Personal Computer), avec une puce Intel 8088 à 4.77-MHz, 64KB RAM, 40KB ROM, et PC-DOS 1.0 (MS-DOS), pour $3000. 1983 : Naissance du “shareware” avec PC-TALK Andrew Fluegelman), PC-FILE (Jim Button) et PC-WRITE (Bob Wallace) 1984 : Apple Macintosh, 512x342 noir et blanc, mouse, Motorola 68000 à 7.8-MHz, 128-KB RAM pour $2000 1985 : Atari 520ST, Amiga 1000 sur le 68000 1986 : Intel 80396, à 16Mhz 1988 : NeXT est né Donald Knuth et TEX 1978 : D. Knuth prend une année sabbatique, et commence à travailler sur TEX 1983 : LaTeX par Leslie Lamport 1989 : TEX est gravé dans le marbre par Knuth La license permet la libre distribution et modification à condition qu’on change le nom. AT&T et Unix 1965 : MIT, Bell Labs, GE lancent le projet MULTICS 1969 : Bell Labs se retire, Multics passe à Honeywell 1969 : Ken Thompson, Dennis Ritchie travaillent à UNICSa , sur un PDP-7 de Bell Labs 1972 : Dennis Ritchie conçoit C (évolution de B, restriction de BCPLb ) 1973 : Unix est reécrit en C 1976-77 : Ken Thompson en sabbatique à University of California-Berkeley (UCB), travaille sur Unix Editionc 6 Bill Joy, Chuck Haley démarrent BSDd et fait le secrétariat30, puis 75 bandese 1979 : naissance du CSRGf à Berkeley, avec un contrat DARPA 1980 : BSD contient encore du code AT&T, donc il faut une licence pour BSDLicence par institution, par par copie.g 1982 : Bill Joy part fonder Sun Microsystems avec Scott McNealy 1983 : BSD 4.2 incorpore TCP/IP Dans cette periode, la distribution de Unix se faisait par l’envoi d’une bande magnétique par la poste. AT&T et Unix Pourquoi AT&T distribue Unix aussi librement ? 1956 : Consent Decree, “AT&T restricts its activities to . . . the national telephone system and government work.” a 1984 : “divestiture” de AT&T, qui produit 7 “baby bells”, et annulle le consent decree ◮ création de AT&T Computer Systems, qui commercialise Unix System 5 ◮ BSD reprend le rôle de distributeur libre de Unix, abandonné par AT&T ◮ un conflit d’intérêt se profile clairement, avec BSD plus populaire que System V, et moins cher 1989/1990 : création de USOb , fusion avec USLcd 1991 : le conflit se déclare, avec BSDI qui commercialise une version de BSD. . . a http://www.att.com/history/history3.html b Unix c Unix Software Operation System Laboratories d Voir http://www.bell-labs.com/history/unix/business.html. 1991 : un étudiant finlandais poste un message sur Usenet 1992 : en Janvier USL attaque BSDI en tribunal (6 fichiers de BSD viennent de AT&T), le noyau Linux passe sous licence GPL Richard Stallman, la FSF et la GPL 1971 : RMS arrive au MIT (AI lab) 1981 : Symbolics embauche presque tous les “hackers” du MIT 1984 : Stallman laisse l’MIT pour diriger le projet GNU (www.gnu.org), annoncé en septembre 1983 1985 : création de la Free Software Foundation (www.fsf.org), publication du “GNU Manifesto” (http://www.gnu.org/gnu/manifesto.html) 1989 : première version de la licence GPL (General Public Licence) Chapitre 2 : “Proprieté Intellectuelle” Il y a quatre instruments majeurs de “protection” de la “propriété intellectuelle” : le secret industriel : on ne dévoile pas les secrets de fabrication la marque : créer une image publique reconnue du produit le droit d’auteur : vendre des “licences d’utilisation” du logiciel, qui ne peut être copié tel quel le brevet : obtenir un monopole garanti par l’Etat sur des “inventions” ou “techniques” qui ne s’identifient pas à un produit L’ordre de cette présentation n’est pas dû au hasard. Une lecture intéressante : http://www-db.stanford.edu/∼ ullman/pub/focs00.html le discours de J. Ullman “Ordinary skills in the art” pour son Knuth Award de 2000. L’experience de 30 ans d’Informatique secret industriel : usage massif dans l’electronique et les jeux la marque : tres rentable, compatible avec l’Open Sourcea droit d’auteur : usage massif pour le logiciel, introduit essentiellement avec la generalisation des Personal Computers le brevet : largement utilisé dans le monde pharmaceutique, pour les voiture, les avions, usage presque uniquement de fac,on detourné dans le monde du logiciel Le developpment exponentiel de l’informatique est du a l’absence de brevetes logiciels. ”If people had understood how patents would be granted when most of today’s ideas were invented and had taken out patents, the industry would be at a complete standstill today...A future start-up with no patents of its own will be forced to pay whatever price the giants choose to impose.” Bill Gates, 1991 Droit d’auteur : un peu d’histoire et de textes de référence 1662 : Licensing Act 1709 : Statute of Anne (auteur et durée limitée) 1791/93 : Droit d’auteur (et des brevets) introduit en France 1886 : Convention de Berne (reconnaissance internationale, sans depôt préalable, exclusivité traduction) a 1961 Convention de Romeb a “compl. Paris (1896), rev Berlin (1908), compl. Berne (1914), rev Rome (1928), Brussels (1948), Stock- holm (1967), Paris (1971), amend. 1979 (Berne Union)” b pour la protection des artistes interprètes ou exécutants, des producteurs de phonogrammes et des organismes de radiodiffusion Quelques organisations WIPO/OMPI : association privée sans financement, affiliée aux UN WTO/OMC : Organisation Mondiale du Commerce INPI : institut français pour la Propriété Intellectuelle EPO : Office européen des brevets USPTO : US Patent Office Reverse Engineering dans la directive de 1991 1991 Directive EU sur les logiciels (reverse engineering)a , durée = 50 ans Article 6 Decompilation 1. The authorization of the rightholder shall not be required where reproduction of the code and translation of its form within the meaning of Article 4 (a) and (b) are indispensable to obtain the information necessary to achieve the interoperability of an independently created computer program with other programs, provided that the following conditions are met : (a) these acts are performed by the licensee or by another person having a right to use a copy of a program, or on their behalf by a person authorized to to so ; (b) the information necessary to achieve interoperability has not previously been readily available to the persons referred to in subparagraph (a) ; and (c) these acts are confined to the parts of the original program which are necessary to achieve interoperability. 2. The provisions of paragraph 1 shall not permit the information obtained through its application : (a) to be used for goals other than to achieve the interoperability of the independently created computer program ; (b) to be given to others, except when necessary for the interoperability of the independently created computer program ; or (c) to be used for the development, production or marketing of a a http://europa.eu.int/smartapi/cgi/sga doc?smartapi!celexapi!prod!CELEXn computer program substantially similar in its expression, or for any other act which infringes copyright. 3. In accordance with the provisions of the Berne Convention for the protection of Literary and Artistic Works, the provisions of this Article may not be interpreted in such a way as to allow its application to be used in a manner which unreasonably prejudices the right holder’s legitimate interests or conflicts with a normal exploitation of the computer program. Clean Room/Dirty Room reverse engineering Pour produire un logiciel B concurrent du logiciel A, ce qui est interdit par le droit d’auteur est : la copie (de parties significatives) du code source de A la decompilation (de parties significatives) du code objet de A sauf si indispensable pour l’intéropérabilité Par contre vous pouvez : observer le fonctionnement de A réécrire independemment B avec les fonctionnalités de A A priori, clean room/dirty room sont équivalents à ce niveau Un exemple : le cas Softimage vs. Synx Relief http://www.legalis.net/jurisprudence-decision.php3?id artic de 2003. Le code de la propriété intellectuelle Accessible sur http://www.legifrance.gouv.fr, Il établit ◮ un droit de propriété exclusif ; Art. L111-1 : L’auteur d’une oeuvre de l’esprit jouit sur cette oeuvre, du seul fait de sa création, d’un droit de propriété incorporelle exclusif et opposable à tous. ◮ ce droit a deux facettes ⊲ droit moral (L121-1. . .L121-9) : L’auteur jouit du droit au respect de son nom, de sa qualité et de son oeuvre. Ce droit est attaché à sa personne. Il est perpétuel, inaliénable et imprescriptible. (Art. L121-1) ⊲ droit patrimonial (L122-1. . .L122-12) Toute représentation ou reproduction intégrale ou partielle faite sans le consentement de l’auteur ou de ses ayants droit ou ayants cause est illicite. (Art. L122-4) Le code de la propriété intellectuelle et les logiciels Les logiciels relèvent de ce droit ◮ Art. L112-2 : Sont considérés notamment comme oeuvres de l’esprit au sens du présent code : ... 13 Les logiciels, y compris le matériel de conception préparatoire ; ... Mais avec des particularités ◮ Art 113-9 Sauf dispositions statutaires ou stipulations contraires, les droits patrimoniaux sur les logiciels et leur documentation créés par un ou plusieurs employés dans l’exercice de leurs fonctions ou d’après les instructions de leur employeur sont dévolus à l’employeur qui est seul habilité à les exercer. Le code de la propriété intellectuelle et les logiciels et aussi ◮ Art. L121-7 Sauf stipulation contraire plus favorable à l’auteur d’un logiciel, celui-ci ne peut : 1 S’opposer à la modification du logiciel par le cessionnaire des droits mentionnés au 2o de l’article L. 122-6, lorsqu’elle n’est préjudiciable ni à son honneur ni à sa réputation ; 2 Exercer son droit de repentir ou de retrait. Le code de la propriété intellectuelle : plusieurs auteurs ◮ oeuvre de collaboration : plusieurs auteurs identifiés ◮ oeuvre collective : une seule entité édite, publie, diffuse une oeuvre où les contributions individuelles ne sont plus clairement identifiables’adviwait Durée des droits (France) : ◮ individuelle : 70 ans aprés la mort ◮ collaboration : 70 ans aprés la mort du dernier auteur ◮ collective : 70 ans aprés la publication Droit d’auteur : un peu d’histoire et de textes de référence 1993 Directive EU sur l’armonisation du droit d’auteur, durée = 70 ans, retroactive (de l’Allemagne) 1994 Accords TRIPS (Trade-Related Aspects of Intellectual Property Rights) 1996 Traité de l’OMPI sur le droit d’auteur (WCT) : a 1998 “Mickey Mouse” Copyright Term Extension Act (70, ou 75 a 95) a Le traité fait obligation aux parties contractantes de prévoir des sanctions juridiques contre la neutralisa- tion des mesures techniques (cryptage, par exemple) qui sont mises en oeuvre par les auteurs dans le cadre de l’exercice de leurs droits et contre la suppression ou la modification d’informations, comme certains éléments permettant d’identifier l’oeuvre ou son auteur, qui sont nécessaires pour la gestion (concession de licences, perception et répartition des redevances) des droits des auteurs (information sur le régime des droits). Droit d’auteur : les implémentations du traité de l’OMPI 1998 Digital Millennium Copyright Act 2001 Chiarigliano vs Felten, 2001 Skylarov (http://www.freesklyarov.org/) 2001 deCSS 2004 LCEN : http://ameli.senat.fr/publication pl/2003-2004/144.html, ou Legifrance 2006 DADVSI implemente EUCD : voir http://eucd.info Les licences “libres” : Open Source vs. Free Software Le paysage est assez complexe : proprietaire : . . . libre : Richard Stallman copylefted : GPL/LGPL, etc. non copylefted : BSD/MIT, etc. open source : Bruce Perenes/Eric Raymond Le mouvement Creative Commons En 2001, apparaı̂t Creative Commons (http://creativecommons.org/about/history). Finalité : structurer les licences pour qui souhaite donner un certain degré de liberté à ses oeuvres. La version originale (1.0) de la famille des licences est essentiellement obtenue par combinaison des restrictions suivantes : attribution : obligation de mentionner l’auteur http://creativecommons.org/licenses/by/1.0/ non-commercial : interdiction d’usage commercialhttp://creativecommons.org/licenses/nc/1.0/ no-derivs : interdiction de faire des oeuvres dérivéshttp://creativecommons.org/licenses/nd/1.0/ share-alike : obligation de redistribuer sous la même licencehttp://creativecommons.org/licenses/sa/1.0/ Cependant, on ne retrouve pas, dans la version 1.0, 16 licences, mais seulement 11 : Attribution Attribution-NoDerivs Attribution-NoDerivs-NonCommercial Attribution-NonCommercial Attribution-NonCommercial-ShareAlike Attribution-ShareAlike NoDerivs NoDerivs-NonCommercial NonCommercial NonCommercial-ShareAlike ShareAlike De plus, dans la version Française, on ne retrouve que les 6 premières licences, et si vous allez regarder l’introduction à la version 2.5 de Creative Commons, sur http://creativecommons.org/about/licenses/meet-the-licenses c’est de même. Cela s’explique par le fait que, en déhors des Etats-Unis, vous ne pouvez pas renoncer au droit moral, qui inclut “Attribution”. Le Brevet Un brevet est un droit pour avoir un monopole sur une invention. Droit de Faire Art. L. 611-1 CPI :”Le brevet confère à son titulaire ou à ses ayants cause un droit exclusif d’exploitation”. Droit d’interdire à tout tiers : la fabrication, l’offre, la mise dans le commerce, l’utilisation ou l’importation ou la détention aux fins précitées du produit objet du brevet l’utilisation du procédé, objet du brevet, ou, lorsque le tiers sait ou que les circonstances rendent évident que l’utilisation du procédé est interdite sans le consentement du propriétaire du brevet, l’offre de son utilisation sur le territoire français ; l’offre, la mise dans le commerce ou l’utilisation ou l’importation ou la détention aux fins précitées du produit obtenu directement par le procédé objet du brevet. L’atteinte à ces droits constitue le délit de contrefaçon. Brevet : un peu d’histoire et de textes de référence En 1474, le Sénat de Venise vote un texte connu comme (( Parte Veneziana )), qui énumère les principes qui sont à la base des brevets d’invention : Motivations ◮ On concède à l’inventeur une exclusivité sur l’invention, . . . ◮ limitée dans le temps et dans l’éspace, . . . ◮ en échange de la revelation du contenu de l’invention, . . . ◮ ce qui est supposé accélerer l’activité inventive dans l’intérêt du plus grand nombre. Modalités ◮ on dépose auprès d’un office administratif une démande, . . . ◮ qui définit précisement le contenu de l’exclusivité demandée, . . . ◮ et qui doit presenter une invention nouvelle Ensuite, on assiste à un foisonnement de notions de “monopole”, “licence”, “brevets” qui appellent à une réglementation : 1623 Statute of Monopolies en Angleterre 1790 Patent Act aux Etats Unis 1791 Brevet en France 1883 Convention de Paris, première convention internationale (entre Belgique, Brasil, France, Guatemala, Italie, Hollande, Portugal, Salvador, Serbia, Espagne et Suisse) ; établissement du droit d’antériorité dans les applications internationales ; création de l’Union Internationale pour la Propriété Industrielle, . . . qui fusionne en 1893 avec le bureau issue de la convention de Berne et devient le BIRPI. 1951 Création de l’INPI 1957 Code de la Propriété Intellectuelle en France (modifié jusqu’en 2004) 1970 PTC (Patent Cooperation Treaty) de Washington 1973 l’EPC (European Patent Convention) de Munich crée l’Office Européen des Brevets, et précise le champ de la brévetabilité (Article 52) Inventions brevetables 1. Les brevets européens sont délivrés pour les inventions nouvelles impliquant une activité inventive et susceptibles d’application industrielle. 2. Ne sont pas considérés comme des inventions au sens du paragraphe 1 notamment : (a) les découvertes ainsi que les théories scientifiques et les méthodes mathématiques ; (b) les créations esthétiques ; (c) les plans, principes et méthodes dans l’exercice d’activités intellectuelles, en matière de jeu ou dans le domaine des activités économiques, ainsi que les programmes d’ordinateurs ; (d) les présentations d’informations. 3. Les dispositions du paragraphe 2 n’excluent la brevetabilité des éléments énumérés auxdites dispositions que dans la mesure où la demande de brevet européen ou le brevet européen ne concerne que l’un de ces éléments, considéré en tant que tel. 4. Ne sont pas considérées comme des inventions susceptibles d’application industrielle au sens du paragraphe 1, les méthodes de traitement chirurgical ou thérapeutique du corps humain ou animal et les méthodes de diagnostic appliquées au corps humain ou animal. Cette disposition ne s’applique pas aux produits, notamment aux substances ou compositions, pour la mise en oeuvre d’une de ces méthodes. Quelques articles fondamentaux de l’EPC Article 82 Unité d’invention La demande de brevet européen ne peut concerner qu’une invention ou une pluralité d’inventions liées entre elles de telle sorte qu’elles ne forment qu’un seul concept inventif général. Article 83 Exposé de l’invention L’invention doit être exposée dans la demande de brevet européen de façon suffisamment claire et complète pour qu’un homme du métier puisse l’exécuter. Article 84 Revendications Les revendications définissent l’objet de la protection demandée. Elles doivent être claires et concises et se fonder sur la description. Article 85 Abrégé L’abrégé sert exclusivement à des fins d’information technique ; il ne peut être pris en considération pour aucune autre fin, notamment pour apprécier l’étendue de la protection demandée et pour l’application de l’article 54, paragraphe 3. Conditions de la brévétabilité Aujourd’hui, un certain consensus s’est dégagé sur ce qui est nécéssaire pour l’obtention d’un brevet sur une invention : conditions formelles subject-matter réléver d’un domaine brévetable Europe : Art. 52 (Japon assez similaire) US : “everything under the sun” unité de l’invention . . . ... ... Conditions de la brévétabilité conditions substantielles nouveauté ne doit pas déjà être connue Europe : primo-déposant, obligation de secret (18 mois) US : primo-inventeur, délai de grâce (12 mois) activité inventive (non-obviousness aux US) ne pas être triviale applicabilité industrielle doit pouvoir être industrialisée (US : “useful”) suffisance de la description (disclosure) ... Invention 6= innovation ! A noter la difference profonde entre deux termes trop souvent mélangés invention : un objet ou une technique nouvelle innovation : introduction d’une idée nouvelle (qui peut être largement connue ailleurs) dans un contexte qui ne l’appliquait pas (selon Schumpeter, “une invention mise en pratique”) La brévétabilité du logiciel en Europe pre-1986 : Art. 52 exclue les logiciels 1986-1998 : relachement progressif de l’OEB : “”programs for computers” [. . . with] a technical character [. . . are] not excluded from patentability” OEB technical guidelines 1986 Vicom ( T208/84), 1.7.1986 : “programme avec effet technique” 1988 IBM visual indication (T115/85), 5.9.1988 : “programme qui resout un problème technique” 1994 Sohei case (T769/92), 31.5.94 : “programme qui nécéssite des considérations techniques” 1998 IBM Computer program product (T1173/97). 1.7.1998 : “programme qui peut avoir un effet technique” Cela est flou est engendre une insécurité dans le droit, donc. . . 2002 la Direction du Marché intérieur de la Commission européenne (dirigée par Frits Bolkestein) soumet la proposition de directive 2002/0047 2002 Jacques Chirac déclare : (( Autoriser les brevets sur les logiciels mettrait l’Europe sous la coupe des entreprises américaines. Il faut refuser la vassalisation technologique vis-à-vis des Etats-Unis et soutenir le logiciel libre, la créativité de l’informatique française et européenne et notre indépendance technologique. )) 2002 en analysant le document informatique fourni par la Commission, des informaticiens découvrent qu’il a été rédigé avec l’aide matérielle de la BSA, une association privée regroupant essentiellement des grandes industries du logiciel nord-américaines 2002-2003 La CEA-PME, organisation représentant plus de 500 000 entreprises, proteste vivement et elle est rejointe par la CEDI (Confédération Européenne des Indépendants) et la ESBA (European Small Business Alliance), ce qui porte le total à plus de 2.000.000 de PME ; le site NoEPatents recueille plus de 380.000 signatures, dont plus de 3.000 de PDG européens 24 septembre 2003 le Parlement européen vote un ensemble d’amendements à la directive, ce qui la transforme en un texte qui interdit clairement les brevets logiciels Recital 7 Under the Convention on the Grant of European Patents signed in Munich on 5 October 1973 and the patent laws of the Member States, programs for computers together with discoveries, scientific theories, mathematical methods, aesthetic creations, schemes, rules and methods for performing mental acts, playing games or doing business, and presentations of information are expressly not regarded as inventions and are therefore excluded from patentability. This exception applies because the said subject-matter and activities do not belong to a field of technology. Article 2b. ”technical contribution”, also called ”invention”, means a contribution to the state of the art in technical field. The technical character of the contribution is one of the four requirements for patentability. Additionally, to deserve a patent, the technical contribution has to be new, non-obvious, and susceptible of industrial application. The use of natural forces to control physical effects beyond the digital representation of information belongs to a technical field. The processing, handling, and presentation of information do not belong to a technical field, even where technical devices are employed for such purposes. Article 3a. Member states shall ensure that data processing is not considered to be a field of technology in the sense of patent law, and that innovations in the field of data processing are not considered to be inventions in the sense of patent law. 18 mai 2004 lors d’une réunion du Conseil des ministres est voté avec une courte majorité un accord politique sur une ”position commune” qui reprend le document de compromis 2004-2005 différentes présidences tournantes (Irlande et Hollande) du Conseil essayent de transformer cet accord de principe en adoption officielle du texte sans vote 2004 rencontre en novembre 2004 entre le premier ministre danois et Bill Gates, pendant laquelle ce dernier aurait menacé de délocaliser l’éditeur Navision au Danemark (800 emplois, rachetée par Microsoft en 2002) si la directive européenne sur la brevetabilité n’était pas adoptée. 2004 Bill Gates est reçu avec les honneurs usuellement réservés aux chefs d’état par Jacques Chirac, 2005 le premier février 2005, Bill Gates s’entretient à Bruxelles avec des responsables politiques 2005 une commission du Parlement Européen demande formellement à la Commission de retirer la directive ; cette demande est ignorée ; 2005 le 5 mars 2005, le parlement Danois vote une motion obligeant son gouvernement à bloquer la directive, si elle était reproposée 2005 la présidence luxembourgeoise remet à l’ordre du jour d’une réunion du conseil du 7 mars 2005, toujours comme point à adopter sans discussion, et passe en force 2005 Le Parlement européen rejete la directive le 6 juillet 2005 : 648 voix pour, 14 contre et 18 abstentions. 2006 Ce n’est pas fini : http://register.consilium.eu.int/pdf/en/04/st07/st07119. et http://europa.eu.int/comm/internal market/indprop/patent Brevets logiciels : l’état actuel US : ce que vous voulez, ex. Amazon one-click, ou l’opérateur “non” EU : flou. . . l’EPC exclue les logiciels, l’EPO les a petit à petit inclus, en ce moment, il y a un bras de fer entre Commission et société civile qui n’est pas terminé Autant les connaı̂tre ! Quelques exemples voyageur pressé USPTO 5,249,290 signature éléctronique INPI 2,858,505 serveur multimédia USPTO 5,963,916 préchargement de pages Web INPI 2,858,078 Dulcis in fundo : Application pour l’opérateur NON. Ventilation des brevets “logiciels” en Europe Coût d’un brevet En France : depôt à l’INPI : 320+15 euros redevance 25 euros de la 2eme à la 5eme année, 135 euros de la 6eme à la 10eme année, 270 euros de la 11eme à la 15eme année, 530 euros de la 16eme à la 20eme année conseil et frais de procédure $$$ (total moyen entre 7000 et 8000 euros) Extension à l’étranger : américain 15 000 euros japonais 15 à 20 000 euros européen avec 10 traductions 30 000 euros idem, plus 20 ans de redevance 100 000 euros Qui peut obtenir un brevet inventeur celui qui trouve il est toujours mentionné brévété celui qui obtient le brevet aux US : est l’inventeur, mais le brevet est assigné au déposant en Europe : presque jamais l’inventeur Le brevet étant une question d’argent, le “droit moral” ne va guère plus loin que la mention de l’inventeur. Les cas de figure le plus courants indépendant il detient le brevet salarié c’est presque toujours l’employeur invention de mission = employeur : on vous a demandé de chercher hors mission attribuable = employeur : vous trouvez dans un domaine de l’entreprise, ou en utilisant moyens et/ou savoir faire de l’entreprise hors mission non attribuable = employé : dans les autres cas (lesquels ?) Dans ce cas, un “juste prix” est dû au salarié A l’université et au CNRS, on partage les bénéfices entre salarié et institution La difference fondamentale entre droit d’auteur et brevet Elle semble difficile, mais elle ne l’est pas : droit d’auteur : Agatha Christie ne peut pas s’approprier les aventures de Sherlock Holmes, i.e. ◮ copier de toute piéce le livre de Arthur Conan Doyle ◮ faire un search/replace “Sherlock Holmes” avec “Hercule Poirot” ◮ remplacer Arthur Conan Doyle par Agatha Christie comme auteur ◮ revendre le livre à son compte mais, Arthur Conan Doyle ne peut pas interdire à Agatha Christie de reprendre l’idée d’un detective qui résout des cas difficiles avec son intelligence déductive, si Agatha Christie ne fait pas une copie éhontée des aventures de Sherlock Holmes brevet : Arthur Conan Doyle peut interdire à Agatha Christie de reprendre l’idée d’un detective qui résout des cas difficiles avec son intelligence déductive, Agatha Christie ne peut donc pas créer Hercule Poirot, sauf si Arthur Conan Doyle accepte de lui conceder une licence d’exploitation, à ses conditions. Pour qui pense être Arthur Conan Doyle, le brevet est beaucoup plus intéressant, mais il ne faut pas faire ses plan sans Edgar Allan Poe ! Voir http://www.dicosmo.org/Papers/up4-3DiCosmo.pdf Clean Room/Dirty Room reverse engineering Pour produire un logiciel B concurrent du logiciel A, ce qui est interdit par le brevet est : tout Concrétement Le brevet donne pouvoir d’interdiction absolue et discretionnairea ◮ réfuser une technologie essentielle à un concurrent ◮ attaquer en justice, et l’accusé doit prouver son innocence Cela transforme les brevets en armes de guerre économique. En générale, cela avantage les plus grands, qui s’immunisent entre eux par cross-licensing gratuit et écrasent les petits (Ex : Gif (Unisys/IBM), Hyperlinks (British Telecom vs. Prodigy (ISP). a Avec des rarissimes exceptions. Cela est aussi utilisé par Microsoft comme arme contre le Logiciel Libre : 3.3 IPR Impairing License Restrictions. For reasons, including without limitation, because (i) Company does not have the right to sublicense its rights to the Necessary Claims and (ii) Company’s license rights hereunder to Microsoft’s intellectual property are limited in scope, Company shall not distribute any Company Implementation in any manner that would subject such Company Implementation to the terms of an IPR Impairing License. Mais la réalité a évolué : patent cabinets : parasites purs pétits contres les grands : ⊲ Eolas (patent n. 5,838,906) vs. Microsoft pour 521M$ ⊲ BTG contre MS et Apple Lectures interessantes ◮ http://linuxtoday.com/news story.php3?ltsn=2000-05-26-004 (Richard Stallman) ; ◮ économie des brevets http://www.researchoninnovation.org/patent.pdf (J. Bessen, E. Maskin) ◮ l’ingenieur de base http://www.smh.com.au/articles/2004/07/30/1091080437270.h Economie du Logiciel Libre ◮ quels acteurs ◮ quels modèles économiques ◮ qui le finance RAPPEL : inscrivez-vous sur la mailing list ! ! ! Logiciel libre : les acteurs l’utilisateur actif : ◮ plus grande stabilité / pérennité / flexibilité ◮ mutualisation des coûts ◮ transfert du support vers dévéloppement ◮ sécurité [3] l’utilisateur passif : + logiciel presque gratuit + Perennité de la solution + pas d’emprisonnement propriétaire - coût de sortie parfois élévé (un hasard ?) [3] SSII : ◮ demande de service (utilisateurs actfs et passifs) ◮ éspace économique de proximité. ◮ marge et/ou marché plus importantsa - mise en concurrence sur base des compétences [3] Une classification des modeles business (Hecker,2000) 1ère variante : purement Open Source. Support Sellers Idée : on ne vend pas des “licences” de logiciel, mais le dévéloppement, support, personnalisation, formation, etc. Ex : GNU Manifesto, Cygnus, MySql, Mandriva, Red Hat, Suse, JBoss, Nuxeo, etc. Il s’agit du modèle preconisé à l’origine par Stallman dans le monde du libre ; aujourd’hui on le retrouve utilisé par une série d’acteurs : SSII : Cap Gemini, Thales, Bull, IBM, etc. SSLL : Idealx, OpenWide, Linagora, etc. Éditeurs : Xpertnet, Nuxeo, eXo, JBoss, Nexedi etc. Economie : libre vs. propriétaire modèle centré sur les licences : profit non proportionnel au travail, peu ou pas d’emplois modèle centré sur les services : tendence naturelle des grandes sociétés (IBM, Oracle etc.), profit proportionnel au travail, beaucoup d’emplois qualifiés de proximité. à la limite, le Logiciel Libre Income Données 2002 Profit % Employees IBM 81,667 M$ 6,328 M$ 7 290.000 Oracle 7,143 M$ 955 M$ 13 40.000 Microsoft 20,000 M$ 8,000 M$ 40 29.000 P /E a IBM investit 1B$ dans Linux, et signe avec le gouvernementc Allemand 03/2003 : IBM signe avec Axa un contrat pour 1B$, le LL est dedans E/P b Evolution de la situation entre 2002 et 2006 Income Données 2002 Profit % Employees P /E a E/P b IBM 81,667 M$ 6,328 M$ 7 290.000 21820 $ 45 Oracle 7,143 M$ 955 M$ 13 40.000 23875 $ 41 Microsoft 20,000 M$ 8,000 M$ 40 29.000 275000 $ 3 Income Données 2006 Profit % Employees P /E c E/P d IBM 91.000 M$ 8.000 M$ 8.79 366.500 21830 $ 45.81 Oracle 14.000 M$ 3.300 M$ 23.57 56.000 58930 $ 16.97 Microsoft 44.282 M$ 12.600 M$ 28.45 71.000 177460 $ 5.63 Evolution du marché du libre en France Année CA (M euros) Part de marché Croissance 2003 100 0.4% - 2004 140 0.5% 40% 2005 250 0.9% 79% 2006 430 1.4% 72% 2007 700 2.1% 63% Données Pierre Audoin Consultants 2006. Evolution du marché du libre en France SSII 2004 2005 Croissance (%) Capgemini 7 Me 15 Me + 114,3% Thales DSV 10 Me 14 Me + 40,0% Atos Origin 9 Me 13,5 Me + 50,0% Bull 8,5 Me 13 Me + 52,9% SQLI 6,3 Me 12 Me + 90,5% Unilog-LogicaCMG 5,5 Me 9,2 Me + 67,3% IBM Global Services 4 Me 9,2 Me + 130,0% EDS 6 Me 7 Me + 16,7% Devoteam 4,6 Me 6,3 Me + 37,0% Sopra Group 3,4 Me 6 Me + 76,5% TOTAL 64,3 Me 105,2 Me + 63,6% Audoin Consultants 2006. C’est un phénomène de rupture ! Données Pierre Une classification des modeles business (Hecker,2000) 1ère variante : purement Open Source. Loss Leader Ex : Netscape dans les premiers temps Widget Frosting Ex : IBM Z-series, Corel Netwinder, gcc. . . Accessorizing Ex : O’Reilly Service Enabler Ex : Netscape Netcenter, Free Sell It, Free It Ex : Ford en interne Il y a beaucoup de variantes possibles Brand Licensing Ex : Compiere Software Franchising Ex : Compiere 2ème variante : modèles hybrides On peut changer la licence Open Source pour la rendre plus restrictive, ou alors séparer clairement les groupes des utilisateurs, pour se permettre une exclusivité d’exploitation commerciale. séparation spatiale : exclusion d’usage commercial : Trolltech v 1 [Free Edition/Professional Edition] exclusion de la concurrence directe : BitKeeper complication du fork : Trolltech v 2 , OCaml ! séparation temporelle : licences “biodégradables” Ex : GNAT, Ghostscript From Ghostscript’s README What about commercial use ? GNU Ghostscript may not be incorporated into commercial products which forbid copying or for which customers cannot obtain source code for no more than the cost of reproduction, although it may be distributed (”aggregated”) with commercial products ; Aladdin Ghostscript may not be incorporated into commercial products at all, and may be distributed commercially only under extremely limited circumstances. However, Ghostscript is also available for commercial licensing, which in addition to the right to incorporate Ghostscript into commercial products includes support, a limited warranty, high-quality fonts, and other benefits. For more information about commercial licensing of Ghostscript, please contact Aladdin Enterprises’ commercial distribution partner, the only entity legally authorized to distribute Ghostscript per se on any terms other than the GNU or Aladdin free licenses [. . .] 3ème variante : multi-licensing On peut, tout en gardant la licence libre, séparer les groupes des utilisateurs en réservant une deuxième licence différente à ceux qui payent. OCaml : les membres du consortium peuvent utiliser une licence différente à la QPL Qt/Trolltech : qui achète la licence commerciale peut utiliser les librairies sans GPL Quelques exemples français Scilab : (http://scilabsoft.inria.fr/) sous une licence très restraintea (art. 4-4) OpenCascade : (http://www.opencascade.org/) sous une licence restrainteb (preambule) Code Aster : (http://www.code-aster.org/) sous licence GPLc Lutece : portaild sous une licences type BSDe a http://scilabsoft.inria.fr/legal/license.html b http://www.opencascade.org/occ/license/ c http://www.code-aster.org/telechargement/telechargement.php d http://fr.lutece.paris.fr e http://fr.lutece.paris.fr/fr/jsp/site/Portal.jsp?page id=6 SPIP : système de publicationf sous licence GPL CPS : portail collaboratifg sous licence GPL f http://www.spip.net/ g http://www.nuxeo.com/solutions/cps Survey des dévéloppeurs de Logiciel Libre Un étude financé par la Commission Européenne et réalisée entre 2001 et 2002 sur une population de 2774 dévéloppeurs. Quelques resultats : Année de début des contributions Age Éducation Activité Emplois Salaire Nationalité Repartition de l’énergie Logiciel Libre dans l’Administration Publique : État des lieux Logiciel Libre dans l’Administration : projets de loi dans le monde Belgique Region de Bruxelles Capitale Bresil Amparo, Campinas, Porto Alegre, Recife, São Carlos, Solonó pole, Viçosa Denmark projet parlamentaire, plus des annoncesa du Ministre des Sciences Allemagne projet parlamentaire Italie circulaire “Stanca”, très limitée Peru projet parlamentaire de 2001 changé après une diatribe célébre (www.gnu.org.pe/preyres.html) en un projet plus précis, en vigeurb depuis le 18/10/2005 Espagne projet parlamentaire etc. (Chine, Inde, Taiwan, . . .) Les raisons Pour garantir : pérennité des données, la sécurité et la confidentialité des informations sensibles, et un accès équitable et sans entraves à ces données par tous les citoyens, l’État ne peut utiliser que : formats de données dont la spécification est publiquement accessible à tous, et dont l’usage n’est soumis à aucune restriction protocoles de communication dont la spécification est publiquement accessible à tous, et dont l’usage n’est soumis à aucune restriction logiciels dont le code source est librement accessible à tous, et dont l’usage, la modification et la diffusion n’est soumis à aucune restriction Les raisons ( bis ) Le recours au logiciel libre est un choix stratégique : dévéloppement d’une industrie locale de services création d’emplois qualifié de proximité reduction des coûts protection contre les entraves liées à la propriété intellectuelle mutualisation des efforts maı̂trise de la fuite en avant technologique En France Cela commence à être mis en place : cadre normatif propositions de loi : deux projets parlamentaires (Laffitte, Trégouet, Cabanel ; Le Déaut, Paul & Cohen) (2000 . . .) circulaire du Premier Ministre du 22 janvier 2001 : conditions de mise en oeuvre d’un cadre commun d’intéropérabilité, pour les administrations Atica/ADAE : mission du Premier Ministre, http://www.atica.pm.gouv.fr, élaboration du cadre commun d’intéropérabilité En France Plus recemment LCEN : http://www.legifrance.gouv.fr/WAspad/UnTexteDeJorf?numjo=ECOX0200175L, Article 4 : On entend par standard ouvert tout protocole de communication, d’interconnexion ou d’échange et tout format de données interopérable et dont les spécifications techniques sont publiques et sans restriction d’accès ni de mise en oeuvre. ADAE : http://www.adele.gouv.fr/article.php3?id article=1064, Référentiel général d’interopérabilité, 05/06, Voir page 30, les règles RIT0025, RIT0026, RIT0027 : ◮ Il est RECOMMANDÉ d’utiliser le format Open Document pour les échanges de documents bureautiques semi-structurés (traitement de texte, tableur, présentation). ◮ Il est OBLIGATOIRE d’accepter tout document au format Open Document pour les échanges de documents bureautiques semi-structurés (traitement de texte, tableur, présentation). ◮ Il est INTERDIT de faire une migration depuis le format bureautique couramment utilisé par une organisation vers un format autre que le format ouvert Open Document. En France Initiatives locales Éducation : http://libresoftware-educ.org/fr/carteFrance.html SLIS : Serveur de communications Linux pour l’Internet Scolaire (Grenoble) DebianEdu : distribution pour l’éducation (Seine-et-Marne, CDDP, CNDP) AbulEdu : distribution pour l’éducation (Aquitaine) ... : ... En France Communautés Urbaines : Lille : Geodoc FRUIT éditeur d’objets géographiques APACS aménagement du territoire : conception et simulation Associations : Aful : www.aful.org Illico : www.illico.org Adullact : www.adullact.org . . . :. . . Projet Copernic du Minefi Pour les données qui suivent, on remercie la direction technique du programme Copernic du Minefi aujourd’hui 35 millions de foyer fiscaux, 3 millions d’entreprises avec accès universel au dossier fiscal 2010 refonte complète du SI projet sur 10 ans, 1000 Meuro Voir aussi http://www.zdnet.fr/actualites/internet/0,39020774,39222852 Projet Copernic : TéléIR 2003 ouverture de portail, 10.000.000 visites en 2 mois 2003 plus de 600.000 déclarations Evolution des déclarations 2006 5.500.000 déclarations ! Projet Copernic : politique technique ◮ contrôle de l’évolution à long terme, avec reduction des coûts d’utilisation et maintenance. ◮ principes fondés sur normes et standards techniques internationaux ◮ orientation : client universel (Web), avec usage généralisé de HTTP et Web Services. Projet Copernic : plus en détail ◮ Gnu/Linux sur les serveurs des couches presentation, application et infrastructure (plus de 1000 serveurs ; HP-UX pour les BD, Win32 pour les clients) ◮ Apache / Tomcat, PHP, Perl ◮ Bind, Squid, Samba, Postfix, OpenLDAP, MySQL, ShoreWall, ... ◮ Nagios, MRTG, nmap, Webmin, ... Projet Copernic : encore plus en détail Nagios et HP-UX Sondes déféctueses sur HP-UX solution : modification au source, 2 jours de travail pour deux agents. PKI prototype fonctionnel réalisé en une semaine Firewalls GNU/Linux/Intel/SL 9 fois moins cher, 10 fois plus rapide à deployer, mieux mantenable, plus efficace Infrastructure applicative (J2EE cluster) GNU/Linux/Intel 8 fois moins cher, et sans coûts recurrents Conclusion tirées de Copernic : avantages techniques pour l’administration Le logiciel libre permet de tenir ses objectifs techniques : Respet des normes ⇒ référence solide Modularité ⇒ adaptabilité aux besoins Accès au code ⇒ corrections rapides Flexibilité et adaptabilité ⇒ permet d’expérimenter Sens coût d’acquisition préalable ⇒ moindre overhead dans la commande publique Un peu d’histoire du Génie logiciel Le “modèle à V” incarne la vision du dévéloppement logiciel typique des années ’80 Défauts du modèle ◮ il faut une organisation centralisée ◮ les spécifications initiales peuvent être fausses ou incomplètes ◮ la distance entre spécifications et test final peut être trop longue ◮ l’utilisateur final est exclu du processus jusqu’à la fin ◮ quand on découvre un erreur grave, il est souvent trop tard Le problème en six images Des solutions proposées ensuite. . . ◮ programmation orientée objet ◮ conception et modélisation via UML ◮ utilisation de méthodes formelles dans le dévéloppement ◮ diverses méthodologies plus récentes : ⊲ extreme programming ⊲ méthodes agiles ⊲ ... Voyons voir concrètement ce qui s’est passé avec certains projets en logiciel libre. Analyses Exemples de communautés significatives ◮ Linux ◮ Apache Linux : une radiographie ◮ quelques dates : vers. 0.02 en 10/1991 ; 0.95 en 03/1992 ; 1.0 en 03/1994 ◮ modèle du dictateur bienveillant : Linus Torvalds a le dernier mot sur tout ◮ élaboration des patchs sur la mailing list (cela permet de discuter les propositions) ◮ séparation entre fils de versions : stable (2.4.x, 2.6.x), et experimental (1.3.xx or 2.1.x) ◮ gestion de version avancée (plus de détails dans un cours à part) Exemple de patch dans la mailing list Date Fri, 16 Mar 2007 12:36:15 +0100 From Jarek Poplawski <> Subject [PATCH] Re: Fwd: oprofile lockdep warning on rc1 On 28-02-2007 01:46, Dave Jones wrote: > This happened on a 2.6.21rc1 kernel. ... > Richard Hughes <[email protected]> > Date: > Tue, 27 Feb 2007 21:59:07 +0000 > To: > Development discussions related to Fedora Core > <[email protected]> ... > But also I get this (!!!): > Here is my patch proposal for testing. Regards, Jarek P. lockdep found oprofilefs_lock is taken both in process context (oprofilefs_ulong_from_user()) and from hardirq (nmi_cpu_setup()), so the lockup is possible. Reported-by: Richard Hughes <[email protected]> Signed-off-by: Jarek Poplawski <[email protected]> --diff -Nurp linux-2.6.21-rc1-/drivers/oprofile/oprofilefs.c linux-2.6.21-rc --- linux-2.6.21-rc1-/drivers/oprofile/oprofilefs.c 2007-02-27 10:47:38.000000000 +0100 +++ linux-2.6.21-rc1/drivers/oprofile/oprofilefs.c 2007-03-16 11:36:30.000000000 +0100 @@ -65,6 +65,7 @@ ssize_t oprofilefs_ulong_to_user(unsigned int oprofilefs_ulong_from_user(unsigned long * val, char const __user * b char tmpbuf[TMPBUFSIZE]; + unsigned long flags; if (!count) return 0; @@ -77,9 +78,9 @@ int oprofilefs_ulong_from_user(unsigned if (copy_from_user(tmpbuf, buf, count)) return -EFAULT; -spin_lock(&oprofilefs_lock); + spin_lock_irqsave(&oprofilefs_lock, flags); *val = simple_strtoul(tmpbuf, NULL, 0); -spin_unlock(&oprofilefs_lock); + spin_unlock_irqrestore(&oprofilefs_lock, flags); return 0; Un aperçu : structuration Un aperçu : évolution Évolution du nombre des fichiers dans le noyau Linux (G. Robles) Analyses Un texte très connu tire des leçons du succès de Linux : The cathedral and the Bazaar, Eric S. Raymond, 1997 cathedral : processus logiciel lourd et hierarchique bazaar : dévéloppement par des équipes avec faible couplage Règles de bonne conduite énoncées 1. Every good work of software starts by scratching a developer’s personal itch. 2. Good programmers know what to write. Great ones know what to rewrite (and reuse). 3. “Plan to throw one away ; you will, anyhow.” (Fred Brooks, The Mythical Man-Month, Chapter 11) 4. If you have the right attitude, interesting problems will find you. 5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor. 6. Treat your users as co-developers. 7. Release early. Release often. 8. Given enough eyeballs, all bugs are shallow. Critiques ◮ analyse très orientée Linux ◮ separation entre Bazaar et Cathedral moins nette dans la réalité ◮ beaucoup d’approximations, par exemple, la dénégation de la loi de Brooks, qui oublie la différence entre core developers et utilis-acteurs à la marge du projet Apache ◮ quelques dates : Création du projet en 1995 par Rob McCool, première version stable en 1996, version 1.3 en 1998, IBM choisit Apache pour WebSphere en juin 1998 ◮ approx. 1500 committers sur les projets (une centaine sur httpd) ◮ organisation oligarchique Committers get a shot at working on the code ; good committers become members and thus get a piece of the ownership of the software and the direction. Commit access is a privilege, not a right, and is based on trust. The Apache Software Foundation is a meritocracy [. . .] New candidates for membership are nominated by an existing member and then put to vote ; a majority of the existing membership must approve a candidate in order to the candidate to be accepted. Quelques mythes sur le Logiciel Libre ◮ dévéloppement anarchique sans leader ◮ connaissance qui emerge naturellement de la sagesse des masses The Wisdom of Crowds : Why the Many Are Smarter Than the Few and How Collective Wisdom Shapes Business, Economies, Societies and Nations 2004 James Surowiecki ◮ le logiciel libre est toujours de meilleure qualité que le logiciel propriétaire ◮ l’écosystème du logiciel libre est basé sur des valeurs d’altruisme communautaire. . . Reverse Software Engineeering On peut essayer d’analyser ces cas systématiquement : ◮ disponibilité des sources ◮ accès aux données historiques ◮ informations complètes sur les dévéloppeurs ◮ pas besoin d’accords formels Un travail d’envergure a été entrepris par http://libresoft.urjc.es/index Un point de vue moderne Les analyses de Martin Michlmayr (ex Debian project leader) sont disponibles sur http://opensource.mit.edu Cathedral phase Original “idea” Project Author Core developers Unix philosophy Transition phase ”Interest” ⇒ Prototype ⇒ Modular design Bazaar phase Distributed development environment Community Parallel perfective and corrective maintenance Peer reviews Comparer avec l’existant Discussion ouverte sur les modèles de dévéloppement du logiciel