IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

modifier le noyau linux


Sujet :

Administration système

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 99
    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?

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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 : 5 196
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre expérimenté Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Par défaut
    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) ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    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.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 99
    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

  6. #6
    Membre expérimenté Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Par défaut
    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 !

  7. #7
    Membre émérite
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Par défaut
    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).

    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.

    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.

    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

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    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.

Discussions similaires

  1. Noyau Linux 2.6
    Par c-ve dans le forum Administration système
    Réponses: 3
    Dernier message: 20/12/2006, 23h09
  2. Un warning pendant la phase d execution du noyau linux
    Par Djo00 dans le forum Administration système
    Réponses: 9
    Dernier message: 15/07/2006, 01h57
  3. Problème d'execution du noyau linux sur 1 carte
    Par Djo00 dans le forum Administration système
    Réponses: 4
    Dernier message: 12/07/2006, 12h34
  4. Modifier un shell linux
    Par baali_hacene dans le forum Linux
    Réponses: 10
    Dernier message: 09/03/2006, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo