Noyeau
Résolu
bmazigh
-
bmazigh -
bmazigh -
bonjour a tous,
Je débarque !!
1. C'est quoi un noyeau d'unix (réellement : c'est un ensemble de fichiers, ....) ?
2. comment y acceder ?
3. Que veu dire compiler un noyeau ? pourquoi le compiler et quand ?
Sincères salutations
Je débarque !!
1. C'est quoi un noyeau d'unix (réellement : c'est un ensemble de fichiers, ....) ?
2. comment y acceder ?
3. Que veu dire compiler un noyeau ? pourquoi le compiler et quand ?
Sincères salutations
3 réponses
Salut,
j'vais essayer de pas dire trop d'aneries, mais il me semble :
1/ le noyau est en qques sorte un ensemble de driver, c'est lui qui fait la liaison entre le matériel et tes programmes si on veut
2/ y accéder??? le seul truc que tu peux faire (a moins d'etre développeur ou extremement doué et connaisseur), c'est le compilé, ce qui nous amene a :
3/tu peux voir le noyau comme un gros programme de base pour ton systeme, et comme tout programme libre, il a un code source que tu peux compiler. or comme c qd meme un programme tres compliqué, il y a plein d'options que tu peux configurer...
qd compiler ?? soit tu aimes avoir la toute derniere version du noyau (la 2.6.11 vient de sortir par exemple), ou tout simplement si tu as du matériel un peu bizarre dont l'option dans le noyau n'est pas activée : il faut reconfigurer pour ajouter l'option en question, puis compiler et installer le nouveau noyau...ce qui est loin d'etre facile!!
Phiphi
j'vais essayer de pas dire trop d'aneries, mais il me semble :
1/ le noyau est en qques sorte un ensemble de driver, c'est lui qui fait la liaison entre le matériel et tes programmes si on veut
2/ y accéder??? le seul truc que tu peux faire (a moins d'etre développeur ou extremement doué et connaisseur), c'est le compilé, ce qui nous amene a :
3/tu peux voir le noyau comme un gros programme de base pour ton systeme, et comme tout programme libre, il a un code source que tu peux compiler. or comme c qd meme un programme tres compliqué, il y a plein d'options que tu peux configurer...
qd compiler ?? soit tu aimes avoir la toute derniere version du noyau (la 2.6.11 vient de sortir par exemple), ou tout simplement si tu as du matériel un peu bizarre dont l'option dans le noyau n'est pas activée : il faut reconfigurer pour ajouter l'option en question, puis compiler et installer le nouveau noyau...ce qui est loin d'etre facile!!
Phiphi
1. Le noyau c'est le systeme d'exploitation qui tourne sur ton ordinateur, c'est le grand "logiciel" qui est charge et demarre au boot, c'est ca qui fait que c'est LINUX (ou Unix pour d'autres systemes). Le noyau contient de driver pour acceder au disques, ecran, clavier, souris, cartes reseau, usb, carte sons, ....
et le noyau organise aussi le lancement de taches (processus) en multitaches avec priorites etc.
2. Le fichier noyau binaire (donc precompile) est typiquement dans /boot/... et il s'appelle souvent "vmlinuz" ou "vmlinuz-<version>". C'est ce fichier qui est pris par LILO ou Grub pendant le boot pour demarrer Linux. Apres il y a aussi de modules dans de sous-repertoires de /lib/modules/.... Ce sont de fichiers *.o ou *.ko (ou *.ko.gz en version comprimee comme en Mandrake). Les modules servent pour que le noyau peut ajouter de driver sans reboot. En fait une grande partie des drivers est mise en modules pour garder le noyau principal plus petit et mince.
Si on a installe les sources c'est dans le repertoire /usr/src/linux/... mais ce n'est pas necessaire pour faire tourner le systeme. Mais c'est comment recommande si on veut ajouter de driver supplementaires plus tard.
3. Compiler: transformer les fichier *.c (code source en C) vers de fichier *.o (binaires) et le "vmlinuz". C'est fait avec le compilateur gcc. Mais c'est assez automatique, il faut aller dans /usr/src/linux/... et taper les bonnes commandes "make ..." pour configurer et compiler et le "make" appelera lui meme quelques centaines de fois (ou milliers de fois) gcc pour compiler tous les fichier *.c vers *.o et finalement pour assembler ca afin de creer l'image de noyau (le "vmlinuz").
Pourquoi compiler:
- changer la configuration, modifier certaines options (processeur, memoire, choisir autres drivers etc.), peut-etre on veut aussi virer tous le driver dont on a pas besoin (par exemple on n'a qu'une ou deux cartes reseau => on peut virer tous les drivers pour les autres cartes)
- pour faire de mise a jour si le distributeur (Mandrake, Suse, Fedora, Redhat, etc.) ne fournit plus d'images toute pretes quand la distribution est trop vieille (par exemple avec Redhat 9.0 il n'y a plus de nouveaux noyaux pret de Redhat mais on peut prendre le 2.4.29 pour avoir les derniers drivers pour les derniers cartes meres etc. !!)
- essayer d'autre noyaux (ceux de www.kernel.org) aulieu ceux du distributeur (ou il y a toujours de modifs speciales)
- si on veut appliquer de patchs (de ``petites'' modifications aux sources) il faut recompiler, notamment on peux essayer de noyaux experimentales pas encore destines au grand plus publique. Par exemple entre 2.6.10 et 2.6.11 (qui vient de sortir il y a quelques jours) il y a de versions intermediaires:
2.6.11-rc1, 2.6.11-rc2, ... ("rc" = "release candidate"). On peut les prendres pout participer aux tests si on veux ou par avoir plus tot un nouveau driver super important pour son ordianteur. Pour de telles versions il faut toujours appliquer de patchs et compiler soi meme.
- finalement, on peut aussi recompiler pour avoir le sentiment de fierte qu'on a compile soi meme son systeme d'exploitation.
et le noyau organise aussi le lancement de taches (processus) en multitaches avec priorites etc.
2. Le fichier noyau binaire (donc precompile) est typiquement dans /boot/... et il s'appelle souvent "vmlinuz" ou "vmlinuz-<version>". C'est ce fichier qui est pris par LILO ou Grub pendant le boot pour demarrer Linux. Apres il y a aussi de modules dans de sous-repertoires de /lib/modules/.... Ce sont de fichiers *.o ou *.ko (ou *.ko.gz en version comprimee comme en Mandrake). Les modules servent pour que le noyau peut ajouter de driver sans reboot. En fait une grande partie des drivers est mise en modules pour garder le noyau principal plus petit et mince.
Si on a installe les sources c'est dans le repertoire /usr/src/linux/... mais ce n'est pas necessaire pour faire tourner le systeme. Mais c'est comment recommande si on veut ajouter de driver supplementaires plus tard.
3. Compiler: transformer les fichier *.c (code source en C) vers de fichier *.o (binaires) et le "vmlinuz". C'est fait avec le compilateur gcc. Mais c'est assez automatique, il faut aller dans /usr/src/linux/... et taper les bonnes commandes "make ..." pour configurer et compiler et le "make" appelera lui meme quelques centaines de fois (ou milliers de fois) gcc pour compiler tous les fichier *.c vers *.o et finalement pour assembler ca afin de creer l'image de noyau (le "vmlinuz").
Pourquoi compiler:
- changer la configuration, modifier certaines options (processeur, memoire, choisir autres drivers etc.), peut-etre on veut aussi virer tous le driver dont on a pas besoin (par exemple on n'a qu'une ou deux cartes reseau => on peut virer tous les drivers pour les autres cartes)
- pour faire de mise a jour si le distributeur (Mandrake, Suse, Fedora, Redhat, etc.) ne fournit plus d'images toute pretes quand la distribution est trop vieille (par exemple avec Redhat 9.0 il n'y a plus de nouveaux noyaux pret de Redhat mais on peut prendre le 2.4.29 pour avoir les derniers drivers pour les derniers cartes meres etc. !!)
- essayer d'autre noyaux (ceux de www.kernel.org) aulieu ceux du distributeur (ou il y a toujours de modifs speciales)
- si on veut appliquer de patchs (de ``petites'' modifications aux sources) il faut recompiler, notamment on peux essayer de noyaux experimentales pas encore destines au grand plus publique. Par exemple entre 2.6.10 et 2.6.11 (qui vient de sortir il y a quelques jours) il y a de versions intermediaires:
2.6.11-rc1, 2.6.11-rc2, ... ("rc" = "release candidate"). On peut les prendres pout participer aux tests si on veux ou par avoir plus tot un nouveau driver super important pour son ordianteur. Pour de telles versions il faut toujours appliquer de patchs et compiler soi meme.
- finalement, on peut aussi recompiler pour avoir le sentiment de fierte qu'on a compile soi meme son systeme d'exploitation.
Merci bien pour ta réponse instructive
Sincères salutations