2009-09-03 9 views
-2

Quels sont les changements de niveau architecturaux/système à effectuer si je veux développer un outil/une application JVM (Java Virtual Machine) pour Windows et Linux?Changements au niveau du système pour JVM

Fondamentalement, Quelles sont les différences architecturales dans JVM par rapport à Windows & Linux?

Merci,

Naveen

+1

Qu'est-ce qu'un "changement de niveau du système"? Et à quel morceau de code voudriez-vous faire un tel changement? Et s'il vous plaît définir "embed". Puisqu'une JVM existe pour Windows et Linux, je dirais que vous n'avez pas besoin de les changer du tout pour pouvoir écrire une JVM pour eux. –

+0

@Sauer, Oui vous avez raison que JVM existe pour Windows et Linux. Ma question est de savoir quelles sont les modifications que SUN a déjà apportées dans JVM pour le porter sur Windows ainsi que sur Linux. Je veux dire, quelles sont les différences architecturales dans JVM par rapport à Windows & Linux? – Naveen

Répondre

2

La meilleure réponse ici, je pense serait de vous diriger vers le source code et vous invite à jeter un oeil. "Différences architecturales" - Probablement aucun. L'architecture pour les deux VM serait probablement la même. Ce qui serait différent est la mise en œuvre de ladite architecture. Les différences seraient: Tout ce qui touche un appel de système d'exploitation natif. Deux exemples qui me viennent à l'esprit sont: Threads et UI.

1

Il y a un bon aperçu de ce qui est impliqué dans une machine virtuelle Java ici:

http://www.artima.com/insidejvm/ed2/jvm.html

Je suppose que la langue de choix pour la mise en œuvre d'une machine virtuelle Java serait C++, avec les choses de bas niveau comme la gestion de la mémoire, la gestion des threads, io, etc., il interagirait avec l'API fournie par un système d'exploitation particulier. Des fonctionnalités plus élevées, telles que l'interprétation bytecode, pourraient théoriquement être communes entre plates-formes.

En termes de mise en œuvre d'une machine virtuelle Java, la réponse à votre question (et la difficulté de la tâche) dépend de l'ensemble de fonctionnalités dont vous avez besoin. Cependant, gardez à l'esprit que les machines virtuelles (Java et autres) sont en partie des abstractions du système d'exploitation et reflètent généralement les fonctionnalités fournies par le système d'exploitation.

Questions connexes