Une démo incroyable et un peu sur Sun Microsystems

C'est l'histoire de la démo la plus incroyable que j'ai vue dans le monde open source. C'est tout simplement impossible à trouver.



En 2005, j'étais dans le vif du sujet. J'ai travaillé comme consultant indépendant en performance, et Sun Microsystems vient de lancer DTrace, un produit qui peut instrumenter n'importe quel logiciel. Il a donné aux analystes de la performance une fonction de "vision aux rayons X". Lors de la rédaction et de la publication d'outils avancés de recherche de performances basés sur DTrace (mon DTraceToolkit open source et d'autres outils DTrace, c'est-à-dire des scripts), j'ai remarqué quelque chose d'étrange : j'ai publié plus d'outils DTrace que Sun lui-même n'en a publié. Il y a probablement une sorte de projet interne dans lequel toutes les personnes qui connaissent DTrace sont occupées ?





DTraceToolkit v0.96 (2006)



Comme je n'étais pas un employé de Sun Microsystems, je n'étais pas au courant des projets internes de l'entreprise. Cependant, j'ai fait de la formation et du conseil pour Sun, aidant les clients de l'entreprise avec l'administration et la performance du système. Parfois, Sun m'invitait à des réunions avec ses clients et à d'autres événements qui pourraient m'intéresser en tant que professionnel local. Ensuite, j'ai vécu à Sydney (Australie).



Une fois, on m'a dit qu'une personne très importante venait des États-Unis, avec qui je serais intéressé de rencontrer. Je ne me souviens plus du nom, mais on m'a dit qu'il s'agit d'un spécialiste et développeur de DTrace de Sun qui vole autour du monde et parle d'un nouveau produit Sun basé sur DTrace. Ah ! Probablement le même projet interne !



Mais cela devrait être un projet extraordinaire. J'ai vu certaines des technologies géniales de Sun, mais je n'ai jamais entendu parler d'un développeur faisant un tour du monde. Ce sera super cool et ne négligera probablement aucun de mes précédents projets DTrace.



Ce VIP revenait pour quelques jours à Sydney avant de se rendre dans la prochaine ville australienne, nous avons donc pris rendez-vous au bureau de Sun à Sydney.



Une rencontre



Le technicien de DTrace est arrivé dans un costume standard et avait un fort accent américain dans la voix. Il était évident qu'il était un peu fatigué du tour du monde. Il vient d'arriver d'Afrique du Sud et de Nouvelle-Zélande et a énuméré d'autres pays et villes vers lesquels il se rendra ensuite. Deux autres employés australiens de Sun se sont joints à notre réunion. L'un d'eux m'a présenté :



« Brendan donne des cours avec nous et il a participé aux projets DTrace.



Une vue aussi humble est la norme en Australie (surtout pour les Australiens), et je me demandais s'il comprenait cette différence culturelle. Une autre différence était qu'en 2005, il y avait pas mal de postes d'ingénieurs en Australie, contrairement aux États-Unis. Par exemple, tous les employés de Sun Microsystems Australia étaient impliqués dans le support, mais pas dans le développement, et d'autres géants de la technologie n'avaient pas encore atteint le marché. C'est-à-dire qu'à l'époque en Australie, des ingénieurs extraordinaires obtenaient n'importe quel emploi disponible.



J'ai essayé d'expliquer plus en détail ce que l'on entend par "travaillé" en disant que j'ai écrit DTraceToolkit, mais il n'a pas été impressionné. Il ne connaissait pas mon nom et n'avait jamais entendu parler de DTraceToolkit. Pour lui, j'étais juste une personne aléatoire.



Cependant, il a gentiment accepté de me montrer une petite démo. Son produit basé sur DTrace était un complément à une grande interface graphique Sun que je connaissais déjà. Une fois téléchargé, il vous a montré comment lancer l'un des nombreux outils DTrace en double-cliquant sur l'icône. L'outil peut soit afficher les données brutes dans une fenêtre séparée, soit afficher les résultats sous forme de graphique linéaire. Cela parait assez médiocre . L'interface graphique avait déjà cette fonctionnalité et j'espérais de nouvelles fonctionnalités d'interface graphique.



La seule nouveauté était les instruments eux-mêmes, qui étaient assez nombreux. Il a brièvement parlé des nouvelles capacités de surveillance étonnantes qu'ils offrent (très probablement, il l'a dit à plusieurs reprises dans le but d'impressionner les clients). J'ai eu le sentiment qu'il ne s'attendait pas à ce que j'apprécie pleinement leur valeur.



Mais je réellement connaissais ces outils parce que je codais des fonctionnalités similaires pour mon DTraceToolkit. Ils étaient utiles... mais je m'attendais à une cascade de nouvelles fonctionnalités DTrace impressionnantes .



"Je l'ai déjà fait, j'ai écrit moi-même les outils qui remplissent ces fonctions !"



"Eh bien, oui, bien sûr", ne répondit-il pas de cette façon, mais son regard était éloquent - il ne me croyait pas et ne pensait pas que je réalisais pleinement leur nécessité. Il s'agissait d'une innovation majeure d'une valeur de plusieurs milliards de dollars de la part de la multinationale américaine Sun Microsystems. Et j'étais juste un Australien ordinaire.



Traçage des sockets



J'ai cherché parmi les icônes de l'interface graphique quelque chose de nouveau pour moi-même, et le plus intéressant était l'outil de traçage des E/S de socket. J'ai essayé de travailler avec en 2004 ( socketsnoop.d ) et j'ai publié le résultat en open source, mais mon outil était imparfait : je n'avais pas un accès complet au code source du noyau, donc je n'avais pratiquement pas à le comprendre moi-même en analysant la boîte noire". Cela fonctionnait avec la plupart des types de trafic TCP, mais pas avec les autres, ce que j'ai signalé dans les commentaires du script. De plus, je ne l'ai pas ajouté au DTraceToolkit car je ne pensais pas que l'outil était complet. Par conséquent, de tous ses instruments, celui-ci était le plus intéressant pour moi. Sun aurait pu faire beaucoup mieux car il avait le code source et avait terminé l'outil.



"Puis-je voir le script socket I/O?" J'ai ouvert le terminal. Au début, le développeur avait l'air préoccupé, comme si je ne devais pas être autorisé à jeter un œil dans les coulisses, mais il s'est ensuite rendu compte qu'il s'agissait d'un autre argument de vente du produit : « Oui, bien sûr, vous pouvez même ajouter de nouveaux outils au IHM !" Après une pause, il a ajouté: "Si, bien sûr, vous les avez." Je les ai, c'est sûr. Il m'a indiqué le chemin à rechercher et au bout d'un moment, je suis arrivé au dossier avec tous les outils dont il faisait la démonstration.



Tous les instruments avaient des noms familiers. L'un d'eux s'appelait même socketsnoop.d. Des soupçons ont surgi en moi.



C'est pas possible.



J'ai imprimé socketsnoop.d. Mon propre script est apparu à l'écran ... C'était la même tentative inachevée que j'avais faite un an plus tôt et publiée en open source. Il contenait un code étrange qui me semblait logique à l'époque (en utilisant PFORMAT avant defaultargs) et il était écrit dans mon ancien style. Je lisais mon script .



"C'est MON scénario."



J'ai ouvert quelques autres instruments, et partout j'ai vu la même chose - ils étaient tous à moi . Ce nouveau produit Sun génial dont M. VIP a fait la promotion dans le monde entier était en fait mes propres outils open source.



Ma mâchoire a chuté. Mais il ne semblait pas me croire.



Tu ne peux pas faire ça



À l'aide de grep, j'ai recherché dans tous les outils mon nom, qui était indiqué dans le premier commentaire sur tous mes outils, pour prouver qu'ils sont à moi. Mais je n'ai rien trouvé. Mon nom a été supprimé.



Certains des outils avaient même la ligne :



# Auteur : Brendan Gregg [Sydney, Australie]




Et maintenant, cet homme est venu à Sydney et essaie de vendre les outils de Brendan Gregg à Brendan Gregg.



L'un des employés australiens de Sun m'a interrompu : « C'est le copyright de Sun Microsystems partout. » La plupart de mes outils comprenaient mon copyright et ma licence GPLv2 ou CDDL. Mais ceux-ci ne contenaient que le message de copyright standard de Sun, et les licences open source ont été supprimées.



« Vous avez supprimé mon nom ! Et des droits d'auteur avec des licences !"



Le deuxième Australien a dit à l'invité : « Vous ne pouvez pas faire ça". Le silence régnait dans la salle, toutes les personnes présentes essayaient de comprendre ce qui s'était passé. Alors que certaines personnes chez Sun ont motivé les développeurs à contribuer à l'open source et à créer une communauté, d'autres ont volé la communauté. Ils ont pris son travail, changé les licences et les droits d'auteur, puis l'ont vendu.



L'invité n'était pas prêt pour cela et avait l'air perplexe. Il est resté laconique, a seulement dit qu'il ne comprenait pas comment cela s'était passé, qu'on pouvait déjà lui avoir donné les instruments sous cette forme (lire : ne me blâmez pas). Il semblait qu'il ne croyait que partiellement nos paroles.



