LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 
El kernel de Linux® utiliza varias capacidades especiales de la colección de compiladores de GNU (GCC). Estas capacidades van desde atajos y simplificaciones que proporcionan al compilador con sugerencias sobre la optimización. Descubra algunas de estas especiales características de GCC y aprenderá a utilizarlos en el kernel de Linux. GCC y Linux son una gran pareja. A pesar de que son independientes piezas de software, Linux es totalmente dependiente de GCC a fin de que pueda soportar las nuevas arquitecturas. Linux además explota las características de GCC, solicita prórrogas, para una mayor funcionalidad y optimización. Este artículo explora muchos de estas importantes ampliaciones y se muestra cómo son utilizados en el kernel de Linux.

GCC en su actual versión estable (versión 4.3.2) admite tres versiones del estándar C:

* El original de la Organización Internacional de Normalización (ISO) del lenguaje C (ISO C89 o C90)
* ISO C90 con la enmienda 1
* La actual ISO C99 (el valor predeterminado estándar que utiliza GCC, y que este artículo da por supuesto)

Nota: En este artículo se supone que está utilizando el estándar ISO C99. Si se especifica un nivel de más de la versión ISO C99, algunas de las extensiones descritas en este artículo, podrán ser desactivados. Para especificar la norma que utiliza GCC, puede utilizar la opción -STD desde la línea de comandos. Use el manual de GCC para verificar que las extensiones están soportadas en las versiones de la norma (ver Recursos de este enlace).

Versiones aplicables.

Este artículo se centra en el uso de extensiones GCC en el kernel de Linux 2.6.27.1 y la versión 4.3.2 de GCC. Cada C se refiere a la extensión del archivo en los fuentes del kernel de Linux que puede encontrar en el ejemplo.

Las extensiones de C se pueden clasificar de varias maneras. En este artículo las divide en dos grandes categorías:

* Funcionalidad: extensiones de llevar las nuevas capacidades de GCC.
* Optimización de las extensiones le ayudan a generar código más eficiente.

La funcionalidad de las extensiones

Empecemos por explorar algunos de los trucos de GCC para ampliar el lenguaje C estándar.

Tipo de descubrimiento

GCC permite la identificación de un tipo a través de la referencia a una variable. Este tipo de operación permite una forma de lo que comúnmente se conoce como genéricos de programación. Una funcionalidad similar puede encontrarlos en muchos lenguajes de programación modernos, tales como C, Ada, y el lenguaje Java ™. Linux utiliza para construir tipos typeof que dependen de operaciones como min y max. Listado de 1 muestra cómo puede utilizar typeof para construir una macro genérico (de. /linux/include/linux/ kernel.h ).

Más en IBM.: GCC hacks in the Linux kernel

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías