Виртуальные машины Java, которые не требуют операционной системы?
Я знаю, что BEA работал над LiquidVM, который не требовал базовой операционной системы, но хотел бы знать, работает ли кто-нибудь в сообществе открытого исходного кода над чем-то похожим.
В идеале я хотел бы найти реализацию, в которой виртуальная машина загружается непосредственно загрузчиком ОС.
8 ответов
Что тебе нужно?
Возможно, Sanos может дать вам небольшой кусок кода между оборудованием и JVM, который вы можете использовать?
В отличие от SANOS, операционная система JNode представляет собой полноценную операционную систему со многими поддерживаемыми устройствами, файловыми системами, сетевым стеком, стеком графического интерфейса пользователя, командной оболочкой и примерно 50 командами и многим другим. В настоящее время JNode работает на 32-разрядной платформе x86 с включенным одним процессором, но версии x86-64 и многопроцессорные находятся в стадии разработки. (JNode - это 99,99% Java. Портирование на новую архитектуру повлечет за собой переписывание 0,01% кода, который находится на ассемблере, создание / изменение специфичных для оборудования драйверов... и написание собственного компилятора кода для новой архитектуры.)
В настоящее время у нас есть ~7 активных разработчиков, но мы всегда ищем новых людей, чтобы присоединиться к команде, особенно людей, которые понимают генерацию кода Java AND, сборщиков мусора, драйверов и так далее.
(И для чего бы это ни стоило, мы используем последнюю версию библиотек классов OpenJDK: 1.6u24 по последним подсчетам.)
Есть также Project Guest VM, которая является JVM, размещенной на гипервизоре Xen. В то время как домашняя страница, кажется, довольно легка в деталях, об этом проекте есть и Google Tech Talk.
JNode OS - операционная система, написанная в основном на Java.
Oracle, похоже, снова работает в этом направлении
Благодаря приобретению Oracle BEA Systems ... Oracle реанимировала авангардную технологию виртуализации: виртуальную машину Java, которая работает непосредственно на гипервизоре без операционной системы.
увидеть
JOE, Java On Everything, может запускать Java без ОС. Это все Java и https://github.com/joekoolade/JOE
JOE может запускать программу Java без операционной системы, встроив в программу операционную систему. Это упрощает настройку и развертывание программы. JOE может сделать любого Java-программиста разработчиком встраиваемых систем.
JOE - это виртуальная машина процесса, которая может запускать приложение Java без операционной системы. Он встраивает ОС в программу путем виртуализации ОС и оборудования. Это удаляет границы между ОС, оборудованием, пользовательским кодом и виртуальной машиной. Накладные расходы и сложности, связанные с переходом между пользователем и супервизором, защитой программ, защитой памяти, виртуальной адресацией и интерфейсом библиотеки JNI, заменены более простыми и эффективными механизмами, найденными в языке Java. JOE легко смешивает эти слои вместе, реализуя их все на Java. Эта виртуализированная среда Java обеспечивает безопасную, надежную, связную и согласованную объектно-ориентированную работу от приложения до оборудования.
Просто небольшой фрагмент, который я видел и слышал.
MIT в 60-х /70-х разработал машину Lisp, это была машина, которая по-настоящему понимала Lisp, я думаю, что они также начали ее коммерциализацию.
В 2002 году я слышал, что кто-то занимается разработкой JVM на чипе FPGA или ASIC.
История MIT/Lisp правдива, я видел ее в их музее, кто-нибудь знает, есть ли какая-то правда о JVM на чипе?
спасибо Мартин
Я очень новичок в Java, и у меня есть некоторые знания в области электроники.
JVM - это виртуальный Macjine, работающий над системой. Это может быть Windows или платформа Solares x86. Но насколько я знаю, сама JVM действует как система для байт-кода, который мы компилируем. Для байт-кода JVM виртуализирует свой собственный ALU, Heap, Stack extra. У него даже есть свой машинный и ассемблерный язык.
Так что если мы сможем реализовать спецификацию JVM для аппаратного чипа, то это больше не будет JVM, но я стану автономной машиной Java, на которой мы сможем разработать операционную систему, полностью написанную на Java.
Таким образом, в этом случае JVM будет не ОС, а системой, которая непосредственно понимает байт-код Java.