Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PROJET COURS]Programmer un système d'exploitation

En C et assembleur

Anonyme
    19 janvier 2017 à 18:08:03

    Bonjour (ou bonsoir), Je songe très sérieusement à écrire un cours sur comment programmer un système d'exploitation 32 bits multitâche non-préemptif en C et en assembleur. J'ai déjà commencé à écrire les différentes parties mais j'ai plusieurs questions: - Est ce que ce tutoriel est adapté à ce site, en sachant que openclassrooms et plutôt un site de débutant et que programmer un système d'exploitation n'est pas hors du commun des mortel mais assez compliqué ? - Est ce que ce tutoriel n'a pas déjà été publié (j'ai déjà vu des liens sur des cours sur le même sujet mais ce sont tous des liens morts) par quelqu'un d'autre ? - Et enfin, que pensez vous de ce projet ?
    • Partager sur Facebook
    • Partager sur Twitter
      20 janvier 2017 à 22:35:51

      Salut !

      Je pense que si tu as le niveau et la motivation pour aller jusqu'au bout de ton cours, cela pourrait être très enrichissant au moins pour toi ;)

      Créer sa propre distribution de linux est un projet relativement recurrent dans plusieurs ecoles d'informatiques (comme la mienne :D) ! Donc tu aurra surement un public interessé d'étudiants comfirmé !

      Par contre je ne pense pas que ce soit un sujet qui interesse la plupart des débutants qui verraient surement ca comme un travail colossal ou inutile (bawi ! y'a deja plein de systeme d'exploitations sur le marcher super et fonctionnels, pourquoi en fait d'autres ?)

      Sinon, d'un point de vue personnel (etudiant et passionné en informatique surtout en langage de bas niveau), je n'ai pas comme projet de créer mon propre systeme d'exploitation car je ne suis pas trop dans la personnalisation de materiels (c'est limite si je modifie mon emacs deja) mais je serais curieux de savoir comment le faire ! Sur un temp libre, ce serait un plaisir de lire un bon cour sur la création d'un OS ! ;)

      Apres, peu importe le sujet, si tu veux faire un cour de qualitée ! JUST DO IT ! Ca ne peut donner que du bon !

      -
      Edité par giantwow 20 janvier 2017 à 22:36:58

      • Partager sur Facebook
      • Partager sur Twitter
      Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
        21 janvier 2017 à 15:50:43

        Le fait d'avoir pas mal de débutant sur le site n'est pas un frein au contraire. Les débutants viennent ici avec de la curiosité et du temps libre. C'est de bonnes bases pour suivre un tuto jusqu'au bout même si on n'a pas le niveau. Après est ce que les bases à avoir pour suivre le tuto sont déjà présente ici (ou dans le tuto) ?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          22 janvier 2017 à 12:13:20

          Franchement m'intéresse énormément, mais il faut évidemment que les "élèves" aient une connaissance solide du C et de l'ASM :-°.

          En tout cas si tu as la motivation pour rédiger un tel cours avec toutes les explications techniques nécessaires, alors vas-y!

          Affaire à suivre de près :)

          -
          Edité par Anonyme 22 janvier 2017 à 12:14:29

          • Partager sur Facebook
          • Partager sur Twitter
            22 janvier 2017 à 16:01:49

            Bonjour.

            Je dis peut-être une bêtise mais OC n'as pas une ligne éditoriale claire et précise indiquée quelque-part (en tout cas je ne l'ai pas trouvé). Je vais me renseigner en haut pour voir ce qu'il en est.

            Mais à mon avis (et ça n'engage que moi), ce genre de cours a sa place sur OC. A partir du moment où le cours indique clairement d'entrée de jeu qu'il nécessite des bases solides, ça ne pose pas de problèmes. D'ailleurs, plusieurs cours commencent avec une rubrique "les pré-requis", donc... Ça m'étonnerais qu'on refuse ton cours pour ça. Et puis, OC fait aussi de la formation pour se professionnaliser, on n'est plus exclusivement dans les "tutos pour zéros" comme il y a quelques années.

            Sinon, tu peux aussi contacter directement OC pour poser tes questions, via editorial@openclassrooms.com. Ce sont eux les mieux placés pour y répondre après tout.

            • Partager sur Facebook
            • Partager sur Twitter

            Moderateur forum || FAQ 3D || discord 3D francophone || OC Tweak script

            Anonyme
              26 janvier 2017 à 11:25:11

              Merci de vos réponses nombreuses et désolé pour ma longue période d'inactivité (problèmes d'internet),

              giantwow:

               Ce que je compte faire n'est pas de faire sa propre distribution linux, mais bien de programme un système d'exploitation (le noyau). Certes, programmer un système d'exploitation n'est pas facile mais n'est pas plus difficile que de programmer un jeu vidéo 3D, par exemple. Après, tout dépend de ce que l'on veut implémenter: si on veut programmer un GUI, en pensant recréer Windows... C'est iréealiste... Mais programmer un noyau qui boot et affiche quelques messages n'est pas si difficile. En réalité, programmer un SE demande beaucoup d'organisation, de patiente et de documentation :lol:

              De plus, pas de besoin de savoir modifier des logiciels libres comme Vim ou Emacs (moi perso je ne sais pas le faire) ni d'être un crack en informatique même s'il faut de solide bases.

              Et au faites, mon tutoriel sera sous Windows... Pas sous linux (même si du coup, les codes sont quasiment universels, mit a par certaines spécifités du compilateur)

              Benevolar:

              Normalement le cours détaillera tout de A à Z mais il faudra quelques prérequis de programmation (C et assembleur) comme les opérateurs binaires, les sauts conditionnels... et sur l'architecture cible (x86), en gros connaître les différents registres et quelques instructions basiques comme mov, jmp... Tout le reste, mon cours le détaillera (les spécificités matérielles, la gestions du cache, des concepts des sytèmes d'exploitations...

              Et merci de vos encouragements, et pardonnez mes fautes, j'écris ce message vite fait depuis les ordis du CDI :p...

              -
              Edité par Anonyme 26 janvier 2017 à 11:34:20

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                26 janvier 2017 à 12:51:02

                J'ai hâte de voir ce cours!

                D'ailleurs, quelqu'un connaît un bon cours assembleur? :-°

                • Partager sur Facebook
                • Partager sur Twitter
                  26 janvier 2017 à 17:03:11

                  Lu'!

                  Personnellement, j'aurai tendance à trouver ça un peu présomptueux à moins que le cours soit malheureusement assez imprécis (et c'est le problème numéro 1 des tutoriels d'OC). La raison qui me fait dire ça est qu'actuellement la référence sur le sujet c'est "Modern Operating Systems" de A. Tanenbaum. Et c'est un petit livre qui dépasse le millier de pages. Même si un micro-noyau est simple comparativement à un système d'exploitation complet, on reste sur un code d'environ 6000 lignes de C pour que cela mérite quand même de s'appeler système d'exploitation. C'est petit, certes, mais ce n'est pas rien.

                  D'autant que ce qui est important à comprendre dans le fonctionnement d'un système d'exploitation, c'est pas comment faire booter la machine. Ce qui est important, c'est les notions qui viennent après : être capable de créer deux processus et comprendre comment passer de l'un à l'autre, pourquoi on fait ça etc. Ensuite généraliser à "N" processus et comprendre l'importance de les isoler (comprendre au passage la différence entre les modes supervisés et non supervisés), comprendre ce qu'est le scheduling et le mettre en place (avec pleins d'algos différents à présenter). Puis viennent ensuite les questions de gestion basique de la mémoire : définir la gestion des pages de mémoire, donner des notions d'allocation, en passant par la fragmentation interne et externe, la MMU, le TLB.

                  Bref, ça fait vraiment énormément de notions, qui sont très pointues et on a très vite fait de raconter n'importe quoi si on est pas hyper précis sur les termes employés. Et ce qui me fait peur, c'est de voir un énième "cours".

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                  Anonyme
                    27 janvier 2017 à 15:48:59

                    Salut,

                    Ksass`Peuk:

                    Je suis d'accord avec toi, programmer un système d'exploitation digne de ce nom (c'est à dire qui permet une interaction raisonnable avec l'utilisateur) est difficile et le projet final comportera au moins 6000 lignes. Mais dans ces 6000 lignes, la plupart de ces lignes sont les gestions des différents périphériques et la gestions des processus (et de la mémoire virtuelle). Mais je pense avoir le temps et l'envie de bien détailler mon futur cours: Peu de cours en français sont disponible sur le web, et c'est ma principale motivation pour ce cours.

                    Je pense découper le cours en 2 grande partie: une 1ère partie où tout sera bien expliqué, exemple à l'appui, (exemple: Réaliser le bootloader, la base du noyau, un shell en mode noyau) et la 2nd partie qui sera plus vaste et plus difficile (par exemple le recherche d'une algorithme de scheduling performant, le COW, une gestion plus avancée de la mémoire virtuelle, le moniteur 8086, un shell en mode utilisateur...) afin que le débutant et le confirmé sur le sujet puisse tout les deux s'y retrouver

                    -
                    Edité par Anonyme 27 janvier 2017 à 15:49:35

                    • Partager sur Facebook
                    • Partager sur Twitter
                      31 janvier 2017 à 13:28:23

                      Salut

                      J'ai hate de voir ça, super idéé, surtout pour ceux comme moi qui sont pas super en anglais.

                      Cordialement.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Gaetan ritel - Freelance
                        31 janvier 2017 à 15:11:12

                        -L0Lock- a écrit:

                        Sinon, tu peux aussi contacter directement OC pour poser tes questions, via editorial@openclassrooms.com. Ce sont eux les mieux placés pour y répondre après tout.


                        Est-ce qu'ils repondent aux mails ? J'ai le souvenir d'avoir deja envoyé deux questions sans reponses depuis quelques semaines
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
                          31 janvier 2017 à 16:23:15

                          Normalement, ils répondent. Pour ma part, je les ai contactés plusieurs fois et ai toujours eu toutes les réponses qu'il me fallait.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Moderateur forum || FAQ 3D || discord 3D francophone || OC Tweak script

                            31 janvier 2017 à 16:26:02

                            alors peut etre que c'est simplement que les questions que je leur ai posés ne meritaient pas d'être répondus ! :D
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture

                            [PROJET COURS]Programmer un système d'exploitation

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown