Google es probablemente la organización en donde está corriendo la mayor cantidad de sistemas Linux. Gracias a este sistema operativo fue posible crear un esquema de trabajo distribuido y a la medida que fuera suficientemente independiente para permitir convertir una tesis en lo que hoy es Google.
Pero hasta hace poco, no se sabía mucho de qué uso y qué tipo de problemas encontraba Google en su intensivo uso de Linux. Digo hasta hace poco porque en el reciente Kernel Summit realizado en Japón, Mike Waychison de Google asistió para exponer a los principales hackers del kernel, el uso que este gigante informático le da a Linux.
Google usa un sistema de control de versiones del software bastante arcaico para lo que está acostumbrada la comunidad del código abierto, lo que provocó risas en los asistentes. Se trata de Perforce, y en comparación a nuevos sistemas como Git, tiene limitaciones o modos de trabajo que uno jamás pensaría que tendrían en Google. No es de extrañar el interés despertado en los asistentes a la presentación que hizo Linus Torvalds sobre Git en Google hace un tiempo atrás.
Y eso es sólo el comienzo, ya que Google maneja versiones bastante atrasadas de Linux. Alrededor de 30 ingenieros trabajan sobre una única base de código, aplican cambios y aproximadamente cada 18 meses sincronizan su propia versión con una versión pública de Linux. Al ritmo que se desarrolla el kernel, la cantidad de cambios acumulados en todo ese tiempo lo convierten en una tarea titánica.
Es tanto así, que muchas de las lineas de código que Google agrega a su propia versión son funcionalidades que se han implementado en Linux pero que no existían en la versión que usaron como base. Así sucedió por ejemplo con el soporte de 64-bit y el soporte de SATA. Actualmente se están preparando para mezclar con 2.6.26, mientras que la versión pública ya se acerca a 2.6.32. Los cambios de Google serán aproximadamente 300.000 líneas de código en donde un 25% corresponde a backports de nuevas características.
Linus Torvalds quien obviamente estaba presente y no fue sólo a sacarse fotos a Japón, preguntó por qué Google no aplicaba sus cambios al kernel público. Mike respondió que el código era bastante horrible y basado en versiones antiguas de Linux, además de que no tenían seguridad de que los cambios aplicados por ellos tuvieran alguna utilidad para otros y que probablemente sólo la mitad de éste sería publicable. Hay que recordar que licencias como GPL no obligan a publicar el código que se usa internamente, por lo que Google está en su derecho de no publicar sus cambios.
Otro aspecto importante es que los estándares para aceptar código en el kernel son bastante altos, por lo tanto un cambio que Google puede hacer rápidamente se convertiría en un proyecto de largo o mediano plazo al entrar en un proceso más exigente como es el desarrollo de Linux.
Mike también habló de uno de los aspectos críticos del kernel para Google, que es la forma en que se ejecutan los procesos. En un sistema multihilos como Linux, existe un componente que se encarga de decidir qué proceso usará la CPU en un momento determinado, este componente se llama scheduler o planificador. Para Google se trata de un componente en donde los cambios tienen un alto impacto, ya que en sus sistemas corren unos 5000 hilos en 16 a 32 cores, mientras que en el equipo de Linux este aspecto se ataca con criterios de diseño que apuntan a un uso más tradicional.
En general Google aplica varios cambios a medida que los necesita, en forma independiente a cómo se implementan en el kernel, hasta que llega el momento de cambiar de versión. Según los asistentes, esta participación en Linux Summit fue bastante productiva ya que se puede decir que la comunidad aprendió mucho de uno de sus principales y extremos usuarios.
Link: How Google uses Linux (LWN.net)
Publicado por Franco Catrin el 8 de November 2009 en la categoría Destacados, Software con los tags Google, Kernel, Linus Torvalds, Linux. Tiene 50 comentarios.
50 Comentarios
La versión de Linux que usa Google
Franco Catrin dijo el 8-11-2009 a las 22:05:
31@deenfoque
De ninguna manera, de hecho lo que dicen es que tratarán de reducir la distancia entre la versión que manejan ellos y la pública.
Sobre lo del “kernel hinchado” es más que nada las palabras sinceras de Linus Torlvads sacadas de contexto.

8habrock dijo el 8-11-2009 a las 23:37:
No es raro saber que algunas Grandes empresas usan software o tecnologia algo anticuada…. se sabe que todavia hay muchos sistemas que corren en lenguaje COBOL que es muuy viejo… con respecto a google pienso que esta bien… ellos moldean su linux o kernel en base a lo que necesitan…. ahora que sea asqueroso ese es otro tema xD

