개발 도구든 애플릿을 실행하는 웹 브라우저든 모든 Java 인터프리터는 Java 가상 시스템의 구현 형태입니다. Java 바이트 코드를 사용하면 한 번 작성하고 어디에서나 실행할 수 있습니다. 바이트 코드는 모든 형태의 Java 가상 시스템에서 실행할 수 있습니다. 즉, 시스템에 Java 가상 시스템이 설치되어 있는 한 동일한 Java 프로그램을 Windows 2000 시스템, Solaris 워크스테이션 또는 Mac 시스템에서 실행할 수 있습니다.
1.2 Java 플랫폼
플랫폼은 프로그램이 실행되는 하드웨어 또는 소프트웨어 환경입니다. 방금 Windows 2000, Linux, Solaris, Mac OS 와 같은 인기 있는 플랫폼을 언급했습니다. 대부분의 플랫폼은 하드웨어와 운영 체제의 조합으로 간주될 수 있습니다. Java 는 다른 하드웨어 플랫폼에서 실행되는 소프트웨어 플랫폼이기 때문에 다른 플랫폼과 다릅니다. Java 플랫폼에는 JavaVM 과 JavaAPI 의 두 가지 구성 요소가 있습니다.
1.3 J2ME 플랫폼
자바 개발은 지금까지 다양한 플랫폼으로 확장되었다. SUN 은 다양한 애플리케이션 플랫폼을 위한 네 가지 버전의 Java 운영 환경을 개발했습니다. 이 중 J2ME 버전은 PDA, 셋톱 박스 등 다양한 하드웨어 컴퓨팅 기능이 낮고 저장량이 제한된 소비자 전자제품을 대상으로 합니다.
J2ME 는 다양한 소비자 전자 장치에 설치된 Java 가상 시스템과 다양한 소비자 전자 장치를 위해 특별히 설계된 핵심 클래스 라이브러리를 포함한 Java 운영 환경 및 개발 환경을 정의합니다. J2ME 의 주요 응용 프로그램은 개인 모바일 장치와 고정 장치의 두 가지 범주로 나눌 수 있습니다. 전자는 구성 계층에서 CLDC 를 사용하고, 터미널 장치에는 휴대폰 등이 있다. , 인간-기계 인터페이스는 비교적 간단하고 메모리를 적게 사용합니다. 후자는 차량 내비게이션, 엔터테인먼트 장비, 디지털 TV 셋톱 박스 등과 같은 구성 계층에서 CDC 를 사용합니다.
2 마이그레이션 및 구현 프로세스
제가 한 일은 자바 VM 의 CDC &;; Foundation 은 위 상자 그림에 설명된 디지털 TV 셋톱 박스에 이식됩니다.
2. 1 프로그램
우리나라 디지털 TV 미들웨어 표준은 미들웨어 시스템이 Java 가상 시스템을 채택하여 Java 응용 프로그램 표준 인터페이스를 제공하고 Java 언어로 대화형 응용 프로그램을 작성해야 한다고 분명히 밝혔다. 이 기준에 따라 케이블 셋톱 박스 하드웨어 환경 및 운영 체제의 특징을 결합하여 케이블 셋톱 박스 기반 디지털 TV 미들웨어를 구현하는 방안을 제시했다.
2.2 계획 이행
SUN 이 홈페이지에 발표한 무료 Java 가상 시스템 소프트웨어 구현 코드를 사용하여 다양한 수정을 거쳐 기존 디지털 TV 셋톱 박스에 이식했습니다.
2.2. 1 환경 건설
(1) 소스 코드의 빌드 디렉토리에 있는 관련 make 파일을 수정하여 셋톱 박스에 가상 시스템 소스 코드의 운영 환경을 올바르게 구축하여 다음 코드 디버깅을 위한 기반을 마련할 수 있습니다. 주로 컴파일러 이름과 경로, 파일 접미사 및 JDK 키트 경로에 나타납니다. 초기 마이그레이션의 어려움을 줄이기 위해 Java Virtual Machine 실행 코드를 생성하는 일부 옵션이 단순화되고 수정되었습니다.
(2) 기존 디지털 TV 셋톱 박스의 특정 하드웨어 구성에 따라 주로 플래시 크기에 따라 해당 하드웨어 구성 파일을 수정합니다.
코드 디버깅
컴파일 디버그 환경을 올바르게 설정한 후 코드를 디버그합니다. 수정 및 코드 재작성에는 주로 다음과 같은 측면이 있습니다.
(1) 운영 체제와 관련된 수정입니다. 디지털 TV 셋톱 박스는 ST 에서 제공하는 임베디드 실시간 운영 체제인 OS20 을 사용하며 소스 코드는 Linux 운영 체제를 기반으로 합니다. 태스크 구조의 정의 및 사용을 수정합니다. 또한 OS20 운영 체제 커널 코드에서 변수 매개 변수를 지원하는 정의도 Linux 와 다르므로 그에 따라 수정해야 합니다.
(2) CPU 관련 변경 사항. 주로 어셈블리 파일 CVMJNINVOKENAtive 입니다. 소스 코드는 X86 어셈블리 명령어로 작성되었으며 자신이 설계한 C2 어셈블리 명령어로 구현됩니다. ST20-C2 는 레지스터가 적기 때문에 로컬 변수를 사용하여 데이터를 저장하고 전송합니다.
(3) 디버깅에서 단순화 된 수정. 멀티 스레딩을 차단하여 디버깅에 큰 편리함을 가져왔다. 사용할 클래스가 미리 컴파일되어 romjava.c 로 현지화되도록 동적 로드 함수를 제거합니다
2.2.3 테스트 및 운영 결과
JavaVM 은 실제로 시스템의 프로세스이며, 시스템은 프로세스 우선 순위 및 시스템에 필요한 메모리 공간을 포함하여 일반 프로세스처럼 필요한 리소스를 할당합니다. JavaVM 은 시스템의 프로세스로서 자신의 우선 순위에 따라 시스템의 프로세스 일정에 참여합니다. JavaVM 시스템은 다른 프로세스와 함께 프로세서 리소스를 포함한 시스템 리소스를 제공합니다. 따라서 작성자는 main () 함수에 작업을 만들어 javavm 작업을 시작합니다. 새 컴파일 환경에서는 수정된 전체 소스 코드 컴파일을 실행 코드에 연결하여 JTAG 포트를 통해 셋톱 박스의 대상 보드로 다운로드합니다.
Java virtual machine 의' 입력' 은' hello.java' 이고 Javac 컴파일 후 클래스 파일' hello.class' 가 생성됩니다. 코드 디버깅에 성공하면 표시 터미널에 "hello world" 라는 단어가 나오는데, 이는 Java 가상 시스템이 바이트 코드를 해석한 결과입니다. CDC& 기반 설명 기본 구성의 Java virtual machine 마이그레이션이 성공했습니다.
이 글에서 제시한 케이블 디지털 TV 셋톱 박스 환경에서 디지털 TV 미들웨어를 구현하는 방안으로, Java 기술을 핵심으로 하여 Java 기술의 장점을 충분히 구현하여 대화형 TV 의 응용 및 개발을 더욱 쉽고 편리하게 할 수 있습니다. 이 시나리오는 Java 플랫폼 (CDC) 의 기본 기능을 구현하여 Java 어플리케이션의 표준 인터페이스를 더 연구하고 구현하기 위한 소프트웨어 플랫폼을 제공합니다.
물론, 현재의 CDC 구현에는 몇 가지 문제가 있으며, 이를 더욱 보완하고 안정성을 높여야 한다. 이를 바탕으로 개인 프로필과 Java TV API 를 추가하여 Java 애플리케이션 개발을 위한 완벽한 환경을 제공할 수 있습니다.
임베디드 미들웨어 JavaVM 의 기본 개념과 추상 모델을 소개하고 디지털 TV 셋톱 박스에서 이식 및 구현을 제공합니다. 포함된 미들웨어 JavaVM 을 사용하면 플랫폼 간에 응용 프로그램 코드를 빠르게 마이그레이션할 수 있습니다. 임베디드 미들웨어는 서로 다른 하드웨어 및 소프트웨어 플랫폼에 적용할 수 있습니다. 플랫폼 및 프로세서와 독립적으로 다른 운영 체제 및 다른 마이크로프로세서 아키텍처로 이식할 수 있으므로 상위 계층 애플리케이션을 더욱 이식할 수 있습니다. 임베디드 미들웨어의 광범위한 사용은 임베디드 애플리케이션이 Java 언어와 마찬가지로 기계 및 운영 플랫폼의 다양한 환경에서 애플리케이션 소프트웨어를 개발할 수 있게 해 줄 것으로 믿습니다. "한 번 컴파일하고, 어디에서나 실행할 수 있습니다."