Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/04/2011, 16h49   #1
Membre à l'essai
 
Inscription : août 2005
Messages : 98
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 98
Points : 23
Points : 23
Par défaut modifier le noyau linux

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?
popov2 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/04/2011, 17h13   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
cd /usr/src
wget -c wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2
tar jxf linux-2.6.38.tar.bz2 
cd linux-2.6.38*/
make clean && make mrproper
cp /boot/config-`uname -r` ./.config
make menuconfig
# dans make menuconfig faire "load" .config
# si on doit modifier des configurations le faire
# sinon réenregistrer "save" .config
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-francoisp31 kernel_image kernel_headers
cd /usr/src
dpkg -i linux-image-2.6.21.3-custom_2.6.38-francoisp31-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.21.3-custom_2.6.38-francoisp31-10.00.Custom_i386.deb
shutdown -r now
y'a vraiment rien de complexe mais par contre c'est long, ne pas hésiter à se réserver une petite demi-journée. la première fois ...

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
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 18h38   #3
Membre confirmé
 
Avatar de golden boy
 
Homme Enzo
Lycéen
Inscription : novembre 2010
Messages : 120
Détails du profil
Informations personnelles :
Nom : Homme Enzo
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : novembre 2010
Messages : 120
Points : 224
Points : 224
En fait, ça dépend, tu veux carrément modifier le code source de Linux (je demande parce que je t'ai vu parler du C) ?
__________________
Real ASM
golden boy est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 14/04/2011, 20h42   #4
Membre expérimenté
 
Inscription : août 2008
Messages : 455
Détails du profil
Informations personnelles :
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2008
Messages : 455
Points : 575
Points : 575
Envoyer un message via Skype™ à thierry.chich
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.
thierry.chich est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 15/04/2011, 09h20   #5
Membre à l'essai
 
Inscription : août 2005
Messages : 98
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 98
Points : 23
Points : 23
Par défaut je n'essaye pas de compiler mais modifier

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 pour que ne mette pas les mains dans le code!! oui oui oké 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
popov2 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/04/2011, 10h43   #6
Membre confirmé
 
Avatar de golden boy
 
Homme Enzo
Lycéen
Inscription : novembre 2010
Messages : 120
Détails du profil
Informations personnelles :
Nom : Homme Enzo
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : novembre 2010
Messages : 120
Points : 224
Points : 224
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 !
__________________
Real ASM
golden boy est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/04/2011, 12h42   #7
Membre Expert
 
Étudiant
Inscription : août 2004
Messages : 500
Détails du profil
Informations personnelles :
Âge : 22

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2004
Messages : 500
Points : 1 017
Points : 1 017
Envoyer un message via MSN à Senaku-seishin
Citation:
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!!
Quel débit exactement ?
Ca pourrait être pire ! En assembleur (il reste quelque trace dans le noyau Linux).

Citation:
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
Il faut surtout savoir lire l'API.

Citation:
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 pour que ne mette pas les mains dans le code!!
Le noyau fait appelle à des notions complexe (exemple les variables atomique). Le code à été écrit pour ceux qui comprennent ces mécanismes.

Donc le code ne peut pas être simple. Le pire à lire c'est la gestion de la mémoire.

Citation:
Autre chose je suis phobique des pointeurs!
Tu vas les aimée ! (désolé du sarcasme). Les pointeurs sont monnaie courante en C. Les pointeurs sont difficile car mal compris (alors c'est pas très compliqué).

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 :
  • Connaitre l'objectif exacte
  • Lire l'API et document pour réussir l'objectif
  • Programmer en tant que module, pas en dur.
  • Avancer par étapes
__________________
Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
Senaku-seishin est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/04/2011, 10h42   #8
Membre expérimenté
 
Inscription : août 2008
Messages : 455
Détails du profil
Informations personnelles :
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2008
Messages : 455
Points : 575
Points : 575
Envoyer un message via Skype™ à thierry.chich
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.
thierry.chich est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h15.


 
 
 
 
Partenaires

Hébergement Web