当 JVM 执行 Java 应用程序时,操作系统的作用是什么?为什么我们需要操作系统?
我在互联网上做了一些阅读,有些人说Java应用程序是由Java虚拟机(JVM)执行的。“执行”这个词让我有点困惑。据我所知,一个非Java应用程序(即:用C编写,C++...)可以由操作系统执行。在较低级别,这意味着操作系统将二进制程序加载到内存中,然后指示CPU在内存中执行指令。
那么现在有了JVM,会发生什么呢?据我所知,JVM(包含运行时环境)将首先由操作系统调用。从那时起,JVM 将为应用程序生成一个(或多个)线程。我想知道操作系统的作用是否还会再发挥作用?在我看来,JVM已经“绕过”了操作系统,并直接指示CPU执行应用程序。如果是这样,我们为什么需要操作系统?
更进一步,JVM将使用其JIT将应用程序的字节码编译为机器代码,然后执行这些机器代码。既然已经是机器码,我们还需要JVM吗?因为操作系统可以指示CPU执行这些机器代码,而不是JVM。我在这里犯了什么错误吗?
我想从这里的人那里学到更多。如果我错了,请纠正我。非常感谢!