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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    .

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

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