Re: [opensuse-es] [OT] C++ en el kernel Linux (era Quitar la sombra del texto en los iconos del escritorio)
El 16 de diciembre de 2008 22:45, Carlos E. R.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
El 2008-12-16 a las 20:33 -0200, Juan Erbes escribió:
Del los link que posteaste, dentro de la pagina hay uno que apunta a: http://netlab.ru.is/exception/LinuxCXX.shtml
C++ in the Linux Kernel
¿Porqué envías el documento entero en PDF a la lista, y dos veces? Ya lo podremos obtener nosotros; pon el enlace, no el documento. Pesa mucho.
Porque es otro tópico, aunque diga lo mismo.
Me faltó para cerrar el tema, citar laopinión de Linus Torvalds al respecto:
http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918
From: Linus Torvalds
Subject: Re: [RFC] Convert builin-mailinfo.c to use The Better String Library. Newsgroups: gmane.comp.version-control.git Date: 2007-09-06 17:50:28 GMT (1 year, 14 weeks, 3 days, 22 hours and 27 minutes ago) On Wed, 5 Sep 2007, Dmitry Kakurin wrote:
When I first looked at Git source code two things struck me as odd: 1. Pure C as opposed to C++. No idea why. Please don't talk about portability, it's BS.
*YOU* are full of bullshit.
C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C.
¡JO***! No se muerde la lengua el señor Torvalds, no. Para los que no entiendan el inglés, traduzco ese párrafo inicial:
*Usted* está lleno de mierda de vaca.
C++ es un lenguaje horrible. Lo hace más horrible el hecho de que un montón de programadores sub-estándar lo usan, hasta el punto donde es mucho más fácil generar total y completa basura con ello. Muy francamente, incluso si la elección de C no fuera más que para *nada* excepto mantener fuera los programadores de C++, eso en si mismo sería una enorme razón para usar C.
No se muerde la lengua, no. Si lo digo yo, me matan. Pero el es quien es y puede decirlo. Caray.
Y sin embargo, prefiere el kde al gnome. Muy curioso.
Y no sigo traduciendo, pero no lo suaviza mucho, no. Explica los porqués. Y que el C produce código más eficiente que el C++. Si lo dice él, es cierto. My case rests. >:-)
Todo depende de quien lo programe, y de la calidad del compilador que se utilice. Lo que habría que investigar, es si el señor Torvalds, realmente ha programado en alguna oportunidad en C++, para decir eso sobre el C++. En general, dentro del ambiente de la programación, se dice que un programa bien hecho en C, genera compilado un codigo casi identico a uno desarrollado en assembler. Pero cuantos programadores estudian a fondo el codigo maquina de cada microprocesador?. O sea que es mas facil programar en C, que en assembler, y lo mismo ocurre si se compara el C++ con el C. Aclaro que con esto, no quiero decir que sea mejor programar el kernel en C++. Pero en el caso de los microcontroladores, donde el desarrollador puede no tener conocimientos profundos del lenguage C, es mas facil hacerlo en C++, usando librerias estandares, para funciones estandares. Hablando de aclaraciones, el articulo de arriba, no trata precisamente sobre la compilación y programación del kernel en C++, sino, que es un patch para poder correr sobre ese kernel aplicaciones programadas en C++. "We have implemented a complete kernel level run-time support for C++ in the Linux kernel. In particular our run-time support enables the full use of C++ exceptions in the Linux kernel, but notably also includes support for global constructors and destructors, and dynamic type checking. Our kernel level support is based on open source commodity components, specifically the GNU gcc/g++ compiler and its exception implementation, the C++ ABI version independent standard interface." Salu2 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Content-ID:
El 16 de diciembre de 2008 22:45, Carlos E. R. <> escribió:
El 2008-12-16 a las 20:33 -0200, Juan Erbes escribió:
Del los link que posteaste, dentro de la pagina hay uno que apunta a: http://netlab.ru.is/exception/LinuxCXX.shtml
C++ in the Linux Kernel
¿Porqué envías el documento entero en PDF a la lista, y dos veces? Ya lo podremos obtener nosotros; pon el enlace, no el documento. Pesa mucho.
Porque es otro tópico, aunque diga lo mismo.
No, has mandado el "KernelExceptions.pdf" dos veces a la lista. Podrías haberlo mandado una sola vez, o podrías simplemente haber puseto el enlace al PDF.
Me faltó para cerrar el tema, citar laopinión de Linus Torvalds al respecto:
...
Y no sigo traduciendo, pero no lo suaviza mucho, no. Explica los porqués. Y que el C produce código más eficiente que el C++. Si lo dice él, es cierto. My case rests. >:-)
Todo depende de quien lo programe, y de la calidad del compilador que se utilice.
Lo que habría que investigar, es si el señor Torvalds, realmente ha programado en alguna oportunidad en C++, para decir eso sobre el C++.
Me sospecho que el señor Torvalds tiene mucha más idea de eso que tu y que yo juntos :-) Esa opinión la he oido otras veces pero mucho más suave. Yo también pienso algo parecido (repecto a un kernel), pero desde luego él lo hace bastante visceralmente. Por cierto, que mi profesor de C puso el C a caldo casi desde el primer dia... Programar bien en C exige ser buen programador, porque no te va a corregir ni advertir de muchos errores, como otros lenguajes. Pensaba que era un error usar el C para todo.
En general, dentro del ambiente de la programación, se dice que un programa bien hecho en C, genera compilado un codigo casi identico a uno desarrollado en assembler. Pero cuantos programadores estudian a fondo el codigo maquina de cada microprocesador?. O sea que es mas facil programar en C, que en assembler, y lo mismo ocurre si se compara el C++ con el C.
Aclaro que con esto, no quiero decir que sea mejor programar el kernel en C++. Pero en el caso de los microcontroladores, donde el desarrollador puede no tener conocimientos profundos del lenguage C, es mas facil hacerlo en C++, usando librerias estandares, para funciones estandares.
Es posible. Pero una de las cosas que dice L.T. es que no se fia de esas librerías que mete el C++, que aparecen errores que son imposibles de depurar. Que se podría usar C++... siempre que no uses muchas de las cosas que tiene.
Hablando de aclaraciones, el articulo de arriba, no trata precisamente sobre la compilación y programación del kernel en C++, sino, que es un patch para poder correr sobre ese kernel aplicaciones programadas en C++.
"We have implemented a complete kernel level run-time support for C++ in the Linux kernel. In particular our run-time support enables the full use of C++ exceptions in the Linux kernel, but notably also includes support for global constructors and destructors, and dynamic type checking. Our kernel level support is based on open source commodity components, specifically the GNU gcc/g++ compiler and its exception implementation, the C++ ABI version independent standard interface."
¿Aplicaciones? No, son partes del propio kernel. Modulos, si quieres. Las aplicaciones claro que puedes hacerlas en C++, hay muchas. El KDE, por ejemplo. - -- Saludos Carlos E.R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAklI7ZMACgkQtTMYHG2NR9UiyACggSUoqRfjIky3gJfZ6RPBgZF3 KS4AoJiPi2kV7wMuAY0cE1ku9KFoG07K =FkwI -----END PGP SIGNATURE-----
El día 17 de diciembre de 2008 10:16, Carlos E. R.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Content-ID:
El 2008-12-17 a las 09:33 -0200, Juan Erbes escribió:
El 16 de diciembre de 2008 22:45, Carlos E. R. <> escribió:
El 2008-12-16 a las 20:33 -0200, Juan Erbes escribió:
Del los link que posteaste, dentro de la pagina hay uno que apunta a: http://netlab.ru.is/exception/LinuxCXX.shtml
C++ in the Linux Kernel
¿Porqué envías el documento entero en PDF a la lista, y dos veces? Ya lo podremos obtener nosotros; pon el enlace, no el documento. Pesa mucho.
Porque es otro tópico, aunque diga lo mismo.
No, has mandado el "KernelExceptions.pdf" dos veces a la lista. Podrías haberlo mandado una sola vez, o podrías simplemente haber puseto el enlace al PDF.
Lo mandé una sola vez en este tópico, y no puse el el link porque el original estaba roto, y lo tube que buscar "a traves de la maquina del tiempo" (Wayback machine).
"We have implemented a complete kernel level run-time support for C++ in the Linux kernel. In particular our run-time support enables the full use of C++ exceptions in the Linux kernel, but notably also includes support for global constructors and destructors, and dynamic type checking. Our kernel level support is based on open source commodity components, specifically the GNU gcc/g++ compiler and its exception implementation, the C++ ABI version independent standard interface."
¿Aplicaciones? No, son partes del propio kernel. Modulos, si quieres. Las aplicaciones claro que puedes hacerlas en C++, hay muchas. El KDE, por ejemplo.
Que significa entonces: "the C++ ABI version independent standard interface".? Mirá estos links: http://gcc.gnu.org/gcc-3.2/c++-abi.html http://developers.sun.com/solaris/articles/CC_abi/CC_abi_content.html http://www.codesourcery.com/public/cxx-abi/ Parece ser que buena parte del C++ ABI, estubo orientada al Itanium: http://www.codesourcery.com/public/cxx-abi/prop-F3-interface.html Salu2 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Content-ID:
No, has mandado el "KernelExceptions.pdf" dos veces a la lista. Podrías haberlo mandado una sola vez, o podrías simplemente haber puseto el enlace al PDF.
Lo mandé una sola vez en este tópico, y no puse el el link porque el original estaba roto, y lo tube que buscar "a traves de la maquina del tiempo" (Wayback machine).
Hay tres copias: 5125 08-12-16 20:33 Juan Erbes (259K) [opensuse-es] [OT] C++ en el kernel Linux (era Quitar la sombra A 5126 08-12-16 20:33 Juan Erbes (259K) [opensuse-es] [OT] C++ en el kernel Linux (era Quitar la sombra A 5127 08-12-15 21:49 Juan Erbes (259K) Re: [opensuse-es] Quitar la sombra del texto en los iconos del e Una de ellas puede ser un glitch del correo, pero la otra no. Si tuviste que usar la maquina del tiempo, bastaba con haberlo dicho la primera vez.
"We have implemented a complete kernel level run-time support for C++ in the Linux kernel. In particular our run-time support enables the full use of C++ exceptions in the Linux kernel, but notably also includes support for global constructors and destructors, and dynamic type checking. Our kernel level support is based on open source commodity components, specifically the GNU gcc/g++ compiler and its exception implementation, the C++ ABI version independent standard interface."
¿Aplicaciones? No, son partes del propio kernel. Modulos, si quieres. Las aplicaciones claro que puedes hacerlas en C++, hay muchas. El KDE, por ejemplo.
Que significa entonces: "the C++ ABI version independent standard interface".?
ABI es "application binary interface". In computer software, an application binary interface (ABI) describes the low-level interface between an application program and the operating system, or the interface between an application and its libraries, or that between component parts of an application. An ABI is similar to an application programming interface (API); however, the latter defines a source code interface.[1] Simply put, ABIs enable binary compatibility, whereas APIs enable source code compatibility. No obstante, de eso no puedes deducir que en el kernel usen ese ABI del C++ para interconectar con/desde las aplicaciones del sistema desde/hacia el kernel, puesto que esa "interfaz" la define el propio kernel por otro sitio. Más bien entiendo que es la interconexión interna, dentro del kernel entre partes del mismo. - -- Saludos Carlos E.R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAklJVdgACgkQtTMYHG2NR9XnvQCfU13yV/y6Kw2cJzE+PPg6zNS8 1TYAoJBJuDis8bW1M2s/ksHNHXnEOOQi =njul -----END PGP SIGNATURE-----
El día 17 de diciembre de 2008 17:41, Carlos E. R.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Content-ID:
El 2008-12-17 a las 14:09 -0200, Juan Erbes escribió:
No, has mandado el "KernelExceptions.pdf" dos veces a la lista. Podrías haberlo mandado una sola vez, o podrías simplemente haber puseto el enlace al PDF.
Lo mandé una sola vez en este tópico, y no puse el el link porque el original estaba roto, y lo tube que buscar "a traves de la maquina del tiempo" (Wayback machine).
Hay tres copias:
5125 08-12-16 20:33 Juan Erbes (259K) [opensuse-es] [OT] C++ en el kernel Linux (era Quitar la sombra A 5126 08-12-16 20:33 Juan Erbes (259K) [opensuse-es] [OT] C++ en el kernel Linux (era Quitar la sombra A 5127 08-12-15 21:49 Juan Erbes (259K) Re: [opensuse-es] Quitar la sombra del texto en los iconos del e
Una de ellas puede ser un glitch del correo, pero la otra no. Si tuviste que usar la maquina del tiempo, bastaba con haberlo dicho la primera vez.
"We have implemented a complete kernel level run-time support for C++ in the Linux kernel. In particular our run-time support enables the full use of C++ exceptions in the Linux kernel, but notably also includes support for global constructors and destructors, and dynamic type checking. Our kernel level support is based on open source commodity components, specifically the GNU gcc/g++ compiler and its exception implementation, the C++ ABI version independent standard interface."
¿Aplicaciones? No, son partes del propio kernel. Modulos, si quieres. Las aplicaciones claro que puedes hacerlas en C++, hay muchas. El KDE, por ejemplo.
Que significa entonces: "the C++ ABI version independent standard interface".?
ABI es "application binary interface".
In computer software, an application binary interface (ABI) describes the low-level interface between an application program and the operating system, or the interface between an application and its libraries, or that between component parts of an application. An ABI is similar to an application programming interface (API); however, the latter defines a source code interface.[1] Simply put, ABIs enable binary compatibility, whereas APIs enable source code compatibility.
No obstante, de eso no puedes deducir que en el kernel usen ese ABI del C++ para interconectar con/desde las aplicaciones del sistema desde/hacia el kernel, puesto que esa "interfaz" la define el propio kernel por otro sitio. Más bien entiendo que es la interconexión interna, dentro del kernel entre partes del mismo.
Puedes mirar la documentación del kernel: /usr/src/linux-2.6.25.18-0.2/Documentation/ABI/README Segun yo entiendo, el ABI C++, es el vinculo con las aplicaciones o modulos externos. En la misma carpeta, vas a encontrar otros documentos sobre ABI, como: /usr/src/linux-2.6.25.18-0.2/Documentation/robust-futex-ABI.txt Salu2 Con la unica diferencia, que el ABI que desarrolló la gente esa, hace el kernel compatible con las llamadas C++, por eso lo de ABI C++ -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
participants (2)
-
Carlos E. R.
-
Juan Erbes