|
JVM и низкоуровневые вызовы | ☑ | ||
---|---|---|---|---|
0
Beduin
02.11.12
✎
16:06
|
Как эта виртуальная машина на всех платформах работает. Читал, внятного ничего не нашел. Использует она вызовы ОС или с драйверами напрямую. А там где операционки нет, нужно самой все интерпретировать.
В общем как у них получилось при столь малом весе запихнуть совместимость с кучей устройств? |
|||
1
Волшебник
02.11.12
✎
16:08
|
она использует вызовы ОС
|
|||
2
Beduin
02.11.12
✎
16:08
|
(1) А там где ОС нет?
|
|||
3
Asmody
02.11.12
✎
16:09
|
(2) на утюге? нет, там java не работает
|
|||
4
Beduin
02.11.12
✎
16:19
|
(3) Утюг. Смишно.
Телеприставки, принтеры, веб-камеры. Да полно устройств без ОС. |
|||
5
Biker
02.11.12
✎
16:22
|
(4) «Ты суслика видишь? — Нет. — И я нет. А он есть!»
|
|||
6
Evpatiy
02.11.12
✎
16:22
|
(4) Ну когда на принтер скопируешь свою программу тогда и приходи запускать. А пока разбирайся с копированием.
|
|||
7
Jump
02.11.12
✎
16:23
|
(4)Ты где видел телеприставку, роутер, или IP камеру без ос?
Я таких не видел. |
|||
8
alex-pro
02.11.12
✎
16:25
|
(7)ну, может, человек других ОС, кроме как с "четырехцветным флажком" не видел))
|
|||
9
Asmody
02.11.12
✎
16:41
|
(4) в телеприставках есть ОС, равно как и в остальном перечисленном. кроме того, есть "аппаратные" реализации JVM, специально для встраиваемых систем. Есть даже полноценные ОС, практически целиком написанные на java
|
|||
10
oleg_km
02.11.12
✎
19:39
|
+(9) в Cisco есть своя ОС для циск. ТС наверное неправильно понимает понятие ОС. ОС это реализация одного из базовых принципов программирования: неоднократное использование кода. Только реализованная не в дизайнтайме, а в рантайме
|
|||
11
Torquader
02.11.12
✎
20:04
|
В Java как и в любом другом языке есть предопределённые процедуры, реализация которых выходит за пределы самой Java и используется для взаимодействия программы с устройством, на котором она работает.
В принципе, устройство может быть и без ОС в общем смысле, тогда роль ОС будет выполнять интерпретатор байт-кода. Не может быть языка программирования высокого уровня, который не имеем предопределённых операторов для взаимодействия со средой исполнения. |
|||
12
Beduin
02.11.12
✎
20:13
|
(11) Я для себя разделил так, есть ОС и ее API для работы с устройством. JVM использует только API операционной системы. Из этого вывод, что у разработчиков java-машины есть данные по спецификациям операционок, где она работает.
А так как устройств много, то я и задумался как 100 мегабайтная платформа может содержать спецификации большинства операционок. |
|||
13
YV
02.11.12
✎
20:21
|
(12) Она не содержит спецификации большинства операционок. В JVM заложены спецификации только той операционки, под которую она создана. Примерно так:
Байт-код -> JVM for Windows -> Windows Байт-код -> JVM for Linux -> Linux Байт-код -> JVM for Mac OS -> Mac OS Байт-код везде одинаковый, но JVM разные. Каждая под свою ОСь. |
|||
14
Torquader
02.11.12
✎
21:06
|
(13) Причём ещё не везде всё одинаково поддерживается.
|
|||
15
Jump
03.11.12
✎
01:31
|
(12)Ну так почему думаешь программы на джаве работают не напрямую а через прослойку в виде JVM?
Потому что JVM пишется строго под конкретную платформу, т.е абсолютно непортабельна. А программы получаются портабельными на 100% потому как работать они будут с JVM, и им пофиг на чем работает сама JVM. |
|||
16
cViper
03.11.12
✎
01:35
|
(0) Читай мануалы. Для разных операционных систем есть своя jvm.
|
|||
17
cViper
03.11.12
✎
01:36
|
(15) А зачем jvm быть портабельной?! Суть в том чтобы приложение можно было портануть без особых сложностей.
|
|||
18
ПесняПроЗайцев
03.11.12
✎
01:52
|
Как заи..ала эта джава. Просится даже туда, где нах не нужна )
|
|||
19
Torquader
03.11.12
✎
01:58
|
(18) А что - есть альтернатива ?
|
|||
20
Jump
03.11.12
✎
10:49
|
(17)Об этом и говорю.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |