在Solaris上用GNU構建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許可證中的某些條款和條件就將沿用到您的軟件上。
在Linux上構建並測試應用程序
有一種不常見的情況,那就是被移植的應用程序有對SPARC硬件特定的附屬物,這時第2個步驟就變成移植過程中重要的中間階段了。它使 Solaris開發者能夠在不放棄底層SPARC硬件和不修改應用程序中特定於SPARC的部分的前提下熟悉Linux環境。請下載可以在您的Sun硬件上運行的Linux版本,然後安裝操作系統,使用所提供的GNU工具重新構建應用程序。因在第2個步驟中使用GCC構建了應用程序,所以在第2個步驟中將碰到的區別將被限制到Solaris和Linux之間的運行時應用程序編程接口(application programming interface,API)的區別。
為其它硬件構建和測試應用程序
在遷移過程的最後一個步驟中,首先請獲取並在您選擇的目標硬件上安裝Linux。可以直接使用Linux的服務器有IBM基於英特爾 IA32的產品系列(包括 NetVista、IntelliStation、Netfinity)和IBM eServer xSeries。IBM pSeries和zSeries也可以使用Linux。您可以低價購得或免費下載流行的用於x86的Red Hat Linux分發版,而且它在幾乎任何一台基於英特爾處理器的PC機上都很容易安裝和設置。此外,一定要安裝將使用的編譯器和工具。
其它注意事項
系統管理總的來說,管理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數據模型,它能夠帶來很好的兼容性。不久,英特爾安騰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之外的大端平台。