越是高級的語言,其編譯和運行的系統開銷就越大,應用程序也越大,運行越慢。因此一般來說,編程人員都會首選匯編語言和C語言,然后才會考慮C++語言或java語言。
但是隨著不斷增長的市場需求,很多嵌入式設備必須適應網上交流的需要,為了迎合此要求,考慮到開發Internet應用程序的便利,眾多開發者都發現使用Java語言是有意義的。另外隨著內存及32位處理器價格的下降,最初在嵌入系統使用Java太昂貴的問題不再有了,使用Java的成本開始減少。于是,Java在嵌入式領域迎來了新的機會。
Java語言的優點在于:它最初是由理解和信仰網絡計算夢想的一個小巧而專注的開發組設計的,雖然該語言最初的實施方案有點缺陷,但為了這個夢想,設計者們很少在技術上妥協,結果誕生了一種專為以相互通信為主要目的的設備而設計的語言。有許多技術上的優點都可能會引導嵌入系統開發者選擇Java.
優點1:與處理器無關
Java的第一個優點就是與處理器無關。傳統上,嵌入程序就是針對特定的微處理器設計并在其上運行的,而C語言程序的可移植性則可通過編譯或交叉編譯來保障。但是利用Java,一個程序可以存儲在一個系統上,而被下載并運行在完全不同的另一個系統上;設備可能從不同地方下載一些程序在一個處理器上運行,或者不同的處理器運行同一個程序,并通過網絡在相互間傳遞數據。使用Java,一個嵌入式系統就可能成為一個通用的通信設備,能下載并運行能完成特定任務的程序。
對嵌入式系統而言,這是一個新的模型,已經有一些開發者正在向它靠攏。例如,電視機頂盒的供給商已公布要在機頂盒內植入JVM,以使用戶能通過Java applets在他們觀看電視的同時接收到該電視節目的一些內容。例如在觀看足球比賽時,看到的支持內容就可以是對球員的技術統計,在看電影時,看到的支持內容就可以是演員的背景資料。
這是一個恰當的設計和實施模型,首先它可以使開發平臺的選擇更加靈活,無需在與目標相同的平臺上開發,也不用關心交叉編譯的問題,因為Java字節碼能在任何有JVM的操作系統中運行。其次,這種模型帶來的另一個優點是幾乎所有的檢測和調試可以獨立于目標設備來進行。雖然由于個別JVM有時有兼容性的問題,應該在所有將用到該程序的平臺上測試它。但一般來說,并不要高級而昂貴的、配備有邏輯探針、ICE以及其他調試工具的、針對目標平臺的開發環境。
優點2:提高開發速度和可維護性
Java是一種純粹面向對象的語言。Java類被組織成一個等級層次,在層次結構中,一個子類能夠繼續其超類的行為,并可用子類所具備的一些特有功能來擴展其超類的功能。對象模型是能定義對應真實事物的數據結構,使得程序的任務和任務如何實現二者之間的轉換變得基本上透明。
面向對象的設計和編程的優點在于其開發速度和代碼的可維護性,許多面向對象的開發都能通過利用和更改現存類庫來完成,而不是創造一個新的結構。這就使開發加快了,Sun‘s Java Workshop(一個完全用Java寫的IDE)的開發者能在幾個月內建立一個功能齊備的圖形IDE就是一個很好的證據。面向對象的方法還盡量使用自然的結構,使其有很高的可讀性,并且可輕易更改和加強。
優點3:安全性高
由于有了JVM,一個Java應用程序與操作系統或硬件完全隔絕,因此計算機病毒或其他作祟的代碼就很難獲得對設備的控制。虛擬機是主機設備和那些可能難以確定其質量和可靠性的軟件之間的一個保護層。
另外,Java設計者從該語言中去掉了指針變量的概念。Java不能任意訪問內存,只能讀寫有Java內存分配治理系統創建的對象。由于Java編譯器所強制的嚴格的分類機制,從理論上來說,訪問那些未分配給程序的內存區域是不可能的。這個限制使得寫惡意代碼變得非常困難了。當然,這個保護并不完善,有人已經在Java安全模型中找到漏洞,但是,JVM確實提供了一定的保護,使得幾乎不可能直接在硬件上運行代碼。
對Java applet施加的限制就更加嚴格了。由于Java applet被設計成從Internet上下載,因而被視為不可信任的代碼,除非它包括用戶已認定為可信任的主機的數字指紋。JVM在內存的一個稱之為sandbox的區域運行諸如applet這種不可信任的代碼。它給每個applet分配資源和特權,并將其限定在這些分配區域范圍中。除了這些限制,sandbox模型還施加如下限制: 禁止讀寫當地計算機文件系統; 網絡操作被限止,禁止不被信任的代碼建立與任何計算機的網絡連接,它也不能在任何小于1024的端口號上監聽和接受連接; 在運行不被信任代碼的線程組以外,禁止訪問或創建線程。
新聞熱點
疑難解答