La versión de Linux que usa Google

tuxGoogle 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.

El código es horrible

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)

Compartir Compartir
Publicado por Franco Catrin el 8 de November 2009 en la categoría Destacados, Software con los tags , , , . Tiene 54 comentarios.

54 Comentarios

La versión de Linux que usa Google

Deja tu Comentario ↓
resident

DesaprobarAprobar25resident dijo el 8-11-2009 a las 17:17:

1

misch este google trabaja a la segura

Shoiko

DesaprobarAprobar26Shoiko dijo el 8-11-2009 a las 17:24:

2

puta que son pillos estos wns

migovilo

DesaprobarAprobar62migovilo dijo el 8-11-2009 a las 17:24:

3

Un Linux adaptado a la medida de las necesidades. ¡Excelente! Esto solo es posible gracias al código abierto.

Ver Comentario... rodrigo dijo el 8-11-2009 a las 17:28 ...

TU_PADRE

DesaprobarAprobar30TU_PADRE dijo el 8-11-2009 a las 17:31:

5

rodrigo weon, aprende a tomar clases tu.. Fcatrin es la onda con este tipo de posts.

Ver Comentario... fw dijo el 8-11-2009 a las 17:35 ...

DTM

DesaprobarAprobar11DTM dijo el 8-11-2009 a las 17:40:

7

Definitivamente trabajan MUY a la segura y sólo confian en los cambios que ellos hacen, aunque como ellos mismos lo dijeron su codigo puede no cumplir los estandares para ser publicado,en fin, esto solo es posible con un sistema totalmente modificable como lo es Linux, en eso no hay quien les gane.

Ver Comentario... ALF dijo el 8-11-2009 a las 17:42 ...

Leonardo

DesaprobarAprobar56Leonardo dijo el 8-11-2009 a las 17:43:

9

Si el código es horrible entonces estoy capacitado para trabajar en google!

Ver Comentario... ALF dijo el 8-11-2009 a las 17:46 ...

Ver Comentario... Alexis dijo el 8-11-2009 a las 17:51 ...

si po

DesaprobarAprobar21si po dijo el 8-11-2009 a las 18:05:

12

Me lo creo 100%
En casa del herrero cuchillo de palo

Ver Comentario... lector decepcionado dijo el 8-11-2009 a las 18:13 ...

irene

DesaprobarAprobar24irene dijo el 8-11-2009 a las 18:19:

14

muy interesate, Bueno saber que un grande como google usa linux tambien

y los trolls … bueno son trolls no mas

Claudio

DesaprobarAprobar-1Claudio dijo el 8-11-2009 a las 18:27:

15

Grande google!

r3pt4r

DesaprobarAprobar45r3pt4r dijo el 8-11-2009 a las 18:37:

16

Oigan más respeto para los editores de FW, si no les gustan los temas, pues no los vean, pero no critiquen ni ofendan.

Ver Comentario... JansDark dijo el 8-11-2009 a las 18:40 ...

Antigueño

DesaprobarAprobar4Antigueño dijo el 8-11-2009 a las 18:41:

18

Sin duda hay que recordar que muchas modificaciones que Google he hace al código son solo útiles en los mismos escenarios… seguramente no tan útiles para incorporarlos al código general de la nube de usuarios linux.

Franco Catrin

Franco Catrin dijo el 8-11-2009 a las 19:08:

19

@Leonardo

Una cosa es que el código sea horrible, otra cosa es que sea una implementación brillante. En Linux piden al menos lo primero, lo segundo es selección natural como diría Darwin.

Franco Catrin

Franco Catrin dijo el 8-11-2009 a las 19:09:

20

@r3pt4r

Tranquilo. A mi me da lo mismo. Cada uno sabe quien es.

Alex

DesaprobarAprobar40Alex dijo el 8-11-2009 a las 19:10:

21

Google se va a la segura utilizando un kernel ultraprobado que funciona excelente en sus granjas de servidores, dudo mucho que la vieja qlia de la abuela de Alexis tenga una granja de servidores en donde pueda aplicar un kernel altamente configurado.

Google aporta bastante y no solo al software libre, sino que también al público en general, apoyando y financiando proyectos de código libre, entregando aplicaciones gratuitas, etc. Así que lector decepcionado, me podrias indicar en que te afecta Google para que puedas decir con tanta seguridad que Google es peor que Microsoft???

Si de hablar webadas pagaran, algunos estarían podridos en plata.

Y ALF, qué onda con Franco, no te quiso meter la tula y quedaste como gay resentido?

Davor

DesaprobarAprobar0Davor dijo el 8-11-2009 a las 19:50:

22

Hace unos años leí un paper acerca de GoogleFS, el sistema de archivos distribuído que utilizan en Google (creo que lo bajé de Google labs). Bastante interesante.

Para el diseño de éste tomaron como premisa que los computadores sobre los que se ejecutaba era basura y se pasaban cayendo (ya sea falla de soft o hardware). Puros cacharros con Linux. Es decir, no confiaban en Linux o_O

Deben tener otros equipos muy high end, de eso no me cabe duda. Pero parte importante son (o eran cuando salió ese paper) puros cacharros que pasaban cambiando.

