作者
蔡學镛
廣泛地說
只要能執行 Java bytecode 者
就可以稱為 Java 平台(Java platform)
大致上
實現 Java 平台的方式有三種
分別是
Java 虛擬機器(Java Virtual Machine
JVM) Java 作業系統(Java Operating System) Java 晶片(Java Chip) 以下就此三種 Java 平台提出解說
並比較之
Java 虛擬機器所謂的 Java 虛擬機器
指的是在作業系統上執行的一種程式
此程式可以解讀 Java bytecode
並在作業系統的幫助下執行 Java bytecode
這樣的執行架構
大致上可以分成四層
分別是
第一層(最上層)的 Java bytecode 第二層的 Java 虛擬機器 第三層的作業系統 第四層(最底層)的晶片 晶片執行上面的作業系統
作業系統執行上面的 Java 虛擬機器
Java 虛擬機器執行上面的 Java bytecode
對於 Java bytecode 來說
它只接觸到 Java 虛擬機器
所以當然「誤以為」Java 虛擬機器就是它的平台
實例
Pentium III Chip + Windows
OS + Sun HotSpot Client VM + Together/ Java Application
Java 作業系統如果把 Java 虛擬機器整合進既有的作業系統中(例如
Mac OS X)
或是打造一個全新的作業系統專門執行 Java bytecode(例如
JOS)
這類能直接執行 Java bytecode 的作業系統也可視為 Java 平台
這樣的執行架構
大致上可以分成三層
分別是
第一層(最上層)的 Java bytecode 第二層的 Java 作業系統 第三層(最底層)的晶片 Java 晶片如果把 Java 作業系統和既有的晶片整合起來成為一組新的晶片(例如
ARM
arm
)
或者打造一個全新的 Java 專用晶片(例如
aJile aJ
)那麼此一種類的晶片也是 Java 平台
這樣的執行架構
大致上可以分成兩層
分別是
第一層(最上層)的 Java bytecode 第二層(最底層)的 Java 晶片 三種方式的比較這三種都是 Java 平台
各有優缺點
很難說那一種方式比較好
必須看你的需求而定
透過虛擬機器來執行 Java 是最常見的架構方式
一方面是因為虛擬機器的 Java 平台最容易被實作出來(相較於 Java 作業系統和 Java 晶片而言)
二方面是因為只要有虛擬機器就可以讓在不更動實體平台(作業系統和 CPU)的情況下多了執行 Java 程式的功能
目前
多數主流的實體平台(包括 Windows
Linux
Mac
Solaris
PalmOS
EPOC
)都已經有 Java 虛擬機器了
虛擬機器的架構因為分了太多層級
所以效率上當然會比較差
這是虛擬機器架構最為人所抨擊的地方
但是由於虛擬機器的技術一直在進步
所以執行效率一直都有持續的提升
目前已經相當逼近 Java 作業系統的架構方式
所以虛擬機器的方式應該會繼續成為 PC 上的 Java 平台主流
一般來說
透過 Java 作業系統來執行 Java bytecode
效率會比虛擬機器的方式好
所以 Java 虛擬機器被整合進作業系統中
來提升該作業系統的附加價值
這種作法有可能會成為一種趨勢(例如 MacOS X 就把 Java 和作業系統作了很好的整合)
但如果設計一套只能執行 Java 的全新作業系統
可能不容易成功
因為全新的作業系統勢必面臨驅動程式(device driver)不足的嚴重困擾
因為此原因
加上事實證明作業系統的 Java 平台
比虛擬機器的 Java 平台效率提升不如預期多
所以 IBM 和 Sun 合作的純 Java 作業系統「JavaOS」計畫已經停擺
利用晶片的方式來實作 Java 平台
對於 Java 程式的執行速度會有很大的提升
畢竟硬體的速度比軟體快許多
這種方式以後會成為嵌入式系統的主流
許多 Java 的 IA 產品(例如
Set
Top Box)都會開始使用 Java 晶片
但是這種方式已經把 Java 整個變成硬體平台
不適合再稱為跨平台了
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19489.html