Почему на Java не разрабатывают операционные системы?

Почему Java (в частности стандартная имплементация JVM) не используется для разработки ОС (+ считается неэффективным ЯП при разработке Realt Time Systems)?

ЗЫ. Вопрос из экзамена, я подозреваю это происходит из-за Garbage Collector и невозможности ручного memory allocation, но, если можно, по-подробнее объяснить этот момент.

Спасибо.
  • Вопрос задан
  • 6612 просмотров
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Всеё банально просто. Java компилируется в байткод, а не в ассемблер. Байткод интерпретируется виртуальной машиной JVM, которая при необходимости делает компиляцию в нативный код процессора (технология JIT - Just-in-time compilation).
Другими словами, для того чтобы получить нативный код нужно запустить байткод внутри JVM. Именно поэтому никто не пришет на java драйверов и прочей низкоуровневой хрени. С другой стороны, чтобы эту хрень писать на java, нужно чтобы было одно из двух условий:
1) либо процессор напрямую поддерживал спецификацию JVM (со всем барахлом типа GC, memory allocation^ resource management)
2) либо операционная система поддрерживала в ядре спецификацию JVM (с тем же самым барахлом)

Ну и не нужно говорить, что язык барахло, если на нем нельзя писать драйверы и секции для MMU. Есть еще десятка два языков, которые это не поддерживают, например все X.NET или erlang^ python и т.д.
Java для прикладного программирования, а C/C++/D/ASM и прочее - для машинного.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Ну таки разрабатывали в разное время: JavaOS, JX, SavaJe, Vino. Все эти разработки свернули по разным причинам, но принципиальных проблем, абсолютно мешающих разрабатывать OS на Java как будто бы нет.
Ответ написан
Waka_Waka
@Waka_Waka
IOS Developer
Мне кажется, для ОС на Java потребуется отдельная стойка с оперативной памятью))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы