Il arrive souvent que le succès engendre la controverse, en particulier dans l’industrie technologique et surtout en ce qui concerne les logiciels. Compte tenu de la quantité de partage et de réutilisation du code qui s’est produite depuis les débuts de l’industrie technologique elle-même, il n’est plus rare d’entendre parler d’actions en justice autour de la violation du droit d’auteur ou de problèmes de licence.
L’une des premières et des plus médiatisées de ces affaires a été un procès intenté par Caldera Inc. contre Microsoft en 1996 pour une prétendue utilisation abusive (ou copie) de portions du système d’exploitation CP/M dans MS-DOS. Caldera avait acquis Digital Research Inc. (DRI) par l’intermédiaire de Novell Inc. et, avec elle, les droits sur CP/M, développé par Gary Kidall, fondateur de DRI, en 1974. Le procès antitrust privé a été réglé à l’amiable en 2000, Microsoft payant environ 275 millions de dollars de dommages et intérêts.
Quel est le bœuf ?
275 millions de dollars, même selon les normes de 2000, est une somme relativement dérisoire pour ce qui est devenu l’épine dorsale (ou du moins le point de départ) de l’empire Microsoft. MS-DOS formerait la base de Windows 95 et 98 qui ont aidé à cimenter la domination de Microsoft dans l’entreprise et éventuellement dans le centre de données, tandis que CP/M (commercialisé plus tard sous le nom de DR-DOS) a été relégué dans les annales de l’histoire de la technologie, sa dernière version datant de quelque 33 ans.
Le point de discorde est que, à l’époque de la prétendue copie du code source, des commandes et des appels système, DRI et CP/M possédaient environ 20 % du marché, ce qui aurait potentiellement pu se transformer en part de marché dont DOS et les versions ultérieures de Windows ont bénéficié après avoir été cédés sous licence à IBM en 1981. C’est pourquoi, depuis lors, des rumeurs circulent sur les véritables origines de MS-DOS, qui, selon certains, serait le produit direct d’un clone non autorisé de CP/M. Certains mythes vont même jusqu’à dire qu’il s’agit d’un clone. Certains mythes vont même jusqu’à suggérer qu’il existe une commande secrète dans MS-DOS qui, lorsqu’elle est exécutée, imprime quelque chose de la manière suivante : COPYRIGHT (C) GARY A. KILDALL JUNE, 1975 *.
Outre les défenseurs inflexibles, passionnés et opiniâtres des deux côtés de l’argument, ces rumeurs ont continué pendant plus de 30 ans à cause des limitations dans le domaine de l’analyse scientifique des logiciels. La criminalistique logicielle (ou détection du plagiat logiciel), discipline largement utilisée dans des affaires telles que celle opposant Microsoft à Caldera, traite de l’analyse du code source et des binaires pour déterminer les questions de violation de la propriété intellectuelle. Cependant, pendant la plus grande partie de son existence, y compris au moment où Caldera a intenté son procès contre Microsoft, la criminalistique logicielle reposait généralement sur des universitaires et des consultants en logiciels comparant manuellement d’énormes quantités de code dans différents programmes à la recherche de preuves de copie, puis partageant leurs conclusions avec un tribunal en tant que témoins experts. Comme le système juridique américain dans son ensemble, le processus était faillible, long et coûteux.
Par coïncidence, cependant, à peu près au moment du litige Microsoft/Caldera, Bob Zeidman, ingénieur électrique de formation et développeur de logiciels de métier, a commencé à développer un programme utilitaire pour optimiser ces méthodes. Au fil des ans, ce simple programme utilitaire a évolué vers l’ensemble d’outils CodeSuite pour comparer le code source et les exécutables, qui est devenu un pilier dans les cas de litiges en matière de PI.
Cinq règles de CodeSuite & DOS v. CP/M
L’ensemble d’outils CodeSuite prend en charge environ 40 langages, chacun d’entre eux contenant un analyseur syntaxique ou un fichier de définition unique qui est utilisé lorsqu’un ensemble de code est examiné. Le code testé est ensuite divisé en segments qui sont analysés séparément afin que les altérations de certains éléments de code ne déguisent pas un plagiat sur l’ensemble d’un travail. Ces segments sont :
- Déclarations, commentaires et chaînes de caractères
- Identifiants
- Séquences d’instructions
Une fois ces trois segments analysés, un score de corrélation normalisé est produit, qui est fortement pondéré contre la copie directe. Par exemple, si un algorithme copié représente 10 % d’un échantillon de code analysé, CodeSuite renvoie un score de « 100 », contrairement à d’autres outils qui peuvent indiquer « 10 % » ou « .1 », ce qui peut être trompeur lorsque la propriété intellectuelle principale est en jeu. Le score de corrélation de CodeSuite dirige ensuite les analystes vers les zones de copie potentielle pour un examen plus approfondi.
Cependant, il est important de noter que le score de corrélation n’est pas un jugement concluant sur la contrefaçon ou le vol en soi. Il s’agit plutôt du point de départ pour les analystes d’un examen plus approfondi du code à forte corrélation en suivant une procédure bien définie pour déterminer si le logiciel a été pris de manière néfaste (figure 1). Cette procédure prend en compte
- Les algorithmes communs – De nombreux algorithmes fondamentaux sont enseignés dans les écoles pour les opérations de base, ce qui pourrait apparaître comme de la copie
- Les identifiants communs – Les termes courants de l’industrie et de la programmation (tels que « index », « count » et « matrix ») ainsi que le langage lisible par l’homme (pour les commentaires) peuvent apparaître comme de la copie
- L’auteur commun – Si le même auteur a écrit des programmes dans deux entreprises différentes, ils utiliseront invariablement le même style de codage fondamental
- Génération automatique de code – Si deux programmes utilisent le même outil ou un outil similaire pour générer automatiquement du code, celui-ci aura probablement la même apparence
- Code tiers – Le code, en particulier le code open-source pour les opérations de base, apparaîtra comme du plagiat, un fait qui est particulièrement pertinent aujourd’hui
Récemment, et de son propre chef, Zeidman a commencé à appliquer les outils CodeSuite et cette procédure à MS-DOS et CP/M pour déterminer l’étendue du plagiat présumé. Au cours de son évaluation, il a comparé les aspects des deux programmes qui ont été à l’origine de la controverse, à savoir le code source, les lignes de commande et les appels systèmes.
Pour commencer, Zeidman a commencé sa comparaison de code en nettoyant CP/M, en supprimant tout ce qui n’était pas du code source, en reformatant le code, en exécutant les commentaires comme des instructions et les instructions comme des commentaires, et en recherchant des identifiants inhabituels, entre autres choses. Il a ensuite procédé à des recherches globales à la fois sur CP/M et MS-DOS pour « copyright », noms de sociétés, noms et initiales d’auteurs, et autres termes pertinents.
Intéressant, dans MS-DOS, le terme CP/M a été trouvé. Cependant, après quelques recherches, Zeidman a découvert que les premiers programmes DOS lisaient en fait les fichiers CP/M, ce qui n’est pas surprenant étant donné la présence précoce de CP/M sur le marché (figure 2). Des commentaires, des chaînes de caractères et des identificateurs correspondants ont également été découverts, mais avec une fréquence minimale et les termes étaient suffisamment généraux pour entrer dans la catégorie des « noms d’identificateurs communs », comme mentionné précédemment (Figure 3). En ce qui concerne le code source, la conclusion a été qu’aucune copie n’avait eu lieu.
De nouveau, pour les interfaces de ligne de commande, des corrélations élevées ont été trouvées, mais comme le montre la figure 4, celles-ci relèvent également de la catégorie des « identifiants communs » qui couvrent plusieurs systèmes d’exploitation.
La plus grande possibilité de violation du droit d’auteur est apparue dans les appels système, où, comme le montre la figure 5, la numérotation des appels est presque identique dans tous les programmes. Par exemple, dans MS-DOS et CP/M, 15 et 16 sont les appels pour ouvrir et fermer un fichier, respectivement. Nous arrivons ici à une zone grise dans la mesure où, bien que les appels système aient été implémentés et utilisés différemment dans chaque programme, les similitudes sont indéniables. Ceci étant dit, il s’agit très probablement d’un cas où Microsoft n’a pas réinventé la roue et s’en est tenu aux appels reconnaissables de l’époque. En termes de droits d’auteur, on parle d’utilisation équitable. Est-ce que quelqu’un a acheté MS-DOS à cause des appels système CP/M ? Probablement pas.
Oh, et Zeidman n’a pas trouvé de commandes secrètes dans MS-DOS qui impriment un copyright Kildall.
Alors, pourquoi Microsoft a-t-il conclu un accord ?
Les conclusions ci-dessus révèlent peu, voire aucune preuve significative de violation du copyright, alors pourquoi Microsoft a-t-il cédé ?
Comme mentionné, 275 millions de dollars était et reste une somme relativement dérisoire pour Microsoft, et après presque cinq ans de litige, plus important que les honoraires d’avocat ou les egos meurtris était le marché de l’entreprise et la réputation de la marque. Plutôt que de s’enliser dans une controverse qui aurait pu devenir incontrôlable et soulever des questions publiques sur l’intégrité de Microsoft, ils ont gardé la tête dans les nuages, et c’est exactement là où ils se trouvent aujourd’hui.
En ce qui concerne les conclusions de CodeSuite, Zeidman les a présentées plus tôt ce mois-ci au Vintage Computer Festival qui a eu lieu au Computer History Museum de Mountain View, CA. Il est suffisamment confiant dans ses découvertes pour avoir offert une récompense de 100 000 $ à quiconque pourra réfuter ses conclusions selon lesquelles Microsoft n’a pas copié le code source de CP/M, et une récompense supplémentaire de 100 000 $ à quiconque pourra trouver la mystérieuse fonction secrète de Kildall.
Jusqu’à ce que quelqu’un le fasse, je pense qu’il est temps de mettre ces rumeurs au placard.