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.
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)
Autor: Franco Catrin
Fuente: Fayerwayer
No hay comentarios.:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!