[Solar-general] Cómo Google utiliza Gnu/Linux

Ignacio Pedrini duxjipd en gmail.com
Dom Nov 8 23:30:46 CET 2009


 Cómo Google utiliza Linux
2009 Noviembre 8
 by alexsandovalm

En LWN.net <http://lwn.net/> cubrieron la *2009 Linux Kernel Summit*, y
presentaron un resumen de la presentación realizada por los ingenieros de
Google sobre la forma en que utilizan Linux. Según el artículo, un equipo de
30 ingenieros de Google se remonta al núcleo principal cada 17 meses,
poniendo en ejecución 1208 parches para el núcleo 2.6.26 y la inserción de
casi 300.000 líneas de código; aproximadamente el 25% de los parches son
backports de nuevas características.

No existe ninguna otra organización que utilice más extendidamente sistemas
Linux que Google. Sin embargo, la comunidad de desarrollo del kernel sabe
poco acerca de cómo Google utiliza Linux y qué tipo de problemas se
encuentran allí. Mike Waychison de Google viajó a Tokio para ayudar a dar
algo de luz sobre esta situación y el resultado fue una interesante
perspectiva sobre lo que se necesita para ejecutar Linux en este entorno
sumamente exigente.

Mike empezó la charla contando a los desarrolladores un chiste: parece que
Google gestiona su código del kernel con Perforce (un sistema comercial de
control de versiones para gestionar proyectos experimentales que todavía no
están listos). Se disculpó por ello. Existe un solo árbol que  compromete a
todos los desarrolladores. Aproximadamente cada 17 meses, Google monta su
trabajo a una publicación de línea de desarrollo principal, lo que sigue es
una larga lucha para que todo funcione de nuevo. Una vez hecho esto, las
“característica” internas se liberan cada seis meses.

Esta manera de hacer las cosas dista mucho de ser ideal, significa que
Google está muy por detrás de la línea de desarrollo principal y tiene
dificultades para hablar con la comunidad de desarrollo del kernel sobre sus
problemas.

Hay alrededor de 30 ingenieros que trabajan en el kernel de Google. En la
actualidad tienden a revisar sus cambios en el árbol, y luego se olvidan de
ellos por los próximos 18 meses. Esto lleva a algunos problemas de
mantenimiento; los desarrolladores a menudo tienen una pequeña idea de lo
que realmente está en el árbol de Google hasta que se rompe.

Y hay mucho en ese árbol. Google comenzó con el kernel 2.4.18 – en el que
parcharon más de 2000 archivos, insertando 492.000 líneas de código. Entre
otras cosas, ellos portaron el soporte de 64 bits dentro del núcleo. Más
tarde se movieron al núcleo 2.6.11, principalmente porque necesitaban el
soporte SATA. Cotinuaron con un kernel basado en la versión 2.6.18, y ahora
están trabajando en la preparación de un kernel 2.6.26 para un desarrollo
futuro. Están actualmente llevando 1208 parches al núcleo 2.6.26, insertando
cerca de 300.000 líneas de código. Aproximadamente el 25% de los parches,
según estimaciones de Mike, se tratan de *backports* de nuevas
características.

Hay planes para cambiar todo esto, el grupo del núcleo de Google está
tratando de llegar a un punto en el que puedan trabajar mejor con la
comunidad del núcleo. Se están moviendo a git para la gestión del código
fuente, y los desarrolladores podrán mantener sus cambios en sus propios
árboles. Esos árboles se montarán al desarrollo del núcleo principal cada
trimestre, lo que debería motivar a los desarrolladores hacer su código más
fácil de mantener y más en consonancia con el flujo de desarrollo del
núcleo.

Linus le preguntó: ¿por qué no son estos parches presentados? ¿Es porque
Google se siente avergonzado por ellos, o se trata de material secreto que
no quiere revelar, o es una cuestión de problemas en el proceso interno? La
respuesta fue simplemente “sí”. Algunos de estos códigos son algo “feos” que
se han llevado adelante desde el núcleo 2.4.18. También hay dudas internas
acerca de cómo gran parte de este material será realmente útil para el resto
del mundo. Pero, tal vez, cerca de la mitad de este código podría ser de
incluido en el desarrollo eventualmente.

Más de 3/4 del código de Google consiste en cambios al núcleo central, el
soporte a dispositivo es relativamente una pequeña parte del total.

Google tiene una serie de “puntos de dolor” (“pain points”) que hacen que
trabajar con la comunidad sea más difícil. Mantenerse al día con el flujo de
desarrollo del núcleo es difícil -simplemente se mueve demasiado rápido.
También hay un problema real con los desarrolladores publicando un parche, a
continuación, se pide volver a trabajar de una manera que lo convierte en un
proyecto mucho más grande. Alan Cox tenía una respuesta simple para que
ellos: la gente siempre pide más, pero a veces lo que hay que hacer es
simplemente decirles “no”.

Puedes ver el artículo completo en LWN.

*Enlaces:*

   - The 2009 Linux Kernel Summit<http://lwn.net/Articles/KernelSummit2009/>
   - How Google uses Linux <http://lwn.net/Articles/357658/>
   - How Google uses
Linux<http://translate.google.cl/translate?prev=hp&hl=es&js=y&u=http%3A%2F%2Flwn.net%2FArticles%2F357658%2F&sl=en&tl=es&history_state0=>(traducción
automática con Google)

*
Extraído de:*
http://microteknologias.wordpress.com/2009/11/08/como-google-utiliza-linux/



La versión de Linux que usa Google
Publicado hace 1 hora por * Franco
Catrin<http://www.fayerwayer.com/author/Franco/>
*

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<http://infolab.stanford.edu/%7Ebackrub/google.html>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<http://www.fayerwayer.com/2009/10/se-viene-el-linux-kernel-summit-2009/>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 <http://www.youtube.com/watch?v=4XpnKHJAok8> 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<http://www.fayerwayer.com/2009/10/el-dia-de-windows-7-en-7-fotos/>,
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<http://www.fayerwayer.com/2009/09/drivers-de-microsoft-para-linux-estuvieron-a-punto-de-ser-eliminados/>,
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 <http://lwn.net/Articles/357658/> *(LWN.net)*


**

*Extraído de:*

*http://www.fayerwayer.com/2009/11/la-version-de-linux-que-usa-google/
*



-- 
José Ignacio Pedrini.
Free Culture Activisit.
Free Software Acrivist.
Partido Pirata Activist.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: /pipermail/solar-general/attachments/20091108/3681b421/attachment.htm


Más información sobre la lista de distribución Solar-general