Имя: Пароль:
IT
 
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)Об этом и говорю.
AdBlock убивает бесплатный контент. 1Сергей