On 5/6/05, Bismark Castilla <[EMAIL PROTECTED]> wrote: > a ver si entendi por lo que he leito ahora y en paginas que he buscado. > > los kernel headers son los .h que tiene el kernel, que son necesarios > para compilar algunos fuentes ya que ellos se encargan de comunicar > los software con el kernel algo asi no???
Bueno, yo te hablé de la función de las cabeceras (headers) no de su forma. ;-) Efectivamente, en los .h hay: +declaración de las funciones y argumentos del kernel. +declaraciones de las estructuras de datos que maneja el kernel +declaraciones de constantes asumidas al compilar el kernel. Un ejemplo sencillo que te pongo para aclararlo. Una opción importante en el kernel es el máximo de memoria ram que soporta (1 gb, 4 gb, ...) en función de la opción escogia, los punteros en C dentro de un programa serán más grandes o no. Así que todo programa que use punteros debería examinar en las cabeceras el tamaño de la memoria para actuar en consecuencia. (En realidad, el tamaño de los punteros los calcula el compilador de C automáticamente, aunque para ello es necesario que este esté compilado adecuadamente para el kernel que tienes ¡y para eso necesitas las cabeceras del kernel! ;-) > bueno y ahora que son los glibc?? tengo entendido que son librerias no > se bien?? y que tienen que ver con los kernel headers?? el lenguaje C tiene solamente 27 instrucciones: int, enum, char, void, if, for, else, goto, float, double, switch, default, break, continue... Casualmente todo lo que sea una función (un nombre seguido de parentesis) y que no hayas definido tu, seguramente está definido en glibc. Si escribes en consola: $ info libc Tienes información sobre las libc (glibc=gnu + libc) Como el kernel hay que compilarlo con gcc, supongo que tiene que existir alguna relación del kernel con el glibc, y hasta aquí puedo seguir leyendo. (supongo que el glibc necesita de las cabeceras del kernel para compilarse y todos los programas en C necesitan glibc para ejecutarse, así que un glib no coordinado con el correspondiente kernel dan pie al desastre más grande que uno se puede echar a la cara, pero esto son ya conjeturas sin fundamento). atte. javier m mora. P.D: realmente no es necesario saber de estas cosas para usar linux. Lo importante: si no has compilado tu kernel necesitaras las cabeceras si vas a compilar algo serio. Si no te sales de la «paquetería» que te suministra debian no tendrás poblemas de dependencias raras entre estos programas. Por otro lado, mezclar paquetes de RedHat con Suse y con Debian puede dar fácilmente con problemas de incompatibilidad de glibc y otros. atte. javier m mora