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

Bibliothèques, systèmes et outils C Discussion :

Programmer un OS en c et contrôler un pixel


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Par défaut Programmer un OS en c et contrôler un pixel
    Bonjour,

    est il possible de programmer un OS uniquement en c et uniquement avec ses bibliothèques standards ? Autre petite questions, existe t il dans ses bibliothèques standards une "commande" pour contrôler un pixel précisément ?

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 304
    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 : 18 304
    Par défaut
    Non, il te faudra un minimum d'assembleur, ne serais ce qu'en inline.
    existe t il dans ses bibliothèques standards une "commande" pour contrôler un pixel précisément ?
    Dans le cas de Linux, pas de fonction dans le noyau, tu as des fonctions dans les couches graphiques telles que X11. (pour ne citer que lui).
    Sur Windows, tu pourras avec la couche DirectX.
    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 Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Dans le cas de Linux, pas de fonction dans le noyau, tu as des fonctions dans les couches graphiques telles que X11. (pour ne citer que lui).
    Je me permets de modérer ce propos car il est possible d'utiliser le framebuffer directement indépendamment d'un serveur X. La meilleure source de documentation pour ce faire étant je pense les sources d'un programme qui exploite cela (mplayer peut-être ?).

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 304
    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 : 18 304
    Par défaut
    Certe, je n'ai pas parlé du Framebuffer, mais celui-ci permet d'accéder si je ne me trompe à la RAM video depuis l'espace d'adressage. (et aussi de bénéficier d'accélération matérielle).

    Il y a une bibliothèque directFB qui contient peut-être des fonctions de modification de pixels, mais c'est une bibliothèque, ce n'est donc pas intégré "bibliothèque standard".

    La question étant :
    existe t il dans ses bibliothèques standards une "commande" pour contrôler un pixel précisément ?
    La libc également appelée bibliothèque standard C ne contient pas de fonctions dédiées à la manipulation de pixels. Il faut compter sur des bibliothèques additionnelles
    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 actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Par défaut
    Merci pour vos réponses rapides, avez-vous un livre à me conseiller pour apprendre le langage assembleur d'un maximum de processeurs ? Windows par exemple fonctionne sur pas mal de processeur, il contient des codes sources différents pour chaque processeur ou son code source est unique pour tous les processeurs et s'adapte à eux ?

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 304
    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 : 18 304
    Par défaut
    Windows par exemple fonctionne sur pas mal de processeur
    Windows ne fonctionne que sur x86 et ARM pour les versions Windows RT. Mais je pense pas que se soit le même code, les applis win32 ne fonctionnant pas avec Windows RT. Les applis Modern UI utilisant une API différente, présntes dans les deux versions.

    Si tu prends le cas de Linux qui lui gère beaucoup plus de processeurs différents, l'essentiel du code est commun, et des parties spécifiques aux CPU sont présentes. Exemple, Linux gère la pagination à trois niveaux que ne gèrent pas les CPU Intel (seulement 2 niveaux) mais que gèrent les CPU Alpha. Le code est conçu pour sauter le troisième niveau pour les CPU Intel.

    Ensuite le code d'amorce est différent.
    Les appels systèmes sont les même, mais la convention d'appel est adaptée au CPU, et bien que tu trouve les mêmes softs sur le différents noyaux, les versions sont adaptés au CPU, les applis sont compilés vers le CPU de destination.

    Ceci n'est qu'un exemple. Je ne suis pas spécialiste du sujet non plus.
    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

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 304
    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 : 18 304
    Par défaut
    Merci pour vos réponses rapides, avez-vous un livre à me conseiller pour apprendre le langage assembleur d'un maximum de processeurs ?
    Si le sujet t’intéresses, tu peux regarder ceci :
    http://chrtophe.developpez.com/tutoriels/minisysteme/
    http://systeme.developpez.com/tutori...eloppement-OS/

    Pour l'assembleur proprement dit :
    http://asm.developpez.com/cours/
    http://asm.developpez.com/livres/

    Commences déjà par un CPU, se sera déjà pas mal.
    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

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 155
    Billets dans le blog
    151
    Par défaut
    Bonjour,

    Apprendre l'assembleur n'est plus vraiment obligatoire sauf dans des cas précis. Suivant ce que vous voulez faire, vous devriez peut être vous intéresser à d'autres langages.
    Pour l'histoire de jouer avec les pixels, ce que je fais c'est faire un rendu, dans une mémoire qui est gérée par moi même à la même. Une sorte de simulation de l'écran. Ainsi, je peux faire ma taille d'écran que je veux, je peux écrire/lire les pixels comme je le souhaite et le tour est joué.
    Si je veux voir le résultat, je sauvegarde en BMP ou un autre format simple et je l'ouvre avec un visualiseur approprié.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Par défaut
    En fait ce que je veux faire c'est pouvoir contrôler mon pc intégralement, et ne plus dépendre d'un quelconque logiciel, peut être même par cette volonté créer mon propre langage. Lâché dans ce monde sans logiciel, lire une clé USb ou une souris sera t il possible ?

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 155
    Billets dans le blog
    151
    Par défaut
    Oui, c'est possible, tout est possible, mais cela vous prendre du temps, beaucoup de temps.
    Je pense qu'au lieu de partir dans une telle direction, il faut mieux regarder les logiciels libres, tel le noyau Linux et les logiciels gravitant autour.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 495
    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 495
    Par défaut
    Bonjour,

    Citation Envoyé par Factorisable Voir le message
    En fait ce que je veux faire c'est pouvoir contrôler mon pc intégralement, et ne plus dépendre d'un quelconque logiciel, peut être même par cette volonté créer mon propre langage.
    Nous proposons ici le forum assembleur et son sous-forum programmation d'OS pour les questions relatives à ce sujet. Il est toujours très enrichissant de se prêter à ce genre d'exercice mais sache que c'est extrêmement long, beaucoup plus qu'on l'estime au départ.

    Lâché dans ce monde sans logiciel, lire une clé USb ou une souris sera t il possible ?
    Oui, mais il te faudra par définition tout réécrire depuis zéro (sauf à utiliser les fonctions BIOS, EFI, ou ACPI quand elles sont disponibles) et ré-implémenter toute la pile des pilotes des différentes couches avant d'arriver à lire ta souris ou ta clé USB. Cela va essentiellement dépendre de la machine que tu utilises, mais on considère quand même que c'est un PC.

    Un bon compromis consiste à se donner un objectif précis, par exemple « lire la clé USB » et implémenter depuis la base tout ce qui est nécessaire pour y parvenir mais rien d'autre : uniquement la lignée nécessaire à cette tâche en particulier (en s'accordant quand même le droit de mettre en place quelques facilités, comme une console digne de ce nom). Ça implique quand même un bootloader, un système de passage en mode protégé, une initialisation des segments, une prise en charge des principales interruptions, une gestion du clavier (via l'historique 8042, pas directement par l'USB), une initialisation éventuelle des modes vidéo jusqu'à VGA ou SVGA (sauf à rester en mode texte), puis de là, une énumération des bus PCI, l'identification et le mappage en mémoire de l'hôte HCI, une prise en charge partielle du complexe protocole USB en lui-même, une énumération des périphériques USB, l'identification d'un périphérique type « mass storage » et la prise en charge du protocole associé pour pouvoir, enfin, lire un secteur sur ta clé.

    Il est tout-à-fait possible d'écrire tout cela en C. Enfin, plus précisément, il est possible d'écrire 99,9 % de tout cela en C. Tu ne pourras jamais échapper à un minimum d'assembleur pour initialiser le mode protégé ou pour lire les ports I/O initiaux. Et c'est très bien comme cela : l'assembleur a été passionnant et nombreuses étaient, dans les années 1980 et début des 90's, les applications 100 % assembleur. Ensuite, les micro-processeurs sont devenus trop sophistiqués pour gérer humainement du code assembleur efficace et les compilateurs C, eux, sont devenus parallèlement très performants à cette tâche.

    Tu ne pourras pas non plus t'appuyer directement sur la bibliothèque standard, d'abord parce que celle-ci n'est pas directement engendrée par le compilateur C, mais est mise à disposition du programmeur avec le compilateur, parce que la norme l'exige. Ensuite, parce que cette bibliothèque est faite, par définition, pour s'appuyer sur le système d'exploitation. À dire vrai, c'est là la définition même d'un système d'exploitation : mettre en place les infrastructures minimum requises permettant d'écrire et d'exécuter un programme dans des conditions standardisées.

    Par contre, le C est fait pour pouvoir générer du code machine même en l'absence de toute infrastructure préalable (puisqu'il est, entre autres, censé être justement une alternative à l'assembleur). Il te faudra donc réécrire également les fonctions les plus importantes de la bibliothèque standard, par exemple un printf minimaliste.

    Enfin, pour répondre à ta question, contrairement au Basic ou à d'autres langages, il n'existe pas en C de commande « standard » pour allumer ou éteindre un pixel donné à l'écran, pour la simple raison que cela dépend totalement de la machine : rien ne dit que ta machine soit dotée d'un écran, rien n'indique que celui-ci soit capable de fonctionner en mode graphique, ni même que tu aies le droit d'y écrire. C'est vrai spécialement dans l'embarqué où tes programmes sont destinés à fonctionner sur micro-contrôleur, dans une machine a priori totalement dépourvue d'interface homme-machine, hormis une connexion série ou réseau.

    Par ailleurs, si tu refais ton OS, ce serait à toi de réécrire cette fonction si elle existait. Ce qui nous amène à la partie la plus intéressante : l'architecture des ordinateurs (en général). Pour allumer ou éteindre un pixel, il faut écrire dans la mémoire vidéo. Il s'agit en fait de RAM plus ou moins ordinaire mais qui a la particularité d'être lue automatiquement par la carte vidéo qui, elle, module la tension de sa sortie en fonction de ce qu'elle y trouve. Déposer un octet en mémoire à cet endroit provoque donc automatiquement la modification de l'aspect du ou des pixels correspondants.

  12. #12
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Par défaut
    Merci beaucoup pour cette riche réponse, où trouver les commandes utilisées notamment pour programmer le printf du langage c ?

  13. #13
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 304
    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 : 18 304
    Par défaut
    Tout d'abord Car avant de refaire printf, il faut savoir comment ça marche, et rien que printf avec les options c'est dense.

    Tu peux aussi consulter le code source (mais pas sûr que tu y comprennes grand-chose)

    Simplifions : on va dire que tu veux afficher une séries de caractères depuis une chaine.

    C'est pas si simple que ça, printf va en fait écrire dans un fichier stdin, donc on rajoute une couche gestion de fichiers. Le noyau va afficher le contenu de stdin à l'écran. Tout cela est un long cheminement qui peut faire un livre (voir plusieurs), car en mode graphique par exemple, tu dois dessiner caractère par caractère (ce que fait l'OS) , selon la police de caractères utilisée.

    Pour en revenir à la question originelle, pour modifier un pixel à l'écran, on utilise une fonction d'une bibliothèque. Sans système, cela consiste à modifier 3 à 4 octets en mémoire. Encore faut-il savoir y accéder, car il faut initialiser le mode vidéo dans la résolution souhaitée, puis calculer la position des octets correspondant au pixel à modifier (3 octets pour les valeurs RVB et éventuellement un octet pour le canal alpha par exemple).
    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

  14. #14
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par Factorisable Voir le message
    est il possible de programmer un OS ... uniquement avec ses bibliothèques standards ?
    Attention, une partie significative d'un OS est son noyau (les deux sont d'ailleurs souvent et incorrectement confondus).

    Le code d'un noyau ne peut en général pas utiliser de bibliothèques standard puisque ces dernières s'appuient elles-mêmes sur noyau...

  15. #15
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Par défaut
    Puis-je vous demander une dernière chose, comment appelle t on le rassemblement de processeur ayant le même langage assembleur ?

  16. #16
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 155
    Billets dans le blog
    151
    Par défaut
    Je pense que l'on parlera d'architecture (x86,x64, ARM)...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  17. #17
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Attention, toutes les fonctions de la bibliothèque standard ne n'appuient pas sur le noyau: celui-ci est évidemment nécessaire pour l'accès aux fichiers et l'allocation mémoire, mais les fonctions de manipulation de chaînes, de mathématiques ou de tri sont indépendantes (à supposer qu'elles n'aient pas besoin d'allocation mémoire).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #18
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Je trouve le projet un peu trop ambitieux pour quelqu'un qui ne sait pas grand chose ^^'
    Pour connaître l'assembleur en général si tu en connais un , il est facile d'en connaître un autre , mais c'est pareil pour les autres langages de programmation.

    Merci beaucoup pour cette riche réponse, où trouver les commandes utilisées notamment pour programmer le printf du langage c ?
    La question suppose que tout les printf sont codé de la même manière , mais en faite cela dépend énormément de la machine (quand la dite machine possède un écran evidamment).
    Par exemple sur les vielles consoles ,ils ne possèdent pas de mode console(ou mode texte comme tu veux) , il est obligatoire d'envoyer en VRAM un bitmap font pour afficher du texte.


    (3 octets pour les valeurs RVB et éventuellement un octet pour le canal alpha par exemple)
    Pour une image je comprend pour le RVBA , mais pour un framebuffer un RVBA c'est pas un peu étrange ?
    Je dis ça mais je n'en sais rien si de nos jours on va sur du Framebuffer en RVBA rien ne m’étonne maintenant

  19. #19
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 304
    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 : 18 304
    Par défaut
    Pour une image je comprend pour le RVBA , mais pour un framebuffer un RVBA c'est pas un peu étrange ?
    C'est surtout utile à l'alignement 32 bits.

    exemple mode VESA 32 bits 1024x768 : 0x138
    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

  20. #20
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 253
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Il est tout-à-fait possible d'écrire tout cela en C. Enfin, plus précisément, il est possible d'écrire 99,9 % de tout cela en C. Tu ne pourras jamais échapper à un minimum d'assembleur pour initialiser le mode protégé ou pour lire les ports I/O initiaux.
    Bonjour,
    Désolé de ressortir un sujet de 1 mois, bien que je n'ai pas la prétention d'écrire un OS, je me demande bien pourquoi on ne peut pas échapper à de l'assembleur pour certaine chose ?

    Moi qui travaille sur microcontroleur, le C permet de faire vraiment tout. Il suffit simplement de connaître l'adresse des registres et avec un pointeur c'est réglé.

    Pourquoi c'est différent sur un PC ? Je pense au mode protégé par exemple car si j'ai compris, c'est un bit à passer à 1 dans un registre et si l'adresse du registre est connu alors on peut le faire en C ? Non ?

    D'avance merci.

Discussions similaires

  1. Contrôler la programmation d'un fichier ASP
    Par audrey1912 dans le forum ASP
    Réponses: 5
    Dernier message: 19/04/2011, 09h45
  2. Réponses: 11
    Dernier message: 28/03/2011, 20h28
  3. Réponses: 4
    Dernier message: 07/02/2011, 21h38
  4. Contrôler votre écran LCD par programmation
    Par khayyam90 dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2010, 23h35
  5. Réponses: 1
    Dernier message: 04/06/2008, 20h13

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