Una demostración increíble y un poco sobre Sun Microsystems

Esta es la historia de la demostración más increíble que he visto en el mundo del código abierto. Esto es simplemente imposible de conseguir.



En 2005, estaba en medio de las cosas. Trabajé como consultor de rendimiento independiente y Sun Microsystems acaba de lanzar DTrace, un producto que puede instrumentar cualquier software. Dio a los analistas de rendimiento una función de "visión de rayos X". Al escribir y publicar herramientas avanzadas de investigación de rendimiento basadas en DTrace (mi DTraceToolkit de código abierto y otras herramientas de DTrace, es decir, scripts), noté algo extraño: publiqué más herramientas DTrace que las que lanzó Sun. ¿Probablemente hay algún tipo de proyecto interno en el que todas las personas que conocen DTrace estén ocupadas?





DTraceToolkit v0.96 (2006)



Como no era un empleado de Sun Microsystems, no estaba al tanto de los proyectos internos de la empresa. Sin embargo, realicé capacitación y consultoría para Sun, ayudando a los clientes de la empresa con la administración y el rendimiento del sistema. A veces, Sun me invitaba a las reuniones de sus clientes y otros eventos que me interesarían como profesional local. Luego viví en Sydney (Australia).



Una vez me dijeron que venía una persona muy importante de los Estados Unidos, con quien estaría interesado en conocer. No recuerdo el nombre, pero me dijeron que se trata de un especialista en DTrace y desarrollador de Sun que está volando alrededor del mundo y hablando sobre un nuevo producto de Sun basado en DTrace. ¡Ajá! ¡Probablemente el mismo proyecto interno!



Pero este debería ser un proyecto extraordinario. He visto algunas de las increíbles tecnologías de Sun, pero nunca he oído hablar de un desarrollador que viaje en una gira mundial. Será genial y lo más probable es que no deje piedra sin remover de mis proyectos anteriores de DTrace.



Este VIP regresaba por unos días a Sydney antes de viajar a la próxima ciudad australiana, así que quedamos en la oficina de Sun en Sydney.



Una reunión



El técnico de DTrace llegó con un traje de negocios estándar y tenía un fuerte acento estadounidense en su voz. Era evidente que estaba un poco cansado de la gira mundial. Acaba de llegar desde Sudáfrica y Nueva Zelanda y enumeró otros países y ciudades a los que viajará a continuación. Dos empleados más de Australian Sun se unieron a nuestra reunión. Uno de ellos me presentó:



"Brendan imparte cursos con nosotros y participó en proyectos de DTrace".



Una visión tan humilde es la norma en Australia (especialmente para los australianos), y me pregunté si él entendía esta diferencia cultural. Otra diferencia fue que en 2005 había bastantes puestos de ingeniería en Australia, a diferencia de los Estados Unidos. Por ejemplo, todos los empleados de Sun Microsystems Australia participaron en el soporte, pero no en el desarrollo, y otros gigantes tecnológicos aún no habían llegado al mercado. Es decir, en aquellos días en Australia, ingenieros increíbles tomaron cualquier trabajo disponible.



Traté de explicar con más detalle qué se entiende por "trabajado" diciendo que escribí DTraceToolkit, pero no le impresionó. No sabía mi nombre y nunca había oído hablar de DTraceToolkit. Para él, yo era solo una persona al azar.



Sin embargo, accedió amablemente a mostrarme una pequeña demostración. Su producto basado en DTrace era un complemento de una gran GUI de Sun con la que ya estaba familiarizado. Una vez descargado, le mostró cómo iniciar una de las varias herramientas de DTrace haciendo doble clic en el icono. La herramienta puede mostrar datos sin procesar en una ventana separada o mostrar los resultados como un gráfico de líneas. Parecía bastante mediocre . La GUI ya tenía esta funcionalidad y esperaba nuevas funciones de GUI.



La única novedad eran los propios instrumentos, de los cuales había bastantes. Habló brevemente sobre las increíbles nuevas capacidades de vigilancia que brindan (lo más probable es que lo haya dicho muchas veces en un esfuerzo por impresionar a los clientes). Tuve la sensación de que no esperaba que yo apreciara plenamente su valor.



Pero en realidad conocía estas herramientas porque estaba codificando una funcionalidad similar para mi DTraceToolkit. Fueron útiles ... pero esperaba una cascada de increíbles funciones nuevas de DTrace.



