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

Responder a