La réunion s'est terminée rapidement. J'ai suggéré qu'il récupère des copies plus récentes de mes outils directement à partir de DTraceToolkit, car ces anciennes versions de ma page d'accueil étaient déjà obsolètes et j'y ai corrigé plusieurs bogues depuis lors. Je lui ai également rappelé de laisser mon nom, mon droit d'auteur et ma licence dans chacun d'eux.



A sa décharge, je peux dire que la rencontre aurait pu se dérouler différemment si j'avais été présenté plus en détail. C'est un problème culturel en Australie (gardez la tête baissée). Pour un Australien, représenter une personne à l'américaine peut sembler une vantardise, mais cela peut aussi être utile comme moyen rapide de communiquer la spécialisation d'une personne.



Autres cas



Je ne pouvais pas croire que parmi tous les outils open source que j'ai publiés, socketsnoop.d a été ajouté au produit. Ce programme était grossier. Plus tard, j'ai écrit de bien meilleurs outils de socket (dans mes livres sur DTrace et BPF ).



Quelques années plus tard, Apple a ajouté beaucoup de mes outils à OS X. La société y a conservé mon nom, mes droits d'auteur et ma licence CDDL open source, et a même amélioré certains d'entre eux. Des années plus tard, Oracle a fait de même pour Oracle Solaris 11, et la communauté BSD a fait de même pour FreeBSD. Je remercie tous ces gens.



Vous pourriez dire que ce n'est pas Sun qui l'a fait, mais une personne célibataire et insouciante. Mais il y avait quelque chose dans la culture du Soleil qui encourageait ce genre de négligence. Mes collègues consultants et moi avons déjà fait l'expérience de cela : la conviction que Sun et seulement Sun peuvent tirer le meilleur parti de sa propre technologie, et que tout en dehors de Sun était de la foutaise. Lorsque ces employés de Sun trouvaient quelque chose de bien, ils avaient tendance à penser qu'il avait été créé par Sun, ce qui signifie qu'il pouvait être utilisé et renommé en toute sécurité (et modifié la licence) parce qu'ils pensaient que l'entreprise détenait déjà les droits d'auteur.



Il y avait d'autres personnes chez Sun qui étaient désireuses de faire la bonne chose avec moi et mon travail. Au moins quatre fois, mon DTraceToolkit a été intégré à des produits de surveillance logicielle sans supprimer les licences. (Dans un cas, ils ont voulu renouveler la licence sous GPL, et nous avons discuté de la situation avec le service juridique de Sun, mais c'est une autre histoire.)



Au fait, ce n'était pas la dernière fois qu'ils ont essayé par inadvertance de vendre mon travail à moi, ce n'était que la première fois. J'ai appris à ne pas dire aux vendeurs que j'avais créé ce qu'ils essayaient de me vendre, car ils ont alors commencé à me regarder comme si j'étais fou. Au lieu de cela, j'ai simplement dit : « J'ai beaucoup d'expérience avec cette technologie », et je me suis limité à cela.



Je me suis souvenu de ce premier cas car mes outils BPF commencent maintenant à apparaître dans les produits de surveillance logicielle et deviendront avec le temps beaucoup plus gros que les outils DTrace. Dans les prochains articles, j'écrirai à ce sujet plus en détail, mais pour l'instant je conseille aux développeurs ce qui suit : veuillez ne pas réécrire mes outils BPF et bibliothèques bcc ; essayez de construire dessus (dans les versions bcc python ou bcc libbpf-tool) et obtenez des mises à jour régulières. La raison en est que ces produits sont encore en cours de développement et que leur réécriture (forking) entraînera une diffusion des efforts de développement et forcera vos clients à utiliser des versions obsolètes.



(Av votre gratitude, comme j'ai exprimé ma gratitude à ceux qui m'ont inspiré pour créer des graphiques de flammes.)



Quant à la "démo incroyable": ce n'était pas le produit génial basé sur DTrace auquel je m'attendais après avoir entendu parler de la tournée mondiale. En fait, ils se sont avérés être mes propres outils. Je soupçonne que de nombreux développeurs open source découvriront tôt ou tard que leur code est en train d'être renommé. Mais dans mon cas, les circonstances étaient plutôt inhabituelles. Un développeur américain a fait un tour du monde avec un logiciel qu'il n'a pas écrit, notamment en donnant par inadvertance une présentation et une démonstration à l'auteur. Il n'a même pas semblé me ​​remercier.






Publicité



VDS puissant avec protection DDoS et matériel dernier cri. Tout cela concerne nos serveurs épiques . Créez votre propre plan en quelques clics, la configuration maximale est de 128 cœurs de processeur, 512 Go de RAM, 4000 Go de NVMe.



Abonnez-vous à notre chat sur Telegram .






All Articles