Какова роль ОС, когда JVM выполняет приложение Java? И зачем нам ОС?

Я кое-что читал в Интернете, и некоторые люди говорят, что приложение Java выполняется виртуальной машиной Java (JVM). Слово «казнить» меня немного смущает. Насколько мне известно, приложение, отличное от Java (например, написанное на C, C ++ ...), может быть выполнено операционной системой. На более низком уровне это означает, что ОС загрузит двоичную программу в память, а затем направит ЦП на выполнение инструкций в памяти.

Что произойдет с JVM? Насколько я знаю, сначала ОС будет вызываться JVM (содержащая среду выполнения). С этого момента JVM будет порождать один (или несколько) потоков для приложения. Интересно, играет ли роль ОС? Мне кажется, что JVM «обошла» ОС и напрямую проинструктировала ЦП выполнить приложение. Если да, то зачем нам ОС?

Пройдя немного дальше, JVM будет использовать свой JIT для компиляции байтовых кодов приложения в машинные коды, а затем выполнять эти машинные коды. Так как это уже машинные коды, нужна ли нам еще JVM? Потому что вместо JVM ОС может дать команду ЦП выполнить эти машинные коды. Не ошибаюсь ли я здесь?

Я хотел бы узнать больше от людей здесь. Пожалуйста, поправьте меня, если я ошибаюсь.Большое спасибо!

15
задан Harry Johnston 6 May 2014 в 04:05
поделиться