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

 C Discussion :

compilation binary flat


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut compilation binary flat
    BONjour bonsoir,

    OS: Evolution Pro
    architecture: x86
    FS: FAT32
    ---
    Sous windows ou autres système>
    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
     
    #include <stdlib.h>
     
    int main(char *arg[],int nb_arg)
    {
    //Déclarations
       long code_retour = 0;
       int *variable = NULL;
    //Executif
          int *variable = malloc(sizeof(int));  //allocations
           if(variable != NULL)
           {*variable = 10;}                    //entrée d'une valeur
          while(1);                             //attente
    //Retour
         return code_retour;
    }
    -----------------------------------------------------
    Programmer pour être indépendant>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int noyau(void)
    {
    //Déclarations
       long code_retour = 0;
       int *variable = NULL;
    //Executif
         int *variable = 0000:0000;
         *variable = 10;
         while(1);
    //Retour
         return code_retour;  
    }
    /* Avec ma propre fonction principale et une compilation (gcc) spéciale
    (-nostdinc etc...) et la suppressions d'indicateurs et information d'allocation (quelqu'un peut m'expliquer l'utilité "d'allocations" enfin bon...) grâce à objcopy (option -S .note .comment etc...) compliquer ^^*/
    >>http://www.hexanium.com/zumba/archi/..._c_compile.htm

    Voilas je voulais avoir votre avi sur la question:
    sur les adresses de bases
    les DMAs
    et surtout les interruptions et comment faire appel à eux en C uniquement.

    PS: je ne sais pas utiliser les balises dsl :S

    merci d'avance!

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par lapinoudu33 Voir le message
    PS: je ne sais pas utiliser les balises dsl :S
    Un peu d'aide ici!

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Je ne voie pas bien ce que tu veux faire ? Tu peux expliquer un peu plus s'il te plait et donner plus de détails
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    j'esperai une réponse a ma question mais merci beaucoup quand meme ^^
    ben je voudrai faire un programme que je chargerai sur une disquette (GRUB) et qui fonctionnerai tout seul juste après le BIOS dans l'espace vide et froid d'un ordinateur sans "système" tu voi ou je veux en venir?

    je voudrai savoir si il y a vraiment une reel complexité au démarrage de l'ordinateur?

    par exemple les "microprogramme" dans le matériel peux ont communiquer avec si il y en a?
    le BIOS es vraiment utile?

    Mit a par garder une configuration du systeme basique dans une mémoire(CMOS)
    plutot inutile a mon gout..
    et après avoir fait un un test de fonctionnement (POST)
    absurde puisque windows le fait tout aussi bien..
    enfin tout ça me fait posé une question si tout le systeme ce charge à partir
    du premier secteur du support physique sur le quel il est, pourquoi le "chipset" de la carte mère ne s'en charge pas?
    a quoi sert vraiment le BIOS a par protéger le machine (c'est relatif ^^ )

    mes questions porte sur comment faire "fonctionner du C" a partir de rien
    processeur + support physique & systeme de fichier+secteur de boot & table des partitions ... j'èspère avoir rien oublier ^^

    mes questions porte aussi sur mon code:
    es ce que si je lance mon programme je pourrai écrire sur n'importe quel octet dans la RAM?

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par lapinoudu33 Voir le message
    je voudrai savoir si il y a vraiment une reel complexité au démarrage de l'ordinateur?
    Oui, c'est complexe, il y a des choses à faire et dans un certain ordre. En général, c'est fait en assembleur (au moins le début).

    Citation Envoyé par lapinoudu33 Voir le message
    je voudrai faire un programme que je chargerai sur une disquette (GRUB) et qui fonctionnerai tout seul juste après le BIOS dans l'espace vide et froid d'un ordinateur sans "système" tu voi ou je veux en venir?
    Bon courage. Je voie globalement ce que tu veux faire et si tu es à l'aise en assembleur, je t'engage à te plonger dans le sources de Linux pour voir ce qui est fait au démarrage

    Citation Envoyé par lapinoudu33 Voir le message
    par exemple les "microprogramme" dans le matériel peux ont communiquer avec si il y en a?
    Oui mais tu ne peux faire que ce que le constructeur à prévu que tu puisses faire. Et en plus, il faut connaitre les spécifications d'interface du matériel (c'est pas toujours simple à obtenir).

    Citation Envoyé par lapinoudu33 Voir le message
    le BIOS es vraiment utile?
    Ce que moi j'appelle le BIOS, c'est le programme qui se trouve en EPROM sur la carte mère. Le BIOS sert à fournir un interface à peu près standart pour les périphériques classiques (disque dur, disquettes, souris, ...). Certains périphériques (carte réseau je pense) ne sont pas gérés par le BIOS, c'est donc à l'OS de les gérer. Certains OS ignorent totalement le BIOS et implémentent leur équivalent au BIOS. Windows possède une couche nommée HAL (Hardware Abstract Layer) qui fait cela peut être d'ailleurs en faisant appel à certaines fonctions du BIOS.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    je te rassure mon but pour le moment n'est "que" de faire fonctionner mon programme juste après le démarrage de la machine après l'inévitable BIOS qui comme tu(me permettez vous de vous tutoiyer?) l'a dites stocker dans un circuit intégrer sur la carte mère (ce que j'interprete comme EPROM)

    mais comment je fait avec du C pour communiquer avec la machine ?
    et es ce que je peux manipuler n'importe qu'elle partie de la mémoire RAM a ce moment là?

    PS: je ne métrise pas du tout l'assembleur jai des connaissance très théorique dessus et très poussées mais le langage j'ai jamais réussi à le manger pour tout dire ^^ je trouve cela étrange...
    en C on manipule la RAM mais pour le reste on doit utiliser des bibliotheques
    en ASM pour x86 (intel ) on manipule les registres du processeurs mais pas autre choses... enfin bon éclairer moi un peu ^^
    ou manipule ton vraiment le matériel

    Deplus je suis absolument convaincue que l'on peu faire un petit programme comme cela entierement en C

    a ce propos tes liens me montre comment écrire un secteur d'amorçage principale (MBR) entierement en asm (seul façon possible de toute façon ^^)
    mais a la limite je met GRUB il me fait le MBR avec le FS tout fait (FAT32 par exemple) et c terminer j'ai plus qu'a mettre mon programme dessus sous la belle arboressence windows et modifier le fichier de config GRUB en passant.

    mais mes questions son cité plus haut et je ne trouve pas de réponse ^^ voili

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    D'apres ce que j'ai compris de ton dernier message au dessu du mien c'est que les fonctions du BIOS deviennent totalements inutiles et windows fait cela très bien avec son "HAL".

    a propos, oui on est daccord pour ce qui est du matériel on ne peu utiliser ce que le fabriquant nous a fabriquer evidemment

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par lapinoudu33 Voir le message
    mais comment je fait avec du C pour communiquer avec la machine ?
    Il faut connaitre les composants, leur adresses, les registres de contrôle, les canaux DMA utilisés, les IRQ utilisées de ces composants etc. C'est ce que j'appelle l'interface constructeur et c'est spécifique à chaque composant et parfois aussi à chaque constructeur. Soit c'est disponible et c'est tant mieux pour toi, soit c'est confidentiel ou peu diffusé et là, c'est dur.

    Citation Envoyé par lapinoudu33 Voir le message
    et es ce que je peux manipuler n'importe qu'elle partie de la mémoire RAM a ce moment là?
    Cela dépend de ce que te laisse faire ce qui tourne en mémoire. Cela demande confirmation mais quand le BIOS a démarré et que tu vas commencer à booter sur le DD, oui a priori, tu peux taper dans toutes la RAM accessible. Il est probable qu'après le BIOS, tu n'aie que 640K de RAM (ancienne limite des PC) même si tu alignes 4GO de RAM physique. De toute façon, l'assembleur cera requis.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  9. #9
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par lapinoudu33 Voir le message
    D'apres ce que j'ai compris de ton dernier message au dessu du mien c'est que les fonctions du BIOS deviennent totalements inutiles et windows fait cela très bien avec son "HAL".
    J'ai pas dit cela, j'ai dit que Windows avait son équivalent au BIOS qui s'appelle HAL dans la terminologie Microsoft et que peut être cette couche appelle le BIOS ou certaines partie du BIOS.

    Le BIOS est utile car avant que Windows ou linux ne démarrent, l'accès au secteur 0 de ton disque dur se fait en utilisant une des fonctions du BIOS.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    Très bien, je te rassure je connais ce petit ménage là ^^
    je recherchait d'autres réponse de ta part enfaite

    Ce que je veux te montrer au niveau de mes connaissance maintenant pour que tu puisse mieux répondre à mes besoins:

    au démarrage mon programme "booter" par GRUB peut éffectivement faire ce qui veux puisqu'il est tout seul (c'était juste une petite confirmation de ta part pour me rassurer)

    après les quelques malheureux kilo octet accessible en RAM son tout simplement du au "mode reel" qui me limite a 2Mo l'accèe à la RAM donc forcément je dois manipuler quelques valeurs a "placer" dans différents registre pour faire "comprendre" au PROCO que je veux qu'il me place en "mode protégé" et là c'est mon programme qui domine et tous doit passer par moi, en meme temps, toute la RAM m'est accessible c'est comprit c'est du tout cuit mais...

    on doit alors en plus devoir apprendre l'assembleur (spécifique au processeur) connaitre son processeur au niveau de son algorithmie, soit quoi placé et ou, exacte?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    Le BIOS est utile car avant que Windows ou linux ne démarrent, l'accès au secteur 0 de ton disque dur se fait en utilisant une des fonctions du BIOS.

    mais les fonctions du BIOS (interruptions logiciels) sont écrasées par ce "HAL"
    mais voilas ce qui est bizarre pourquoi le secteur 1 n'est t-il pas mit directement en mémoire par la carte mère meme et non en passant par un circuit secondaire telle que le bios?

    a propos il y a quand meme une chose que je n'est pas comprit là:
    Il existe quelque chose dans les PC: les PICS (pas les microcontrolleurs) , ces fameux "circuit virtuel" ou chaque sortie pointerai vers un matériel quesque c'est concretement dans la RAM?
    une adresse de base?
    une ensemble d'adresse réservées? (DMA)
    une fonction systeme? (interruption)

    merci d'avance

  12. #12
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    pour ta dernière question,je sèche un peu...
    Sinon,faire fonctionner un programme "sans rien" est un genre de Mini-OS....
    En mode réel (donc en 16 bits) tu peux utiliser les interruptions du BIOS pour afficher des choses à l'écran,mais dès que tu passes en 32 bits (généralement c'est GRUB ou n'importe quel autre bootloader qui se charge de la commutation),il faut accéder "directement" à la mémoire graphique... (je ne me souviens plus exactement mais la réponse à tes questions devrait se trouver sur un tuto de création d'OS)

  13. #13
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par lapinoudu33 Voir le message
    mais les fonctions du BIOS (interruptions logiciels) sont écrasées par ce "HAL"
    Non pas écrasé, ils cohabitent tous les deux ensemble.

    Citation Envoyé par lapinoudu33 Voir le message
    mais voilas ce qui est bizarre pourquoi le secteur 1 n'est t-il pas mit directement en mémoire par la carte mère meme et non en passant par un circuit secondaire telle que le bios?
    Parce que dans ce cas, tu aurais le bootloader imposé par le constructeur de la carte mère. C'est quand même plus sympa de choisir son boot loader (grub, lilo, ...). De plus, ta carte mère ne sais pas si ton disque dur va être un disque SATA, ATA ou SCSI (et peut être même que tu n'auras pas de disque et que tu vas booter sur une disquette ou un CD). C'est le BIOS qui lors du démarrage découvre ton matériel et sait comment l'utiliser (au moins pour les fonctions de base).
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    Non tu ne peux pas accéder à la mémoire video,
    Comment veux tu puisque toute les adresses mémoire que tu manipulent par les pointeurs sont des adresses de la mémoire RAM, alors?

    Mais j'avais une questions, sur quoi son basées les interruptions du BIOS?

    Une interruption sa à bien deux significations, si elle est logiciel c'est que c'est une fonction programmée comme dans le langage C , par contre si elle est matériel c'est qu'un périphérique quelconque envoie un flux de données sur sa plage DMA(un ensemble d'adresses de base) ou une adresse de base unique(IRQ), c'est ça?

    Mais alors qu'est-ce-qu'un PIC?

    Autre sujet qui n'a pas de rapport direct:

    Un système de fichier comme FAT n'est ce qu'une structure ou c'est bien plus que cela?

    Ce que je sais, pour précisées vos réponses, c'est qu'un FS est composer d'une table des partitions (contenue dans le MBR), d'une table de fichiers MFT, l'unitée est le clusters (ensemble de secteurs) mais après mystère on ne peux pas en savoir plus... j'ai entendu parler et j'ai vu dans des définitions et autres démonstration des pilotes de FS ce qui me ferait alors penser à un véritable noyau, réserver au FS à lui tout seul, voyez vous ou je veux en venir?

    mais ram0000> je pensais que les interruptions BIOS était innacsessible une fois dans le mode protégé?

    d'accord je comprend mieux, le chipset de la carte mère (son controlleur en quelque sorte) c'est ça? , n'impose rien au démarrage et forte heureusement pour que les gens puisse choisir le BIOS qu'ils veulent avec le bootloader qu'ils veulent n'est ce pas?

    si tout les périphérique ont besoin d'un driver pour fonctionner, le BIOS contiendrait donc dans sa mémoire un driver "standard"? ce qui expliquerai que certain BIOS ne reconnaitrait pas les technologie nouvelle (SATA) et que leur "driver standard" ne fonctionnerai pas pareil?

  15. #15
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par lapinoudu33 Voir le message
    Non tu ne peux pas accéder à la mémoire video,
    Comment veux tu puisque toute les adresses mémoire que tu manipulent par les pointeurs sont des adresses de la mémoire RAM, alors?
    Si si, Autant que je me rappelle, la mémoire vidéo était mappée en mémoire en 0xb0000 (de toute façon même si c'est pas ca, le principe est bon quand même). C'est à dire que la carte mère avait de la RAM dont l'adresse allait de 0x00000 à 0x9ffff c'est à dire 640K. Après, les cartes pouvaient utiliser l'espace restant. La vidéo se mappait en 0xb0000, le BIOS qui est de la mémoire même si c'est de la ROM se mappait en 0xd0000. Je crois que 0xc0000 était disponible pour ce que l'on voulait.
    Donc si on écrivait en 0xb0000, on tapait directement dans la mémoire vidéo et donc cela influait sur ce qui était affiché.

    Attention, mon explication est valable en mode 16 bits, je ne sais pas ce que cela vaut en mode 32 bits (je pense même que cela ne vaut rien ).

    Citation Envoyé par lapinoudu33 Voir le message
    Une interruption sa à bien deux significations, si elle est logiciel c'est que c'est une fonction programmée comme dans le langage C , par contre si elle est matériel c'est qu'un périphérique quelconque envoie un flux de données sur sa plage DMA(un ensemble d'adresses de base) ou une adresse de base unique(IRQ), c'est ça?
    Pour l'interruption logicielle, tu as juste. Par contre une l'interruption matérielle signifie simplement que le composant à quelque chose à dire à la CPU. Cela peut être la fin d'un transfert DMA ou bien l'arrivée d'un nouveau caractère sur le port série. L'interprétation de la cause de l'interruption est encore une fois à faire en fonction du composant qui a généré l'interruption.

    Citation Envoyé par lapinoudu33 Voir le message
    Mais alors qu'est-ce-qu'un PIC?
    PIC, c'est Programmable Interrupt Controller. C'est ce composant qui gère les priorités des interruptions (le clavier est moins prioritaire que le DMA par exemple) et qui interromp la CPU en lui donnant le numéro d'interruption qui a été activée.

    Citation Envoyé par lapinoudu33 Voir le message
    Un système de fichier comme FAT n'est ce qu'une structure ou c'est bien plus que cela?
    Je dirai que c'est un grand buffer formé de clusters organisé d'une certaine manière spécifique au file system qui est dessus. L'organisation FAT est différente de FAT32 différente de NTFS différente de EXT3 bien que l'on retrouve souvent les même fonctionnalités.

    Citation Envoyé par lapinoudu33 Voir le message
    Ce que je sais, c'est qu'un FS est composer d'une table des partitions (contenue dans le MBR)
    Non, le MBR est à part, ce n'est pas vraiment un FS ou alors c'est le FS MBR si tu veux mais il y a aussi du code dedans.

    Citation Envoyé par lapinoudu33 Voir le message
    d'une table de fichiers MFT, l'unitée est le clusters (ensemble de secteurs) mais après mystère on ne peux pas en savoir plus... j'ai entendu parler et j'ai vu dans des définitions et autres démonstration des pilotes de FS ce qui me ferait alors penser à un véritable noyau, réserver au FS à lui tout seul, voyez vous ou je veux en venir?
    Le mot MFT, je crois que c'est propre à NTFS. Sous Unix, on parlera de table des inodes. Le terme cluster est repris dans tous les FS que je connais et a la même signification, c'est la taille élémentaire d'un morceau de fichier. Un cluster est composé d'un nombre multiple de secteurs du disque (de 512 octets ?)

    Si tu veux plus d'info sur le format NTFS, va voir ici : http://www.ntfs.com/
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    Si si, Autant que je me rappelle, la mémoire vidéo était mappée en mémoire en 0xb0000 (de toute façon même si c'est pas ca, le principe est bon quand même).
    C'est à dire que la carte mère avait de la RAM dont l'adresse allait de 0x00000 à 0x9ffff c'est à dire 640K. Après, les cartes pouvaient utiliser l'espace restant. La vidéo se mappait en 0xb0000, le BIOS qui est de la mémoire même si c'est de la ROM se mappait en 0xd0000. Je crois que 0xc0000 était disponible pour ce que l'on voulait.
    Donc si on écrivait en 0xb0000, on tapait directement dans la mémoire vidéo et donc cela influait sur ce qui était affiché.

    Attention, mon explication est valable en mode 16 bits, je ne sais pas ce que cela vaut en mode 32 bits (je pense même que cela ne vaut rien ).>

    Donc sa revient à manipuler la RAM... qui a des conséquences sur d'autres mémoires, c'est ça? mais qui défini ces zones de la ram(DMA et/ou adresse de base )?

    Le PIC est un composant de la carte mère? ou est t-il situé phisiquement?
    par exemple la ROM du BIOS est en bas a droite la plus part du temps...

  17. #17
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par lapinoudu33 Voir le message
    mais qui défini ces zones de la ram(DMA et/ou adresse de base )?
    Cela fait partie des spécifications, de notre point de vue d'utilisateur, on peut voir cela comme une définition arbitraire. C'est définit par un groupement de constructeur par exemple.

    Citation Envoyé par lapinoudu33 Voir le message
    Le PIC est un composant de la carte mère? ou est t-il situé phisiquement?
    Je ne sais pas. Peut être que maintenant, c'est directement intégré dans le chipset de la carte mère. Sur les 80x86, c'est vrai, c'était sur un composant à part. Sur les 80186, c'était intégré dans le circuit intégré de la CPU.

    Citation Envoyé par lapinoudu33 Voir le message
    par exemple la ROM du BIOS est en bas a droite la plus part du temps...
    Cela dépend des carte mère. Chaque constructeur est encore libre de la mettre où il veut.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    donc tout le "mystere de l'informatique" sur comment fait le système pour communiquer avec le matériel ou comment est faite la fonction printf serait bafoué par le faite que des endroits de la mémoire vive (RAM sur les micro ordinateur) contrôleraient les connecteurs de la carte mère exactement comme certains nerf du corp humain controllerait les muscles de la jambe et pas des yeux, le tout orchestré par le CPU et son contrôlleur d'interruption le PIC
    fantastique.

    Mais une question persiste, d'apres mes connaissances en ASM on ne peut écrire exclusivement que dans les registres du CPU (processeur centrale), du MPU pour être exact (micro processeur centrale ) es ce vrai?
    peux t'on écrire dans la RAM avec de l'assembleur?
    quel instruction asm (de MPU intel) est alors utilisée?

  19. #19
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Citation Envoyé par lapinoudu33 Voir le message
    Mais une question persiste, d'apres mes connaissances en ASM on ne peut écrire exclusivement que dans les registres du CPU (processeur centrale), du MPU pour être exact (micro processeur centrale ) es ce vrai? peux t'on écrire dans la RAM avec de l'assembleur? quel instruction asm (de MPU intel) est alors utilisée?
    « MOV », ça marche bien ! :-)

    Trouve un tutoriel d'initiation à l'architecture des ordinateurs. Puisque le sujet a l'air de t'intéresser, les choses te paraîtront beaucoup plus claires si tu « relis le livre depuis le début », plutôt que de glâner quelques bribes d'infos çà et là, et d'essayer de remonter jusqu'à la source.

    Toutefois, je vais tenter un résumé :

    1) Le microprocesseur est un circuit a priori indépendant du reste de la machine. Les onéreux mais très répandus Intel x86 se trouvent chez les revendeurs informatiques, mais un 68K ou un Z80, par exemple, se trouvent typiquement et depuis toujours chez les détaillants en électronique.

    2) Les seules choses qu'un microprocesseur sache faire sont, en gros : - lire une donnée quelque part ; - appliquer un traitement (une opération logique ou arithmétique) sur cette donnée - écrire la donnée autre part. Ça revient à manipuler les pointeurs, en C, ou à faire PEEK et POKE si tu avais fait jadis un peu de BASIC.

    Pour ce faire, le circuit fonctionne sur le modèle de la machine de Turing. Il considère que son environnement est un loooong tableau d'octets consécutifs. Et pour s'y promener, il se contente de dire à son environnement s'il souhaite lire ou écrire, en précisant le numéro de la case concernée, et en véhiculant la donnée sur des lignes électriques dédiées.

    Ça fait 65 lignes en tout sur un processeur 32 bits, par exemple. Sur un antique 6809 des familles, tu trouvais 8 lignes pour lire ou écrire l'octet, 16 pour coder son adresse en binaire et une pour dire Read ou /Write; Ces lignes correspondent physiquement à des broches sur le boitier (ici A0-A15 pour l'adresse, D0-D7 pour la donnée, R/W pour la direction).

    http://retrieverimages.lycos.com/ima...6809/i/002.jpg
    http://www.museo8bits.com/mochalez/6809e.png

    On constate notamment que les lignes de données D0 à Dn sont bidirectionnelles.

    3) Toutes ces lignes sont distribuées simultanément, en parallèle, à tous les périphériques sur la carte-mère : on parle de bus d'adresse ou de données.

    4) Tous les périphériques voient donc ce qu'il se passe sur le bus, mais chacun d'eux décide de ne réagir qu'en fonction d'une certaine configuration du bus d'adresse, faute de quoi, il reste en état de haute impédance (autrement dit, il s'isole). Ce, afin qu'un seul composant prenne la parole à la fois.

    5) Si un circuit de la machine ne décide de réagir que sur une configuration de tous les bits du bus d'adresse (soit une seule combinaison possible), le processeur a l'impression de « voir » ce circuit à une adresse fixe. A contrario, si un autre circuit ne se soucie pas du tout de ce qu'il s'y passe, alors il réagira quelque soit l'adresse et le processeur aura l'impression de le voir partout à la fois.

    6) Activer ou non un circuit en fonction d'une combinaison du bus d'adresse relève de la logique combinatoire. Il faut associer beaucoup de portes logiques pour donner le bon signal à chaque périph', qui par ailleurs est livré de manière indépendante. On a donc fini par toutes les regrouper au sein d'un réseau de portes, ou gate array, dans un circuit spécialisé, donc on tirait un feu vert personalisé pour chaque circuit.

    Au départ, on a utilisé des réseaux logiques programmables style GAL ou FPGA, mais très vite, la densité des portes augmentant et le câblage étant tellement spécifique, les constructeurs ont fondu leur propre puce, correspondant à la machine dans laquelle elle allait prendre place. Et tant qu'à fondre une puce, autant regrouper tout ce qui forme le minimum syndical d'une machine et qui est reparti sur la carte-mère en un seul jeu de puce, ou chipset.



    Tout cela pour dire que la totalité des cases que le microprocesseur peut adresser forme son plan mémoire et que c'est au concepteur de la machine d'y attribuer des plages pour les périphériques ou la mémoire, là où bon lui semble.

    UPDATE : Tout ceci te donne les grandes lignes du fonctionnement d'un ordinateur, et c'était valable sur PC jusqu'au début des années 90. Aujourd'hui, le principe est toujours le même mais tout est beaucoup plus sophistiqué. Très peu de ressources, par exemple, voient leur adresse en mémoire être codée en dur, alors que ce fût quasiment la règle pendant toute l'ère des 16 bits. Aujourd'hui, la tendance est plutôt : la ressource se déclare, la machine lui attribue un emplacement et l'initialise.

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    Le microprocesseur est un circuit a priori indépendant du reste de la machine. Les onéreux mais très répandus Intel x86 se trouvent chez les revendeurs informatiques, mais un 68K ou un Z80, par exemple, se trouvent typiquement et depuis toujours chez les détaillants en électronique.

    Je suis d'accord avec l'idée qu'un micro-ordinateur(MAC,PC,pocketPC) n'est pas une machine obligatoirement toute faîte
    avec les périphéries déja choisies à l'avance comme veux nous le faire passer microsoft avec l'OS vista,
    mais les fabriquant de carte mère sont bien obliger de respecter les standards et se mettre d'accord avec les
    fabriquant pour un connecteur et un certain "sens" a la marche.Bien que je pense que l'on peu adapté électroniquement un pentium I ou un micro processeur utilisé dans les montages amateur en électronique a n'importe qu'elle carte mère récente, non?


    Toutes ces lignes sont distribuées simultanément, en parallèle, à tous les périphériques sur la carte-mère : on parle de bus d'adresse ou de données.Tous les périphériques voient donc ce qu'il se passe sur le bus, mais chacun d'eux décide de ne réagir qu'en fonction d'une certaine configuration du bus d'adresse, faute de quoi, il reste en état de haute impédance (autrement dit, il s'isole). Ce, afin qu'un seul composant prenne la parole à la fois.


    Sur ça on est d'accord


    l'instruction mov justement permet les déplacements de valeurs d'où son nom "move->bouger"
    exemple: mov A,B;
    mettre la valeur du registre B dans A
    A et B étant des registres du processeurs

    Mais sa ce son des manipulations qu'a l'intérieur du processeur...
    comment faire sur la mémoire centrale (RAM) de la machine (PC)?

    Trouve un tutoriel d'initiation à l'architecture des ordinateurs. Puisque le sujet a l'air de t'intéresser, les choses te paraîtront beaucoup plus claires si tu « relis le livre depuis le début », plutôt que de glâner quelques bribes d'infos çà et là, et d'essayer de remonter jusqu'à la source.


    déja trouvé et lu d'ou moin pour l'architecture je comprend cela très bien
    après pour ce qui est de l'asm je dirai que je trouve assez bizarre d'avoir 36 mille registres... pourquoi pas qu'un seul dans le quel on éxécuterai les instructions? alors y'a des histoire avec ces fameuses pile de données à vide et à remplir...(exactement comme en C je suppose)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. comment compiler un binary file sans le code source (android)
    Par sup.wado dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 21/04/2011, 19h36
  2. [Turbo Pascal] Flat binary
    Par CP / M dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 19/07/2008, 09h22
  3. Erreur après compilation : cannot execute binary file
    Par Djo00 dans le forum Administration système
    Réponses: 8
    Dernier message: 21/07/2006, 16h26
  4. Réponses: 2
    Dernier message: 27/10/2005, 18h59
  5. [GCC]Probleme compilation FLAT BINARY sur windows
    Par Hexanium dans le forum Autres éditeurs
    Réponses: 10
    Dernier message: 24/07/2005, 18h07

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