• Title/Summary/Keyword: JVM

Search Result 94, Processing Time 0.027 seconds

Design and Implementation of CPU Independent Linux Package (CPU 독립적인 리눅스 패키지의 설계 및 구현)

  • Nam, Hyun-Woo;Kim, Su-Hyun
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2010.06b
    • /
    • pp.476-481
    • /
    • 2010
  • 기존 리눅스 소프트웨어 패키지는 타겟 시스템의 CPU 타입이 정해진 후 컴파일 되어 사용자에게 배포된다. 만약 설치 시스템의 CPU를 위한 패키지가 제공되지 않을 경우 사용자는 크로스 컴파일러를 이용하여 소프트웨어를 추가적으로 빌드해야 하는데 일반 사용자가 이와 같은 작업을 수행하기란 쉽지 않았다. 다른 대안으로 JVM과 같은 가상머신 기반의 소프트웨어를 작성하면 CPU에 독립적으로 패키지를 배포하고 소프트웨어를 실행할 수 있지만 네이티브 코드에 비해 성능이 떨어진다는 단점이 있었다. 본 논문에서는 가상머신의 이점을 살리면서도 네이티브 코드와 동일한 성능을 보장해줄 수 있는 OceanVM 가상머신을 사용하여 CPU 독립적인 리눅스 소프트웨어 패키지를 설계하고 구현하였다.

  • PDF

Retargetable Oolong-to-SIL IL Translator (재목적 Oolong-to-SIL 중간 언어 번역기)

  • 권혁주;김영근;이양선
    • Proceedings of the Korea Multimedia Society Conference
    • /
    • 2004.05a
    • /
    • pp.310-313
    • /
    • 2004
  • 자바는 컴파일러에 의해 아키텍처 독립적인 바이트코드로 구성된 바이너리 형태의 클래스 파일을 생성하면 JVM에 의해 하드웨어와 운영체제에 상관없이 실행이 가능한 플랫폼 독립적인 언어로 현재 가장 널리 사용되는 범용 프로그램 언어중 하나이다. EVM(Embedded Virtual Machine)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어등을 모두 수용할 수 있는 임베디드 시스템을 위한 가상기계이며, SIL(Standard Intermediate Language)은 EVM에서 실행되는 중간언어로 다양한 프로그래밍 언어를 수용하기 위해서 객체지향 언어와 순차적 언어를 모두 수용하기 위한 연산 코드 집합을 갖고 있다. 본 논문에서는 자바 프로그램을 EVM에서 실행 될 수 있도록 자바 프로그램을 컴파일하여 생성된 클래스 파일로부터 Oolong 코트를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하는 Oolong-to-SIL 번역기 시스템을 구현하였다. 번역기 시스템을 정형화하기 위해 Oolong 코드의 명령어 등을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였고, 파싱테이블을 가지고 파서를 설계하였다 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 SIL 코드를 생성하도록 번역기 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다. 이와 같이 번역기를 구성함으로써 목적기계의 중간언어 형태에 따라 중간언어 번역기를 자동으로 구성할 수 있어 재목적성(Retargetability)을 높일 수 있다.

  • PDF

Development of Mobile Java Browser for Wireless Internet (무선인터넷용 Mobile Java Browser(MJB) 개발)

  • 진민식;정민수
    • Journal of Korea Multimedia Society
    • /
    • v.6 no.2
    • /
    • pp.276-287
    • /
    • 2003
  • Wireless Internet has to offer various types of services as much as wired network does in the scope of Internet business. The browser for simple data service using SMS in the early wireless internet cannot serve various multimedia contents. In this paper, We design and implement a Java browser that runs Java program, by adding JVM(Java Virtual Machine) into the web browser for mobile terminals. The Java browser for mobile terminals dynamically loads various Java program you want. This browser makes it possible to be multipurpose mobile terminals for E-Commerce, E-Wallet, Game Device.

  • PDF

A Design of Profile Based Generational Garbage Collector in Java (자바에서 프로파일에 기초한 세대기반 가비지 콜렉터 설계)

  • 김일부호;오세만
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1999.10a
    • /
    • pp.388-390
    • /
    • 1999
  • 자바는 자동 메로리 회수(garbage collection) 방식을 채택한 범용 프로그래밍 언어로 자바 가상머신(JVM)이 설치된 다양한 플랫폼에서 사용되어 지고 있다. 현재 자바에서 사용되는 가비지 콜렉터는 휴지(pause) 시간이 상당히 길어 짧은 응답시간을 요구하는 서버 및 실시간 응용 프로그램에는 적합하지 않은 표시-압축 기법을 사용한다. 이를 보완하기 위해 자바 HotSpotTM 성능 엔진에서 세대기반(generational) 복사 기법에 기반을 둔 혼성(hybrid) 가비지 콜렉터를 사용하고 있으나, 상당히 큰 오버헤드를 보이고 있어 다양한 응용 프로그램의 특성을 수용하기에는 개선의 여지가 많다. 본 논문에서는 세대기반 기법을 기반으로, 자바와 자바 가상머신이 가진 특성들과 실행시간 객체의 타입 및 스택 정보를 이용하는 가비지 콜렉터를 설계한다. 또한, 힙 프로파일 분석기를 구현하고, 이를 통해 응용 프로그램에 적합한 메모리 구조를 분석하고, 가비지 콜렉터에 적용할 수 있도록 한다.

  • PDF

Applet Security Technique against Hostile Applet's Attack (유해 애플릿 공격에 대한 애플릿 보안 기술)

  • Park, Sang-Kil;Noh, Bong-Nam
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2000.04a
    • /
    • pp.491-496
    • /
    • 2000
  • 웹상의 자바 애플릿은 클라이언트의 웹 브라우저에 다운로드 되어서 브라우저 내부에 있는 자바가상기계(JVM : Java Virtual Machine)내에서 실행된다. 각 자바가상기계에는 실행 전에 바이트 코드 검증기와 바이트 코드 인터프리터를 통하여 오류문법을 점검한다. 애플릿을 이용한 잠재적인 공격형태는 시스템 수정, 개인정보의 침해, 서비스 거부공격, 강한 거부감을 느끼게 하는 공격이 있다. 이러한 유해한 애플릿의 공격에 대응하기 위한 방법으로 코드분석, 행위분석, 위치정보등을 이용한 보안기법이 제시되었지만 효율적인 대응을 하지 못하고 있다. 이 논문에서는 자바의 특성을 이용하여 자바클래스 내부의 바이트 코드 수정을 통한 애플릿 보안기술에 대해 기술한다. 유해한 행동이 예상되는 애플릿의 클래스에 대하여 바이트 코드 수정을 통하여 안전한 클래스로 대체함으로서 유해 애플릿 공격으로부터 시스템을 보호한다. 이를 수행하기 위해 프록시 서버를 두어서 웹브라우저의 요구를 수용하고, 이를 웹 서버에게 Safe클래스로 수정하여 요구하며, 그에 대한 응답도 처리한 후 애플릿에게 보여준다. 이는 런타임때 수행되며 웹브라우저, 서버, 클라이언트의 수정없이 프록시 서버의 개입으로 이루어진다.

  • PDF

Java Bytecode-to-SIL Translator using an Abstract Syntax Tree (구문 트리를 이용한 자바 바이트코드에서 SIL로의 번역기)

  • Kim, Young-Koun;Kwon, Hyeok-Ju;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.05a
    • /
    • pp.519-522
    • /
    • 2004
  • 자바는 현재 가장 널리 사용되는 범용 프로그래밍 언어중 하나로 컴파일러에 의해 중간언어인 바이트코드로 변환되며 JVM(Java Virtual Machine)에 의해 실행되는 플랫폼 독립적인 언어이다. SIL(Standard Intermediate Language)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템을 위한 중간언어로 가상기계인 EVM(Embedded Virtual Machine)에서 실행된다. 본 논문에서는 자바 프로그램을 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하여 자바로 구현된 프로그램이 EVM에서 실행되도록 하는 Bytecode-to-SIL 번역기 시스템을 구현하였다. 그리고 본 번역기 시스템을 다른 플랫폼에 용이하게 설치하기 위한 재목적성(retargetability)을 위해 단일패스(one-pass)을 사용하는 기존의 번역기들과 달리 AST를 이용한 컴파일러 기법을 사용하여 AST가 가지고 있는 정보에 대해 최적화 작업을 수행하여 보다 효과적인 코드 변환을 할 수 있도록 설계하였다.

  • PDF

Software Birthmark Based on k-gram Using Operator Abstraction (연산자 요약을 이용한 k그램 소프트웨어 버스마크)

  • Lee, Kihwa;Woo, Gyun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2013.05a
    • /
    • pp.687-690
    • /
    • 2013
  • 소프트웨어 버스마크 기법은 도용이 의심되는 소프트웨어의 소스 코드를 얻을 수 없을 때 사용할 수 있는 소프트웨어 도용 탐지 기법이다. 이 기법은 프로그램의 바이너리나 자바 클래스 파일에서 프로그램 고유의 특징인 버스마크를 추출한 다음 프로그램간 버스마크 유사도 측정을 통해 도용을 탐지한다. 이 논문에서는 선행 연구된 k그램 버스마크 기법에 연산자 요약이라는 아이디어를 접목한 연산자 요약 k그램 버스마크 기법을 제안한다. 연산자 요약이란 연산자 우선순위가 같은 연산자의 JVM 명령어를 묶어 요약번호로 나타내는 것이다. 연산자 요약 k그램 버스마크 기법은 연산자 요약과 제어 흐름을 고려하여 생성한 연속된 k개의 요약번호 시퀀스 집합을 버스마크로 정의한다. 버스마크를 평가하기 위해 선택 정렬 메소드와 버블 정렬 메소드를 대상으로 신뢰도 실험과 강인도 실험을 하였다. 실험 결과 연산자 요약 k그램 버스마크 기법이 선행 연구된 Tamada 버스마크 기법과 k그램 버스마크 기법보다 높은 신뢰도와 강인도를 보였다.

A Study on the Java Decompilation-Preventive Method by Obfuscating Algorithm (난독화 알고리즘을 이용한 자바 역컴파일 방지기법에 관한 연구)

  • Ahn, Hwa-Su
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.05a
    • /
    • pp.1457-1458
    • /
    • 2007
  • 자바 언어의 중요한 특징 중의 하나는 어떤 기계에서든지 실행될 수 있다는 점이다. 이러한 플랫폼에 대한 독립성은 자바 프로그램이 바이트 코드 형태로 배포되기 때문에 가능한 일이다. 바이트 코드는 특정 기계에 종속되지 않고 자바 가상 머신(Java Virtual Machine:JVM)를 지원하는 곳이면 어디에서든지 실행 가능하다. 그런데 바이트 코드로 번역된 코드에는 자바 소스 코드의 정보가 그대로 포함되어 있는데, 이로 인해서 바이트 코드에서 자바 소스코드로의 역컴파일(Decompilation)이 쉽게 이루어진다는 취약점이 있다. 본 논문에서는 자바 바이트 코드의 난독화 기법을 살펴보고, Code Encryption Algorithm을 이용해서 역컴파일 하기 어려운 형태로 만드는 기술인 코드 난독처리(Code Obfuscation) 기법을 제안하였다.

Design and Implementation of a Virtual Machine for MultiThread in the Ubiquitous Game Platform (유비쿼터스 게임 플랫폼에서 멀티스레딩을 위한 가상기계의 설계 및 구현)

  • Choi, Hong-Suck;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.05a
    • /
    • pp.1461-1464
    • /
    • 2007
  • 본 연구팀은 유비쿼터스 환경에서 다양한 분야의 콘텐츠를 보다 쉽게 개발하고 실행할 수 있는 통합 소프트웨어 개발 솔루션인 유비쿼터스 게임 플랫폼(Ubiquitous Game Platform)을 개발하였다. 유비쿼터스 게임 플랫폼은 가상기계 방식으로써 플랫폼에 독립적어서 유비쿼터스 환경의 기기에 탑재가 수월한 장점을 가진다. 본 논문에서는 유비쿼터스 게임 플랫폼에서 다양한 콘텐츠의 실행과 멀티 스레딩을 지원하는 유비쿼터스 가상기계(u-VM)를 설계하고 구현하였다. MS의.NET 플랫폼과 SUN의 JVM이 C/C++나 Java 언어 하나만을 지원하는데 반해 본 연구에서 제시한 u-VM은 다양한 유비쿼터스 기기에 탑재되어 C/C++, Java 언어로 작성된 다양한 모든 종류의 어플리케이션을 실행한다. u-VM은 SEF(Standard Executable Format) 실행 파일을 입력으로 받아 실행하며, SEF 로더와 인터프리터, 내장 라이브러리, 실행 환경으로 구성되어 있다. 실행 환경에서는 메모리를 관리하고 예외를 처리하며 스레드 스케줄러를 통해 멀티스레딩 기능을 제공 한다.

Design and Implementation of the Smart Virtual Machine for Smart Cross Platform (스마트 크로스 플랫폼을 위한 스마트 가상기계의 설계 및 구현)

  • Han, Seong-Min;Son, Yun-Sik;Lee, Yang-Sun
    • Journal of Korea Multimedia Society
    • /
    • v.16 no.2
    • /
    • pp.190-197
    • /
    • 2013
  • Since domestic and foreign platform companies and mobile carriers adopt and use different kinds of smart platforms, developers should develop or convert contents according to each smart platform to provide a single smart content for customers. It takes long time and a lot of money to convert the conventional smart contents in order to serve other smart platforms. For the reason, more attention has been paid on Smart Cross Platform or Hybrid Platform, the core technologies of OSMU(One Source Multi Use) in which, once a program is coded, it can be executed in any platforms regardless of development languages. As a result, PhoneGap and HTML5 based Sencha Touch have been introduced. In this paper, we developed the smart virtual machine, which is built in smart cross platform based smart devices, unlike Android, iOS, Windows Phone devices being dependent of platforms, and helps to download and execute applications, being independent of platforms. the smart virtual machine supports C/C++, and Java language, being differentiated from JVM by sun microsystems that supports only Java language and .NET framework by microsoft that supports only C, C++ and C#. Therefore, it provides contents developers with the environment where they can get a wide range of options in choosing a language and develop smart contents.