- Davor

Franco Catrin

Franco Catrin dijo el 8-11-2009 a las 20:00:

23

@Davor

En realidad el enfoque es otro. Es un esquema similar al de internet, en donde el sistema completo es tolerable a fallas, asumiendo de que de partida esas fallas van a existir por cualquier motivo.

Si lees el paper original, verás que el sistema estaba pensado para funcionar en un sistema Unix como Solaris o Linux en este caso, por lo que el problema de que se caiga o no, es independiente del sistema operativo.

La idea de fondo que hay en estos conceptos es que es mucho más barato tener una gran cantidad de máquinas baratas que hagan el mismo o más trabajo que una sola gran máquina carísima. Hay que verlo desde el punto de vista de esos años en donde lo que predominaba eran las máquinas caras y potentes.

El mismo concepto de tolerancia a fallas y flexibilidad para escalar después se conoció como Grid y que ahora en su n-esima derivada le llaman Cloud.

Leonardo

DesaprobarAprobar5Leonardo dijo el 8-11-2009 a las 20:02:

24

@Franco Catrin: jajaja era en tono de broma =D el texto está más que claro. Saludos!

(_--)a[ ]

DesaprobarAprobar7(_--)a[ ] dijo el 8-11-2009 a las 20:38:

25

Interesante la nota.
Si no fuera por el uso del codigo abierto y modificado a la medida, no tendriamos todos los servicios que disponemos como usuarios de google y ademas, sin tener que pagar, no como otros. El dia que google empiece a cobrar por sus herramientas gratuitas, sera el acabose del mundo (2012). En ese sentido, por el momento se benefician todos, los usuarios, google que le pega el palo a los que tienen dinero como los de la publicidad, estos tienen para regalar, total el dinero lo consiguen de sus clientes, del dinero que han ganado apostando en los casinos como el de wall street.

En cierto modo, google me recuerda a robin hood. Le quita el dinero a los ricos, para repartirlo despues, a los pobres usuarios desemparados y oprimidos por los tributos, y vasallaje a las licencias.

Me recuerda la formula uno donde cada avance tecnologico aplicado en los monoplazas, mas de alguno, pasa despues a integrarse a los automoviles de serie. Ahora, evitando la parte arcaica del kernel, los desarrolladores pueden extraer mucho de las partes musculosas del kernel modificado de google, como el planificador de tareas aplicado de manera intensiva con extra tocino. Es cierto que como usuario promedio, jamas pondra a correr cientos de aplicaciones a la vez, pero tener en cuenta hasta donde llegan los limites (y si es que tiene) del kernel linux en aplicaciones criticas, suena interesante.

Que habran aprendido los de google en el summit kernel de parte de la comunidad, quizas la necesidad de actualizar el sistema de control de versiones del software como prioridad (demas que ya lo han considerado y estudiado), no creo que les cueste caro y tengan que traspasar el costo a sus usuarios como otros.

Estas iniciativas son positivas para compartir experiencias, por la vitrina que agrega google y su experiencia con el codigo abierto (tienen intenciones altruista como por ejemplo acabar con microsoft) que es importante y hacen volver la vista hacia el gnu/linux de usuarios de otros sistemas, empresas, gobiernos, permitiendo que estos se planteen considerar el codigo abierto como una alternativa real.

Espero que del summit kernel se saque mucha experiencia e historias sabrosas de bohemios.

Ver Comentario... Alexis dijo el 8-11-2009 a las 20:48 ...

Manu

DesaprobarAprobar-1Manu dijo el 8-11-2009 a las 21:24:

27

Google está creando todo lo que necesitamos para trabajar dentro de la web. Y otras muchas empresas están creando lo que necesitamos para jugar. Una vez esté todo en la web, ya dará lo mismo que usemos Windows o Linux.

Lo que… provocará lo inevitable. Que al igual que cada vez mas usuarios usan Firefox, haya mas y mas usuarios que usan Linux por que es mejor, mas rápido y le ofrece lo mismo que Windows al usuario novel o medio.

Chrome es el paso, inesperado, que ha permitido que Google meta el pié donde mas le importa para que, cuando Microsoft reciba su merecida zancadilla por parte del tejido empresarial global, él esté justo en el sitio adecuado para dar el siguiente paso, ese que no va a dar Microsoft por haber fallecido de codicia.

monogeek@yahoo.com

DesaprobarAprobar4monogeek@yahoo.com dijo el 8-11-2009 a las 21:37:

28

yo solo ubunto o XP. Estos post hacen ver a los de google mas personas reales y menos superhumanos. Interesante post. Dont feed the trollz

deenfoque

DesaprobarAprobar-5deenfoque dijo el 8-11-2009 a las 21:50:

29

interesante.. pero, no estaràn diciendo entre lineas que las ùltimas versiones del kernel de Linux estàn demasiado hinchadas como para serles ùtiles.

Franco Catrin

Franco Catrin dijo el 8-11-2009 a las 22:05:

30

@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.

Deja tu Comentario

XHTML: Puedes usar: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Previsualizar comentario?