best counter
fire extinguishers types
GNU/Linux. MuyLinux

Linus Torvalds cree que el núcleo básico de Linux está inflado, lo que reduce su rendimiento

23/09/2009| por | 22 comentarios

linus torvalds 500x356 Linus Torvalds cree que el núcleo básico de Linux está inflado, lo que reduce su rendimiento

El ingeniero de software finlandés, Linus Benedict Torvalds, creador del kernel Linux y mantenedor del mismo, indicó durante una mesa redonda en LinuxCon 2009 que se celebra en Portland y a preguntas de un ingeniero de Novell, que el núcleo básico del sistema es enorme y está inflado reduciendo su rendimiento, quizá por incorporar demasiado rápido características al núcleo sin esperar que se estabilice antes. Una autocrítica que no ha sido bien entendida y ha iniciado el típico flame.

El evento organizado por la Fundación Linux se calienta por momentos (quizá sin mucho sentido), y si Bob Sutor, vicepresidente de código abierto y Linux en IBM, indicó ayer que “luchar contra Windows por cuota de mercado en los PCs es un callejón sin salida”, hoy ha sido Torvarlds el que ha impulsado un nuevo debate.

linus torvalds linux 500x356 Linus Torvalds cree que el núcleo básico de Linux está inflado, lo que reduce su rendimiento

En una de las mesas redondas organizadas en la LinuxCon, el moderador y distinguido ingeniero de Novell, James Bottomley, citó un estudio interno de Intel que rastrea los lanzamientos del kernel determinando que su rendimiento había caído un 12 por ciento acumulado en los últimos lanzamientos. Con estos datos, Bottomley preguntó a Torvalds si era un problema que las características del kernel se estaban incorporando demasiado rápido sin esperar a que el kernel se estabilizara antes, reconociendo éste que “sí, que era un problema y que el kernel estaba inflado y era ya enorme”.

Preguntado por un plan para solucionarlo, Linus respondió que “Me encantaría decir que tenemos un plan. Quiero decir, algunas veces es un poco triste pensar que no contamos con el pequeño, aerodinámico e hiper-eficiente kernel que imaginé hace 15 años… El kernel es enorme y está inflado y la huella de nuestra cache asusta. No hay duda sobre eso, y siempre que agregamos una nueva característica, la situación empeora”. Sin embargo, resaltó la estabilidad del sistema “encontrando y corrigiendo errores tan rápido” como agregaban el código.

Las declaraciones de Torvalds sobre el “código enorme” y “el descenso de rendimiento” han servido para iniciar uno de los típicos flames en nuestra modesta opinión sin mucho sentido. Linus da la pista cuando indica que esta situación es “inaceptable pero inevitable”, lo que significa que forma parte de la misma arquitectura del kernel.

Un núcleo que ha pasado en diez años de un millón y medio a diez millones y medio de líneas del código fuente que tiene la versión 2.6.30. En número de ficheros ha pasado de 4.599 a los 27.878 que contiene la última versión, lo que da idea de la inmensidad de tecnologías, características, funciones o controladores que se han añadido. Lo dicho, un debate sin mucha sustancia fuera de la deseable optimización del código oficial, ya que como sabéis el núcleo Linux se puede recompilar para cada máquina y los sistemas operativos basados en él llegan al usuario final cada vez más optimizados, ayudados por el aumento del hardware.

Categorías: GNU/Linux, Kernel

