Подтвердить что ты не робот

Можно ли создать операционную систему с помощью java?

Я хочу знать, можно ли создать такую ​​операционную систему, как windows-xp, написанную на языке C, например, я могу написать это в java, чтобы у меня были такие же функции, как и на C

4b9b3361

Ответ 1

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

От wikipedia:

Учитывая, что Java Sun Microsystems сегодня одна из наиболее доминирующих объектно-ориентированные языки, это не удивление, что основанные на Java системы были предприняты попытки. В этом области, в идеале, ядро состоят из минимального необходимого минимума для поддержки JVM. Это единственное компонент такой операционной системы это должно быть написано в язык, отличный от Java. Построенный на что JVM и базовая аппаратная поддержка, можно было бы написать остальные операционной системы на Java; даже части системы, которые больше традиционно написанный на более низком уровне язык, такой как C, например устройство драйверы, могут быть написаны на Java.

Примеры попыток такого операционная система включает JX, JNode и JavaOS.

Ответ 3

В теории, да. Но вам нужно каким-то образом заставить виртуальную машину Java работать с низкоуровневым кодом (если вы не хотите скомпилировать Java до сборки, что, вероятно, невозможно, не жертвуя множеством функций Java).

Ответ 4

В теории вы могли бы написать всю ОС на Java с помощью Java-процессора. В основном он использует байт-код Java в качестве набора команд для процессора

Ответ 5

Это зависит от того, что вы считаете "функциями". Если вы имеете в виду графический интерфейс, эффектные эффекты окна и т.д., То да, хотя вам нужен язык ассемблера или C для самых младших бит (т.е. Сопряжение с портами ввода/вывода и т.д.). Если вы также включаете Windows ABI как функцию, тогда это становится сложнее, поскольку они следуют соглашениям о вызове Pascal.

Ответ 6

Операционные системы

ближе к оборудованию (например, драйверы). на мой взгляд, это не область Java (просто неправильное решение операционной системы проблемной области).

Ответ 7

Как упоминалось выше, это уже было сделано. Jnode является единственным, кто выдержал испытание временем и активно работает, хотя они не выпустили новую сборку за многие годы. Но если вы посмотрите на их Git коммиты, они работают над неминуемым выпуском, когда я пишу это. Я поклонник Java и с нетерпением жду релиза. Люди, которые ненавидят многословные императивные языки, такие как Java, съедают идею, но это не для всех.

Интересна также идея реализации Java-байтового кода на аппаратном уровне. Я не думаю, что это будет куда угодно, поскольку сила Java заключается в том, что вам не нужно много беспокоиться об аппаратном обеспечении. Вам просто нужно получить ОС на Java, и ее можно запустить на любой JVM.

Я считаю, что истинная сила Java в домене ОС - это виртуализация. Я не могу придумать лучший способ иметь виртуальную ОС, поскольку Java везде.

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