Как стать автором
Обновить

Комментарии 9

Жаль, кармы для плюса не хватает. Спасибо за пост, интересно.
Вам спасибо, рад что интересно
Скажите пожалуйста, а исходный код KVM от Sun Microsystems открыт? Хотелось бы посмотреть реализацию этой JVM. Буду рад ссылке.

Большое спасибо за статью. Не ожидал, что вы начнёте свои эксперименты с написания GUI-тулкита.
Насколько я понимаю он был открыт, но найденная мной ссылка, по которой должен быть доступен исходный код (http://java.sun.com/j2me/), сейчас ведет на сайт Oracle и там исходники KVM найти не удалось (возможно плохо искал). Я хочу связаться с одним из авторов порта KVM для Nintendo DS (благо он отметился в Readme.txt) и узнать по поводу исходников, поскольку очень хочется прикрутить работу с сетью к Java машине. Это бы существенно расширило возможности приложений для этой JVM. Если что то прояснится отпишусь здесь.

Рад, что статья понравилась :) Я начинал эксперименты с более скромных приложений, но решил их здесь не описывать. Вряд ли очередной hello world будет интересен сообществу.
Когда-то давно, может быть лет 10 назад, у меня был довольно интересный девайс с Linux'ом и J2ME на борту, про который я написал обзор для хабра: Полный обзор возможностей Motorola ZINE ZN5. Этот девайс был, как сейчас бы сказали «гиковским», после взлома прошивки появлялась возможность установки туда различного нативного софта и он фактически усилием энтузиастов превращался в смартфон.

Но что самое интересное, в качестве виртуальной машины для J2ME там тоже использовался SUN'овский KVM, видимо достаточно сильно приправленный Motorola, которая прикрутила к нему возможность работы с 3D и прокинула привязки GUI-интерфейса до общесистемного GUI-тулкита в виде Qt 2.3.8. К моему сожалению, в официальный репозиторий Motorola ZN5 они не выложили исходники своих наработок над KVM, видимо им это позволяла лицензия или исходный код KVM был вообще закрыт и лицензирован исключительно для Motorola.

Мне в то время очень хотелось открутить от KVM интересную библиотеку libezx3dgraphics.so.1.0.0, которая как раз и представляла реализацию 3D.



Ну а исходники KVM мне помогли бы разобраться как использовать эту библиотеку, чтобы написать свою Homebrew-демку в 3D на её основе. Увы, подобному не суждено было сбыться и моим камнем преткновения стало именно то, что я не смог найти в своё время исходники KVM, а ковыряться с декомпилятором мне тогда было лень, да и подобного опыта не хватало.

Я хочу связаться с одним из авторов порта KVM для Nintendo DS (благо он отметился в Readme.txt) и узнать по поводу исходников, поскольку очень хочется прикрутить работу с сетью к Java машине. Это бы существенно расширило возможности приложений для этой JVM. Если что то прояснится отпишусь здесь.

Я буду очень благодарен, если вы не забудете и отпишетесь, когда вам ответит этот человек. Это как минимум закроет некоторые вопросы, на которые я в своё время не нашёл ответа:

  1. Были ли исходники KVM открыты вообще?
  2. Если исходники KVM были открыты, то под какой лицензией?
  3. Если исходники KVM были открыты, не нарушила ли Motorola их лицензию не опубликовав свои изменения?
  4. В этом KVM изначально имеется интерфейс для различных 3D-классов или же это привнесение Motorola?

Иногда думаю достать это устройство и добить Homebrew на основе системной 3D библиотеки, так что буду рад любой информации. Ещё раз спасибо за статью!
Прочитал Вашу статью, очень интересно, спасибо! Не слышал раньше про этот телефон, но видимо классная штука была. Если получится написать 3D демку для java с удовольствием прочитаю про это.

Автору kvm порта для Nintendo DS написал, но пока не получил от него никакого ответа. Однако на просторах интернета набрёл на интересный проект: sourceforge.net/projects/pspkvm При беглом осмотре это очень похоже на реализацию kvm для Sony PSP, более глубоко пока времени не было посмотреть. Возможно Вам это поможет, я тоже как будет время детально поизучаю этот проект.
У меня наконец то дошли руки разобраться с заданными вопросами по KVM. Автор версии виртуальной машины для Nintendo DS, которую я использовал мне так и не ответил, поэтому мне пришлось пойти другим путем. Вооружившись WayBackMachine я внимательно исследовал приведенные в Readme файлах ссылки. Повозившись мне удалось найти архив с исходниками KVM для GBA, на основе которого и была сделана версия для Nintendo DS. По счастью в архиве были все исходники виртуальной машины, а не только то что нужно для GBA версии.

Мне удалось сделать сборку версии под Windows и запустить ее. Она успешно работает, но имеет только CLDC конфигурацию. Java кода, который бы описывал профиль для Windows или Linux в архиве нет. Я попытался начать писать его, но быстро оценил, что это просто огромный объем работы, ресурсов на который у меня сейчас нет.

Что касается лицензии, то насколько я понял Sun Microsystems свободно отдавала исходные коды KVM разработчикам, которые хотели сделать реализацию под конкретное мобильное устройство, а когда устройство отправлялось в продажу за лицензию надо было платить. Сейчас же все очень мутно, поскольку Sun Microsystems больше нет, и права на ее продукты перешли Oracle.

Что касается 3-го вопроса, то я думаю, что Motorola ничего не нарушает, поскольку изначально исходники не были ни под одной из открытых лицензий, и открывать код или нет было личным делом каждого.

Что касается 4-го вопроса. то в KVM изначально никакого функционала, для работы с 3D не было. Все это реализуется на уровне профиля (см. картинку в разделе Архитектура J2ME в этой статье) и конечно это привнесение со стороны Motorola.

В сухом остатке:
1. Положить исходники KVM на github я не могу, поскольку непонятно кому на данный момент принадлежат права на этот исходный код, и мне не хотелось бы иметь проблем с ребятами из Oracle. Если Вам очень нужны эти исходники напишите мне на почту, я думаю лично отдать архив, который был когда то выложен в открытый доступ в интернет я имею право.

2. Вот здесь https://github.com/izemskov/kvm я внес небольшие правки в Makefile для того чтобы CLDC конфигурация нормально собиралась, на более-менее современной JDK. В этом же репозитории я начал писать код для Windows профиля, однако, как я уже говорил быстро понял объем предстоящей работы и решил пока все заморозить.

3. Если решите собирать KVM, и будут проблемы, пишите постараюсь помочь.

Благодарю за детальное исследование! Спасибо, что прояснили ситуацию и ответили на мои вопросы.


С наступающим Новым Годом!

Спасибо, и Вас!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации