web-dev-qa-db-fra.com

Est-il possible de créer un système d'exploitation en utilisant java?

Je veux savoir est-il possible de faire un fonctionnement comme windows-xp qui est écrit en langage C comme puis-je écrire cela en Java afin que j'aie les mêmes fonctionnalités que celles écrites en C

27
giri
10
sesteel

En théorie, oui. Mais vous auriez besoin d'une manière ou d'une autre d'obtenir le Java VM s'exécutant en utilisant du code de bas niveau (sauf si vous voulez compiler Java jusqu'à Assembly, ce qui n'est probablement pas possible sans sacrifier de nombreuses fonctionnalités de Java).

5
Ron Gejman

En théorie, vous pourriez en fait écrire le système d'exploitation entier en Java avec un processeur Java . Fondamentalement, il utilise Java bytecode comme instruction défini pour le processeur

5
iCodeSometime

Cela dépend de ce que vous considérez comme des "fonctionnalités". Si vous voulez dire interface graphique, effets de fenêtre fantaisie, etc. Si vous incluez également les ABI Windows en tant que fonctionnalité, cela devient plus difficile car ils suivent les conventions d'appel Pascal.

3

les systèmes d'exploitation sont plus proches du matériel (comme les pilotes). à mon avis, ce n'est pas la zone de Java (juste la mauvaise solution du système d'exploitation de domaine de problème).

3
manuel aldana

Comme d'autres mentionnés ci-dessus, il a déjà été tenté. Jnode est le seul à avoir résisté à l'épreuve du temps et sur lequel on travaille activement bien qu'ils n'aient pas publié de nouvelle version depuis des années. Mais si vous regardez leurs commits Git, ils travaillent sur une version imminente au moment où j'écris ceci. Je suis fan de Java et j'ai hâte de sortir. Les gens qui détestent les langages impératifs verbeux comme Java grincent des dents à l'idée mais ce n'est pas pour tout le monde.

L’idée d’implémenter Java byte code dans le matériel. Je ne pense pas que cela ira nulle part car la force de Java est que vous ne le faites pas) Vous avez juste besoin de vous soucier du matériel, il vous suffit d'avoir un OS dans Java et il peut être exécuté sur n'importe quelle machine virtuelle Java).

Je pense que la vraie puissance de Java dans le domaine du système d'exploitation est la virtualisation. Je ne peux pas penser à une meilleure façon d'avoir un système d'exploitation virtuel comme Java est partout .

Comme d'autres affiches l'ont noté ci-dessus, il ne peut pas être complètement implémenté en Java sans implémentation matérielle Java). Jnode est complètement écrit en Assembly et Java. Mais alors tous les systèmes d'exploitation modernes utilisent un langage d'assemblage.

3
magneto12321