Il y a le strict minimum pour faire fonctionner Linux, mais ce n'est pas un "PC" complet:
Un CPU assez proche du 486
Un 16450 UART : la sortie série est relié à un terminal (lui aussi émulé en Javascript) qui permet d'afficher la console que l'on voit.
8259 Programmble Interrupt Controller / 8254 Programmble Interrupt Timer --> de quoi gérer les interruptions
Tout le reste il n'y a pas : pas de disque dur, pas de réseau, pas de carte graphique, pas de carte son.
Traduction à l'arache sur la partie abordant le CPU :
Pas de FPU, MMX, SSE. La partie FPU est émulée par Linux (comme au temps des 386 sans FPU).
Pas de vérifications de la limite et des droits sur les segments, parce que Linux n'en a pas besoin (QEMU fait pas pareil)
Pas CS/DS/ES/SS "segment overrides" --> ces registres de segment ne peuvent pas être utilisés explicitement par instructions assembleur. L'overrides de FS/GS overrides sont implémentés car "Thread Local Storage" de Linux en ont besoin.
Pas de single-settping
Pas de mode réel
Quelques rares instructions ne sont pas implémentées (BCD, BOUND, ...)
Pas de mode protégé 16 bits (bien que les instructions 16 bits soient implémentées)
Perso, je me demande comment la partie réseau peut être implémentée, vu les restrictions des navigateurs pour tout ce qui est réseau.
[^] # Re: Pour moi c'est un peu magique ...
Posté par _alex . En réponse au journal Linux dans votre navigateur web. Évalué à 5.
Voir http://bellard.org/jslinux/tech.html
Il y a le strict minimum pour faire fonctionner Linux, mais ce n'est pas un "PC" complet:
Tout le reste il n'y a pas : pas de disque dur, pas de réseau, pas de carte graphique, pas de carte son.
Traduction à l'arache sur la partie abordant le CPU :
Perso, je me demande comment la partie réseau peut être implémentée, vu les restrictions des navigateurs pour tout ce qui est réseau.
C'est assez bluffant en tout cas.