arm linux移植jvm,JVM的ARM移植.PDF
JVM的ARM移植
JVM 的 ARM 移植
當(dāng)今JVM 種類很多,如IBM JVM 、MS JVM 等等。但要把它用到 ARM 上,并非易事。
經(jīng)過測(cè)試和對(duì)比,最終還是選擇了 SUN 的JVM,其中,J2ME (Java 2 Platform Micro
Edition)是專為移動(dòng)設(shè)備設(shè)計(jì)的,在移動(dòng)通信設(shè)備上已經(jīng)有了很廣的應(yīng)用,非常適合我
們?cè)谇度胧街惺褂谩2ME 根據(jù)硬件資源的限制,分為CLDC (Connected Limited Device
Configuration)和 CDC (Connected Device Configuration),無論是 CLDC 還是 CDC,其
核心都是 Java 虛擬機(jī)。CLDC 采用了 KVM,它是一個(gè)真正的最小的而又基本上完整的 Java
虛擬機(jī),小到可以裝入幾十 KB 的內(nèi)存中。CDC 則采用了 CVM,它是一個(gè)具有完整的 J2SE
1.3 VM 支持能力的Java 虛擬機(jī),因此也更適合使用、更有效,但又比標(biāo)準(zhǔn)的J2SE VM 小 。
作為一個(gè)全功能的 Java 虛擬機(jī),CVM 幾乎支持 J2SE VM 的所有先進(jìn)特性,包括最底層的調(diào)
錯(cuò)處理和本地語言接口 。
SUN 的JVM 開源后,作為 JAVA 開發(fā)社區(qū)的一個(gè)項(xiàng)目,為避免版權(quán)問題,J2ME 改名為
phoneME 。CLDC 對(duì)應(yīng) phoneME Feature,而CDC 對(duì)應(yīng) phoneME Feature,虛擬機(jī)則稱為
CVM 。由于我們有較為豐富的硬件資源,并且為今后更為復(fù)雜的開發(fā)考慮,我們選擇了
phoneME Feature,本文的描述,也是針對(duì) phoneME Feature 展開的。
一、CVM SYSTEM MAP
首先,讓我們來看張圖。
這張圖很好表述了CVM 的整個(gè)運(yùn)行過程。遺憾的是本文不打算變成嬰兒讀物,對(duì) JVM
的實(shí)現(xiàn)不打算加以介紹,其實(shí)SUN 官方網(wǎng)站上有份 《JAVA 虛擬機(jī)規(guī)范》,比我在這嘮叨
一半天來得給系統(tǒng)準(zhǔn)確 。同時(shí)這張圖來 自Mark Lam 的Blog,他是一位SUN 的工程師,在
CVM 的小組中工作,他對(duì)這張圖有了很全面的說明,但掃興的是我不打算在這里引用,因
為我不愿就此把這篇文章變成虛擬機(jī)實(shí)現(xiàn)的專著……
二、如何獲得源碼
JAVA 開源后第一個(gè)受益的就是 J2ME,我也希望你能稱為受益者 一。首先,你得獲
取到最新的源代碼:
# svn c o https ://phon eme ./svn /phone me /comp one nts/cldc/trunk cldc
# svn c o https ://phon eme ./svn /phone me /comp one nts/pcsl/trunk pcsl
# svn c o https ://phon eme ./svn /phone me /comp one nts/mi dp/trunk mid p
# svn c o https ://phon eme ./svn /phone me /comp one nts/cdc/trunk c dc
# svn c o https ://phon eme ./svn /phone me /comp one nts/to ols/trunk too ls
# svn c o https ://phon eme ./svn /phone me /comp one nts/jum p/trunk jump
# svn c o https ://phon eme ./svn /phone me /comp one nts/abst racti ons/trunk
abstr action s
三、編譯
一般地,你直接 make 就可以了,如果報(bào)錯(cuò),可能是你系統(tǒng)缺少一些環(huán)境變量,如
JDK_HOME 、HOST_CC 等,具體請(qǐng)參閱官方網(wǎng)站上的 《CDC Build System Guide》 。一帆風(fēng)
順的話,不出10分鐘 (對(duì)我的破機(jī)子來說),你就能編譯出CVM 了。不過我估計(jì)你會(huì)出許
多問題,譬如說少了某些Linux庫文件或某些工具,這個(gè)和你編譯時(shí)使用的系統(tǒng)相關(guān),因
人而異,我用的是 Ubuntu 7.10,少了什么系統(tǒng)都會(huì)很友善的提示你,并告訴你在線安裝的
方法,裝完重新make 吧,總能成功的 。雖然CVM 支持 JAVA 1.4的規(guī)范,但你仍然可以
用最新的J2SE 1
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的arm linux移植jvm,JVM的ARM移植.PDF的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: msf生成linux shellcode
- 下一篇: linux关闭硬件蜂鸣器,Linux T