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 :

c'est quoi le noyau


Sujet :

Administration système

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut c'est quoi le noyau
    bonjour à tous,

    alors j'ai lu de la documentation et je voudrais etre sur d'avoir bien compris.

    Tout le code du noyau est toujours stocké dans la RAM (sauf le code de certains drivers qui peuvent etre chargé dynamiquement)

    Des que l'un de mes programmes en C fait un appel systeme, il y a un saut d'adresse sur le code du noyau qui est stocké dans la RAM ?

    Des que l'un de mes programmes en assembleur, souhaite recupérer une variable dans la RAM, il y a également une interruption et c'est le noyau qui me place la variable dans un registre ?

    Merci d'avance pour vos éclaircissements

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 452
    Points : 43 099
    Points
    43 099
    Par défaut
    Des que l'un de mes programmes en C fait un appel systeme, il y a un saut d'adresse sur le code du noyau qui est stocké dans la RAM ?
    oui, c’est à peu près ça.

    Des que l'un de mes programmes en assembleur, souhaite recupérer une variable dans la RAM, il y a également une interruption et c'est le noyau qui me place la variable dans un registre ?
    Si c'est une variable de ton programme, c'est son code assembleur qui place le contenu de ta variable dans un registre.Charger une de tes variables dans un registre ne génère pas d'appel système.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Si c'est une variable de ton programme, c'est son code assembleur qui place le contenu de ta variable dans un registre.Charger une de tes variables dans un registre ne génère pas d'appel système.
    Merci pour ta réponse,

    mais il me semblait que le noyau avait un gestionnaire de mémoire ?

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 452
    Points : 43 099
    Points
    43 099
    Par défaut
    mais il me semblait que le noyau avait un gestionnaire de mémoire ?
    oui, et ?

    Quand le système créé un processus depuis le chargement d'un exécutable, il réserve la mémoire requise par celui-ci (pour le code, les données constantes ou variables). Il crée un espace d’adressage pour ce processus contenant l'accès à cette mémoire. Ensuite tes variables déclarées sont stockés dans la case mémoire leur étant dédié (ou chargée dans un registre par le code), dans la pile, ou dans le tas en cas d"allocation mémoire durant l’exécution avec malloc.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut
    merci beaucoup pour tes réponses chrtophe,

    mais si dans l'un de mes programmes, je vais dans une zone mémoire qui n'appartient pas à mon processus, par exemple je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int tab[2] = {0};
    tab[10000000] = 10;
    alors mon processus est fermé par le noyau ? donc c'est le noyau qui a vu que je n’accédais pas à la bonne zone mémoire mais comment ?

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 452
    Points : 43 099
    Points
    43 099
    Par défaut
    Tout simplement car si tu accèdes à une adresse hors de ton espace d'adressage, tu as un segfault. En gros tu lèves une exception CPU (une interruption matérielle sur erreur), qui exécute du code noyau qui est en charge de killer ton processus.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [sbadecoder a dit].. C'est quoi pour vous un beau programme?
    Par seb.49 dans le forum Langages de programmation
    Réponses: 14
    Dernier message: 13/02/2004, 10h41
  2. c'est quoi un 'system catalogs' ...
    Par jaimepasteevy dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/12/2003, 16h47
  3. C'est quoi XMLRAD ?
    Par laffreuxthomas dans le forum XMLRAD
    Réponses: 10
    Dernier message: 09/08/2003, 02h42
  4. C'est quoi "Profile" dans le assign du XMLGram ?
    Par Lux interior dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/02/2003, 11h37
  5. C'est quoi exactement un générateur d'états
    Par Henry Cesbron Lavau dans le forum Outils de restitution et d'analyse
    Réponses: 0
    Dernier message: 02/04/2002, 19h15

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