le C est il suffisant pour programmer un OS ? - C - Programmation
Marsh Posté le 09-03-2007 à 17:26:25
est est ce que c'est le plus adapter pour de la programmation système ?
est ce que le principe de programmation système change d'un langage à l'autre ?
où est ce qu'on peut apprendre ça ?
quel sont les connaissance requise pour ça ?
Marsh Posté le 09-03-2007 à 17:28:38
ReplyMarsh Posté le 09-03-2007 à 17:33:34
Elmoricq a écrit : Je crois que tu ne réalises pas ce que représente la programmation d'un OS. |
Oué je sais je veut simplement savoir...
Alors pouvais vous me répondre svp ?
Marsh Posté le 09-03-2007 à 17:48:04
CreaRetour a écrit : voilà tout est dans le titre, |
Le C standard ? Non. Il faut connaitre l'assembleur, car certaines parties du code ne peuvent être écrites qu'en assembleur. D'autre part, il faut des extensions permettant de manipuler les adresses fixes. De plus, il faut un éditeur de lien qui permet de réaliser un 'boot sector' pour une disquette ou un CD..., qui sache placer du code ou des données à des offsets bien précis...
Enfin, la partie du langage C nécessaire au boot ne peut, par définition, pas utiliser ls parties de la bibliothèque qui font appel aux fonctions systèmes, ... puisqu'il n'y a pas encore de système ! Il peut cependant y avoir un 'micro-noyau' ne servant qu'au boot, qui disparait ensuite au profit du vrai système... Celui-ci peut implémenter une partie des fonctions systèmes nécessaires au C...
Ecrire un système, c'est un énorme boulot. Pourquoi cette question ?
Marsh Posté le 09-03-2007 à 17:52:02
Emmanuel Delahaye a écrit : Le C standard ? Non. |
!!!
l'un dit oui (cf Harkonnen) , l'autre dit non (cf Emmanuel Delahaye), je ne comprend pas là,
pourquoi y a il un autre Langage C non standard ou quoi !
Marsh Posté le 09-03-2007 à 17:56:19
CreaRetour a écrit : !!! |
J'ai développé... Oui, il existe GNUC qui est un langage issu du C avec des extensions faites pour écrire un système. Ca a permet d'écrire GNU/Linux, par exemple.
Marsh Posté le 09-03-2007 à 18:00:10
Emmanuel Delahaye a écrit : J'ai développé... Oui, il existe GNUC qui est un langage issu du C avec des extensions faites pour écrire un système. Ca a permet d'écrire GNU/Linux, par exemple. |
jamais entendu parler, donc GNU/Linux est programmer sous GNUC et pas en C contrérement à ce que la plupart disent...
Où est ce qu'on peut ce documenté sur GNUC ?
Marsh Posté le 09-03-2007 à 18:07:08
Merci pour m'avoir un peut eclairer
Emmanuel Delahaye a écrit : Ecrire un système, c'est un énorme boulot. Pourquoi cette question ? |
On lisant ça http://mapage.noos.fr/emdel/dev_proj.htm (pas que ça), ça ma donner des idée futuriste, et ma motivé pour écrire un système, (pas tout de suite lol et pas tout seul)...
je sais que c'est un énorme boulot, mais j'ai mis ça dans ma tête et même si ça me prendrai toute ma vie pour le faire
Marsh Posté le 09-03-2007 à 18:30:53
CreaRetour a écrit : jamais entendu parler, donc GNU/Linux est programmer sous GNUC et pas en C contrérement à ce que la plupart disent... |
Bah, faut pas croire ce que disent les non-informaticiens...
Citation : Où est ce qu'on peut ce documenté sur GNUC ? |
http://www.gnu.org/software/gcc/
Marsh Posté le 09-03-2007 à 18:32:05
CreaRetour a écrit : On lisant ça http://mapage.noos.fr/emdel/dev_proj.htm <...> |
Tu as de saines lectures, c'est bien !
Marsh Posté le 09-03-2007 à 19:26:20
CreaRetour a écrit : |
Parce que Harko il a le cerveau mou depuis qu'il cottoie des juristes.
(j'pense il a simplement zappé l'assembleur tellement c'est naturel de l'inclure, quel que soit le langage, quand il s'agit de développer un OS)
Marsh Posté le 09-03-2007 à 20:37:34
Elmoricq a écrit : Parce que Harko il a le cerveau mou depuis qu'il cottoie des juristes. |
ouiiiiiiiii
Elmoricq a écrit : |
voila ! pas d'OS sans assembleur, meme inliné dans le code C
Marsh Posté le 09-03-2007 à 21:49:43
Harkonnen a écrit : pas d'OS sans assembleur, meme inliné dans le code C |
Avec la merveilleuse syntaxe AT&T...
Marsh Posté le 09-03-2007 à 21:52:52
Emmanuel Delahaye a écrit : Avec la merveilleuse syntaxe AT&T... |
putain, clair... rien que de lire ça, je prends 3 points de tension ! cette syntaxe a été pondue par le malin qui était en train de pousser sur ses chiottes
Marsh Posté le 09-03-2007 à 22:13:53
Si tu veux regarder à quoi ressemble un OS codé en C+Assembleur, faut aller sur www.kernel.org (sur le FTP, y a toutes les versions depuis la 0.01 jusqu'à la 2.6.20.2)
Sinon, GNUC c'est pas un langage. C'est juste des trucs en plus par rapport au C standard, y a pas vraiment de quoi fouetter un chat.
Marsh Posté le 09-03-2007 à 22:24:19
Dumbledore a écrit : Sinon, GNUC c'est pas un langage. C'est juste des trucs en plus par rapport au C standard, y a pas vraiment de quoi fouetter un chat. |
C'est un langage et c'est un sur-ensemble du C standard.
Marsh Posté le 09-03-2007 à 23:09:52
Emmanuel Delahaye a écrit : C'est un langage et c'est un sur-ensemble du C standard. |
GNUC n'est pas un sur-ensemble de C. Le contre exemple qui me vient à l'esprit: la différence de sémantique à propos d'extern inline, inline, entre C99 et GNUC (je ne parle pas de 4.3 non encore releasé)
Marsh Posté le 09-03-2007 à 23:26:59
++fab a écrit : GNUC n'est pas un sur-ensemble de C. |
Exact. J'aurais du préciser 'du C90'.
Marsh Posté le 09-03-2007 à 23:35:37
( Les topics C, c'est un peu "tout les chemins mènent à Rome", on peut les commencer comme on veut on peut être surs que les derniers messages du topic vont contenir le mot "sur-ensemble" )
Marsh Posté le 10-03-2007 à 11:36:11
Emmanuel Delahaye a écrit : Avec la merveilleuse syntaxe AT&T... |
Je ne connais pas la syntaxe de l'assembleur AT&T mais il parais que malheureusement, par défaut, gcc sortent de l'assembleur AT&T ... mais on peut aussi utiliser la syntaxe INTEL sous gcc ...
Sinon, vous voulais dire quoi exactement par sur-ensemble du C ?
Marsh Posté le 10-03-2007 à 12:08:34
CreaRetour a écrit : Je ne connais pas la syntaxe de l'assembleur AT&T mais il parais que malheureusement, par défaut, gcc sortent de l'assembleur AT&T |
Il n'y a pas "d'assembleur AT&T", mais il y a une "syntaxe AT&T" pour écrire en assembleur inline avec gcc. Nuance... L'assembleur, sur PC, c'est de l'Intel x86, pas le choix !
Citation : ... mais on peut aussi utiliser la syntaxe INTEL sous gcc ... |
Tu veux dire, par exemple, la syntaxe MASM ? Pas à ma connaissance, mais si tu sais comment faire, ça m'intéresse, et je ne dois pas être le seul.
Citation : Sinon, vous voulais dire quoi exactement par sur-ensemble du C ? |
Qu'il (GNUC) englobe tout le C90. On étudie plus la glorieuse théorie des ensembles des années 70 dans les écoles ?
J'ai fait ça en 4ème...
Marsh Posté le 10-03-2007 à 12:55:11
Primo: http://sourceware.org/binutils/doc [...] 002dSyntax
Secundo: AT&T > Intel, mais c'est vrai que les % à tout va c'est chiant.
Tertio: Si on a disposition un assembleur capable d'émettre un fichier objet, un linker fonctionnel et un moyen quelconque depuis le langage originel - quel qu'il fusse - d'appeler un machin externe, on a le minimum syndical.
En 1973, il n'y avait ni GNUC ou C90 et pourtant...
Marsh Posté le 10-03-2007 à 12:55:52
Emmanuel Delahaye a écrit :
|
en fin, je ne sais pas, j'ai lu sertain topic c'est tout:
http://www.cppfrance.com/codes/ASM [...] 38813.aspx
http://www.traduc.org/~isa/index.p [...] t-vs-intel
Citation : Where can I find a converter from AT&T assembly to Intel style |
voire là : http://www.delorie.com/djgpp/v2faq/faq17_2.html
Marsh Posté le 02-05-2007 à 17:41:12
Quelle sont selon vous, les pré-requis (tout ce qu'il faut connaître et savoir) pour un groupe de personne qui veulent apprendre à programmer un Système d'exploitation ?
Marsh Posté le 02-05-2007 à 17:49:50
Une patience qui ferait perdre pied au moine bouddhiste le plus aguerri, un entêtement qui ferait passer l'âne le plus buté pour une girouette, et le double de la capacité de travail d'un chinois bossant dans une usine de textile.
Marsh Posté le 02-05-2007 à 17:54:20
CreaRetour a écrit : Quelle sont selon vous, les pré-requis (tout ce qu'il faut connaître et savoir) pour un groupe de personne qui veulent apprendre à programmer un Système d'exploitation ? |
C'est quoi cette manie de vouloir écrire un SE ? Il en existe de très bons, pourquoi vouloir réinventer la roue ?
Les vrais problèmes se situent au niveau des applications, qui sont le plus souvent mal définies, mal conçues, mal écrites et mal testées...
Là, il y a du boulot...
Sinon, pour faire un SE, il faut de l'expérience en programmation organisée et et bien connaitre les interfaces hard/soft (pour la partie driver).
D'autre part, il faut être un expert en processus, commutation de tâches etc. Une très bonne connaissance de la cible (assembleur) peut aider pour écrire un scheduler performant (on ne programme le programme pas pareil pour un 80386, pour un Duo Core, ou un Athlon 64...
Ensuite, il faut savoir gérer la mémoire (RAM, disque...), les protocoles réseaux courants ...
Marsh Posté le 02-05-2007 à 17:54:59
Citation : Une patience qui ferait perdre pied au moine bouddhiste le plus aguerri, un entêtement qui ferait passer l'âne le plus buté pour une girouette, et le double de la capacité de travail d'un chinois bossant dans une usine de textile. |
Mais lol, je ne parle pas question enthousiasme,
Mais question Connaissance technique quoi...
Merci pour ces quelque précisions Emmanuel Delahaye.
Marsh Posté le 02-05-2007 à 17:57:54
CreaRetour a écrit : Mais lol, je ne parle pas question Enthusiasm, |
Enthousiasme. Ca rime avec miasmes.
Marsh Posté le 02-05-2007 à 19:09:58
ReplyMarsh Posté le 02-05-2007 à 19:44:30
Tamahome a écrit : MIASM32 ? |
Joli !
Marsh Posté le 02-05-2007 à 20:02:34
Emmanuel Delahaye a écrit : Une très bonne connaissance de la cible (assembleur). |
Assembleur 16 bit ?
32 ?
Marsh Posté le 02-05-2007 à 20:11:20
Harkonnen a écrit : 32 bits bon dieu ! 32 BITS §§§ |
L'Assembleur 16 bit est si useless que ça ?!
C'est dépassé pour les applications 32 bit, mais tout PC boote en 16 bit (mode réel), donc je ne croie pas que c'est si inutile que ça, Harkonnen...
Marsh Posté le 02-05-2007 à 20:37:22
Ah, bah tu vas être franchement limité pour l'addressage mémoire et autre joyeuseté ayant besoin de grands nombre
Marsh Posté le 02-05-2007 à 20:38:52
_Reggae_ a écrit : L'Assembleur 16 bit est si useless que ça ?! |
Ouais, mais generalement il y reste pas longtemps
Et pour repondre a ED, la manie de vouloir ecrire des SE c'est surtout l'envie de savoir ce qui se passe "reellement" dans ton PC lorsque tu appelles une API depuis le mode utilisateur. Je pense qu'une fois qu'on a compris comment ca marche, on realise que les SE actuels ne sont pas si mals fichus que ca ... et sont meme a des annees lumieres a ce qu'une bande de potes "motives" pourrait aboutir.
Marsh Posté le 02-05-2007 à 20:41:19
_Reggae_ a écrit : Assembleur 16 bit ? |
Ca dépend de la cible. Pour du x86, les deux bien sûr (le boot se fait en 16-bit).
Marsh Posté le 02-05-2007 à 20:45:02
Ace17 a écrit : Ouais, mais generalement il y reste pas longtemps |
oh serieux ?
Marsh Posté le 02-05-2007 à 20:55:31
Tamahome a écrit : oh serieux ? |
En fait, ma derniere phrase etait plus ou moins a l'attention de CreaRetour.
Marsh Posté le 09-03-2007 à 17:18:11
voilà tout est dans le titre,
je voudrai savoir si le Langage C est suffisant (à lui tout seul sans la moindre instruction d'un autre langage) pour programmer un système d'exploitation ?
merci
Message édité par CreaRetour le 09-03-2007 à 17:18:27