Historias
Slashboxes
Comentarios
 

Compiladores y el kernel de linux

editada por JJ el 09 de Febrero 2003, 09:44h   Printer-friendly   Email story
desde el dept. los-problemas-del-gcc
mig21 escribe: "Estos días ha habido en la lista del kernel una discusión acerca del gcc 3.2.1. La mayoría de la gente se queja de que compila lento y que el código tampoco es muy óptimo. El propio Linus ha dicho que los desarrolladores del gcc están más preocupados por optimizar para C++ o Ada que para C. También explica sus gcc-centrismos (donde estarían las incompatibilidades con otros compiladores). A partir de ahí han empezado a discutir acerca de hacer un fork del gcc solo para compilar el kernel y otras alternativas (no para ahora) para compilar el kernel, como lcc o tcc. ¿Acabará el kernel de linux pudiéndose compilar en otros compiladores?¿Es gcc "demasiado" versátil?" ¿O con el Visual C++? :-) ¿O acabarán pasando el kernel de Linux a Mono?

Historias relacionadas

[+] LinuxDNA: El kernel Linux compilado con Intel C++ Compiler 44 comentarios
mig21 nos cuenta: «Según se puede leer en Linux Journal, el proyecto LinuxDNA ha sido capaz de compilar una versión del kernel Linux con el compilador de Intel (Intel C++ Compiler), que no sólo compila sin errores sino que es capaz de arrancar un sistema completo basado en Gentoo. Utiliza la versión 2.6.22 del kernel, aunque el objetivo de LinuxDNA es conseguir y mantener una versión compatible con ICC del último kernel Linux, con la posible mejora de rendimiento que podría suponer. Más en LWN y reddit
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:¿Ada?

    (Puntos:2)
    por tapia (457) <tapiaQUITAESTAARROBAeitigYESTEPUNTOcom> el Domingo, 09 Febrero de 2003, 12:48h (#164761)
    ( http://barrapunto.com/ )
    A ver si os aclarais Sres. "Informáticos" }:-P

    ¿Por qué? Lo de los lenguajes es como las bebidas: Hay una para cada momento, y siempre dependiendo de los gustos de cada uno.

  • Re:Sobre la ABI

    (Puntos:2, Informativo)
    por SugarKane (695) el Domingo, 09 Febrero de 2003, 17:11h (#164795)
    ( http://www.last.fm/user/Sugar_Kane/ )

    Dicho de forma breve, el ABI (Application Binary Interface) es un "estándar" que especifica cómo es la representación binaria de un código compilado (el formato de los ficheros .o, la forma de almacenar tipos estructurados, etc.). Esto hace que se puedan enlazar a un programa una biblioteca compilada con otro compilador distinto, siempre que respete el mismo ABI.

    En principio para C hay un ABI bien definido para varias plataformas. El problema es que en otros lenguajes (concretamente C++, por tener un estándar bastante reciente) los cambios que el gcc necesita realizar para ceñirse completamente al estándar implican modificaciones en el ABI, por lo que por ejemplo una biblioteca de C++ generada con gcc 2.95 no se puede enlazar con un programa generado con gcc 3.2.

    --

    Saúde!

  • por jlas9 (3499) el Domingo, 09 Febrero de 2003, 18:55h (#164822)
    Me dió muchísima pena la desaparición en su día de la lista kernelcoders, y ahora, me alegra mucho que nucleo-desarrollo tome el testigo de lo que fue aquella iniciativa.

    Soy un programador muy novato, pero intentaré hacer pequeñas contribuciones en la lista y en el canal irc.

    Saludos.
     
  • Nunca habia usado Visual Studio hasta que empece a trabajar donde estoy ahora. Y he de reconocer que me ha sorprendido gratamente este entorno de desarrollo. Pero detalles del IDE aparte, lo mejor que tiene son las cabeceras precompiladas (las llaman PCH), que son el conjunto de archivos de cabecera externos que necesita un proyecto. Como esto no cambia (normalmente) a lo largo de nuestro desarrollo, se compila y se mete en un archivo que se usa cada vez que se necesita, acelerando en un orden de magnitud la compilacion de proyectos grandes (lease decenas de miles de lineas). Ya se que esto puede producir dependencias con respecto a la maquina en la que se trabaje, pero pasar de 10 a 1 minuto en la compilacion de un proyecto grande no es moco de pavo...
    --

    ::To do list for Windows [appfluence.com]

  • Pues eso, me he comido la 'd'.
    --

    ::To do list for Windows [appfluence.com]

  • por DiegoCG (4082) el Domingo, 09 Febrero de 2003, 19:29h (#164830)
    ( http://www.terra.es/personal/diegocg )
    Algo presente en los compiladores de borland hace tiempo, y presente ya mismo en el gcc de desarrollo

    Saludos.
  • por Drizzt (39) el Domingo, 09 Febrero de 2003, 19:57h (#164833)
    ( http://icewinddale.blogspot.com/ | Última bitácora: Jueves, 30 Enero de 2014, 23:34h )
    Apple ha dotado al gcc de soporte de cabeceras precompiladas. Puedes buscar información aqui. De todas maneras,recuerdo usar esa opción en el Borland C++ 3.1, no es algo nuevo, aunque siempre he tenido curiosidad porqué no es una opción en los compiladores.
    --

    -- icewinddale.blogspot.com [blogspot.com]

  • Re:¿Ada?

    (Puntos:1)
    por runlevel0 (1932) el Domingo, 09 Febrero de 2003, 22:44h (#164853)
    ( http://www.flickr.com/photos/runlevel0/ | Última bitácora: Jueves, 01 Noviembre de 2007, 11:37h )
    ADA tiene unos usos algo restringidos, pero no languidece: se usa para programar sistemas de tiempo ral y es el lenguaje que se emplea para aplicaciones de aviónica por ejemplo.
    Se usa mucho en sistemas del ejercito USA. En cuanto al uso comercial sí que está algo 'out', ya que aquí priman otras cosas, como rapidez, comodidad y flexibilidad.

    Por cierto: El nombre ADA proviene de la pionera de la informática Ada Augusta Lovelace, hija ni má ni menos que de Lord Byron y colaboradora de Babbage. Se la considera la primera programadora y la verdad es que era una mujer preciosa, lástima que muriera a los 36 :_(
    Aquí un enlace con un daguerotipo suyo :*
    --

    29A the Number of the Beast
  • por SpOeK (8432) el Domingo, 09 Febrero de 2003, 22:48h (#164855)
    ( http://spoek.distrobit.net/ | Última bitácora: Viernes, 12 Enero de 2007, 23:18h )
    En la Facultad de Informática de la UPM se enseña a programar con Haskell y ADA. Este último se sigue usando hasta Programación Concurrente (tercero) y Sistemas de Tiempo Real (cuarto), así que vida tiene bastante :) Por cierto, antes se usaba Modula-2.
  • Re:Lo normal!

    (Puntos:2)
    por Drizzt (39) el Lunes, 10 Febrero de 2003, 00:27h (#164879)
    ( http://icewinddale.blogspot.com/ | Última bitácora: Jueves, 30 Enero de 2014, 23:34h )
    En cuanto a rendimiento y tiempo de compilación el paso de egcs 1.1.2 a gcc 2.95 para mi fue una decepción, y conforme han ido saliendo versiones, al menos las que ha llevado la distribución Redhat, me han parecido más lentas en tiempos de compilación.

    Evidentemente hay más soporte de lenguajes, más estándar en C++ (cosa necesaria, porque una de las razones del fork del egcs fue que la FSF tenía muerta esta parte), etc.

    --

    -- icewinddale.blogspot.com [blogspot.com]

  • Re:Lo normal!

    (Puntos:1)
    por xose (14) el Lunes, 10 Febrero de 2003, 00:56h (#164884)
    ( Última bitácora: Domingo, 08 Agosto de 2004, 01:14h )
    Segun Benchmarking Intel C++ to GNU g++ gcc no parece tan malo. La rama 3.x respecto a la 2.x tarda mas en compilar, pero 3.x genera mejor codigo. Y GCC es _portable_, cosa que nigun otro compilador puede ofecer.
  • Articulo: Inside the Intel Compiler

    (Puntos:2, Informativo)
    por xose (14) el Lunes, 10 Febrero de 2003, 01:09h (#164886)
    ( Última bitácora: Domingo, 08 Agosto de 2004, 01:14h )
    Varios componentes de intel explican en
    Inside the Intel Compiler
    porque los ejecutables de gcc son mas lentos que los de intel_C
  • Poruqe los Pentium los hacen ellos? ;)
  • Re:Precompile Headers

    (Puntos:1, Informativo)
    por pobrecito hablador el Lunes, 10 Febrero de 2003, 02:34h (#164897)
    Hace muchos años que uso el Visual C (no es el único compilador que uso) y suelo desactivar la opción de headers precompilados. La cosa esa que llaman IDE no controla las dependencias correctamente. No me he preocupado en averiguar en qué casos, así que desactivo la opción.
    No suelo hacer compilaciones largas, aunque el proyecto tenga cien ficheros, sólo se compilan los que cambian. Me parece que la velocidad es completamente aceptable
    De vez en cuando recompilo todo y aprovecho para hacer un descanso.
    Puedo vivir perfectamente sin los headers precompilados. Sin embargo, me jode que se desprecie el make (una de las mejores herramientas que se han inventado).
  • por Javier Noval (2857) el Lunes, 10 Febrero de 2003, 02:42h (#164900)
    ( http://www.flickr.com/photos/jnoval/ )
    Pues uno muy sencillo: el VC++ pone su formato, y quien quiera linkar contra él lo usa o el fabricante de su compilador favorito se verá inundado de llamadas al servicio técnico diciendo "mi programa me da errores de linkado".
  • Re:Lo normal!

    (Puntos:3, Informativo)
    por Drizzt (39) el Lunes, 10 Febrero de 2003, 03:31h (#164901)
    ( http://icewinddale.blogspot.com/ | Última bitácora: Jueves, 30 Enero de 2014, 23:34h )
    Si compiladores como el lcc que te dan soporte a la portabilidad entre arquitecturas. Evidentemente el gcc soporta más, eso no te lo voy a poner en duda, pero no sé cuanta gente habrá usado el gcc en algo más que x86 (yo lo he usado en SPARC y 680x0).

    Cuando estás programando y desarrollando, las optimizaciones las dejas para el final, lo que está pasando -algo que repito, he notado mucho, es que la velocidad va para abajo que escarba. No sé si cosas como las cabeceras precompiladas ayudarán, pero habrá que mirarlo.

    Por ponerte un ejemplo, hay gente que en WIn32 desarrolla con el compilador de Borland, aunque genere peor calidad de código que el Visual C++ y cuando tienen el programa listo compilan con Visual. Todo por la velocidad de compilación, que a la hora de desarrollo es muy importante.

    No sé cuanta gente usa cruzados, donde el gcc si es útil, pero por lo que he visto por los diferentes foros, es una opción minoritaria (lo he usado para generar código para la Palm)

    --

    -- icewinddale.blogspot.com [blogspot.com]

  • por octavodia (4411) el Lunes, 10 Febrero de 2003, 12:11h (#164921)
    En Ingeniería Informática se enseña Ada desde la asignatura de "Introducción a la programación" en 1º de carrera.
  • No digo ni que MSVC fuera el primer compilador en ussarlo, ni que make sea una basura. De hecho, me siento mas comodo con este ultimo, porque normalmente se exactamente lo que esta fallando, no como con muchos IDEs. Pero al Cesar lo que es del Cesar, y que los PCH son un gran invento no soy yo el unico que lo dice.
    --

    ::To do list for Windows [appfluence.com]

  • por maxine (5696) el Martes, 11 Febrero de 2003, 09:53h (#165008)
    No estoy al dia del proyeto .NET y Mono (su version en Linux) pero ... es teoricamente possible?

    El .NET Framework no necesita de un sistema operativo (con su propio kernel) donde correr?

    Segun tengo entendido es conceptualmente similar a Java y por lo tanto necesita de una máquina virutal o algun tipo de soporte software local en el sistema operativo ... no?

    Gracias,
    Maxine
  • Re:¿Ada?

    (Puntos:1)
    por _NoP (728) el Miércoles, 12 Febrero de 2003, 02:16h (#165157)
    ( http://www.micubiculo.com/ )
    Seguro que los de los misiles no son los que nos mantienen vivos :-)
  • por puskas (6231) el Miércoles, 12 Febrero de 2003, 03:07h (#165163)
    ( http://flickr.com/photos/jmdana )

    Hace unos meses escuché algo de un "mini" sistema operativo en Java.

    Al fin y al cabo el que Java necesite de una máquina virtual no significa que no pueda ejecutarse independientemente, si lo miras desde otro punto de vista los ejecutables en C también necesitan de una plataforma (ya se que el ejemplo no es demasiado bueno pero en fin) y se puede construir un sistema operativo con el.

    --
    Morralla [flickr.com]
  • 19 respuestas por debajo de tu umbral de lectura actual.