對(duì)于實(shí)現(xiàn)Java平臺(tái)的三種方式的詳細(xì)解析
廣泛地說,只要能執(zhí)行 Java bytecode 者,就可以稱為 Java 平臺(tái)(Java platform)。大致上,實(shí)現(xiàn) Java 平臺(tái)的方式有三種,分別是:
Java 虛擬機(jī)器(Java Virtual Machine,JVM)
Java 操作系統(tǒng)(Java Operating System)
Java 芯片(Java Chip)
以下就此三種 Java 平臺(tái)提出解說,并比較之。
Java 虛擬機(jī)器
所謂的 Java 虛擬機(jī)器,指的是在操作系統(tǒng)上執(zhí)行的一種程序,此程序可以解讀 Java bytecode,并在操作系統(tǒng)的幫助下執(zhí)行 Java bytecode。這樣的執(zhí)行架構(gòu),大致上可以分成四層,分別是:
第一層(最上層)的 Java bytecode
第二層的 Java 虛擬機(jī)器
第三層的操作系統(tǒng)
第四層(最底層)的芯片
芯片執(zhí)行上面的操作系統(tǒng),操作系統(tǒng)執(zhí)行上面的 Java 虛擬機(jī)器,Java 虛擬機(jī)器執(zhí)行上面的 Java bytecode。對(duì)于 Java bytecode 來說,它只接觸到 Java 虛擬機(jī)器,所以當(dāng)然「誤以為」Java 虛擬機(jī)器就是它的平臺(tái)。
Java 操作系統(tǒng)
如果把 Java 虛擬機(jī)器整合進(jìn)既有的操作系統(tǒng)中(例如:Mac OS X),或是打造一個(gè)全新的操作系統(tǒng)專門執(zhí)行 Java bytecode(例如:JOS),這類能直接執(zhí)行 Java bytecode 的操作系統(tǒng)也可視為 Java 平臺(tái)。這樣的執(zhí)行架構(gòu),大致上可以分成三層,分別是:
第一層(最上層)的 Java bytecode
第二層的 Java 操作系統(tǒng)
第三層(最底層)的芯片
Java 芯片
如果把 Java 操作系統(tǒng)和既有的芯片整合起來成為一組新的芯片(例如:ARM 7、ARM 9),或者打造一個(gè)全新的 Java 專用芯片(例如:aJile aJ-100)那么此一種類的芯片也是 Java 平臺(tái)。這樣的執(zhí)行架構(gòu),大致上可以分成兩層,分別是:
第一層(最上層)的 Java bytecode
第二層(最底層)的 Java 芯片
三種方式的比較
這三種都是 Java 平臺(tái),各有優(yōu)缺點(diǎn),很難說那一種方式比較好,必須看你的需求而定。
透過虛擬機(jī)器來執(zhí)行 Java 是最常見的架構(gòu)方式,一方面是因?yàn)樘摂M機(jī)器的 Java 平臺(tái)最容易被實(shí)作出來(相較于 Java 操作系統(tǒng)和 Java 芯片而言),二方面是因?yàn)橹灰刑摂M機(jī)器就可以讓在不更動(dòng)實(shí)體平臺(tái)(操作系統(tǒng)和 CPU)的情況下多了執(zhí)行 Java 程序的功能。目前,多數(shù)主流的實(shí)體平臺(tái)(包括 Windows、Linux、Mac、Solaris、PalmOS、EPOC...)都已經(jīng)有 Java 虛擬機(jī)器了。
虛擬機(jī)器的架構(gòu)因?yàn)榉至颂鄬蛹?jí),所以效率上當(dāng)然會(huì)比較差,這是虛擬機(jī)器架構(gòu)最為人所抨擊的地方。但是由于虛擬機(jī)器的技術(shù)一直在進(jìn)步,所以執(zhí)行效率一直都有持續(xù)的提升。目前已經(jīng)相當(dāng)逼近 Java 操作系統(tǒng)的架構(gòu)方式,所以虛擬機(jī)器的方式應(yīng)該會(huì)繼續(xù)成為 PC 上的 Java 平臺(tái)主流。
一般來說,透過 Java 操作系統(tǒng)來執(zhí)行 Java bytecode,效率會(huì)比虛擬機(jī)器的方式好。所以 Java 虛擬機(jī)器被整合進(jìn)操作系統(tǒng)中,來提升該操作系統(tǒng)的附加價(jià)值,這種作法有可能會(huì)成為一種趨勢(例如 MacOS X 就把 Java 和操作系統(tǒng)作了很好的整合)。但如果設(shè)計(jì)一套只能執(zhí)行 Java 的全新操作系統(tǒng),可能不容易成功,因?yàn)槿碌牟僮飨到y(tǒng)勢必面臨驅(qū)動(dòng)程序(device driver)不足的嚴(yán)重困擾。因?yàn)榇嗽?,加上事?shí)證明操作系統(tǒng)的 Java 平臺(tái),比虛擬機(jī)器的 Java 平臺(tái)效率提升不如預(yù)期多,所以 IBM 和 Sun 合作的純 Java 操作系統(tǒng)「JavaOS」計(jì)畫已經(jīng)停擺。
利用芯片的方式來實(shí)作 Java 平臺(tái),對(duì)于 Java 程序的執(zhí)行速度會(huì)有很大的提升,畢竟硬件的速度比軟件快許多。這種方式以后會(huì)成為嵌入式系統(tǒng)的主流,許多 Java 的 IA 產(chǎn)品(例如:Set-Top Box)都會(huì)開始使用 Java 芯片。但是這種方式已經(jīng)把 Java 整個(gè)變成硬件平臺(tái),不適合再稱為跨平臺(tái)了。
來源:ks990次