est ce que je peux avoir les codes source d UNIX ? si oui ou ?
est ce que je peux avoir les codes source d UNIX ? si oui ou ?
Télécharge un kernel Linux, sinon télécharge les sources de Minix, qui sont tous deux des Unix-like d'après ce que je sais. De plus, minix a une vocation pédagogique pour l'enseignement du fonctionnement des systèmes d'exploitation unix-like.
http://www.minix3.org/
http://www.kernel.org/
Pour le vrai UNIX il y a le très fameux Lions' Commentary on UNIX 6th Edition, with Source Code.
Moi j'ai une question qui me trotte dans la tête depuis pas mal de temps : vous parlez tous de systèmes en ASM + C. Pour moi, le C, on le donne à un compilateur + linker et on obtient un éxécutable format PE. Ma question est la suivante : il me semble qu'un processeur ne peut comprendre que l'assembleur, hors, comment peut-on utiliser le C pour faire un système d'exploitation dans ce cas ? Est ce qu'il faut programmer un interpréteur dans le noyau de l'OS en ASM qui va traduire notre code C, comme ça on pourra l'utiliser pour coder le reste de l'OS ? Parce que je ne vois vraiment pas comment faire autrement, le processeur ne comprend pas le C en natif, il faut bien le faire nous même puisqu'on part de rien, non ?
Merci de m'éclairer, c'est surement une question bateau pour vous![]()
Question intéressante.
Déjà le microprocesseur ne peut comprendre que le code machine (qui veut dire quelque chose pour ce microprocesseur) et non pas le langage d'assemblage.
Tu parles également de l'éditeur des liens. Justement, un nouvel OS ne comprendra pas un exécutable au format PE (ou un autre format), il est nécessaire de recoder un éditeur des liens (dans n'importe quel langage) afin que l'exécutable qui est en sorti signifie quelque chose pour ton OS
De toute manière, le code de l'OS sera compilé au début (et surement pendant pas mal de temps) sur un autre OS où il y aura déjà un compilateur C et un éditeur des liens que tu auras fait.
Il y a parfois certaine option sur certains compilateurs qui permet d'exécuter des bouts de code sans qu'un OS soit chargé.
J'avais utilisé ce type d'option pour un M68K qui n'avait pas d'OS, on chargeait ensuite le bout de code directement en mémoire (du M68k) (via un port je sais plus quoi) et on pouvait exécuter le code.
Bonjour,
Pour compléter la réponse de Millie, il ne faut pas oublier que le C est compilé en langage machine lui aussi.
L'assembleur ne sert tout au plus qu'a initialiser le processeur, ensuite on peut passer au C.
Dans le cadre d'un mini-OS (basique, mais fonctionnel) sur x86, on peut faire une séquence d'initialisation de 200 lignes d'asm tout au plus et sauter vers le Kernel, qui lui sera programmé en C.
Le seul problème étant qu'on ne pourra pas utiliser les fonctions du runtime C (printf, etc.), qu'il faudra réimplémenter soi-même, à mois de rendre son système compatible avec le format binaire d'un autre système (PE pour MS, ELF pour les unices, Mach-O pour MAC, etc.).
Bonjour a tous,
voici un bon site pour commencer je pense, il répond à pas mal de questions postées précédement
http://visopsys.org/osdev/index.html
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager