Загрузчик написан для Java

Есть ли написанный загрузчик для загрузки виртуальной машины Java без операционной системы? Насколько я знаю, виртуальная машина Java может работать на машине сама по себе, без помощи операционной системы.


person maDeveloper    schedule 19.03.2021    source источник
comment
укажите машину без операционной системы   -  person fantaghirocco came to Rome    schedule 19.03.2021
comment
Машина без операционной системы.   -  person maDeveloper    schedule 19.03.2021
comment
@fantaghirocco Я нашел это, см. stackoverflow.com/a/26602133/14855830.   -  person maDeveloper    schedule 19.03.2021
comment
Java определяет гостевой язык, а не хост/JVM. Вам понадобится JVM, написанная для работы на «голом железе» любой машины, на которой вы хотите ее запустить. (т.е. быть как ОС, так и JVM). Таким образом, нет ничего общего под названием Java, которое мог бы загрузить загрузчик.   -  person Peter Cordes    schedule 19.03.2021
comment
JVM — это виртуальная машина, написанная на другом языке для цели. Это не какая-то общая вещь, вам нужно пойти и написать ее. Затем, если вы добавите к этому голое железо, все станет еще хуже, поскольку вам придется подделывать системные вызовы без системы. Загрузка и загрузка JVM должны быть тривиальной частью (как и в большинстве других сред).   -  person old_timer    schedule 22.03.2021
comment
вам, возможно, лучше без JVM и использовать компилятор JAVA с целевым бэкэндом, например, с использованием gnu/GCC GCJ   -  person old_timer    schedule 22.03.2021
comment
или с помощью языка программирования, дружественного к «голому железу» (в основном C)   -  person old_timer    schedule 22.03.2021


Ответы (1)


Java определяет гостевой язык, а не хост/JVM.

Вам понадобится JVM, написанная для работы на «голом железе» любой машины, на которой вы хотите ее запустить. (т.е. быть ядром ОС, а также JVM, обрабатывать прерывания и т.д.). Таким образом, нет ничего общего под названием Java, которое мог бы загрузить загрузчик.

Основные JVM, такие как OpenJDK/HotSpot, не написаны для работы в качестве ядра, а только для работы под некоторыми существующими основными ОС. Но, как вы обнаружили, есть некоторые: 26602133">Можно ли запустить JVM на компьютере без операционной системы?

Даже для конкретной платформы то, для чего ядру нужен загрузчик, может зависеть от ядра. Есть несколько стандартов, таких как multiboot для x86, которые определяют формат файла ядра, который загрузчики, такие как GRUB, умеют распознавать и загружать, но в противном случае вы, вероятно, ожидаете, что JVM с голым железом будет поставляться со своим собственным настраиваемым загрузчиком. , особенно если это платформа, отличная от ПК с архитектурой x86. Или, возможно, загружаться как приложение EFI.

person Peter Cordes    schedule 19.03.2021
comment
Смотрите мой комментарий к вам. - person maDeveloper; 19.03.2021
comment
@maDeveloper: да, я видел: P Я видел ваш вопрос, потому что я следую тегу [низкий уровень]. Я не совсем удивлен, что кто-то после тега [java] не понял его. Я думаю, не все слышали о автономном/голометаллическом коде. - person Peter Cordes; 19.03.2021
comment
В любом случае, отмечен. - person maDeveloper; 19.03.2021
comment
@maDeveloper: я добавил еще один абзац после того, как у меня появилось другое представление о том, о чем вы, возможно, спрашиваете. - person Peter Cordes; 19.03.2021
comment
и я исправил вопрос. Пожалуйста, удалите свой ответ. - person maDeveloper; 19.03.2021
comment
@maDeveloper: я думаю, что последний абзац моего ответа действительно в целом отвечает на ваш вопрос. Очевидно, что, не зная, какую машину вы имеете в виду или какую автономную JVM вы хотите загрузить, никто не сможет написать загрузчик на ассемблере, который будет делать все, что необходимо. Большой TL:DR здесь заключается в том, что он специфичен для JVM и целевой платформы. - person Peter Cordes; 20.03.2021