He trabajado con la plataforma Java durante mucho tiempo y conozco muy bien sus fortalezas y debilidades. En este artículo quiero contarte cómo podría haber resultado la historia si no fuera por. Después de todo, podríamos usar una máquina Java en lugar de sistemas acoplables. Y la propia máquina Java bien podría reemplazar completamente al sistema operativo.
Este es un artículo de descripción general, solo esbozaré algunas consideraciones. Su análisis completo ocuparía mucho espacio.
Entonces, la máquina Java es un sistema operativo. Incluso más fresco que el sistema operativo en algunos lugares. De hecho, esta no es una declaración tan indignante. Después de todo, todos conocen un ejemplo de un sistema operativo completo, basado significativamente (inicialmente) en Java: Android . Además, hay un sistema operativo en el sentido clásico basado enteramente en la JVM.
Entonces, ¿qué características del sistema operativo tenemos en la JVM? Gestión de la memoria, sin duda alguna. Control de subprocesos: sí, pero generalmente se basa en subprocesos locales existentes del sistema operativo subyacente. Sin embargo, los subprocesos son un subsistema esencial, intrínseco y altamente desarrollado de la máquina, que proporciona muchas más facilidades de servicio que los subprocesos subyacentes del sistema operativo.
La E / S también es muy avanzada en términos de toda la infraestructura de Java, con todos los servidores y bibliotecas. En este sentido, la E / S del sistema operativo base, más o menos como el BIOS anterior para este último, realiza operaciones de bajo nivel.
Java tiene una filosofía. Si en Unix todo es un archivo, entonces en Java todo (casi) es un objeto.
Hay una parte importante del sistema que muchas personas no conocen o no conocen. Java es un entorno con poderosos medios de control de acceso. Por eso, entre otras cosas, es muy utilizado en el sector bancario.
La presencia de estas herramientas, junto con el multiproceso completo en el nivel del idioma, crea los requisitos previos para crear un entorno multitarea Y multiusuario. Mucha gente conoce el subproceso múltiple. En cuanto al control de acceso, vamos a detenernos en más detalle.
-, JVM – (managed) . . , . .. , - ( ) . . - , . - - -.
, - ( ) – . . , , . , , , . ( private, protected ..) – , . . . (SecurityManager) , , . . , , - ( ) - + . - ?
. , , , .. . - OSGi.
, . , . -, – . , .
- ? , , – – - -. , (). . . , – , , ( ), - – ejb, , protoBuf & gRPC – RMI Corba & RMI-IIOP. .
Lo único que falta son bellas imágenes y gráficos (aunque depende de la implementación aquí) y el despliegue de la infraestructura del diagrama dibujado. Pero nadie pondrá este último en una caja con Kuber de forma gratuita.
Y para ilustrar, veamos la modularidad estándar de un servidor de aplicaciones. Hay una jerarquía de carga: sistema -> servidor -> aplicación -> módulo de aplicación.
Bueno, eso es todo por ahora. Estaremos encantados con el lanzamiento de la próxima versión de Jakarta EE 9 y les deseamos éxito.