Hay 22 comentarios

  1. 1
    Anónimo dice:

    Yo veo lógico que al meter nuevas características, se vaya inflando y ralentizando. Es básico. Entiendo perfectamente la declaración de Torvalds y no entiendo el revuelo que se ha armado por ello.

    Lo que sí que podrían probar a hacer es pasar a un microkernel y no aumentarlo más mientras se refactoriza el código. O simplemente abrir una rama que lo refactorice y cuando esté lista, sustituirla. Posiblemente eso hasta nos evitaría las continuas reinstalaciones del driver de Nvidia con cada cambio del núcleo. ¿Rendiría más ligeramente lento el micronúcleo y habría que trabajar en la sincronización? Sí, pero ese rendimiento sería siempre el mismo y no se iría empeorando con futuras ampliaciones. Probablemente incluso funcione más rápido que el de ahora por el tamaño desmesurado de éste.

    Hay muchos aspectos a tener en cuenta, pero el cambio terminará haciéndose algún día y un primer paso sería que todo fuese en módulos externos por defecto, una interfaz bien definida que no obligue a recompilar los módulos con cada actualización del kernel, etc.

  2. 2
    Thrash dice:

    En el kernel de Linux pasa como con la gran mayoría de los proyectos software (sean o no de código abierto o cerrado) y es que no se depura, no se hace profiling, no se hace limpieza, … y esto se debe a que es más caro hacer todo esto que el comprar 1 GB de RAM más o ampliar CPU. Lleva pasando ya hace mucho tiempo en el mundo de la informática y se debe simplemente a eso: es más barato. También lo podemos oír como: “Hay que cortar costes”.

    Por ejemplo, tenemos un cliente que cambia todos los servidores cada 18 meses y son muchos servidores. Simplemente no es rentable depurar o “limpiar” código. Es triste, pero es así.

    Lo mismo ocurre con la paralelización de código. Tenemos muchos cores (hyper-threading en algunos casos) pero no nos vale de nada porque el código no está paralelizado. Pero como amplias RAM y mejora el rendimiento … ¿qué más da paralelizar?

    En resumen, no es sólo cosa del software libre.

  3. 3
    Visitante dice:

    Esto es algo que tal vez pase en sistemas operativos cerrados y no salga a la luz. Son las ventajas e inconvenientes del software libre.
    El primer paso para solucionar un problema es reconocerlo. Bien por Torvalds.

  4. 4
    Alberto dice:

    De debate tonto y insustancioso nada. Linus esta aceptando que su modelo de Kernel monolitico a la larga sera un problema y que ya se esta viendose, mientras que sistemas con nucleos hibridos o micronucleos como OSX y windows demuestran una mejora del kernel con el paso del tiempo el kernel de Linux mejora en funcionalidades pero pierde en rendimiento global y perder un 12% es un huevo de rendimiento ¿que nos depara el futuro una perdida del 30% respecto al actual?

    • 22
      Jortecus dice:

      para eso esta Hurd pisandole los talones a Linux

  5. 5
    lobo dice:

    Seria bueno, iniciar una depuración del kernel y quisas la creación de alguna versión del kernel especifica para hardware de mas de 2 años o algo asi que permita sacar drivers y codigo que no es necesario para hardware moderno y solo sirven para mantener la compatibilidad con hardware viejo.

  6. 6
    Sergio dice:

    @anonimo

    “..Posiblemente eso hasta nos evitaría las continuas reinstalaciones del driver de Nvidia con cada cambio del núcleo…”

    “..una interfaz bien definida que no obligue a recompilar los módulos con cada actualización del kernel..”

    Informate, please! http://es.wikipedia.org/wiki/Dynamic_Kernel_Module_Support

  7. 7
    Hicks dice:

    Lo que no puedo entender son las declaraciones de Bob Sutor en las que tira la toalla en la batalla de competir contra windows… creo que con esa mentalidad no se va a ninguna parte.

    Linux ha demostrado de lo que es capaz de hacer, (y lo que está por venir) y ahora que muchas de las grandes empresas de hardware y software se suben al carro del software libre, en vez de darle el subidón al tipo este, le pega el bajón!

    En fin, cosas de la vida

  8. 8
    dark1789 dice:

    @Alberto

    Una cosa que esta en discusión es el hecho de que el modelo actual de desarrollo del kernel de linux no puede seguir continuando así porque se puede combertir en un problema serio, pero la otra es que tu no puedes estar diciendo y disculpa el termino estupideses. Dime lugar, fecha, hora y ordenador donde windows o MACOS pudieron superar en rendimiento a linux, porque no lo conozco, las nuevas versiones del kernel no solo estan ganando funcionalidades y soporte de hardware, también se notan mejorias significativas en el manejo de recursos y el rendimiento del sistema. Los sistemas menos indicados para tomar ejemplo del desarrollo del nucleo del sistema son precisamente a los dos que tu haces mención, windows por su parte con cada versión el núcleo parece un cerdo que no se cansa de que le agregen más y más lineas de código, W7 tiene 2.6 millones de lineas de código más que WVista, y WVista con respecto a XP la diferencia es de nada más y nada menos que 24 millones, y las supuestas ventajas del microkernel no se ven, supuestamente con el microkernel el tamanio de los archivos del sistema se reduciria a una carga de 41MB, lamentablemente ronda cerca de los 800MB muy cerca de su predecesor. Por parte de MACOS ellos tienen el juego un poco más cerrado, puesto que no tienen que lidiar con toda clase de hardware como las PC aunque el consumo de recursos se ha comenzado a disparar con las ultimas versiones.

  9. 9
    Fer dice:

    El amigo Linus también está un poco hinchado (ver foto).

  10. 10
    Hrugnir dice:

    @Anonimo, la idea del microkernel es buena.

    -Pero imagino que otros OS basados en con nucleos monolitico, tendran problemas similares o en caso de no tenerlo ya deben ver venir los mismos problemas, y quizas ya tengan alguna solucion a esto, como BSD o OpenSolaris.

  11. 11
    Hrugnir dice:

    @dark1789, interesante, no sabia eso Windows y Mac OS, entonces de ser asi eso en realidad es un problema de todos los kernels actuales, lo unico que no lo han comentado como lo ha hecho Torvalds.

  12. 12

    [...] Fuente Muy Linux [...]

  13. 13
    dark1789 dice:

    El principal problema que enfrentan los kernels con respecto al abultamiento es el hecho de la compatibilidad hacia atras, especialmente con las PC, que aunque los procesadores siguen admitiendo el mismo juego de instrucciones maquina que el 386, existen ciertas características de los procesadores actuales que te permiten economizar grandes porciones de codigo maquina, transformando así el codigo fuente a un codigo maquina mucho más pequenio. En el caso de linux me sorprende porque el nucleo es compatible con ambas plataformas (MAC y PC) y sin embargo el tamanio del nucleo es menor con respecto a los sistemas operativos reinantes en ambas.

  14. 14
    anonimo2 dice:

    Hmmm, esta sera dificil.

    @Thrash amigo creo que tienes el comentario mas inteligente desde que he comenzado a seguir este website (si dure un tiempo sin postear y solo leia noticias y comentarios), el mundo de la informatica esta muriendo porque nadie quiere pensar paralelamente, las arquitecturas de hoy en dia son poderosas pero la programacion esta al final de una epoca y brincando a la otra, en lo personal he empezado a utilziar Erlang, lenguaje que hace sus propios threads porque los OS no ayudan mucho por ese lado, si eres programador te recomiendo que comienzes a leer de concurrencia y paralelismo.

    @Alberto tienes razon en algo, Windows 7 y Snow Leopard superan a sus predecesores en performance (no veo donde el comparo a OS X y a 7 con linux solo los comparo con leopard y vista respectivamente), pero ambos, SL y 7, han comenzado a introducir APIs que faciliten el paralelismo en sus OS (lamentablemente linux todavia no da vida por ese camino) asi que creo que el incremento en rendimiento viene de hay.

    @dark1789 vete a rabiar para otro lado Alberto nunca comparo OS X y/o Windows contra linux en performance sino que menciono que ambos sistemas presentan mejoras ante sus predecesores mientras linux no, lo cual es logico poco a poco mientras mas cosas agregan cada OS se vuelve mas grande y gordo, nada del otro mundo.

    En general es dificil depurar codigo, muchos programadores programan creyendose dioses andantes, no usan TDD o BDD ni algunas herramientas como profiling y benchmarks, todo esto hace que el codigo se vuelva dificil de mantener y depurar, debo decirles que el kernel de linux es uno de los proyectos open source mejor mantenidos y depurados. Para terminar recomendare una vision tomada de uno de los principios de la calidad, cada vez todos los kernels reciben muchas y muchas lineas nuevas si solo depuramos llegara el punto donde cada depuracion solo provocara incrementos de performance menores, algo mas hay que hacer pero que depuren solamente no es la respuesta.

    Por ultimo, estoy deacuerdo con Visitante admitir este problema es el primer paso para mejorarlo, no debe tomarse como “Ah, linux caera” eso es mentira, pero debemos aceptar que el kernel esta engordando, pero no debemos olvidar que esto es natural.

  15. 15

    Hay que tener en cuenta que se tiene que adaptar a todo tipo de hardware y eso hace que engorde muchísimo el kernel. Otros SO como Mac están hechos para determinadas configuraciones de hardware así que todo está más optimizado.

    ¡Saludos!

  16. 16
    roke24 dice:

    Por un lado, contrario a lo que se piensa, cada año se eliminan muchos drivers superfluos, aunque se agregan mas, estos son mas utiles y modernos.
    Por otro lado, ese rendimiento persido con los años, creo que facilmente se puede recuperar y superar, no sean vagos.

  17. 17
    Anónimo99 dice:

    Bueno mi opinión es que con el tiempo todos nos ponemos más robustos incluso usted señor Trovalds. XD XD XD XD XD XD XD

  18. 18
    jado92mx dice:

    aunqe duela, pero talvez habra qe dedicar un tiempo a depurar el kernel y optimizarlo qe a darle mas funcionalidad… ya estamos muy avanzados, es tiempo de enflacar un poquito :D

    Saludos!

    JaD!

    …breve y consiso: asi soy

  19. 19

    [...] Linus cree que el núcleo básico de Linux esta inflado [...]

  20. 20
    dgamez dice:

    Jajajaja XD !!!

    Estoy de acuerdo con Fer.. el amigo Torvalds lo que esta es INFLADO!.. mas que el kernel!

  21. 21

    [...] por ejemplo, a  “adelgazar” dicho kernel ya que según su creador, está “gordo” ;) Si no quieren ayudar con el kernel de Linux, siempre pueden ayudar al de BSD, que [...]

Escribe tu comentario