Derniers journaux de ovni :
Journal : L'oeuf ou la poule ?
Posté par Mais qui suis-je ? :) () le 16 février 2005Imaginons un informaticien parfait ( Il connais a fond sa machine , tous les langages de prog , et code a une vitesse infinie . )
Cet informaticien est enferme dans une pieces avec un ordinateur .
Le DD de l'ordinateur est vierge , l'informaticien ne dispose que de support vierge ( Touts supports SAUF CARTES PERFOREES et assimile )
L'informaticien veut uttilise son ordinateur , pour cela il lui faut un OS , des logiciels etc ...
Que doit il ecrire en premier ?
et comment sachant qu'il n'y a strictement rien sur son ordinateur ?
P.S. 1 : je n'ai aucune idee de la reponse c'est une vraie question
> Lire le journal (20 commentaires, moyenne: 4,2).
Beh euh...
Que doit il ecrire en premier ?
et comment sachant qu'il n'y a strictement rien sur son ordinateur ?
[...]
Le DD de l'ordinateur est vierge , l'informaticien ne dispose que de support vierge
Beh si ya que ca pour l'aider, jcrois que notre ami informaticien est dans la panade
le python, c'est bon
heu ...
Sur une vitre ou un truc qui peut etre vu de l'exterieur :
SOS
Ma signature ici
-
[^]Re: heu ...
Posté par Fabrice Lang () le 16/02/2005 à 15:22. (lien). Évalué à 10.Dans ce cas il faut plutôt écrire 202...
Hmmm
La question est: comment écrit-il sur son disque dur ? s'il a des pouvoirs mentaux qui font qu'il peut écrire sur le disque sans avoir à booter l'ordinateur, il peut peut-être s'en sortir, sinon ça va être dûr.
Mais je pense que c'est un détail technique qui n'est pas important dans ton expérience de pensée.
En fait, même si le disque dur est vierge, il y a déjà un "logiciel" dans l'ordinateur: le processeur. C'est suffisant, puisque le processeur fournit un langage binaire, qui permet à l'informaticien de programmer un compilateur de son langage favori vers le langage binaire, et à partir de là de coder autre chose. Pour commencer, il va programmer dans le MBR (secteur de démarrage du disque), qui sera exécuté par le BIOS lors de l'allumage du PC... rassure moi, y'a un BIOS ?
-
[^]Re: Hmmm
Posté par Mais qui suis-je ? :) () le 16/02/2005 à 10:16. (lien). Évalué à 3.En fait ma question est a plusieurs niveaux
-L'O.S. ou le Compilateur ( pour faire un OS il faut un compilateur mais un compilateur compile pour un OS )
-Et vos tetes etrange voir panique Laisse supposer que finalement pour pouvoir faire fonctionner un ordinateur il faut absolument avoir acces a un autre ordi qui a un programme capable d'ecrire du binaire sur le MBREUH d'un disque . Le serpent se mord t'il la queue ?
Le PC est normal et a un BIOS est-ce suffisant pour ecrie sur un disque ?
Bref qu'est ce qui ecrit le prog qui ecrit sur disque ?
(C'est la ou la carte perforee pourrais etre utile car humainement editable ... )-
[^]Re: Hmmm
Posté par Yusei () le 16/02/2005 à 10:59. (lien). Évalué à 10.(attention, je vais essayer d'expliquer un truc en étant théorique, c'est pas gagné)
En fait, un ordinateur fonctionnel le plus simple possible est une machine de Turing, c'est à dire un ruban de papier (le "disque dur") et une tête de lecture (le "processeur") qui lit une lettre sur le ruban, et fait quelque chose de prédéterminé en fonction de la lettre qu'elle a lue, et de l'état dans lequel elle se trouve. Nos ordinateurs actuels sont des machines de Turing, mais de conception assez compliquée, et donc cet aspect n'est pas très visible.
On pourrait donc, pour simplifier, poser ta question dans le cas des machines de Turing. Si j'ai un stylo, une bande de papier assez longue, et une tête de lecture qui marche, alors il suffit que j'écrive des instructions sur le papier dans un langage compréhensible par la tête de lecture. L'élément important ici, c'est que je dois avoir une tête de lecture qui sache interpréter mes instructions. Si je n'ai pas de tête de lecture (et que je ne peux pas en fabriquer une), mon papier et mon stylo ne servent à rien.
Maintenant, revenons à notre ordinateur traditionnel. Si j'ai une mémoire de stockage, un moyen d'écrire dessus, et un processeur, alors il suffit que j'écrive dans la mémoire des instructions dans un langage compréhensible par le processeur. Mais là encore, je dois avoir un processeur en état de fonctionnement.
Le problème de l'oeuf ou la poule tel que tu le vois, c'est "comment est apparu le premier compilateur, alors qu'on n'avait pas de compilateur pour l'écrire ?" Le premier "compilateur" (en fait un interpréteur) a été construit matériellement, pas programmé. La tête de lecture, ou le processeur, est un interpréteur de code. Et donc, avant de pouvoir écrire un programme "logiciel", on doit d'abord construire un interpréteur "matériel".
Une fois ce premier pas effectué, on peut écrire un logiciel en "langage machine" destiné à l'interpréteur matériel. Ce logiciel sera probablement un "compilateur", parce que le langage machine est assez imbitable, donc par exemple on va coder un compilateur du C vers le langage machine. On aura:
[Interpréteur matériel, processeur] <- [langage machine] <- [compilateur] <- [langage C]
Le petit "déclic" pour comprendre comment ça marche est de se rendre compte que du point de vue logique, il n'y a pas de différence entre un interpréteur matériel et un interpréteur logiciel. Pour les gens qui sont à droite d'une flèche "<-", ce qu'il y a à gauche est indifférent, on est confronté à un langage, mais on ne sait pas si le truc qui comprend ce langage est construit avec du matériel ou pas. Par conséquent, seule la brique la plus à gauche de la chaine a besoin d'être matérielle.
Voila voila, c'est compréhensible ?-
[^]Re: Hmmm
Posté par Philippe Fremy (page perso, ) le 16/02/2005 à 18:15. (lien). Évalué à 2.Donc finalement, a la question "qui de l'OS ou du compilateur est la en premier ?", tu reponds le compilateur parce que le processeur est un compilateur.
En fait, je suis d'accord avec toi que tout repose sur le langage du processeur mais je verrai plutot celui-ci comme un systeme d'exploitation. Le processeur lit des donnees (un programme), deplace des donnes de la RAM vers les registres, des registres vers les bus materiels, etc, etc. Tout ca ressemble a un OS.
En revanche, pour ce faire, il a fallu ecrire un interpreteur pour le langage machine, qui tourne dans le processeur. Ca ressemble encore a un OS.
En fait, meme si a priori, le compilateur parait indispensable, c'est beaucoup moins util qu'un OS. Le compilateur ne fait que fabriquer des programmes qui pourront s'executer. Son travail peut etre remplace par un cerveau humain. En 85, je faisais de l'assembleur en ecrivant mon code sur une feille de papier, puis en cherchant dans le bouquin de reference du MSX (assebembleur Z80) les valeurs hexadecimales des instructions, puis en les codant sous forme de chaine de caractere dans un programme en basic et en faisant un appel sur l'adresse des chaines de caractere. Dans ce cas, je me passais d'un compilateur, c'est mon cerveau qui faisait le travail. Mais tout ca n'aurait pas pu avoir lieu si je n'avais pas eu un OS, en l'occurence Microsoft MSX Basic.
Donc pour moi, la reponse est clairement que l'OS etait la avant le compilateur.-
[^]Re: Hmmm
Posté par Yusei () le 16/02/2005 à 18:29. (lien). Évalué à 3.«il a fallu ecrire un interpreteur pour le langage machine, qui tourne dans le processeur. Ca ressemble encore a un OS.»
En fait, un interpréteur définit une machine virtuelle, donc ressemble très très fort à un OS. Je soupçonne que ce que j'appelle interpréteur, tu l'appellerais OS, et qu'on pense à la même chose :)
Si je devais essayer de résumer, je dirais qu'un ordinateur c'est un empilement de machines virtuelles, dont seule celle du bas a besoin d'être fabriquée avec du matériel. L'OS étant une machine virtuelle parmis d'autres, qui fournit une abstraction par rapport à ce qu'il y a en dessous.-
[+] [^]Re: Hmmm
Posté par LeMagicien Garcimore () le 16/02/2005 à 19:13. (lien). Évalué à -1.Je soupçonne que ce que j'appelle interpréteur, tu l'appellerais OS, et qu'on pense à la même chose :)
\o/ JAYCE !!!
-
-
-
-
[^]Re: Hmmm
Posté par Yusei () le 16/02/2005 à 11:06. (lien). Évalué à 3.Pour répondre à ta question "qu'est-ce qui écrit le prog sur le disque", en fait on peut suivre le même raisonnement. C'est forcément un "logiciel" qui écrit le prog sur le disque.
En admettant que ton informaticien ait du matériel à sa disposition, s'il n'a vraiment pas d'autre solution il devra concevoir un processeur matériel dont le rôle sera d'écrire les données sur le disque. Comme je le disais au dessus, du point de vue logique, peu importe que ce soit programmé avec des circuits électroniques ou avec des bits dans une mémoire, c'est pareil. On peut donc remplacer:
[ matériel ] <- [compilateur] <- [ logiciel qui dit comment écrire les données ]
par un:
[ matériel qui dit comment écrire les données ]
Mais ça va être long et compliqué à faire, on a bien besoin d'avoir un informaticien "parfait" pour faire ce genre de choses :)
(si ça t'intéresse, je te conseille "l'architecture des ordinateurs" d'andrew tanenbaum, qui explique bien le découpage en "couches" logiques d'un ordinateur.)
-
-
[^]Re: Hmmm
Posté par pasBill pasGates () le 16/02/2005 à 10:19. (lien). Évalué à 2.Le probleme c'est que vu que l'ordinateur est completement vide, il n'a aucun soft lui permettant d'ecrire ne serait-ce qu'un caractere en RAM.
boot
Soit il y a absolument rien sur son ordi, et dans ce cas, ton informaticien il appuie sur le bouton ON/OFF et rien ne se passe de plus intéressant que quand tu appuies sur le bouton ON/OFF de ta cafetière.
Soit il y a au moins un bootstrap loader en ROM, qui donne la main au clavier (car c'est ce que tu supposes, la seule entrée possible de ton ordi est le clavier). Et dans ce cas ton informaticien s'en fout complètement qu'il y ait ensuite un disque dur ou pas, des cd vierges ou pas, il code en assembleur en RAM et n'a pas besoin d'OS ni de logiciels vu que c'est un super-informaticien.
un driver pour sa carte reseau
j'ai entendu dire que les gens qui portaient un OS vers une nouvelle archi commencaient par un noyo et le support reseau.
ca permet de pouvoir booter sur le reseau et travailler a distance sur la nouvelle archi sans avoir besoin d'avoir des driver video/clavier/hdd/etc.
-
[^]Re: un driver pour sa carte reseau
boot time
Si c'est uniquement un informaticien il est mort.
Sinon, il ouvre l'ordi, repere le composant EEPROM ou flash contenant le code apellé par le proc sur reception du signal RESET. Il arrache ce composant, et en appliquant des niveaux electrique sur les pattes de la bete (adresse et donné, il doit y arriver avec l'alim du PC +5V et +12V) il commence a coder un basic input output system (bios) qui gere le clavier et l'ecran de sa machine (au minimum). Il y code un VI de base, un editeur Hex de disque dur ou de floppy puis roule.
Ensuite il commence a coder un MBR, un Lilo, un kernel, un X... et ainsi de suite.
Prevoit pas mal de pizza et de coca ainsi q'une prise reseau internet pour lui donner de l'espoir ....
Merde, ca fait trois fois que je le coupe il est toujours trop court!
-(un stagiaire hardware qui devait connaitre le grand pere de Sylvain Sauvage ;-) )-
alors, c'est pas compliqué ;)
Comme quelqu'un l'a déjà dit, le seul logiciel présent sur l'ordinateur en absence d'OS est le BIOS. Or, aucun bios (à ma connaissance et sur PC) ne permet à l'utilisateur d'écrire quoi que ce soit dans la mémoire de l'ordinateurr. C'est pas plus compliqué que : impossible.
Après, bien sûr, le premier compilateur (FORTRAN) était écrit en langage machine (qqun peut me contredire ?) et ça a pris 50 années/homme... Aujourd'hui, avec des outils tels que lex/yacc, on peut écrire un compilo basique en 1 semaine...
-
[^]Re: alors, c'est pas compliqué ;)
-
[^]Re: alors, c'est pas compliqué ;)
Posté par Will Hunting (page perso, ) le 28/02/2005 à 15:09. (lien). Évalué à 1.Bon, je prends le train en marche avec un peu de retard.
Sur les anciens ordinateurs, en l'absence de bootloader, un interpréteur basic (en ROM) démarrait automatiquement.
A partir du Dos, on pouvait même le lancer directement via l'interruption 18h.

Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.