Comment créer un système d'exploitation en utilisant Java? [dupliquer]


Cette question a déjà une réponse ici:

Y a-t-il de toute façon que je pourrais créer un système d'exploitation en utilisant java? Existe-t-il de toute façon que je puisse intégrer la bibliothèque java Windows afin de pouvoir développer mon système d'exploitation avec des choses comme JFrame, JFileChooser, JTextArea, etc.? Ou serais-je mieux Dans la apprentissage à long terme C ou C++?

Author: sTg, 2015-07-18

2 answers

Oui, vous pouvez.

De nombreuses options sont disponibles pour le faire:

  1. JNI fournit la communication du code Java avec le code natif. vous pouvez développer le chargeur de démarrage en code natif, mais l'INTERFACE utilisateur en Java
  2. Processeur Java: implémentation de la JVM dans le matériel
  3. Processeurs optimisés Java
  4. Java intégré
  5. picoJava

Et ainsi de suite..

Rien ne peut vous empêcher de développer un système d'exploitation en Java. Vous pouvez trouver de nombreux systèmes d'exploitation écrits en Java: de CISCO à NASA...

Cependant, même la création d'un petit système d'exploitation nécessite beaucoup d'efforts.

 2
Author: Muhammad Imran, 2015-07-18 16:19:03

Réponse Courte: non.

Tout d'abord, Java utilise le système d'exploitation pour exécuter votre code java. Beaucoup de Fenêtres utilisent le système d'exploitation pour rendre.

Deuxièmement, vous devez noter que la plupart, sinon tous, des systèmes d'exploitation sont démarrés avec du code machine/assembly. Si vous avez pour objectif de créer un système d'exploitation vous-même et complètement à partir de zéro, vous devrez apprendre l'assemblage et il n'y a aucun moyen de contourner cela. Heureusement, il vous suffit d'écrire une petite quantité d'assemblage avant de pouvoir exécuter quelque chose écrit en C ou C++ ( et notez ce runtime Java est écrit en C / C++).

Étant donné que Java utilise le code natif du système d'exploitation pour gérer/rendre les fenêtres et les contrôles, et en supposant que vous avez compilé Java à partir de la source sans utiliser lesdites bibliothèques, si vous avez écrit votre seul code pour gérer tous les graphiques des contrôles de rendu et des fenêtres, alors oui, supposons que vous puissiez écrire Vous devez savoir que vous ne seriez pas en mesure d'utiliser beaucoup de javafx ou swing pour rien car ils s'appuyer sur le système d'exploitation.

Enfin, je recommanderais fortement d'aller à l'université et d'obtenir une éducation solide , puis je recommanderais en outre de travailler pour une entreprise avec une équipe de programmeurs expérimentés pendant au moins 4 ans (au minimum) avant de vous lancer dans une tâche aussi herculéenne que la création d'un système d'exploitation. Vous n'allez pas écrire une OS par vous-même et avec la quantité de connaissances que vous semblez avoir dans n'importe quelle langue.

MODIFIER: Il y a des machines dont le microprocesseur comprend nativement java bytecode comme mention dans une autre réponse. Cependant, un système d'exploitation écrit pour ce processeur ne fonctionnerait que sur ce processeur et ne serait pas largement distribué atm. À des fins d'apprentissage, vous feriez mieux de rester avec JVM sur tout ce à quoi vous avez accès maintenant, vous ne gagnez vraiment pas beaucoup.

Aussi, apprendre à écrire un système d'exploitation est une tâche que j'encourage tous les programmeurs à apprendre. Il vous donnera une meilleure compréhension de la façon dont les ordinateurs fonctionnent à l'intérieur et à l'extérieur. D'un point de vue de la programmation, en relation pour les langues de haut niveau, vous ne perdez pas ou ne gagnez pas beaucoup en utilisant une langue par rapport à une autre. Certains soutiennent (et peut-être que je suis d'accord) que Java n'utilise pas de pointeur et que cela est perdu pour la plupart cependant si votre intention est de tout faire en Java, alors tout ce que vous devez comprendre est Java.

En tant qu'opinion, je dirais que vous feriez mieux d'apprendre tous les langages de programmation que vous rencontrez, et toutes les langues qui sont les prédécesseurs de ceux-ci. Je ne veux pas dire devenir un maître programmeur en BCPL ou COBOL ou quoi que ce soit à ce niveau, mais au moins la recherche, apprendre à faire des choses de base et savoir qu'ils existent et (dans la plupart des cas) peut faire tout ce que toutes les autres langues peuvent faire.

Mes conseils professionnels, apprenez et maîtrisez la langue que votre employeur voudrait que vous utilisiez. Si vous changez d'emploi, préparez-vous à apprendre quelque chose de nouveau. Tous les emplois n'utilisent pas Java ou C++, donc si vous vous limitez à Java ou même C/C++, vous ne serez pas aussi commercialisable sur le marché du travail.

 4
Author: ydobonebi, 2015-07-24 16:04:19