"¡He hecho esto antes, yo mismo he escrito las herramientas que realizan estas funciones!"



"Bueno, sí, por supuesto", no respondió de esa manera, pero su mirada era elocuente, no me creía y no pensaba que yo me di cuenta plenamente de su necesidad. Fue una innovación importante por valor de miles de millones de dólares de la multinacional estadounidense Sun Microsystems. Y yo era solo un australiano ordinario.



Rastreo de zócalos



Busqué entre los íconos de la GUI algo nuevo para mí, y lo más interesante fue la herramienta para rastrear E / S de socket. Intenté trabajar con él en 2004 ( socketsnoop.d ) y publiqué el resultado resultante en código abierto, pero mi herramienta era imperfecta: no tenía acceso completo al código fuente del kernel, así que apenas tuve que resolverlo. por mi cuenta analizando la caja negra ". Funcionó con la mayoría de los tipos de tráfico TCP, pero no con otros, lo cual informé en los comentarios del script. Además, no lo agregué a DTraceToolkit porque no creía que la herramienta estuviera completa. Por lo tanto, de todos sus instrumentos, este fue el más interesante para mí. Sun podría haberlo hecho mucho mejor porque tenía el código fuente y había terminado la herramienta.



“¿Puedo ver el script de E / S del socket?” Abrí la terminal. Al principio, el desarrollador parecía preocupado, como si no se me permitiera echar un vistazo entre bastidores, pero luego se dio cuenta de que este era otro punto de venta del producto: "Sí, por supuesto, incluso puede agregar nuevas herramientas al GUI! " Después de una pausa, agregó: "Si, por supuesto, los tiene". Los tengo, eso es seguro. Me dijo el camino a buscar, y después de un rato llegué a la carpeta con todas las herramientas que estaba demostrando.



Todos los instrumentos tenían nombres familiares. Uno incluso se llamó socketsnoop.d. Las sospechas surgieron en mí.



No puede ser.



He impreso socketsnoop.d. Mi propio guión apareció en la pantalla. ... Este fue el mismo intento inacabado que hice un año antes y publiqué como código abierto. Contenía un código extraño que me parecía lógico en ese momento (usando PFORMAT antes de los valores predeterminados) y estaba escrito en mi antiguo estilo. Estaba leyendo mi guión .



"Este es MI guión".



Abrí algunos instrumentos más y en todas partes vi lo mismo: todos eran míos . Este nuevo y asombroso producto de Sun que el Sr. VIP ha estado promocionando en todo el mundo era en realidad mis propias herramientas de código abierto.



Me quedé boquiabierta. Pero no pareció creerme.



No puedes hacer esto



Usando grep, busqué en todas las herramientas mi nombre, que se indicó en el primer comentario de todas mis herramientas, para demostrar que son mías. Pero no encontré nada. Mi nombre fue eliminado.



Algunas de las herramientas incluso tenían la línea:



# Autor: Brendan Gregg [Sydney, Australia]




Y ahora este hombre ha venido a Sydney y está tratando de vender las herramientas de Brendan Gregg a Brendan Gregg.



Uno de los empleados australianos de Sun me interrumpió: "Es propiedad de Sun Microsystems en todas partes". La mayoría de mis herramientas incluían mis derechos de autor y licencia GPLv2 o CDDL. Pero estos solo contenían el mensaje estándar de derechos de autor de Sun, y se eliminaron las licencias de código abierto.



“¡Quitaste mi nombre! ¡Y derechos de autor con licencias! "



El segundo australiano le dijo al invitado: "No puedes hacer esto". El silencio reinó en la habitación, todos los presentes intentaron comprender lo que había sucedido. Mientras que algunas personas en Sun motivaron a los desarrolladores a contribuir al código abierto y construir una comunidad, otros robaron la comunidad. Se llevaron su trabajo, cambiaron las licencias y los derechos de autor y luego lo vendieron.



El invitado no estaba preparado para esto y parecía desconcertado. Se mantuvo lacónico, solo dijo que no entendía cómo sucedió esto, que ya le podrían haber entregado los instrumentos en esta forma (léase: no me culpes). Parecía que solo creía parcialmente en nuestras palabras.



La reunión terminó rápidamente. Le sugerí que tomara copias más recientes de mis herramientas directamente de DTraceToolkit porque esas versiones anteriores de mi página de inicio ya estaban desactualizadas y he corregido varios errores en ellas desde entonces. También le recordé que dejara mi nombre, derechos de autor y licencia en todos ellos.



