L'�tape suivante qui se produit au d�marrage de votre ordinateur est le chargement d'init et son ex�cution. Cependant, init, comme la plupart des programmes, utilise des fonctions issues de biblioth�ques.
Vous avez peut-�tre d�j� vu un exemple de programme C comme celui-ci�:
main() { printf("Hello World!\n"); } |
Le programme ne d�finit nullement printf, alors d'o� vient-il�? Il provient des biblioth�ques C standard. Pour un syst�me GNU/Linux, il s'agit de glibc. Si vous les compilez sous Visual C++, alors il provient d'une mise en œuvre Microsoft de ces m�mes fonctions standard. Il existe des masses de ces fonctions standard, pour les math�matiques, la gestion des cha�nes de caract�res, de l'heure et de la date, des allocations de m�moire et ainsi de suite. Tout, dans Unix (y compris Linux) est soit �crit en C, soit doit faire de son mieux pour faire comme si, de sorte que tous les programmes utilisent ces fonctions.
Si vous jetez un œil dans /lib sur votre syst�me Linux, vous verrez un grand nombre de fichiers appel�s libquelquechose.so ou libquelquechose.a et c�tera. Ce sont les biblioth�ques de ces fonctions. Glibc est simplement la mise en œuvre GNU de ces fonctions.
Les programmes peuvent utiliser ces fonctions de deux mani�res. Si vous r�alisez une �dition de liens statique, ces fonctions seront copi�es � l'int�rieur de l'ex�cutable g�n�r�. C'est � cela que servent les biblioth�ques libquelquechose.a. Si vous r�alisez une �dition de liens dynamique (cas par d�faut), lorsque le programme aura besoin du code d'une biblioth�que, il l'appellera directement depuis le fichier libquelquechose.so
La commande ldd vous apporte une aide pr�cieuse lorsque vous cherchez � retrouver les biblioth�ques utilis�es par un programme particulier. Par exemple, voici les biblioth�ques utilis�es par bash:
[greg@Curry power2bash]$ ldd /bin/bash libtermcap.so.2 => /lib/libtermcap.so.2 (0x40019000) libc.so.6 => /lib/libc.so.6 (0x4001d000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) |
Certaines fonctions des biblioth�ques d�pendent de la r�gion g�ographique o� vous vous trouvez. Par exemple, en fran�ais, on �crit les dates sous la forme jj/mm/aa, mais les am�ricains les �crivent sous la forme mm/jj/aa. Ceci est configurable via un programme appel� localdef livr� avec glibc.
Utilisez ldd pour d�terminer les biblioth�ques qu'utilise votre application pr�f�r�e.
Utilisez ldd pour d�terminer les biblioth�ques utilis�es par init.
Cr�ez une biblioth�que gadget, avec seulement une ou deux fonctions dedans. On utilise le programme ar pour les cr�er. La page de manuel d'ar pourrait �tre un bon point de d�part pour commencer � enqu�ter sur la mani�re dont cette op�ration est effectu�e. �crivez, compilez, et liez un programme utilisant cette biblioth�que.
Pour le code source, suivre les liens dans Construire un syst�me Linux minimum � partir du code source
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:22