0grevious dijo el 9-11-2009 a las 00:16:
Tenia entendido que GPL es una licencia pegajosa cualquier fork esta obligado a ser GPL, o no entendi bien?

0MG-Speed dijo el 9-11-2009 a las 00:38:
Palabras de los que hacen el “trabajo sucio” del software en Google… bastante interezante.. ya me imagino el trabajo titanico de aplicar los cambios…

0r3pt4r dijo el 9-11-2009 a las 02:16:
@Franco Catrín
Ok reconozco que me exalté, pero bueno un saludo Franco y a seguirle echando ganas
. Saludos desde México.

0paskys dijo el 9-11-2009 a las 03:39:
Grande Franco.
Tal vez el despedido de MS tenga razon y linux sea el futuro.

2lest dijo el 9-11-2009 a las 04:59:
El dia que Google haga publicos y libere en SL sus algoritmos de busqueda, me creere que son diferentes y que apoyan el SL. Hasta entonces son solo unos listos que engatusan a la comunidad OSS, enfrentados a Microsoft, pero siendo mas hipocritas que estos. Ademas de ser patetica la excusa puesta para no devolver codigo a la comunidad. Tienen junto con MS a los mejores desarrolladores del mundo y no hacen codigo de suficiente calidad para ser compartido??? Venga ya

0manuti dijo el 9-11-2009 a las 05:24:
interesante reflexión de que no hace falta estar a la última para sacarle todo el jugo a Linux

0Loco Suelto dijo el 9-11-2009 a las 07:22:
Podemos decir que Google trabaja de una forma muy profesional, al parecer tienen una metodología de trabajo libre de dependencias.
Interesante.

-1La versión de Linux que Google usa en sus servidores | Actualidad Informática dijo el 9-11-2009 a las 08:38:
[...] Enlace | Que versión de Linux usa Google [...]

0Federico Sayd dijo el 9-11-2009 a las 09:17:
@Davor: El enfoque de Google es poner toda la inteligencia en el software que corre sobre su base de hardware barato. Es lo mismo que hoy día se ha hecho tan popular al independizar las aplicaciones del hardware con la virtualización y al mismo tiempo permitir trabajar con alta disponibilidad y escalabilidad. Si sumas todo esto como dijo Franco tendrás lo que hoy llaman Cloud Computing. Es un concepto por demás interesantísimo, toda la lógica está desarrollada sobre el software, que es lo que Google sabe hacer mejor. Por debajo el hardware es como si fueran ladrillos legos que cuando se rompen se cambian y listo sin que el sistema se de cuenta. Ah y todo esto por muy buen precio.
Franco Catrin dijo el 9-11-2009 a las 09:48:
42@habrock
Ayer estuve leyendo que NVIDIA también usa Perforce. Se viene pronto un artículo sobre NVIDIA
Franco Catrin dijo el 9-11-2009 a las 09:49:
43@lest
No es necesario que libere su implementación, basta con los conceptos básicos y eso es público. Busca sobre el algoritmo Map-Reduce, es la base de su procesamiento distribuido.
Franco Catrin dijo el 9-11-2009 a las 09:50:
44@grevious
Eso es sólo si distribuyes el software, no si lo usas para ti mismo. Si hay algo destacable de Richard Stallman y la Free Software Foundation es lo bien pensadas que están sus licencias.

5Hitokiri dijo el 9-11-2009 a las 12:53:
@lest
O sea que si yo hago un trabajo y desarrollo un codigo lo tengo que liberar al publico para no ser malo? yo creo que muchas personas estan super equivocadas con el tema del software libre, una persona o empresa tiene todo el derecho a desarrollar su propio codigo y que este codigo haya sido desarrollado no le da el derecho a los demas para exigirlo.

1Satanas dijo el 9-11-2009 a las 13:06:
Como seria Google corriendo sobre una plataforma microsoft o mac?
Slds.

0inyaka dijo el 9-11-2009 a las 14:04:
@Satanas google seria pobre, muy pobre
no podrián:
tener sus granjas de servidores (donde cultivan datos)
adecuar el kernel a sus necesidades
rendir lo que rinden, sus servidores con cueva soportan vista XD
ser cool
me gusto el comentario sobre la licencia GPL voy a leerla mas detenidamente, quizás licencia un par de cosas con ella

0Juan Pablo dijo el 16-11-2009 a las 20:36:
Que buen artículo! Y que buena experiencia la verdad, no siempre se puede conocer qué se hacen en los proyectos donde se ocupan esa cantidad de núcleos de procesador. Generalmente ese tipo de investigaciones están cerradas a instituciones de educación o de investigación privada.
Ver Todos Páginas: ← 1 [2]