Портирование JVM на MINIX

Как видно из названия, по какой-то причине мне нужно сделать возможным запуск файлов .class в Minix (компилятор не нужен). Так может ли кто-нибудь указать мне в каком-либо направлении, предложить литературу или дать совет? В общем, как бы вы поступили?

До сих пор я нашел OpenJDK (но это не совсем то, что я ищу). Я также читал «Проектирование и внедрение операционных систем» Таненбаума. Это дало мне много информации о внутренностях Minix.


person user1902247    schedule 13.12.2012    source источник


Ответы (2)


Если вы просто хотите запускать .class файлы, не заботясь о производительности, вы можете создать интерпретатор байт-кода, что может быть проще, чем портирование/создание полного компилятора. Подробный формат этих файлов классов можно найти здесь., а поведение виртуальной машины указано здесь .

Вам также нужно будет выбрать среду выполнения — OpenJDK и GNU Classpath, вероятно, являются лучшими вариантами — и перенести ее на MINIX, реализовав ее методы native в C. Методы native обычно связаны со специфическими для платформы вещами, такими как вызовы файла ввода/вывода, и поэтому не могут быть реализованы на независимом от платформы языке Java.

Есть ряд других ссылок и ресурсов, которые могут оказаться полезными на этой вики-странице.

person int3    schedule 14.12.2012
comment
Отлично, спасибо, я думал об переводчике, просто не знал, возможно ли это. - person user1902247; 14.12.2012
comment
Кроме того, если это возможно, не могли бы вы дать мне приблизительную оценку времени, необходимого для этого проекта? Я не совсем уверен, во что ввязываюсь :) - person user1902247; 14.12.2012
comment
Ну, это зависит от вашего уровня навыков и предыдущего опыта, а также от того, насколько полным порт вы хотите, чтобы он был :) У троих из нас около 1,5 месяцев, чтобы запустить javac. Однако мы не занимались этим постоянно. - person int3; 15.12.2012
comment
Еще один вопрос, что вы думаете о переносе jamVM на MINIX вместо openJDK? И как вы думаете, будет ли это быстрее? Портирование не исполнение, производительность не актуальна. - person user1902247; 15.12.2012
comment
У меня нет опыта работы с JamVM, поэтому мне сложно что-то сказать. - person int3; 15.12.2012

Jainja JVM (я автор) может работать на Minix 3.2 (не тестировалось с 3.3). Это интерпретатор (т.е. без JIT) со стандартной библиотекой Java 5. Существует ограниченная поддержка AWT/Swing с использованием серверной части X11.

person glegris    schedule 11.04.2020