程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 從 Solaris 到Linux應用的移植

從 Solaris 到Linux應用的移植

編輯:關於JAVA

移植需要考慮的幾個相關的因素:

  

  o 編譯器語言

  o 代碼中與硬件相關的因素(如字長或字節尾附屬物)

  o 平台運行時服務

  o 構建工具附屬物

  o 可用的數據庫、聯網條件和消息傳遞中間件

  o 用戶界面可移植性

  o 測試案例和測試環境移植工作的規模和復雜性將與系統和環境相關的代碼直接成正比。如果應用程序只使用標准語言構件和標准庫,而且並不一定要在 SPARC 處理器上的 Solaris(Solaris培訓 ) 下運行,那麼移植就相對容易一點。舉例來說,Java 應用程序通常就屬於這個范疇。另一方面,如果應用程序是不使用 Solaris 上的 POSIX 服務的 C 程序,或者依賴於 linux(Linux教程 Linux培訓 ) 上沒有的第三方產品,那麼移植工作就困難多了。當您移植應用程序時,很多情況下您都是在將不可移植的方法和附屬物替換成可移植性更好的東西。您會將 Solaris 構建工具替換成 GNU 工具,並使用與 POSIX 相容的線程庫代替 Solaris 中對應的庫。因為這些工具和接口在 Solaris 上也能找到,所以您可以繼續自由地使用 Solaris,甚至在將開發平台移植到 Linux 之後繼續把握 Solaris 市場。

  

  步驟 1:在 Solaris 上用 GNU 工具(GCC/gmake)構建 C/C++ 應用程序

  

  GCC(GNU Compiler Collection)工具套裝包括一個 C 編譯器和一個 C++ 編譯器。因為 Solaris 和 Linux 中都有 GNU 編譯器和 make 實用程序,所以要用這些工具開始構建應用程序相對來說比較容易。首先,請您用上面的鏈接下載 GNU 工具,並將它們安裝在 Solaris 上。然後,請您試著用 GNU gmake 實用程序(而不是 Solaris make 實用程序)來構建應用程序。因為 GNU gmake 實用程序與 Solaris make 實用程序有所不同,所以根據您的 make 文件中使用的構件,您會碰到 GNU gmake 實用程序生成的一些錯誤消息。請使用上面的 make 工具文檔鏈接來幫您識別 make 文件中的問題區域,並相應地調整 make 文件。 一旦您將 make 文件修改為使用 gmake,請在 make 文件中將被調用的 C 編譯器的名稱從 cc 改為 gcc ,並將 C++ 編譯器的名稱從 CC 改為 g++ 。然後重新構建應用程序。您在構建過程中會碰到的錯誤消息(如果存在的話)可以分為兩類:命令行選項問題和代碼問題。請辨別出那些由於 GNU 和 Sun 編譯器接受的命令行選項中有所區別而產生的消息。除了少數幾個基本選項(如“-c”和“-g”)之外,編譯器接受的多數選項都不同。 下面,您就可以處理剩下與代碼相關的錯誤消息和警告信息了。處理這些消息的一種簡單的方法是將它們捕獲在一個文件中,並挨個檢查。請使用上面的編譯器文檔鏈接來了解和處理編譯器之間不同的問題。本文的 遷移工具和外包部分給出了一個公司列表,這些公司可以幫助您在應用程序中解決那些由於編譯器不同而產生的問題。 在移植到 Linux 和將應用程序鏈接到開放源代碼庫時,請注意與這些庫相關的許可證和版權。您新移植的 C/C++ 應用程序至少將被鏈接到 GNU C/C++ 運行時庫。這些庫受 GNU“copyleft”許可證的保護。如果您正在移植的軟件有專有屬性,而且您打算在用 GNU 工具構建該軟件之後馬上出售它,那麼您最好謹慎地全面理解 GNU 通用公共許可證和 GNU 次通用公共許可證(請參閱 參考資料)中規定的條款和條件。一旦您的軟件被鏈接到由這些許可證保護的庫上,GNU 許可證中的某些條款和條件就將沿用到您的軟件上。

  

  步驟 2:(可選的)在 SPARC 的 Linux 上構建和測試應用程序

  

  有一種不常見的情況,那就是被移植的應用程序有對 SPARC 硬件特定的附屬物,這時步驟 2 就變成移植過程中重要的中間階段了。它使 Solaris 開發者能夠在不放棄底層 SPARC 硬件和不修改應用程序中特定於 SPARC 的部分的前提下熟悉 Linux 環境。 請通過上面的鏈接之一來獲取可以在您的 Sun 硬件上運行的 Linux 版本。然後安裝操作系統,使用所提供的 GNU 工具重新構建應用程序。因為您在步驟 1 中使用 GCC 構建了應用程序,所以在步驟 2 中將碰到的區別將被限制到 Solaris 和 Linux 之間的運行時應用程序編程接口(application programming interface,API)的區別。

  

  步驟 3:在 Linux 上為其它硬件構建和測試應用程序

  

  在遷移過程的最後一個步驟中,首先請獲取並在您選擇的目標硬件上安裝 Linux。可以直接使用 Linux 的服務器有 IBM 基於 Intel-IA32 的產品系列(包括 NetVista、IntelliStation、Netfinity)和新的 IBM eServer xSeries。IBM pSeries 和 zSeries 也可以使用 Linux(請參閱 參考資料)。您可以低價購得或免費下載流行的用於 Intel/x86 的 Red Hat Linux 分發版,而且它在幾乎任何一台基於 Intel 的 PC 機上都很容易安裝和設置。SuSE 提供支持 IBM pSeries 和 zSerIEs 的 Linux 分發版。還有,您一定要安裝將使用的編譯器和工具。

  

  其它注意事項

  

  * 系統管理

  

  總的來說,管理 Linux 與管理任何其它 UNIX 操作系統都幾乎一樣。在某些具體的命令和任務上有一些區別,IBM 和 UNIXGuide 已經發布了比較圖,總結了這些區別,其中不僅包括 Solaris 和 Linux 之間的區別,還包括 AIX 和其它版本的 UNIX 之間的區別(請參閱 參考資料)。有經驗的 Solaris 系統管理員不必花費太大氣力就能夠完全適應 Linux。

  

  * 源代碼管理

  

  對於目前正在使用 Solaris 上的 Sun Forte TeamWare 或者 SCCS(Source Code Control System,源代碼控制系統)並希望繼續使用 SCCS 這種風格的源代碼管理系統的開發者來說,他們可以試著使用 GNU CSSC(Compatibly Stupid Source Control),開放源代碼 SCCS 的克隆版本。CVS(Concurrent Versions System,並發版本系統,請參閱 參考資料)是 Linux 上更常用而且倍受推崇的源代碼管理系統。

  

  * 其它第三方工具、實用程序和庫

  

  Solaris 上有很多常見、流行的第三方工具、實用程序和庫,它們都可以在 Linux 上使用。鑒於 Linux 的日益普及,支持 Linux 的第三方供應商的數目每天都在增長。

  

  * 64 位計算

  

  Red Hat 和很多其它發行商為 Compaq/DEC Alpha 提供了一種 64 位版的 Linux。您可以在 AlphaLinux Web 站點上了解關於這種 Linux 的其它信息。64 位的 Solaris 和 64 位的 Linux/Alpha 都使用 LP64 數據模型,它能夠帶來很好的兼容性。 不久,Intel Itanium(TM) IA-64 處理器也能使用一種 64 位版的 Linux。您可以在 IA-64 Linux Project Web 站點了解關於這種 Linux 的更多信息。一種支持 IBM 64 位 PowerPC 體系結構的 Linux 也在開發之中。 請注意,盡管 SuSE Linux/UltraSPARC 的內核運行在 64 位的模式中,但 SuSE Linux/UltrASPARC 目前並不支持 64 位的用戶空間應用程序。

  

  * 端(Endian)格式

  

  Sun SPARC 和 UltrASPARC 處理器以大端(Big Endian)格式存儲整數。如果您希望將應用程序移植到小端(Little Endian)版本的 Linux(如 Linux/Intel)上,那麼您就必須解決應用程序中任何與端格式有關的問題,應用程序才能夠正確運行。您也可以選擇讓應用程序使用 Linux/PowerPC、Linux/zSerIEs 或 Linux/SPARC,它們都是 Linux/Intel 之外的大端平台。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved