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

Langages de programmation Discussion :

Apprendre à programmer un système d'exploitation : avec quel langage ?


Sujet :

Langages de programmation

  1. #61
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Citation Envoyé par gorgonite
    la question étant de savoir le nombre de asm dans le code...
    Pour Linux, quelque part entre nulle et insignifiante ; si tu ne me crois pas, prends les sources de Linux, et regarde un peu dedans.

    Citation Envoyé par gorgonite
    et il fonctionne au moins ? à une vitesse raisonnable ? sans surcharger inutilement la ram ? est du vrai ocaml, ou seulement un sous-ensemble bien choisi ?
    Oui, bien-sûr qu'il fonctionne. Il est assez expérimental encore, étant donné qu'une seule personne s'en charge, mais il tourne bien selon ce que j'ai pu entendre. Il s'appelle Desert Spring Time...

    http://dst.purevoid.org/

    Citation Envoyé par CORBASE
    Puis juste pour la feinte, le compilo est apparu tout seul, personne n'a écrit les routine qui génère l'ASM derrière ....
    Prend un bon petit vi, fait vite fait un petit programme en C avec des calcul et sors ton programme en ASM ... Tu vas être surpris de voir le code "optimisé" que le compilo crache ....
    C'est une chose que je fais très souvent, figure-toi. Avec gcc, par exemple, en compilant avec l'option -O3, tu ne reconnais plus ton code... et avec le compilateur Intel, là, ça devient du délire total. Ce n'est pas parce qu'un sombre crétin a écrit un article dans GNU/Linux Maga$ine montrant Ô combien gcc était mauvais en compilant avec -Os (option servant uniquement à optimiser le code en espace et non en temps d'exécution) que tout le monde doit croire ces conneries !
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  2. #62
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Pour Linux, quelque part entre nulle et insignifiante ; si tu ne me crois pas, prends les sources de Linux, et regarde un peu dedans.

    j'ai déjà regardé dedans... tu n'es pas le seul à aller voir les sources d'un programme pour décortiquer son fonctionnement

    et justement, je ne te crois pas

    regardes le répertoire linux-version/arch, linux-version/drivers, les implémentations de certains fs


    mais faut avouer... dès qu'on a à disposition "tout ce qui n'existe pas" en assembleur, on passe vite au c
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #63
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par CORBASE
    Ensuite le langage j'ai envie de te dire tu prend celui que t uveux, et même plus FORT tu n'as qu'a créer le tiens ...
    C'est à la mode en ce moment sur les fora de developpez.net de vouloir développer son propre langage ;-) Tu penses évaluer à combien la probabilité d'obtenir un langage un peu mieux que 100 fois moins bien que ce qui se fait déjà ?

    Le développement d'un OS c'est un des projets les plus compliqué, et de toute façon il te faudra bien un compilateur capable de sortir du code assembleur. En comme tu vas faire ta propre mixture, ni gcc, ni mingw ne marchera donc, il va falloir adapter ça à la mano !
    "Un compilo capable de sortir du code assembleur", c'est pas globalement "un compilo" ? :-\ Bon ok, il y a quelques langages où le compilo produit du code pour une machine virtuelle...

    D'où fait carrementton propre compilo
    Uhuh :-)

    d'où le C++ est en fait "pseudo" traduit en C, puis compilé en C
    Ouhlala ! T'as un paquet d'année de retard. Ca fait bien longtemps qu'un compilo C++ n'est plus un préprocesseur C. C'était effectivement le cas (ce qui donnait de grand moment de débug quand le compilo C t'envoyais un message d'erreur sur un code que tu n'avais jamais écris :-)) Maintenant un compilo C++ compile évidement le C++ "directement". Après, pour prendre l'exemple de gcc, ils ont un langage intermédiaire sur lequel ils font un paquet d'optimisation, et il est partagé par plusieurs front-end. Dit autrement, il y a un pseudo langage vers lequel les "vrais" langages sont traduits, puis ce pseudo langage est optimisé et traduit en ASM. Mais le C++ ne passe bien sur plus par du C.

    Bien sûr la vous me dirait, oui mais ya la notion objet, etc ... Je suis d'accord avec vous, on arrive à faire des programme plus simples grâce à la notion d'objet, cependant la notion objet est simplement une manière d'utiliser le C !
    De même que le C n'est qu'un moyen d'utiliser de l'assembleur, et l'assembleur un moyen d'utiliser le langage machine. Donc en poussant un peu le raisonnement, pour faire un OS, il faut acheter des tambours Nintendo, écrire "1" sur celui de droite, "0" sur celui de gauche, et c'est parti mon kiki :-p

    Bref, ce long discours pour arriver à la chose suivante, il faut choisir un langage de 3ème génération maxi, reposant sur un modèle C permettant un meilleure gestion du bas niveau.
    Je n'ai jamais entendu parler de génération de langage de programmation. Tu peux développer et nous donner un ou deux liens ?

  4. #64
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Citation Envoyé par gorgonite
    la question étant de savoir le nombre de asm dans le code...
    Pour Linux, quelque part entre nulle et insignifiante ; si tu ne me crois pas, prends les sources de Linux, et regarde un peu dedans.
    En terme de volume, comparé au code C, c'est sûr, il n'y a quasiment rien. En revanche, en terme d'importance, c'est loin d'être "nul" ou "insignifiant". Le coeur du coeur d'un OS de si grande qualité est forcément dépendant de l'architecture. Les instruction pour faire basculer le proc en mode noyaux, pour faire mumuse avec les tables de gestion de mémoire ou j'en passe se doivent d'être en ASM.
    Et si je ne m'abuse, il y a aussi du C réoptimisé à la main après compilation.

  5. #65
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Bref, ce long discours pour arriver à la chose suivante, il faut choisir un langage de 3ème génération maxi, reposant sur un modèle C permettant un meilleure gestion du bas niveau.
    Citation Envoyé par alex_pi
    Je n'ai jamais entendu parler de génération de langage de programmation. Tu peux développer et nous donner un ou deux liens ?

    Au passage, les langages de troisième génération existent déjà :
    http://en.wikipedia.org/wiki/Third-g...mming_language

    En bas, tu as un : Programming language generations qui te montre toutes les générations.
    Je ne répondrai à aucune question technique en privé

  6. #66
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    au passage, je signale que des langages comme systemC sont capables de générer du code et les drivers associés à l'architecture matérielle sous-jacente... je me demande si un OS ne serait pas codable avec
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  7. #67
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Bon, je vois que vous êtes tous là pour faire des petites remarques visant à ce que chacun est plus ou moins raison.

    Cependant, mon post n'etait pas là pour dire de faire son propre langage mais juste pour dire qu'avant de faire un OS, je pense qu'il faut avoir d'autre question que plutot savoir dans le langage dans lequel on va le programmer.

    A ce niveau de technicité le choix du langage devient futile, et en posant tout les problèmes sur une feuille de papier on arrive à trouver son bonheur !

    Sur ce, je vous laisse à vos discutions ...
    Rien n'est impossible, c'est juste une question de temps
    C'est quoi le PureBasic ?

  8. #68
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par gorgonite
    au passage, je signale que des langages comme systemC sont capables de générer du code et les drivers associés à l'architecture matérielle sous-jacente... je me demande si un OS ne serait pas codable avec
    Le SystemC que je connais, c'est essentiellement une bibliotheque pour du C++.

    Un langage que je n'ai pas vu cite et qui pourtant est celui que j'aurais tendance a employer, c'est Ada.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  9. #69
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Le SystemC que je connais, c'est essentiellement une bibliotheque pour du C++.

    certes, mais il n'est pas impossible de "compiler" le système vers ce qu'on souhaite... VHDL, asm & cie
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  10. #70
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par gorgonite
    certes, mais il n'est pas impossible de "compiler" le système vers ce qu'on souhaite... VHDL, asm & cie
    Mais dans le cadre de realisation d'un OS, ca revient a ecrire l'OS en C++.

    Les HDL (Hardware Description Languages -- Verilog, VHDL, SystemC etc) sont globalement inadaptes a l'ecriture d'OS (un exercice de ce point de vue: comparer les taches d'Ada et les process de VHDL).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  11. #71
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    Citation Envoyé par CORBASE
    Bon, je vois que vous êtes tous là pour faire des petites remarques visant à ce que chacun est plus ou moins raison.

    Cependant, mon post n'etait pas là pour dire de faire son propre langage mais juste pour dire qu'avant de faire un OS, je pense qu'il faut avoir d'autre question que plutot savoir dans le langage dans lequel on va le programmer.

    A ce niveau de technicité le choix du langage devient futile, et en posant tout les problèmes sur une feuille de papier on arrive à trouver son bonheur !

    Sur ce, je vous laisse à vos discutions ...
    La première question à se poser c'est surtout l'architecture visée (ou les architectures visées), tu ne gereras pas par exemple la mémoire de la même façon sur un processeur de type x86 et un PowerPC. Encore que, même en prenant les procs de types x86 encore faudra t il se poser la question : mode réel ou mode protégé. Les OS utilisent le mode protégé car il permet le task switching, la protection de la mémoire et aussi permet de gérer la mémoire virtuelle (pagination). Le mode réel était utilisé par DOS il me semble.

    Le langage n'est pas le plus gros probleme, le point commun c'est qu'il y aura forcément une partie assembleur afin d'utiliser des instructions trés spécifiques qu'on ne retrouve pas dans les langages plus haut niveau (pour ceux qui ont tripatouillés avec le pmode des x86 je pense notemment au chargement de la GDT, LDT, Hard task switching etc..). En tous cas c'est un projet sacrément passionant que de se lancer la dedans Java ou C peu importe

  12. #72
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Pascal, python, C, C++, CLI, C# , Java, VB...
    Finalement, les programmes ne sont que du texte traduit en asm, puis en 0 et en 1...

  13. #73
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Pfranco
    Pascal, python, C, C++, CLI, C# , Java, VB...
    Finalement, les programmes ne sont que du texte traduit en asm, puis en 0 et en 1...

    Et alors ? Un fichier exécutable n'est pas exécutable en tant que tel, il est nécessaire que le système charge le fichier, passe en mode utilisateur et l'exécute (temporairement).... Comment fais-tu pour outrepasser cela en python ?
    Je ne répondrai à aucune question technique en privé

  14. #74
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Et en C ? La question n'est pas là.
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  15. #75
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Et en C ? La question n'est pas là.
    Ca dépend de quel partie de l'OS tu parles...

    Il y a souvent des options de compilation particulier pour se débarasser des entêtes PE et compagnie. C'est ce que j'avais déjà utilisé pour un ordinateur particulier avec un M68k qui n'avait pas de système d'exploitation dessus.

    Cependant, il y a toujours des problèmes pour certaines instructions particulières, comme il a déjà été dit (passage mode noyau/utilisateur...)

    Evidemment, si tu as un compilateur particulier python qui permet de faire cela...
    Je ne répondrai à aucune question technique en privé

  16. #76
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Et en C ? La question n'est pas là.
    Tu demandes à ton linkeur de générer du code éxécutable uniquement (.com 16 bits par exemple), place maintenant ton programme (et le mot magique ...) sur le premier secteur d'une disquette, redémarre ton pc en bootant à partir de la disquette et obseve!

  17. #77
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Points : 35
    Points
    35
    Par défaut
    Moi j'ai fait du Shell pour ça

  18. #78
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par capucine1983
    Moi j'ai fait du Shell pour ça

    Tu pourrais expliquer car quelque chose m'échappe...
    Je ne répondrai à aucune question technique en privé

  19. #79
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par capucine1983
    Moi j'ai fait du Shell pour ça
    Tu ne confondrais pas "faire de la programmation système" ou "intéragir avec le système" et "programmer un système d'exploitation". Parce qu'effectivement, la plupart des appels systèmes peuvent être fait depuis un shell, mais il est clair que tu ne peux pas faire un système d'exploitation en Bash :-)

  20. #80
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Points : 35
    Points
    35
    Par défaut
    shell est l’interpréteur de commandes qui fait office d'interface entre l'utilisateur et le système d’exploitation.c'est pour ça que j'ai parlé du Shell.donc c'est "intéragir avec le systéme".je sais pas si j'ai du mal comprendre la question initiale

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/11/2010, 01h37
  2. Détection de système d'exploitation avec SWT
    Par villoutj dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 02/10/2009, 09h13
  3. programmation réseau avec quel langage
    Par nasdj dans le forum Développement
    Réponses: 4
    Dernier message: 05/01/2008, 21h37
  4. Déterminer avec quel langage un .exe a été programmé
    Par Chatbour dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 30/08/2007, 23h57
  5. Avec quel langage débuter en programmation ?
    Par spectrum1984 dans le forum Débuter
    Réponses: 10
    Dernier message: 28/12/2003, 21h57

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