Java虛擬機用于數(shù)字電視機頂盒研究與實現(xiàn)

J2ME中的CDC移植的解決方案
來源:中國有線電視 更新日期:2007-10-15 作者:佚名
內(nèi)容導航:  分頁瀏覽 | 全文瀏覽

   執(zhí)行引擎處于Java虛擬機的核心位置,它的行為由指令集所決定,其主要作用就是解釋字節(jié)碼(即運行經(jīng)過編譯后的Java程序的class文件),不同的執(zhí)行引擎實現(xiàn)可能非常不同。由軟件實現(xiàn)的虛擬機的執(zhí)行引擎分為一次性解釋字節(jié)碼、即時編譯器和自適應優(yōu)化器,由硬件芯片構成的虛擬機用本地方法執(zhí)行Java字節(jié)碼,它的執(zhí)行引擎是內(nèi)嵌在芯片里。

    Java虛擬機相當于一個堆棧計算機,它在指令間傳送信息時不使用任何物理寄存器,而使用堆棧的幀來表示方法的狀態(tài)、字節(jié)碼的操作對象、方法的參數(shù)空間及局部變量的空間,它的“程序計數(shù)器”為一個偽寄存器,是當前所執(zhí)行指令的字節(jié)碼數(shù)組的一個指針。

    Java實現(xiàn)方法

    Java有兩種實現(xiàn)方法:Java方法和本地方法。Java方法是由Java語言編寫,編譯成字節(jié)碼,存儲在class文件中。本地方法是由其他語言(比如C,C++,或者匯編語言)編寫的,編譯成和處理器相關的機器代碼,保存在動態(tài)連接庫中,格式是各個平臺專有的,它是聯(lián)系Java程序和底層主機操作系統(tǒng)的連接方法。Java方法與平臺無關,但是本地方法卻不是,運行中的Java程序調(diào)用本地方法時,虛擬機裝載包含這個本地方法的動態(tài)庫,并調(diào)用這個方法。通過本地方法,Java程序可以直接訪問底層操作系統(tǒng)的資源,使程序和特定的平臺相關,一個本地方法接口——Java本地接口(JNI)使得本地方法可以在特定的主機系統(tǒng)的任何一個Java平臺上運行。

    J2ME中的CDC移植的解決方案

    我們選用的要移植的Java虛擬機是Sun公司提供的J2ME對于數(shù)字電視領域CDC配置,該虛擬機是針對Linux的軟件實現(xiàn)(用C語言編寫的虛擬機,該虛擬機也稱為CVirtualMachine,簡稱CVM)。Java虛擬機規(guī)范并沒有強求Java虛擬機必須支持任何特定的本地方法接口,但是Sun公司提供了本地方法接口(JavaNativeInterface),是為移植所用。Java程序通過調(diào)用本地方法和主機交互。

    Java虛擬機

圖2Java虛擬機的位置

圖2Java虛擬機的位置

    虛擬機處于嵌入式操作系統(tǒng)OS20上,因此Sun公司提供的Java虛擬機中與底層操作系統(tǒng)相關的操作都應該替換為OS20的內(nèi)核函數(shù)。因此將Sun公司提供的CDC移植到OS20需要完成一些工作,比如:C語言中關于基本數(shù)據(jù)類型的數(shù)據(jù)位的修改,關于線程的創(chuàng)建機制(OS20為任務),關于線程之間的同步、互斥,關于動態(tài)連接的實現(xiàn),關于本地方法的實現(xiàn)等,本節(jié)主要介紹關于本地方法的實現(xiàn)過程。

 標簽:
廣告聯(lián)系:010-82755684 | 010-82755685 手機版:m.pjtime.com官方微博:weibo.com/pjtime官方微信:pjtime
Copyright (C) 2007 by PjTime.com,投影時代網(wǎng) 版權所有 關于投影時代 | 聯(lián)系我們 | 歡迎來稿 | 網(wǎng)站地圖
返回首頁 網(wǎng)友評論 返回頂部 建議反饋
快速評論
驗證碼: 看不清?點一下
發(fā)表評論