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 :

Comment créer un kernel en C/C++?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2012
    Messages : 17
    Par défaut Comment créer un kernel en C/C++?
    Bonjour,

    Je souhaiterais savoir comment je peux faire un kernel en C/C++ sur Code::Blocks. Je sais que ça prend du temps et que je n'ai pas spécialement les compétences requises, et c'est donc pour cela que je vous demande de l'aide. Et oui j'ai peut-être treize ans mais je ne pense pas être plus bête qu'un adulte.

    Je précise aussi que c'est un projet entre amis et que l'on ne cherche pas à faire un super OS mais juste un petit truc sympa du style MS-DOS mais avec une interface graphique un peu plus… récente !

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 309
    Billets dans le blog
    5
    Par défaut
    Bonjour et bienvenue.

    Il n'y a pas d'âge pour commencer. Tu as raison. Ceci dit une première question me brûle les lèvres : As-tu déjà programmer?

    Si la réponse est négative alors il faut commencer par apprendre. developpez.com est le lieu idéale pour ca. Tu y trouveras tout un tas de tutoriels ainsi qu'une communauté prête à t'aider.

    Si la réponse est positive alors sous quel environnement comptes-tu travailler? Linux, Mac, Windows?

    Pour finir il serait peut être intéressant pour vous, avant de vous lancer directement dans la construction d'un kernel, de commencer par essayer d'écrire un shell comme le bash ou autre... Ce serait déjà une bonne base de travail.

  3. #3
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Salut,

    vous ne manquez pas de courage pour un début ... il y a beaucoup de notions complexes qu'il va falloir apprendre avant de commencer à taper du code

    Pourquoi n'essayez-vous pas plutôt de commencer par des projets déjà en route, un truc simple comme freedos en plus de lire beaucoup (ça va améliorer votre anglais en plus) sur les OS ?

  4. #4
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2012
    Messages : 17
    Par défaut
    (re)salut,

    gerald3d:

    Pour ma part,je commence a programmer mais certain point reste obscur,sinon mais amis eux n'ont aucune éxperience.Je compte travailler sous windows et unbuntu,mais plusieurs personne m'ont dit que coder un kernel avec code::blocks était impossible car il nécésitait lui-même un kernel,si c'est vrai, quel programme me conseil tu?

    kwariz:
    Qu'est-ce-que freedos et ensuite comme documentation que me conseil tu?

    merci d'avance.

  5. #5
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Citation Envoyé par LittleBitOne Voir le message
    (re)salut,

    gerald3d:

    Pour ma part,je commace a programmer mais certain point reste obscur,sinon mais amis eux n'ont aucune éxpérience.Je compte travailler sous windows,mais plusieur personne m'ont dit que coder un kernel avec code block était impossible car il nécéitait lui-méme un kernel,si c'est vrai, quel programme me conseil tu?

    kwariz:
    Qu'est-ce-que freedos et ensuite comme documentation que me conseil tu?

    merci d'avance.
    Ne prend surtout pas les liens que je te donne mal ... il y a toujours beaucoup d'investissement perso dans ce genre de quête

    freedos

    Sinon pour le reste, il va déjà falloir apprendre plein de trucs avant :

    * que se passe-t-il entre [code source] .... et .... [exécutable] .... et .... [chargement par l'OS] ... et ....

    * comment bien programmer ... comment concevoir un projet ... et j'en oublie des tonnes et des tonnes ...

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 309
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par LittleBitOne Voir le message
    ...mais plusieurs personne m'ont dit que coder un kernel avec code::blocks était impossible car il nécésitait lui-même un kernel,si c'est vrai, quel programme me conseil tu?
    Un kernel est un programme. A partir de là je ne vois pas pourquoi il serait impossible de l'écrire avec C::B ou un simple éditeur de texte.

    Comme l'as écrit kwariz il faut une bonne organisation entre vous pour atteindre le but final. En d'autres termes il faut un chef, un vrai . Tu sembles tout désigné

  7. #7
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2012
    Messages : 17
    Par défaut
    Ok,merci pour tout sa, sa va bien occuper ma soirée ^^,
    sinon,même avec un OS du style MS-DOS(j'entend par la très simple)est-ce-qu'il est possible de mettre un design un peu plus du style windows xp ou 7?

    j'avais aussi vu qu'il falait utuliser un autre language que le C/C++ pour certain passage, ou est-ce-que je peux trouver des cour , tutos ou autre informations?



  8. #8
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 309
    Billets dans le blog
    5
    Par défaut
    Là je pense qu'il y a confusion.

    Un kernel est le programme qui permet de donner accès à l'ordinateur. J'entends par là accès aux différents périphériques (clavier, souris, écran...).

    Toi ce dont tu parles c'est un environnement graphique qui tourne grâce au kernel.

    Par exemple sous Linux le système lance un noyau (version 3.2.0-2-amd64 chez moi actuellement). Une fois lancé je peux exécuter les programmes que je veux. Un serveur X par exemple qui me donne accès à l'environnement graphique. J'espère être clair.

    Après cette petite explication, que veux-tu réellement créer?

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Un kernel est un programme. A partir de là je ne vois pas pourquoi il serait impossible de l'écrire avec C::B ou un simple éditeur de texte.
    Parce qu'un programme bénéficie d'habitude du chargeur de l'OS, qui s'occupe de trouver les points de départs, et offre une collection d'APIs pour enregistrer des réponses à différents évènement, directement avec un langage du niveau du C.

    Mais le kernel n'a pas d'OS sur lequel compter, lui. Il est la première chose qui commence un OS. Il doit s'initialiser tout seul.
    Son point de départ est appelé par le chargeur de boot, qui ne garantit pas grand-chose, mais qui a ses propres exigences sur l'emplacement mémoire de ce point de départ et un certain nombre de choses qui doivent arriver tout de suite après.
    Tout cela ne peut pas être fait en C pur mais avec une bonne quantité d'assembleur, et cet assembleur ne peut pas être au milieu d'un code C, mais du vrai pur assembleur sans rien autour. Le binaire final doit de plus l'insérer précisément au bon endroit sans rien devant, ce dont C::B doit sans doute être capable, mais sûrement pas facilement.
    Même remarque pour les traps d'interruption.

    Un gros paquet de choses, peuvent par contre être faites en C. (Et même en Ada, en C++, en Pascal ou en Java si on se sent fou.)

    Citation Envoyé par LittleBitOne
    Je voudrais créer un kernel ET son environement graphique
    Huhuhu. Bah de toute façon tu n'auras pas le choix, hein, mais non ça ne ressemblera pas à Windows. Pense plutôt à FreeDos. Mais bon, tu dois pouvoir faire du graphisme en VGA, si tu te débrouilles bien (indice : ce ne sera pas le cas. Nous avons fait ça en projet de 4e année d'école d'ingé. Faire marcher l'OS est bien assez compliqué sans s'occuper de couche graphique.)

    Citation Envoyé par LittleBitOne
    et comme sa j'apprendrais comment me servir de photoshop par exemple.
    Euh, non. Je te demanderai pas ce qui t'a fait penser ça, je me doute bien qu'il y a plein de trucs que tu comprends pas.

    Citation Envoyé par LittleBitOne
    Et puis comme sa on veras si je peux réaliser mon rêve (devenir ingénieur en robotique "intéligente" et informatique.)
    Évidemment. Mais les kernels sont en général déjà faits et c'est très bien comme ça. À la limite les modifier, ça arrive qu'on en ait besoin (il y a qu'à voir linux,) mais les refaire du début, c'est plutôt pour avoir une idée rapide de comment ça marche, pas pour aller au bout.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut et bienvenu sur le forum, je viens de lire les précédents messages et le dernier post me semble le plus réaliste.

    Avec tes compétences, la seule chose que tu vas réussir à faire en essayant de coder un kernel, c'est de te décourager et d'abandonner. C'est peut-être dur à entendre mais c'est comme ça.

    Il faut que tu reviennes à la source, dit toi que tu ne connais rien ou quasi rien. Il faut que tu commences par apprendre un langage, apprend le C vu que tu as déjà commencé.

    Un bon projet serait de faire un mini-jeu comme un pong ou un jeu de dame. Ne partez pas dans des trucs super compliqué comme le super MMO que vous avez pensé à la récré. Commencer petit et puis vous verrez déjà que vous allez y passer des heures et des soirées. Oublier les interfaces graphiques dans un premier temps parce que ça sert pas à grand chose quand on débute. En bref, faites quelque chose de très simple et ajouter des fonctionnalités une fois que le logiciel marche parfaitement. Vous ne vous découragerez pas et vous serez fière de ce que vous aurez codé (j'espère ).

    Quand vous aurez coder, n'hésiter surtout pas à venir poster votre code sur ce même forum et demander des suggestions parce que votre code ne sera pas parfait (ce qui est normal) et vous apprendrez plein de nouvelles choses.

    Quand vous aurez fait ça, ajouter une couche graphique, faites un jeu en réseau, apprenez d'autre langage et notamment un langage orienté objet (Java, C++, Python, ...).

    Ne négliger pas non plus l'algorithmique, résolvez des problèmes des cours et tutoriels pour apprendre la programmation C ; vous y apprendrez à coder en C en développement des compétences d'algorithmiques. Si vous vous y tenez, avec un peu de chance dans quelques années vous participerez aux olympiades d'informatique. Vous avez de la chance car vous êtes jeune, et vous avez du temps pour apprendre.

    En bref, oublier le kernel et faites SIMPLE pour le moment.

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

    Vouloir écrire un O.S. est généralement fréquent lorsque l'on débute et il faut du temps pour réaliser l'ampleur de la tâche que cela représente. Mais c'est aussi le signe de la volonté d'aller au fond des choses.

    Tu peux aussi essayer de lire ce fil, qui traitait d'un cas similaire :
    http://www.developpez.net/forums/d10...-architecture/

  12. #12
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2012
    Messages : 17
    Par défaut
    Je voudrais créer un kernel ET son environement graphique,le kernel, parceque j'ai vraiment envie de faire un truc a moi, qui tourne bien et qui respecte MES règles, et son environement graphique parceque j'ai pas envie d'avoir un truc tout fait et comme sa j'apprendrais comment me servir de photoshop par exemple.Et puis comme sa on veras si je peux réaliser mon rêve (devenir ingénieur en robotique "intéligente" et informatique.)

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

Discussions similaires

  1. [FLASH 5] Comment créer un lien hypertexte
    Par ajit dans le forum Flash
    Réponses: 4
    Dernier message: 30/03/2006, 12h26
  2. Comment créer des barres de Menu ?
    Par MoKo dans le forum IHM
    Réponses: 5
    Dernier message: 30/07/2003, 14h58
  3. Comment créer un nouveau dossier par programmation ?
    Par annecyrond dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2003, 07h59
  4. Comment créer et executer un .EXE
    Par maher12 dans le forum Flash
    Réponses: 3
    Dernier message: 26/09/2002, 08h33
  5. [] [Stratégie] Comment créer un fichier log
    Par Skeezo dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 16/09/2002, 18h30

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