Warum die JVM ein Betriebssystem und mehr als ein Coober ist

Ich habe lange mit der Java-Plattform gearbeitet und kenne ihre Stärken und Schwächen sehr gut. In diesem Artikel möchte ich Ihnen erzählen, wie die Geschichte ohne sie ausgefallen wäre. Schließlich könnten wir anstelle von Docker-Systemen eine Java-Maschine verwenden. Und die Java-Maschine selbst könnte das Betriebssystem durchaus vollständig ersetzen.





Dies ist ein Übersichtsartikel, ich werde nur einige Überlegungen skizzieren. Ihre vollständige Analyse würde viel Platz beanspruchen.





Java-Maschine ist also ein Betriebssystem. Stellenweise sogar cooler als das Betriebssystem. In der Tat ist dies keine so empörende Aussage. Schließlich kennt jeder ein Beispiel für ein vollwertiges Betriebssystem, das (anfangs) maßgeblich auf Java - Android basiert . Darüber hinaus gibt es ein Betriebssystem im klassischen Sinne, das vollständig auf der JVM basiert.





Welche Betriebssystemfunktionen haben wir in der JVM? Ohne Zweifel Speicherverwaltung. Thread-Kontrolle - ja, basiert jedoch normalerweise auf vorhandenen lokalen Threads des zugrunde liegenden Betriebssystems. Threads sind jedoch ein wesentliches, intrinsisches und hochentwickeltes Subsystem der Maschine und bieten viel mehr Servicefunktionen als die zugrunde liegenden Threads des Betriebssystems.





I / O ist auch in Bezug auf die gesamte Java-Infrastruktur mit allen Servern und Bibliotheken sehr weit fortgeschritten. In diesem Sinne führt die E / A des Basisbetriebssystems - ungefähr wie das alte BIOS für das letztere - Operationen auf niedriger Ebene aus.





Java hat eine Philosophie. Wenn unter Unix alles eine Datei ist, dann ist in Java alles (fast) ein Objekt.





Es gibt einen wichtigen Teil des Systems, den viele Menschen entweder nicht kennen oder vergessen. Java ist eine Umgebung mit leistungsstarken Mitteln zur Zugriffskontrolle. Deshalb ist es unter anderem im Bankensektor weit verbreitet.





Das Vorhandensein dieser Tools in Verbindung mit vollwertigem Multithreading auf Sprachebene schafft die Voraussetzungen für die Erstellung einer Multitasking- UND Mehrbenutzerumgebung. Viele Menschen kennen sich mit Multithreading aus. Lassen Sie uns die Zugangskontrolle genauer betrachten.





-, JVM – (managed) . . , . .. , - ( ) . . - , . - - -.





Laden Sie die Hierarchie in der Application Server-Referenzimplementierung

, - ( ) – . . , , . , , , . ( private, protected ..) – , . . . (SecurityManager) , , . . , , - ( ) - + . - ?













. , , , .. . - OSGi.





, . , . -, – . , .





- ? , , – – - -. , (). . . , – , , ( ), - – ejb, , protoBuf & gRPC – RMI Corba & RMI-IIOP. .









Das einzige, was fehlt, sind schöne Bilder und Grafiken (obwohl dies von der Implementierung hier abhängt) und die Bereitstellung der Infrastruktur aus dem gezeichneten Diagramm. Aber niemand wird letzteres kostenlos mit Kuber in eine Schachtel legen.





Schauen wir uns zur Veranschaulichung die Standardmodularität eines Anwendungsservers an. Es gibt eine Ladehierarchie: System -> Server -> Anwendung -> Anwendungsmodul.





Also ..., das wäre es erst einmal. Wir werden uns über die Veröffentlichung der nächsten Version von Jakarta EE 9 freuen und wünschen ihnen viel Erfolg.












All Articles