楊 迎
(黑龍江工商學院,黑龍江 哈爾濱 150001)
嵌入式系統早在1971年微處理器問世之后就開始了研發。目前,嵌入式系統已經得到了較全面的發展。隨著Internet技術在各領域的結合更加深入,嵌入式系統的應用也更加廣泛。例如:在當下的通信領域,電視、電話等都應用了嵌入式系統,而在其他領域的應用也有很多。Java技術是在1991年加利福尼亞州門洛帕克市被稱為Green的工作小組所提出的應對嵌入式系統,主要是在家電產品上應用的一項技術,當時這一技術還不稱為Java,而是在后期經過長時期的不斷改進、優化后正式推出的Java技術,也可以稱之為Java語言。因為其是一種編程語言,主要用于編寫嵌入式系統,但同時也是一種應用開發平臺。而Java技術之所以被嵌入式系統廣泛應用,是因為C++語言過于龐大復雜,這不適應于嵌入式系統的編寫,所以在其基礎上進行改進,取其精華去其糟粕,形成了被嵌入式系統廣泛應用的Java技術。因此,Java技術的問世是計算機領域發展的必然趨勢,也是對C++語言的進一步優化。
嵌入式系統與其他的計算機處理系統相比,有著獨特的優越性,也有不足。其不能實現大容量的存儲,但可以在諸多方面滿足用戶的實際需求,例如功能、成本、功耗等。其具備較強的專用性,通常是以應用為中心所展開的程序編寫,通過對軟件及硬件的靈活裁剪以及重組,對不同應用設置特定系統,可以更好地保障用戶體驗,節約成本。同時,嵌入式系統通常也被應用在對實時性要求較高的環境中,其可以對用戶的干預及時作出反應,并且以最快的速度處理需求。部分嵌入式系統的應用肩負重要使命,往往承擔著重要責任,例如國家機密等。這類系統往往對可靠性的要求極高,且其自身具有可封裝性、獨立性,是一個獨立的子系統,并隱藏在目標設備的內部系統中,避免了外界的過多接觸,也就一定程度地增大了其可靠性。
Java技術在嵌入式系統中的應用,首先要輔助其進行系統開發,構建代碼層、Java類庫、本地類庫、平臺層、硬件層等結構,確保嵌入式系統可以滿足用戶的實際需求。而各結構的實際作用如下。
代碼層:用戶利用Java語言開發的程序;Java類庫:用戶在應用程序層,也就是代碼層,會用到一些預先定義好的應用程序接口,這些接口存在于Java類庫中,在用戶編寫Java程序時被調用。
本地類庫:通常被Java程序所使用,多應用于Java虛擬機和實時多任務操作系統,存放位置為嵌入式設備中。
平臺層:該層的形成主要由兩部分組成,一部分為Java虛擬機,核心是管理Java文件,對其內存的數據信息進行轉儲,另一部分為實時多任務操作系統,核心是為前者提供基礎運行平臺。
硬件層:該層在嵌入式系統運行中發揮著重要作用,為主要的硬件結構,主要通過實時多任務操作系統,對Java虛擬機運行、網絡連接等進行管理,并且解決運行中出現的異常問題[1]。
Java技術在嵌入式系統中的應用具備著諸多優勢,其主要優勢如下:可以無視網絡需求,在無網絡的情況下正常運行;可以在多個處理器上運行,以滿足各種需求;可以對Java程序源代碼進行編譯,以特定的指令應用到目標設備中;可以對Java運行包進行高度定制,以小體積滿足運行要求[2]。
Java技術之所以被嵌入式系統廣泛應用,正是因為研究人員長時期的創新、改進,才使其趨于完善,得以滿足嵌入式系統的實際需求。而在其完善之前,嵌入式系統主要應用的是符號語言及C語言,但是在實際應用中獲得成果的同時,也帶來了較大的問題,例如:(1)難以處理嵌入式系統的異構性。嵌入式系統的中央處理器類型較多,且運用的操作系統也有所不同,這使其具備較強的異構性,而C語言及符號語言對異構性不能有效地處理。而反觀Java技術,其自身的兼容性特點決定了其能夠在各種環境下進行應用,即便是操作系統存在異構性問題的情況下,也可以通過適當的代碼調整來滿足兼容使用的需求。(2)難以有效維護系統。在嵌入式系統的開發中應用這兩種語言,仍是依照著以往的開發方式,難以對其產生較有利的幫助,進而不能較好地進行系統維護。Java技術相比較其他的開發語言和方式而言,其維護難度和維護成本更低,且Java技術自身的多樣性也決定了其在實際應用過程中可以面臨多種選擇途徑,這也意味著在維護過程中具有較高的靈活性,能夠滿足不同的維護需求。(3)操作復雜。這種應用方式,需要多種平臺的協助,共同支持系統開發,進而增加了復雜性。操作難度低本身就是Java技術的優勢之一,Java技術在實際應用過程中無需多平臺同步應用,單一平臺即可完成全部的操作流程。簡單化的操作方式也決定了Java技術在系統開發方面具有天然的優勢,使用Java技術進行系統開發的實際難度也要低于其他方式。(4)程序轉移較困難,在這兩種語言的應用中,由于系統的自身特性,會使一些操作程序難以實現平臺間的轉換,而Java語言在嵌入式系統中可以發揮較好作用,有效解決這些問題,尤其是其簡單性、健壯性、安全性等特點更是使其具備較大優勢,也為嵌入式系統的推廣提供了保障。具體作用如下。
國家一直以來都高度重視通信技術,力求使其為各行業發展提供更有力的保障,而隨著技術研發愈加深入,通信設備也取得了較多的成果。尤其是應用Java技術的嵌入式系統成為一個具備通用性的通信設備,從根本上解決了操作系統不兼容的問題。在過去的嵌入式程序中,需要依靠微處理器實現對程序的設計,而Java技術對處理器沒有任何要求,在嵌入式系統的實際應用中不需要考慮處理器的因素,就可以使程序在其他系統上存在,實現程序的下載,進而滿足各種不同應用環境的實際需求。
系統的實時性本就是一項重要的特性,而嵌入式系統更是會被應用到一些實時性要求較高的環境中,所以工作人員對嵌入式系統的實時性要求較高。在過去,應用C語言的嵌入式系統具有一定的實時性,但同時也存在著很大的問題。例如:C語言龐大復雜的特性導致開發平臺煩瑣等。Java技術可以有效地解決這些問題,可以提高嵌入式系統的運行速度,并且可以在規定時間內,以最快的速度做出反應,完成資源分配、任務調度等工作。同時,隨著時代發展,實際需求也處于不斷變化中,Java技術的應用可以適應這樣多變的環境,降低內存管理系統的應用,提高軟件的開發效率,滿足時代對實時性的需求,使嵌入式系統可以在市場競爭中脫穎而出。
在嵌入式系統的開發中,利用C語言、符號語言提高不了開發效率,而Java語言作為C語言的改進體,是一種面向對象的編程語言,具有代碼和數據封裝體的諸多優點,例如繼承性、多態性等。這使嵌入式系統的開發只需采用或者修改Java類庫就可以實現,從而減少嵌入式系統的開發時間,提高開發效率,加快生產投放[3]。
Java語言在設計之初,摒棄了C語言諸多復雜的概念,例如指針變量等。這樣的做法對Java有了一定的約束,使其難以隨意訪問除了Java內存分配的對象外的其他內存。同時,Java編譯器在分類機制上有著較嚴謹的特性,這使得其基本上無法實現對未分配內存的訪問,一定程度上杜絕了惡意代碼的編寫。Java程序的運行是在Java虛擬機上完成的,與操作系統處于徹底隔離的狀態,計算機發生異常,不會影響Java程序,從而大幅度提高了嵌入式系統的安全性[4]。
當下,實現嵌入式系統的網絡化,簡便、快速地聯網是非常必要的。過去利用C語言等可以實現嵌入式系統聯網,但是需要開發人員耗費大量的精力學習如何使用附件包。Java技術的應用可以利用內置的網絡支持,省去了學習附件包的流程,且具備較強的網絡編程,可以減少時間等成本的投入,增強了系統的聯網功能[5]。
從嵌入式系統的生命周期角度來看,Java技術的應用從某種角度上實現了對開發和維護環節的全面簡化。考慮到嵌入式系統的目標環境需要建立在某一虛擬機上,故大幅度降低了代碼的編寫和調試難度。從目前的發展趨勢來看,嵌入式系統在未來將與大量的外接設備進行連接,系統的整體復雜程度將進一步提升,而Java技術的升級難以保證其在系統的整個生命周期中都可以起到決定性作用。與此同時,伴隨著外接設備的持續增加,遠程管理模塊的構建將成為可能,這也意味著在原有系統上增加全新的功能成為易事。這也在某種程度上提高了開發效率和可維護性。
隨著嵌入式技術的成熟以及系統本身變得更大、更優化,很多人開始對把一個產品的模塊甚至是全部的應用程序用到另一個產品上產生興趣。這種可重新利用性使得“一次開發,多次利用”成為可能。Java環境使得一個模塊只要做很少的工作就可以適應多個項目和平臺。當客戶需要一個新的目標板時,采用新的硬件(CPU或外設)和軟件,或者使用不同的Linux都可以通過移植實現。
源代碼的應用在本質上可以有效提升代碼的重復利用能力。在實際應用Java技術的過程中,無論是已經設計完成的界面、虛擬機,還是底層硬件,都可以通過源代碼優化的方式與嵌入式系統進行兼容使用。從某種角度來看,其雖然無法從根本上進行移植,但對于功能應用而言,基于本次環境而開發代碼則是一種最優選擇,且無論是安全特性還是開發效率都能夠有所保障。與之相比,Java技術的基本庫本身就能夠提供相關代碼內容,這對于促進開發過程有著直接積極的影響。
除此之外,Java技術對網絡連接以及硬盤沒有較嚴格的要求,甚至于在缺乏這兩者的情況下依然可以運行,更是為系統帶來了諸多積極作用。例如:一是Java技術可以使嵌入式設備的內存管理開發變得簡便;二是由于連接網絡的特性,使嵌入式系統的操作使用變得簡便;三是Java技術可以及時、準確地發現異常、錯誤信息,并及時處理;四是具備較強的靈活性,在嵌入式系統還沒有開啟的時候,用戶可以對設備進行重新制定以及配置,充分利用了Java技術的動態性。
綜上所述,Java技術在嵌入式系統中的應用有著至關重要的意義,可以發揮較好的作用效果,尤其是針對C語言、符號語言而言,更是具備較大的優勢,可以最大限度地推動嵌入式系統的發展,使其應用更加廣泛。同時,Java技術的研發初衷就是為了更好地解決C語言在嵌入式系統中的應用問題,所以其有著較全面的特點,例如可靠性、安全性和穩定性等,可以充分解決以往系統開發中存在的問題。該項技術是一種編程語言,也是一個平臺,在實際應用中產生問題難以避免,所以技術研發人員要不斷進行優化創新,確保其可以滿足時代需求以及用戶需求,為嵌入式系統的發展提供堅實的基礎。