Topic : « [PROG] J'ai créé un mini-OS »

Avatar de SidiNoel SidiNoel
>>TokamakTueur
Citation de SidiNoel
Citation de ntm
Citation de SidiNoel
En fait mon but final c'est d'arriver à mettre en place toutes les instructions ASM dans le shell de mon petit OS, ça sert à rien mais c'est fun :hap:
Pour l'instant y a que mov eax et jmp :hap:
TOUTES les instructions ? Tu vas t'amuser :noel:
C'est vrai qu'en x86 ça sera pas évident mais je peux essayer de porter mon OS sur une architecture RISC, y aura beaucoup moins d'instructions dessus, après ça sera la galère pour trouver où l'exécuter par contre :hap:
Au pire je fais que les instructions de base, mov jmp inc dec add etc :oui:
Sinon ARM c'est du RISC et ça se trouve relativement facilement comme architecture.
Le jeu d'instruction est vraiment réduit, pas plus de 20 pour l'ARM de base !

20 ? :ouch:
Ah ouais c'est vraiment réduit, je pensais partir sur du PowerPC mais je vais essayer de porter ça sur ARM :oui:
Avatar de TokamakTueur TokamakTueur
Très peu de mnémonique et pour le reste c'est du classique (mov, etc)
eq : égal
ne : pas égal
cs/hs : plus grand ou égal (non-signé)
cc/lo : plus petit (non-signé)
hi : plus grand (non-signé)
ls : plus petit ou égal (non-signé)
mi : négatif
pl : positif ou nul
vs : overflow
vc : pas d’overflow
ge : plus grand ou égal (signé)
lt : plus petit (signé)
gt : plus grand (signé)
le : plus petit ou égal (signé)
al : toujours vrai
( https://www.root-me.org/f[...]M-architecture-assembleur
Apercite https://www.root-me.org/fr/Documentation/Applicatif/ARM-architecture-assembleur
)
Avatar de SidiNoel SidiNoel
>>PipBoy
Putain je comprend rien https://image.noelshack.com/minis/2016/38/1474723948-tv7.png
Vous avez commencé par quoi pour savoir tout ça?

J'ai commencé à apprendre la prog à 12 ans (ruby et python) puis ça a été le début d'un long cheminement durant lequel j'ai fini par apprendre le C, je me suis documenté sur comment marchait la RAM, ce que faisait réellement l'ordinateur quand il chargait ou compilait un fichier, puis logiquement après ça vient l'apprentissage de l'assembleur, et tous les concepts relatifs à la prog bas niveau. Honnêtement ça vient tout seul faut juste être passionné, tout ce que j'ai appris c'est en autodidacte et pendant mon temps libre, y a des mines d'or d'informations sur internet :ok:
Avatar de SidiNoel SidiNoel
>>TokamakTueur
C'est beaucoup plus facile que x86 en terme d'instructions / mnémoniques mais il faut plus de taf du coup...
Tiens, cadeau :https://www.cs.purdue.edu[...]LectureNotes/arm_inst.pdf
Apercite https://www.cs.purdue.edu/homes/cs250/LectureNotes/arm_inst.pdf


Surtout que les instructions ont toujours la même taille donc au lieu de faire un bête asm() on peut facilement faire en sorte de transformer les instructions en vrai machine code, ça sera plus facile à manier

J'ai codé un petit exécuteur de machine code d'ailleurs : https://gist.github.com/P[...]245b380b32f85311dcc926f3b
Apercite https://gist.github.com/Pyrmalthakon/7916e56245b380b32f85311dcc926f3b
:hap:
#690572
Avatar de SidiNoel SidiNoel
>>TokamakTueur
Ouais, l'ARM c'est vraiment classe, go écrire un OS smartphone https://image.noelshack.com/minis/2017/39/3/1506463228-risibg.png

Tout de même ça doit être chaud je me suis jamais penché en détail sur de l'assembleur non-x86 :hap:
Avatar de TokamakTueur TokamakTueur
Tiens quai, si ça t'intéresse, un plan de mémoire RAM que j'ai fait avec Logisim quand j'avais 19 ans et que j'étais déscolarisé (je me faisais chier^^) :
https://pastebin.com/9Hxdn9V1
Apercite https://pastebin.com/9Hxdn9V1

Tu sauvegardes ça avec l'extension .circ et tu l'ouvres avec Logisim
J'ai aussi fait un CPU mais j'ai jamais terminé, il manque l'unité de contrôle...
Je fais faire un topic pour ceux que ça intéressent.
Avatar de SidiNoel SidiNoel
>>TokamakTueur
Tiens quai, si ça t'intéresse, un plan de mémoire RAM que j'ai fait avec Logisim quand j'avais 19 ans et que j'étais déscolarisé (je me faisais chier^^) :
https://pastebin.com/9Hxdn9V1
Apercite https://pastebin.com/9Hxdn9V1

Tu sauvegardes ça avec l'extension .circ et tu l'ouvres avec Logisim
J'ai aussi fait un CPU mais j'ai jamais terminé, il manque l'unité de contrôle...

Je verrais ça khey, GG pour le boulot :noel:
Je connais pas Logisim par contre
Avatar de ntm ntm
>>SidiNoel
Citation de ntm
Citation de SidiNoel
En fait mon but final c'est d'arriver à mettre en place toutes les instructions ASM dans le shell de mon petit OS, ça sert à rien mais c'est fun :hap:
Pour l'instant y a que mov eax et jmp :hap:
TOUTES les instructions ? Tu vas t'amuser :noel:
C'est vrai qu'en x86 ça sera pas évident mais je peux essayer de porter mon OS sur une architecture RISC, y aura beaucoup moins d'instructions dessus, après ça sera la galère pour trouver où l'exécuter par contre :hap:
Au pire je fais que les instructions de base, mov jmp inc dec add etc :oui:

Une VM ARM et t'es bon
Avatar de SidiNoel SidiNoel
>>ntm
Citation de SidiNoel
Citation de ntm
Citation de SidiNoel
En fait mon but final c'est d'arriver à mettre en place toutes les instructions ASM dans le shell de mon petit OS, ça sert à rien mais c'est fun :hap:
Pour l'instant y a que mov eax et jmp :hap:
TOUTES les instructions ? Tu vas t'amuser :noel:
C'est vrai qu'en x86 ça sera pas évident mais je peux essayer de porter mon OS sur une architecture RISC, y aura beaucoup moins d'instructions dessus, après ça sera la galère pour trouver où l'exécuter par contre :hap:
Au pire je fais que les instructions de base, mov jmp inc dec add etc :oui:
Une VM ARM et t'es bon

Après j'ai aucune idée de comment m'y prendre pour faire un OS là dessus, je pense que je vais être obligé de coder un bootloader (y a pas de grub sur ARM si?)
Liste des sujets