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

Vue hybride

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

  8. #8
    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 ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    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 129
    Billets dans le blog
    150
    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.

  10. #10
    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.

  11. #11
    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

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