|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : août 2005 Messages : 98 ![]() |
Bonjour tout le monde,
je devrais modifier le noyau Linux, je ne l'ai jamais fais c'est la première fois, Mais je suis tellement découragé dans mon entourage (tout le monde se moque de moi et de ma capacité à le faire) je suis trés démotivé est ce super difficile à ce point? Bon déja est ce qu'il y a un lien ou je trouverais toutes les méthodes C expliquées? je ne sais pas par quoi commencer, quelqun a une expérience dans ça? |
|
|
10
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
En fait compiler le noyaux n'est pas complexe en soit, tant qu'on ne cherche pas à l'optimiser à 100% pour ta machine à tel point qu'il ne marchera pas sur une autre...
un exemple de compilation de kernel pour debian Code :
se référer aux documents en français. http://ftp.traduc.org/doc-vf/gazette...1/lg111-C.html http://opendz.tuxfamily.org/2007/01/...ion-du-kernel/ http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm http://okki666.free.fr/docmaster/articles/linux078.htm |
||
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() |
La première question que l'on doit se poser, ce n'est pas "est-ce que je veux modifier le noyau" mais "qu'est-ce que je veux modifier et pourquoi faire ?". De là dépend beaucoup de chose. Il m'est déjà arrivé de modifier des bouts de code dans les modules qui ne fonctionnaient pas, d'une manière extrêmement limitée, mais c'était pour un objectif précis: faire fonctionner un device non-compatible en l'état.
Après on peut décider d'implanter carrément une nouvelle méthode pour effectuer telle ou telle tâche du noyau, mais il faut bien comprendre quoi fait quoi, et pourquoi c'est fait comme ça. Rien d'impossible pour qui a une bonne connaissance des systèmes d'exploitation et de la programmation de bas niveau, mais encore faut-il savoir ce qu'on veut faire et pourquoi. Et ne pas avoir peur de faire pire que le noyau original, parce que à coup sûr, c'est ce qui produira. |
|
|
02
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : août 2005 Messages : 98 ![]() |
Je veux modifier le code source du noyau, l'objectif est de calculer un débit à travers une fonction réseau implémenté dans le noyau linux, et donc je suis obligé de passer par le fameux C!!
Ils y en a qui me disent faut comprendre comment c'est fait, c'est à dire comment le développeur du kernel a imaginé et conçu le fonctionnement de la couche réseau: un paquet c'est une socket machin, ....ect Moi je trouve que si j'essaye de comprendre ça je vais passer un an, car beaucoup de documentations et le pire aucune n'est facile à lire, la doc est aussi compliquée que le noyau, je ne veux pas etre méchante et penser que c'est fait exprès vive linux !!Merci pour vos encouragement, vos expériences me seront d'un grand aide Autre chose je suis phobique des pointeurs! une nullard quoi je sais
|
|
|
10
|
|
|
#6 |
|
Membre confirmé
![]() Enzo Lycéen Inscription : novembre 2010 Messages : 120 ![]() |
Peut-être que tu devrais déjà localiser la partie qui t'intéresse dans le code (si ce n'est déjà fait) et en parler avec des programmeurs expérimentés en OS qui s'y connaissent en kernel (ou même des contributeurs Linux) qui pourront t'aider. Tu peux en trouver sur le forum OSdev.org, mais tu devras parler en Anglais. Sinon, il me semble qu'il y a une section "développement d'OS" dans la catégorie assembleur, ici sur le site, mais comme tu travailles en C, je sais pas si ça sera bon de poster là bas.
Pour les pointeurs, les gens trouvent ça difficile uniquement parce-que tout-le-monde dit que c'est difficile, mais il n'en est rien ; pars du principe que c'est facile, et essaye tout-de-même de relire des documents ou tuto sur le sujet (prends ton temps, seuls les sur-hommes assimilent tout dès le premier coup, et je t'avoue que j'ai eu du mal moi aussi Pour la programmation réseaux, tu n'es peut-être pas obligée d'avoir toute la théorie de le OSI etc. Sache déjà ce qu'est une socket, des packets, le protocole TCP, UDP (ou autre) et vois si cela est suffisant ou s'il faut encore de la documentation. Mais, avis personnel, je trouve que tu y vas un peu fort là (si tu es débutante), mais bon, je ne pense pas que cela soit inaccessible si tu te documentes bien (même très bien) et avec de la volonté. Bonne chance ! |
|
10
|
|
|
#7 | ||||
|
Membre Expert
![]() |
Citation:
Ca pourrait être pire ! En assembleur (il reste quelque trace dans le noyau Linux). Citation:
Citation:
Donc le code ne peut pas être simple. Le pire à lire c'est la gestion de la mémoire. Citation:
Je connais peu la gestion réseau dans le noyau (je connais principalement VFS, couche virtuel de gestion des systèmes de fichiers). Si tu le souhaite je peux t'aider. Je te conseil tout de même d'y allez lentement. Conseil pour la programmation noyau :
__________________
Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant |
||||
|
|
10
|
|
|
#8 |
|
Membre expérimenté
![]() |
Soyons clair. Si tu déclares "ne pas aimer les pointeurs" et "passer par le fameux C", malgré les encouragements de mes généreux prédécesseurs, je dois te dire que ce n'est même pas la peine d'envisager la question de la modification du noyau. Il y a des pointeurs, et même des pointeurs sur des fonctions. Le C du noyau est pointu et n'est pas à la portée de quelqu'un qui ne maîtrise pas la notion de pointeur.
En revanche, je ne comprends pas l'objectif. Mesurer le débit sur une carte réseau ? Mais c'est déjà implanté dans tout les systèmes d'exploitation de ma connaissance ! C'est tellement implanté, qu'en fait, on peut y avoir accès de 50 manières différentes, toutes appelant des bibliothèques systèmes bien connues. |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com