Kevin Kofler (./192) :
Folco (./187) :
Toute façon, uune jvm elle a toujours besoin de code non-java pour booter j'imagine ?
Il y a peut-être moyen de s'en sortir avec du Java précompilé, genre avec GCJ.
Le « genre avec GCJ » est de trop mais oué c'est l'idée… (=> Pour avoir énormément réfléchi à ce sujet…

)
En fait la théorie pour faire fonctionner un système comme ça est pas très compliquée. (je connaissais JNode mais je n'ai jamais essayé ni regardé comment ça marcher hein*, donc je peux pas dire exactement comment leur implémentation fonctionne)
Par contre la pratique c'est chiant. (Spour ça que j'ai remis mon projet de faire la même chose en C# à « un jour »)
Enfin en gros, il faudrait que tu précompiles du code pour fabriquer une image mémoire de l'OS tel qu'il serait une fois démarré. Donc ne compiler (AOT) que les méthodes strictement nécéssaires pour démarrer le JIT et la gestion mémoire par exemple. Et le modèle mémoire /JIT/AOT utilisé par l'image statique doit correspondre exactement à la version que tu va charger de manière dynamique. C'est plus complexe à développer (au début en tout cas) qu'un OS normal car il faut que « tout » fonctionne déjà avant de pouvoir obtenir quoi que ce soit. (même un simple bip sur le PC speaker)
La façon dont je m'y prendrais perso serait de compiler l'OS en tant que programme normal sur un OS hôte (c'est de toutes façons le plus simple pour développer ça), puis de générer l'image mémoire avec le faux OS… Et la boucle est bouclée

(Par contre ça demande en effet un OS hôte… mais certainement pas un truc comme GCJ

)
*de peur de souiller mon esprit avec des idées pas fraîches (je préfère réinventer la roue

)