[OS] Kernel et Méthodes

Résolu/Fermé
UnRandom - 17 nov. 2016 à 21:12
 UnRandom - 18 nov. 2016 à 20:11
Bonjour,

Je viens vers vous pour vous poser quelques questions:

Je souhaite créer un début d'OS mais pas n'importe lequel car je me suis lancé le défi fou de le réaliser entièrement (ou presque) en JAVA.

J'ai pas mal de connaissance dans ce domaine car j'ai déjà réalisé un début d'OS en C mais jamais en JAVA. Je sais aussi qu'il existe déjà des OS créer en java comme "Jnode" par exemple.

Voici mes questions:

- je ne souhaite pas coder le kernel moi-même (surtout que j'y connais rien en assembleur) et je sais qu'il en existe dès déjà tout près donc, lequel me conseillerez-vous ?

- J'aimerais aussi savoir comment / est-ce que le kernel peut appeler un .jar pour, par exemple, appeler un .jar qui contient une interface graphique et que ce dernier, s'affiche sur l’écran ?

Si vous avez déjà réalisé un OS en java ou si vous avez des infos utiles qui pourraient m'aider, n'hésiter pas ;)

PS: j'ai hésité à mettre ce poste dans la catégorie programmation, mais cette catégorie me semblait la plus adapter donc désoler d'avance si il est mal placer ;;))

Merci à tout ce qui pourrons m'aider.

A voir également:

5 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
17 nov. 2016 à 21:59
Bonjour,

Java est un langage interprété, donc si ton OS devait s'exécuter en Java, il faudrait s'appuyer sur une machine virtuelle, généralement écrite en C, et qui s'appuie déjà sur l'OS sous-jacent.

Je pense que tu peux considérer la JVM comme étant ton kernel et faire ton OS par dessus à partir des fonctionnalités de Java.
1
Merci "KX" pour ta réponse.

Effectivement, c'est une très bonne idée, je n'y avais pas pensé ;)

Ah tu une piste a me donner, faut t'il que ma JVM est une JRE déjà installer dessus ?

Sinon, encore merci pour cette magnifique idée, encore fallait t'il y pensé;).
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 17/11/2016 à 23:35
"faut t'il que ma JVM est une JRE déjà installer dessus ?"
La JVM est dans la JRE, ça ne veux rien dire mettre une JRE dans une JVM...

0
OK, merci pour cette info.
0
Par contre, qu'est ce que vous entendez par:
"Je pense que tu peux considérer la JVM comme étant ton kernel et faire ton OS par dessus à partir des fonctionnalités de Java.
"

Créer un OS sur une Machine Virtuel, OK mais comment je lance mon .jar sur une JVM ? LA JVM ne peut boot que des .iso.

Merci pour vos réponses.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
18 nov. 2016 à 18:39
La JVM : Java Virtual Machine, c'est le programme qui exécute les fichiers .class de bytecode Java lorsque tu utilises la commande "java" en ligne de commandes.

Ça n'a rien à voir du tout avec une machine virtuelle genre VirtualBox qui simule des OS existants, ça c'est le travail qu'il te reste à faire...

Donc lancer un jar sur une JVM ça veut juste dire démarrer le Jar comme n'importe quel autre programme Java que tu as déjà pu faire.
0
Ah... ok je viens de comprendre, mais le pbl de cette technique c'est qu'il faut un OS par derrière (linux par ex) pour que mon OS a moi puisse tourner.

Je vais donc oublier cette technique, elle ne répond pas a mes besoins, moi, j'ai juste besoins d'un Kernel qui appelle un .jar des son lancement (comme Android).

Merci.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
18 nov. 2016 à 20:08
"j'ai juste besoins d'un Kernel qui appelle un .jar des son lancement (comme Android)"
Un tel kernel ne sera pas en Java, Android c'est un noyau Linux (en C/C++ donc), avec une JVM écrite dans ce langage comme pour Windows et autres.

Donc sur Android (même si derrière ce n'est pas exactement du Java) le code qui s'exécute est lancé dans la VM (Dalvik) de manière tout à fait comparable à la JVM sur un Windows.

Donc si ton programme Java fonctionne sur un Windows et exécute un OS, ce sera tout à fait comparable à ce que ferait un hypothétique kernel qui mettrait à disposition une JVM (ce que même JNode a du mal à faire correctement).

Certaines tentatives (plus ou moins abouties) consistent à faire un processeur capable d'interpréter directement le bytecode Java, mais le principe est le même, ça reproduit une JVM (aux limitations près) et ton code s'exécute dessus.

Donc dans tout les cas c'est la même chose. Si tu veux le faire en Java il te faut une JVM peu importe quelle soit matérielle (processeur Java), système (JNode) ou logicielle (sur un noyau Linux comme Android, ou Windows).
Et le code dans ton jar derrière sera le même... seule la JVM changera.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
OK, merci pour toutes ces infos.
0