실기기에 kvm porting 기술 소개 5/26/2000 junbom pyo zuvix technology, co

25
실실실실 KVM Porting 실실 실실 5/26/2000 Junbom Pyo ZUVIX technology, Co.

Upload: austen-burns

Post on 31-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

실기기에 KVM Porting 기술 소개

5/26/2000

Junbom Pyo

ZUVIX technology, Co.

Page 2: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Agenda Overview of Java 2 Platform Introduction to Kjava Profile

(I-mode, MIDP, etc.) NTT DoCoMo DoJa VM and MIDP VM Porting Scopes (APIs) of KVM Accessing argument from native methods CDMA Software Architecture Where is mapping kvm layer?

Page 3: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Java 2 Platform

HotSpot

Java 2Enterprise

Edition

JVM KVM CardVM

Java 2StandardEdition

Java 2 Micro Edition

TVprofile

ScreenPhone/CommunicatorProfile

PDAProfile

MIDProfile

SmartCard

Profile

CDC CLDC

Page 4: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Introduction to Kjava Profile

Any Operating System

“C” VM “K” VM

Core APIs Core APIs

ProfileProfile

Profile

Set of baseConfigurations

(eg. Supporting Threads, Floats)

Library ofIndustry Profiles

e.g.: TV STB,Wireless Phone,

PDA ...

JavaTVJavaPhone

MIDP

ApplicationsEg. Yellow pages,train schedules, Games...

Page 5: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Activity in MIDP Expert Group

Expert Group Sun, Motorola, Nokia Ericsson, Siemens, Telcordia, Symbian, RIM, NEC, Sharp,

NTT/Docomo, Samsung, AOL, Matsushita, Fujitsu, Hitachi, Palm

Tentative Schedule for Spec release March 10, 2000: draft 0.6 (candidate for participant draft) March 21, 2000: Participant Review start April 26, 2000: call for vote to move to public draft May 1, 2000: public review start June 1, 2000: Spec 1.0 Release

Page 6: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Java in AsiaJava in Asia

SK TelecomSK Telecom

ShinsegiShinsegiTelecomTelecom

Java Java enabled enabled

subscriberssubscribers

ServiceLaunch

2001. 5

2001. 6

J2MEStandardVersion

KittyhawkProfile

LG TelecomLG Telecom 2000.10

DoJaProfile

KT FKT F Soon…

NTT-DoCoMoNTT-DoCoMo 2001. 1

KDDI, JPhoneKDDI, JPhone 2001. 6

ServiceLaunch

Page 7: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

What is the DoCoMo Java - iApply ?

Page 8: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Overall i-mode network architecture

Page 9: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Native System Software

High Level Architecture

RTOS

CLDC

OEM-SpecificClasses

MIDP ApplicationIapply Application

MIDP, DoJa

OEM-SpecificApplication

NativeApplication

Page 10: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Porting Scopes (APIs) of KVM

Application (management) User interface Persistent Storage Networking Timers I18N/L10N Phone number “Dialer”

Page 11: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

KVM Application Manager

Application packaging using JAR

Application Descriptor set of attributes

Title, version, Vendor, Jar-URL, Jar-Size, Data-Size, Application arguments, etc.

Application Lifecycle Application interface

initApp(), startApp(), pauseApp(), destroyApp() Application Context

provides information about the application manager to application

Application Manager install, de-install, application lifecycle management, etc mostly written in C (90%)

Page 12: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

CLDC Directory

Java API

Native

Page 13: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

MIDP Directory

Page 14: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Features Eliminated from the Java VM

No profile can require that a KVM support any of the following

Java Native Interface (JNI) User-defined class loaders Reflection Thread groups and daemon threads Finalization

Page 15: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Compiler Requirements

You must have a C compiler capable of compiling ANSI – Compliant C files.

The code compiles without any warnings using the following compilers

Metrowerks C compiler, GNU C compiler, Solaris C compiler, Microsoft Visual Studio C compiler.

Page 16: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

api Contains the Java library class source code that is provided with the release.

bin Contains all the binary executables and compiled Java library classes.

build Contains makefiles for building the KVM.

doc Contains documentation.

jam Contains the source code of the optional Java Application Manager (JAM) component that is provided with the KVM.

Distribution directories

Page 17: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Directory kvm/VmCommon

StartJVM.c Virtual machine startup and command line argument reading.

cache.c Inline caching operations for speeding up method lookup.

class.c Runtime data structures and operations for representing Java classes.

events.c Implementation of a stream-based protocol for event handling.

fields.c Runtime data structures and operations for representing fields of objects.

frame.c Stack frame and exception handling operations. ETC…

Page 18: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Java code: static native void

drawRectangle(int x, int y, int width, int height);

Native implementation: C code

static void Java_com_sun_kjava_Graphics_drawRectangle() {

int height = popStack();

int width = popStack();

int y = popStack();

int x = popStack();

windowSystemDrawRectangle(x, y, width, height); }

Example Accessing arguments from native methods

Page 19: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

const NativeImplementationType

com_sun_midp_lcdui_DefaultDeviceCaps_natives] = {

{ "drawLine", Java_com_sun_midp_lcdui_DefaultDeviceCaps_drawLine},

{ "drawRect", Java_com_sun_midp_lcdui_DefaultDeviceCaps_drawRect},

{ "drawArc", Java_com_sun_midp_lcdui_DefaultDeviceCaps_drawArc},

{ "drawChar", Java_com_sun_midp_lcdui_DefaultDeviceCaps_drawChar},

{ "drawChars", Java_com_sun_midp_lcdui_DefaultDeviceCaps_drawChars},

{ "drawString", Java_com_sun_midp_lcdui_DefaultDeviceCaps_drawString},

{ "drawImage", Java_com_sun_midp_lcdui_DefaultDeviceCaps_drawImage},}

Example Accessing arguments from native methods

Page 20: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Kauai VM Architecture

Class loaderSub system

Runtime data areas

Class files

Native method interface

Native method

libraries, Code

Executionengine

>javac HelloWorld.java

HelloWorld.class

JNI

Page 21: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Where is target?

Page 22: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

J2ME for Wireless Carriers Software Architecture

Page 23: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

CDMA Software Architecture

MSM

80186

EPROM(Flash)

RAM

EEPROM

Diagnostic Monitor

WatchdogTimer

Main Control Task

User InterfaceTask

Non-VolatileDatabase

Task

DiagnosticTask

WatchdogTask

SearcherTask

RxTask

TxTask

Layer2 Task

HS Task

Page 24: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Where is mapping kvm layer?

Layer 1

Layer 2

Multiplex Sublayer

Layer 3

Management

Application

SearcherVOCRF

Rx Tx

RxTx

Main Control

UI HSKVM NV

Page 25: 실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co

Conclusion

Why do you try porting job? personal career? Skill up? Money? Do not do the porting!

But, It is the work for the human beings.Even if don’t like it, you must do it.