數(shù)字電視機(jī)頂盒中Java虛擬機(jī)的研究
發(fā)布時間:2008/6/5 0:00:00 訪問次數(shù):700
引>言
隨著有線廣播電視網(wǎng)向數(shù)字化、網(wǎng)絡(luò)化、產(chǎn)業(yè)化方向發(fā)展,利用有線電視網(wǎng)絡(luò)作為傳輸平臺的數(shù)字電視機(jī)頂盒除了能夠讓用戶在現(xiàn)有模擬電視機(jī)上觀看數(shù)字電視節(jié)目之外,廣播和交互式多媒體應(yīng)用功能的要求也應(yīng)運(yùn)而生,互動電視成為數(shù)字電視發(fā)展的方向。眾多程序員熟悉的為網(wǎng)絡(luò)廣泛運(yùn)用的java語言能很好地滿足機(jī)頂盒一些服務(wù)應(yīng)用的要求,因此提出了包含java虛擬機(jī)的數(shù)字電視機(jī)頂盒中間件的系統(tǒng)架構(gòu),該虛擬機(jī)用來執(zhí)行java應(yīng)用程序,并且中間件將應(yīng)用程序和底層操作系統(tǒng)、硬件細(xì)節(jié)隔離開,使上層的數(shù)字電視的服務(wù)應(yīng)用不必考慮過多的底層細(xì)節(jié)。本文主要介紹了j2me中主要用于數(shù)字電視領(lǐng)域的cdc的移植,其中又著重介紹了本地方法(native method)的實(shí)現(xiàn)過程。 結(jié)構(gòu)及工作原理
java虛擬機(jī)工作原理
java虛擬機(jī)處于機(jī)器和編譯程序之間,在任何平臺上都提供給編譯程序一個共同的接口。java源程序經(jīng)過編譯器編譯后變成字節(jié)碼,字節(jié)碼由虛擬機(jī)解釋執(zhí)行,虛擬機(jī)將每一條要執(zhí)行的字節(jié)碼送給解釋器,解釋器將其翻譯成特定機(jī)器上的機(jī)器碼,然后在特定的機(jī)器上運(yùn)行。
java虛擬機(jī)的主要任務(wù)是裝載class文件并且執(zhí)行其中的字節(jié)碼。java虛擬機(jī)包含一個類裝載器,它可以從程序和api中裝載class文件。字節(jié)碼由執(zhí)行引擎來執(zhí)行,具體過程如圖1所示。
java虛擬機(jī)結(jié)構(gòu)
類裝載器的體系結(jié)構(gòu)是java虛擬機(jī)在安全性和網(wǎng)絡(luò)移動性上發(fā)揮重要作用的一個方面,圖中所示的類裝載器可以包含多個類裝載器的子系統(tǒng), java應(yīng)用程序能夠在運(yùn)行時決定需要安裝的類,并且將被不同的類裝載器裝載的類存放在不同的命名空間。
執(zhí)行引擎處于java虛擬機(jī)的核心位置,它的行為由指令集所決定,其主要作用就是解釋字節(jié)碼(即運(yùn)行經(jīng)過編譯后的java程序的class文件) ,不同的執(zhí)行引擎實(shí)現(xiàn)可能非常不同。由軟件實(shí)現(xiàn)的虛擬機(jī)的執(zhí)行引擎分為一次性解釋字節(jié)碼、即時編譯器和自適應(yīng)優(yōu)化器,由硬件芯片構(gòu)成的虛擬機(jī)用本地方法執(zhí)行java字節(jié)碼,它的執(zhí)行引擎是內(nèi)嵌在芯片里。
java虛擬機(jī)相當(dāng)于一個堆棧計(jì)算機(jī),它在指令間傳送信息時不使用任何物理寄存器,而使用堆棧的幀來表示方法的狀態(tài)、字節(jié)碼的操作對象、方法的參數(shù)空間及局部變量的空間,它的“程序計(jì)數(shù)器”為一個偽寄存器,是當(dāng)前所執(zhí)行指令的字節(jié)碼數(shù)組的一個指針。
java實(shí)現(xiàn)方法
java有兩種實(shí)現(xiàn)方法:java方法和本地方法。java方法是由java 語言編寫,編譯成字節(jié)碼,存儲在class文件中。本地方法是由其他語言(比如c,c++,或者匯編語言)編寫的,編譯成和處理器相關(guān)的機(jī)器代碼,保存在動態(tài)連接庫中,格式是各個平臺專有的,它是聯(lián)系java程序和底層主機(jī)操作系統(tǒng)的連接方法。java方法與平臺無關(guān),但是本地方法卻不是,運(yùn)行中的java程序調(diào)用本地方法時,虛擬機(jī)裝載包含這個本地方法的動態(tài)庫,并調(diào)用這個方法。通過本地方法, java程序可以直接訪問底層操作系統(tǒng)的資源,使程序和特定的平臺相關(guān),一個本地方法接口——java本地接口(jni)使得本地方法可以在特定的主機(jī)系統(tǒng)的任何一個java平臺上運(yùn)行。
j2me中的cdc移植的解決方案
我們選用的要移植的java虛擬機(jī)是sun公司提供的j2me對于數(shù)字電視領(lǐng)域cdc配置,該虛擬機(jī)是針對linux的軟件實(shí)現(xiàn)(用c語言編寫的虛擬機(jī),該虛擬機(jī)也稱為c virtual machine,簡稱cvm) 。java虛擬機(jī)規(guī)范并沒有強(qiáng)求java虛擬機(jī)必須支持任何特定的本地方法接口,但是sun 公司提供了本地方法接口(java native interface) ,是為移植所用。java程序通過調(diào)用本地方法和主機(jī)交互。
java虛擬機(jī)
虛擬機(jī)處于嵌入式操作系統(tǒng)os20 上,因此sun公司提供的java虛擬機(jī)中與底層操作系統(tǒng)相關(guān)的操作都應(yīng)該替換為os20的內(nèi)核函數(shù)。因此將sun公司提供的cdc移植到os20需要完成一些工作,比如: c語言中關(guān)于基本數(shù)據(jù)類型的數(shù)據(jù)位的修改,關(guān)于線程的創(chuàng)建機(jī)制(os20為任務(wù)) ,關(guān)于線程之間的同步、互斥,關(guān)于動態(tài)連接的實(shí)現(xiàn),關(guān)于本地方法的實(shí)現(xiàn)等,本節(jié)主要介紹關(guān)于本地方法的實(shí)現(xiàn)過程。
引>言
隨著有線廣播電視網(wǎng)向數(shù)字化、網(wǎng)絡(luò)化、產(chǎn)業(yè)化方向發(fā)展,利用有線電視網(wǎng)絡(luò)作為傳輸平臺的數(shù)字電視機(jī)頂盒除了能夠讓用戶在現(xiàn)有模擬電視機(jī)上觀看數(shù)字電視節(jié)目之外,廣播和交互式多媒體應(yīng)用功能的要求也應(yīng)運(yùn)而生,互動電視成為數(shù)字電視發(fā)展的方向。眾多程序員熟悉的為網(wǎng)絡(luò)廣泛運(yùn)用的java語言能很好地滿足機(jī)頂盒一些服務(wù)應(yīng)用的要求,因此提出了包含java虛擬機(jī)的數(shù)字電視機(jī)頂盒中間件的系統(tǒng)架構(gòu),該虛擬機(jī)用來執(zhí)行java應(yīng)用程序,并且中間件將應(yīng)用程序和底層操作系統(tǒng)、硬件細(xì)節(jié)隔離開,使上層的數(shù)字電視的服務(wù)應(yīng)用不必考慮過多的底層細(xì)節(jié)。本文主要介紹了j2me中主要用于數(shù)字電視領(lǐng)域的cdc的移植,其中又著重介紹了本地方法(native method)的實(shí)現(xiàn)過程。 結(jié)構(gòu)及工作原理
java虛擬機(jī)工作原理
java虛擬機(jī)處于機(jī)器和編譯程序之間,在任何平臺上都提供給編譯程序一個共同的接口。java源程序經(jīng)過編譯器編譯后變成字節(jié)碼,字節(jié)碼由虛擬機(jī)解釋執(zhí)行,虛擬機(jī)將每一條要執(zhí)行的字節(jié)碼送給解釋器,解釋器將其翻譯成特定機(jī)器上的機(jī)器碼,然后在特定的機(jī)器上運(yùn)行。
java虛擬機(jī)的主要任務(wù)是裝載class文件并且執(zhí)行其中的字節(jié)碼。java虛擬機(jī)包含一個類裝載器,它可以從程序和api中裝載class文件。字節(jié)碼由執(zhí)行引擎來執(zhí)行,具體過程如圖1所示。
java虛擬機(jī)結(jié)構(gòu)
類裝載器的體系結(jié)構(gòu)是java虛擬機(jī)在安全性和網(wǎng)絡(luò)移動性上發(fā)揮重要作用的一個方面,圖中所示的類裝載器可以包含多個類裝載器的子系統(tǒng), java應(yīng)用程序能夠在運(yùn)行時決定需要安裝的類,并且將被不同的類裝載器裝載的類存放在不同的命名空間。
執(zhí)行引擎處于java虛擬機(jī)的核心位置,它的行為由指令集所決定,其主要作用就是解釋字節(jié)碼(即運(yùn)行經(jīng)過編譯后的java程序的class文件) ,不同的執(zhí)行引擎實(shí)現(xiàn)可能非常不同。由軟件實(shí)現(xiàn)的虛擬機(jī)的執(zhí)行引擎分為一次性解釋字節(jié)碼、即時編譯器和自適應(yīng)優(yōu)化器,由硬件芯片構(gòu)成的虛擬機(jī)用本地方法執(zhí)行java字節(jié)碼,它的執(zhí)行引擎是內(nèi)嵌在芯片里。
java虛擬機(jī)相當(dāng)于一個堆棧計(jì)算機(jī),它在指令間傳送信息時不使用任何物理寄存器,而使用堆棧的幀來表示方法的狀態(tài)、字節(jié)碼的操作對象、方法的參數(shù)空間及局部變量的空間,它的“程序計(jì)數(shù)器”為一個偽寄存器,是當(dāng)前所執(zhí)行指令的字節(jié)碼數(shù)組的一個指針。
java實(shí)現(xiàn)方法
java有兩種實(shí)現(xiàn)方法:java方法和本地方法。java方法是由java 語言編寫,編譯成字節(jié)碼,存儲在class文件中。本地方法是由其他語言(比如c,c++,或者匯編語言)編寫的,編譯成和處理器相關(guān)的機(jī)器代碼,保存在動態(tài)連接庫中,格式是各個平臺專有的,它是聯(lián)系java程序和底層主機(jī)操作系統(tǒng)的連接方法。java方法與平臺無關(guān),但是本地方法卻不是,運(yùn)行中的java程序調(diào)用本地方法時,虛擬機(jī)裝載包含這個本地方法的動態(tài)庫,并調(diào)用這個方法。通過本地方法, java程序可以直接訪問底層操作系統(tǒng)的資源,使程序和特定的平臺相關(guān),一個本地方法接口——java本地接口(jni)使得本地方法可以在特定的主機(jī)系統(tǒng)的任何一個java平臺上運(yùn)行。
j2me中的cdc移植的解決方案
我們選用的要移植的java虛擬機(jī)是sun公司提供的j2me對于數(shù)字電視領(lǐng)域cdc配置,該虛擬機(jī)是針對linux的軟件實(shí)現(xiàn)(用c語言編寫的虛擬機(jī),該虛擬機(jī)也稱為c virtual machine,簡稱cvm) 。java虛擬機(jī)規(guī)范并沒有強(qiáng)求java虛擬機(jī)必須支持任何特定的本地方法接口,但是sun 公司提供了本地方法接口(java native interface) ,是為移植所用。java程序通過調(diào)用本地方法和主機(jī)交互。
java虛擬機(jī)
虛擬機(jī)處于嵌入式操作系統(tǒng)os20 上,因此sun公司提供的java虛擬機(jī)中與底層操作系統(tǒng)相關(guān)的操作都應(yīng)該替換為os20的內(nèi)核函數(shù)。因此將sun公司提供的cdc移植到os20需要完成一些工作,比如: c語言中關(guān)于基本數(shù)據(jù)類型的數(shù)據(jù)位的修改,關(guān)于線程的創(chuàng)建機(jī)制(os20為任務(wù)) ,關(guān)于線程之間的同步、互斥,關(guān)于動態(tài)連接的實(shí)現(xiàn),關(guān)于本地方法的實(shí)現(xiàn)等,本節(jié)主要介紹關(guān)于本地方法的實(shí)現(xiàn)過程。
熱門點(diǎn)擊
- S7-200 PC Access V1.0(
- AMD發(fā)表ATI Mobility Rade
- 應(yīng)用傳統(tǒng)紫外光刻機(jī)進(jìn)行紫外壓印
- Maxim推出高效率D類音頻子系統(tǒng)MAX97
- FKI Logistex推出高速S-3000
- 威盛發(fā)布基于Pico-ITX板型的ARTiG
- Broadcom推出高清晰度視頻/音頻編碼/
- H.263視頻編碼的碼率控制算法及硬件實(shí)現(xiàn)
- TI新款多速率高速均衡器支持10G/8G接口
- 數(shù)碼復(fù)印機(jī)掃描成像單元的研究
推薦技術(shù)資料
- 羅盤誤差及補(bǔ)償
- 造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218 13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式
深圳服務(wù)熱線:13692101218 13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)

深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式