En su defensa, puedo decir que la reunión podría haber sido diferente si me hubieran presentado con más detalle. Este es un problema cultural en Australia (mantén la cabeza gacha). Para un australiano, representar a una persona al estilo estadounidense puede parecer un alarde, pero también puede ser útil como una forma rápida de comunicar la especialización de una persona.



Otros casos



No podía creer que de todas las herramientas de código abierto que publiqué, se hubiera agregado socketsnoop.d al producto. Este programa fue tosco. Más tarde escribí herramientas de socket mucho mejores (en mis libros sobre DTrace y BPF ).



Unos años más tarde, Apple agregó muchas de mis herramientas a OS X. La compañía mantuvo allí mi nombre, derechos de autor y licencia CDDL de código abierto, e incluso mejoró algunas de ellas. Años más tarde, Oracle hizo lo mismo con Oracle Solaris 11 y la comunidad BSD hizo lo mismo con FreeBSD. Doy las gracias a todas estas personas.



Se podría decir que no fue Sun quien lo hizo, sino una persona soltera y descuidada. Pero había algo en la cultura del Sol que fomentaba este tipo de negligencia. Mis compañeros consultores y yo hemos experimentado esto antes: la creencia de que Sun y solo Sun pueden hacer el mejor uso de su propia tecnología, y todo lo que está fuera de Sun es basura. Cuando estos empleados de Sun encontraron algo bueno, tendieron a pensar que fue creado por Sun, lo que significa que se puede usar y cambiar el nombre de manera segura (y cambiar la licencia) porque creían que la empresa ya era propietaria de los derechos de autor.



Había otras personas en Sun que estaban ansiosas por hacer lo correcto conmigo y con mi trabajo. Al menos cuatro veces, mi DTraceToolkit se incorporó a productos de supervisión de software sin eliminar las licencias. (En un caso, querían volver a licenciarlo bajo la GPL, y discutimos la situación con el departamento legal de Sun, pero esa es otra historia).



Por cierto, no fue la última vez que inadvertidamente intentaron vender mi trabajo a yo, esta fue solo la primera vez. Aprendí a no decirle a los vendedores que yo creé lo que estaban tratando de venderme, porque luego empezaron a mirarme como si estuviera loco. En cambio, simplemente dije: "Tengo mucha experiencia con esta tecnología", y me limité a eso.



Recordé este primer caso porque mis herramientas BPF ahora están comenzando a aparecer en productos de vigilancia de software y, con el tiempo, serán mucho más grandes que las herramientas DTrace. En publicaciones futuras escribiré sobre esto con más detalle, pero por ahora les aconsejo a los desarrolladores lo siguiente: por favor no reescriban mis herramientas BPF y bibliotecas bcc; intente construir sobre ellos (en las versiones bcc python o bcc libbpf-tool) y obtenga actualizaciones periódicas. La razón es que estos productos todavía están en desarrollo, y reescribirlos (bifurcarlos) conducirá a una difusión de los esfuerzos de desarrollo y obligará a sus clientes a utilizar versiones obsoletas.



(Con mi software para crear gráficos de llamas, la situación es diferente: dado que este es un algoritmo simple y listo para usar que no requiere un soporte especial, no veo ningún problema en particular en que otros lo reescriban. Sin embargo, no vendrá mal. su gratitud, ya que expresé mi gratitud a aquellos que me inspiraron a crear gráficos de llamas.)



En cuanto a la "demostración increíble": no era el increíble producto basado en DTrace que esperaba después de escuchar sobre la gira mundial. De hecho, resultaron ser mis propias herramientas. Sospecho que muchos desarrolladores de código abierto tarde o temprano descubrirán que su código está siendo renombrado. Pero en mi caso, las circunstancias fueron bastante inusuales. Un desarrollador de EE. UU. Realizó una gira mundial con un software que él no escribió, incluida una presentación y una demostración al autor sin darse cuenta. Ni siquiera pareció agradecerme.






Publicidad



Potente VDS con protección DDoS y el último hardware. Todo esto se trata de nuestros servidores épicos . Cree su propio plan con un par de clics, la configuración máxima es de 128 núcleos de CPU, 512 GB de RAM, 4000 GB de NVMe.



Suscríbete a nuestro chat en Telegram .






All Articles