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 d'avoir les mêmes fonctionnalités que celles écrites en C

Author: skaffman, 2010-01-01

7 answers

En théorie oui, mais vous devrez toujours avoir du code d'assemblage de bas niveau pour démarrer la machine virtuelle Java qui s'exécutera sur la machine, ainsi que du code de bas niveau pour accéder aux pilotes matériels.

À Partir de wikipedia:

Étant donné que Java de Sun Microsystems est aujourd'hui, l'un des plus dominante les langages orientés objet, ce n'est pas surprise que l'exploitation basée sur Java des systèmes ont été essayés. Dans ce zone, idéalement, le noyau serait se composent du strict minimum requis pour prendre en charge une JVM. C'est la seule composants d'un tel système d'exploitation cela devrait être écrit dans un langue autre que Java. Construit sur cette JVM et le support matériel de base, il serait possible d'écrire le reste du système d'exploitation en Java; même parties du système qui sont plus traditionnellement, écrit dans un niveau inférieur langue telle que C, par exemple périphérique pilotes, peuvent être écrits en Java.

Exemples de tentatives exploitation le système incluent JX, JNode et JavaOS.

 41
Author: Eli Bendersky, 2010-01-01 08:45:35
 10
Author: sesteel, 2010-01-01 08:48:42

En théorie, oui. Mais vous devrez en quelque sorte faire fonctionner la machine virtuelle Java en utilisant du code de bas niveau (sauf si vous voulez compiler Java en assembly, ce qui n'est probablement pas possible sans sacrifier beaucoup de fonctionnalités de Java).

 5
Author: Ron Gejman, 2010-01-01 08:47:49

En théorie, vous pouvez en fait écrire l'ensemble du système d'exploitation en Java avec unprocesseur Java . Fondamentalement, il utilise le bytecode Java comme jeu d'instructions pour le processeur

 5
Author: iCodeSometime, 2014-02-14 02:58:55

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. alors oui, bien que vous ayez besoin du langage assembleur ou du C pour les bits les plus bas (c'est-à-dire, l'interfaçage avec les ports d'E/S, etc.). Si vous incluez également les ABIs Windows en tant que fonctionnalité, cela devient plus difficile car ils suivent les conventions d'appel Pascal.

 3
Author: Ignacio Vazquez-Abrams, 2010-01-01 08:46:50

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

 3
Author: manuel aldana, 2010-01-01 18:55:32

Comme d'autres mentionnés ci-dessus, il a déjà été tenté. Jnode est le seul qui a résisté à l'épreuve du temps et est activement travaillé sur 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 un fan de Java et j'attends avec impatience la sortie. 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.

Intéressant aussi est l'idée de implémentation du code octet Java dans le matériel. Je ne pense pas que cela ira nulle part car la force de Java est que vous n'avez pas besoin de vous soucier beaucoup du matériel. Vous avez juste besoin d'obtenir un système d'exploitation en Java et il peut être exécuté sur n'importe quelle JVM.

Je pense que la véritable 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 car Java est partout.

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

 3
Author: magneto12321, 2014-03-18 16:03:04