歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

把 UNIX 應用程序移植到 Linux

提示和技巧     介紹    您知道 Linux® 現在已是世界第二的服務器操作系統嗎?今天,您的應用程序在 Linux 上運行嗎?如果不是,那麼本文將給您些提示和技巧,在您把應用程序移植到 Linux 的時候為您提供指導。本文依據的是軟件工程師的經驗,這些工程師來自獨立軟件供應商(Independent Software Vendors,ISV)和全世界的 IBM® 實驗室,他們參與了許多把應用程序移植到 Linux 的項目。    首先我們描述 Linux 的特征和它在開發和管理應用程序中的具體價值。接著,我們將回顧重要問題,給出包含移植的主要步驟的移植指南。最後,我們以 IBM ~ zSeries™ 為例,為您演示從一個 Linux 平台移植到另一個平台是多麼的容易。(zSeries 這個詞指 S/390® 和 zSeries。)    Linux 的特征和價值    開放性意味著應用程序靈活性:Linux 是真正的開放系統,這使應用程序的可移植性成為現實。在很多情況下,一次簡單的重編譯就能把應用程序帶入 Linux。在優化您的開發和部署平台時,這種快速移植給您真正的靈活性。    多種硬件支持意味著平台靈活性:Linux 幾乎可在所有已知的處理器上運行,無論是 RISC 還是 CISC,32 位還是 64 位。它涵蓋全部類型的計算機,從大型機服務器(IBM ~ zSeries)到 PowerPC®、Sun® UltrASPARC、Alpha、PA-RISC 和 Intel 處理器,往下還有個人數字助理和嵌入式系統。特別是所有的 IBM ~ 品牌服務器都支持 Linux。    源代碼的可用性意味著自己動手的靈活性:與多數以二進制形式發行的商業軟件不同,Linux 內核的源代碼是可以獲得的。您可以拿到源代碼,然後修改和重編譯它,以滿足您的特定要求。調試和解決問題或增加新的特性不再依賴任何供應商。您可以自己作出需要的更改,只要它們符合 GNU General Public License 的規定。    嚴肅的設計意味著安全性:Linux 安全性是從內核上構建的,由於實現它的代碼要接受成千上萬的開發者的檢驗,所以弱點會被及早地發現。Linux 中建有許多路由和防火牆功能。    流行意味著存在技能:因為 Linux 在大學和學院中流行,所以多數新的畢業生有 Linux 經驗。您幾乎可以在任何城市的 Linux 用戶組中找到該地區能夠熟練應用 Linux 的人,而 Web 站點和因特網新聞組仍然是 Linux 使用指南信息和非正式技術咨詢的一種寶貴而有效的來源。    開始前需考慮的重要問題    移植到 Linux 可能是容易的、簡單的和直接的,特別是當您的 UNIX® 應用程序的編寫遵循公共的開放的標准。如果您認為移植到 Linux 是有吸引力的,那麼您需要分析移植中涉及的潛在花費和風險及減小它們的方法。    遷移會涉及巨額初始投資嗎?    成本 — 移植將涉及巨大的時間、人員和金錢的初期投入嗎?該項目會凍結所有的其它新工作並消耗整個團隊的資源嗎?需要提前支付大量資金費用和再培訓費用嗎?這是不是冒著極大風險的提議:一旦開始,要麼完成,要麼完全失敗?    移植到 Linux 是可管理的 — 本文的移植指南部分講述怎樣一步一步地移植而每個中間步驟本身是穩定的。這使您能根據您的優先級管理成本、人員和項目。這意味著您可以獨立完成每一步,在完成每步後重新估計您的優先級和目標。這樣的結果是風險更容易被控制而給您的公司帶來的影響更小。    成本有多大?需要花多少時間?    花費的時間和金錢 — 根據和移植有關的因素,全面估計您的應用程序:    編譯器的差異   您的代碼中與硬件相關的構造(例如字的長度或字節順序的相關性)   平台運行時服務   構建工具的相關性   數據庫、聯網和消息傳遞中間件的可用性   用戶界面的可移植性   測試案例和測試環境   移植的工作量和復雜程度直接和依賴系統和環境的代碼的多少成正比。如果您的應用程序只用標准的語言構造和標准的庫,那麼移植起來相對容易些。例如,Java® 應用程序常常屬於這一類。反之,如果您的應用程序是一個 C 程序,其中用到 Solaris 上不符合 POSIX 的服務或依賴在 Linux 上沒有的第三方產品,那麼移植難度將大大增加。通常,系統測試、配置的測試和軟件的安裝是重要步驟並且是移植的主要部分。    我的應用程序還能在原來的 UNIX 平台上運行嗎?    緩解 — 即使把開發轉移到 Linux 後,您仍可以保持原來的平台選擇,以滿足您的其它市場。移植到 Linux 通常意味著構建工具被 GNU 工具替代,平台相關的線程庫被符合 POSIX 的替代。在其它 UNIX 平台上,GNU 工具和庫都能用,使您能同時兼顧您原來的平台和 Linux。    C 和 C++ 應用程序的移植指南    以下技術討論來自 Solaris to Linux porting guide(1)  (ibm.com/developerworks/linux/library/l-solar/),這些討論也可被用於其它主流 UNIX 系統。    Linux 操作系統、構建工具和多數語言的編譯器可免費獲得並可從因特網上下載。為了開始移植,您將需要提供硬件和開發人員:    第 1 步 — 下載所需的開發工具和 Linux 分發版。   第 2 步 — 改用 Linux 開發工具但仍然運行 Solaris。這種方法使得轉變更平緩。   第 3 步 — 熟悉 Linux 操作系統但仍舊在 Sun 硬件上運行。   第 4 步 — 把應用程序移到目標 Linux 平台。   第 1 步:下載    以下列出的是所需的編譯器、構建工具和相關的在線文檔鏈接:   GCC(GNU Compiler Collection)工具套件包含一個 C 編譯器和一個 C++ 編譯器  gcc.gnu.org/releases.Html  在線文檔  gcc.gnu.org/onlinedocs/gcc-2.95.2/gcc_toc.html   Solaris GNU 編譯器和 make(gmake)實用程序  www.sunfreeware.com/  在線文檔  docs.sun.com/  gnu.org/manual/make-3.79.1/html_mono/make.html   Linux 可從以下 Linux 發行商那裡獲得。  Caldera www.caldera.com/  Red Hat www.redhat.com/  SuSE www.suse.com/  Turbolinux www.turbolinux.com/  — Linux 的 UltraSPARC 版本  Sun www.sun.com   第 2 步:為 Solaris 上的 Linux 構建您的 C/C++ 應用程序    安裝工具 — 先在 Solaris 上安裝 GNU 工具。由於 GNU 編譯器和 make 實用程序在 Solaris 和 Linux 上都能用,所以使用這些工具來嘗試初次構建您的 Linux 應用程序相對較容易。    轉換 makefile — 構建您的應用程序時請用 GNU gmake 實用程序,別用 Solaris make 實用程序。根據您的 makefile 中用到的構造,您可能遇到 GNU gmake 實用程序產生的錯誤消息,因為 GNU gmake 實用程序和 Solaris make 實用程序是有區別的。請用 make 工具文檔來幫助找出 makefile 中有問題的地方,然後對 makefile 作出所需的調整。    編譯和調試 — 當您通過修改您的 makefile、使之能被 gmake 使用後,把 makefile 中調用 C 編譯器的名字 cc 改為 gcc,C++ 編譯器的名字 CC 改為 g++。然後編譯該應用程序。您在構建中所遇到的錯誤消息,如果有的話,可被分成兩類:命令行選項問題和代碼問題。    找出由於 GNU 和 Sun 編譯器所接受的命令行選項有所不同而產生的消息。除了幾個基本選項(例如“-c”和“-g”),兩個編譯器能接受的多數選項是不同的。請參閱編譯器文檔,修改您的 makefile,以適應編譯器選項間的區別。    下一步,您可以處理剩下的與代碼有關的錯誤消息和警告。請參閱編譯器文檔,理解並解決由於編譯器之間的差別而產生的問題。    第 3 步:在 Linux 的 Sun UltraSPARC 版本上構建和測試您的應用程序。    如果所移植的應用程序依賴特定的 UltraSPARC 硬件,那麼這是移植過程中的重要階段。Solaris 開發者有機會熟悉 Linux 環境而不必放棄下層的 UltraSPARC 硬件,也不必修改應用程序中特定於硬件的部分。    安裝 Linux 環境 — 在 Sun UltraSPARC 上,安裝 Linux 和 GNU 實用程序。    編譯並調試運行時 API — 因為您在構建您的應用程序時用的是 GNU 實用程序,所以您在這步看到的區別限於 Solaris 和 Linux 之間的運行時應用程序編程接口(application programming interfaces,API)的區別。如果您想了解這些區別的更多信息,請參閱運行時接口部分(第 7 頁)。對應用程序作出所需的調整。    測試 — 當應用程序被完全地重新構建後,進行徹底的驗證測試。    第 4 步:在目標 Linux 平台上構建和測試您的應用程序。    安裝 Linux 環境 — 在目標硬件上安裝 Linux 和 GNU 工具。    復制並重新構建應用程序 — 把您的源代碼樹和 makefile 復制到新的 Linux 機器上並重新構建應用程序。如果您沒完成第 3 步,那麼您可能需要修改應用程序,以適應 Solaris 和 Linux 之間運行時 API 的區別。最後,如果您的應用程序包含任何特定於 UltraSPARC 的代碼,那麼,請作出所需的修改,以解決那部分代碼的問題。    修改安裝例程,以適應目標 Linux 平台。各種 Linux 平台(分發版)的配置和啟動文件的位置稍有不同。    測試 — 在結束移植前,對移植的應用程序運行徹底的驗證測試套件。另外,在目標 Linux 平台上測試配置和安裝。    警告!許可證和版權條款 — 當您移植到 Linux 並把您的應用程序和開放源代碼的庫鏈接時,請注意和這些庫有關的許可證和版權。至少來說,您新移植的 C/C++ 應用程序將被鏈接到 GNU C/C++ 運行時庫。這些庫受 GNU Lesser General Public License 的保護。如果您移植的軟件是專利性質的並且您想在用 GNU 工具構建該軟件後出售它,那麼謹慎的作法是完全理解 GNU General Public License 和 GNU Lesser General Public License(www.gnu.org/licenses/licenses.html)中列出的條款和條件。如果您的軟件和受 GNU 許可證保護的庫鏈接,那麼 GNU 許可證中的某些條款和條件將對您的軟件也適用。    Java 應用程序的移植指南    第 1 步 — 下載所需的開發工具。   第 2 步 — 在目標 Linux 平台上使用應用程序。   第 1 步:下載    把用 Java 寫的應用程序的開發從 Solaris 移到 Linux 是很簡單的。您移植任務所需的工具有:    Java 2 Developer Kit 的 Linux 版包括重建的 Java 虛擬機(Java Virtual Machine,JVM),該 JVM 有改進的即時(just-in-time)編譯功能 ibm.com/developerworks/java/jdk/linux130/   GCC 工具套件包含一個 Java 編譯器(GCJ)gnu.org/software/gcc/java/   第 2 步:在目標 Linux 平台上使用應用程序    無論 JVM 運行在什麼操作系統上,JVM 接受同樣的字節碼,所以您可以選擇在某個操作系統中編譯 Java 源文件,然後在另一操作系統中運行生成的類文件。例如,如果 Linux 是您的主要開發平台,那麼您在 Linux 上創建的 Java 類文件能同樣好地運行在 Solaris 或其它有兼容 JVM 的平台上。    運行時接口    盡管 Linux 和 Solaris 的絕大部分運行時接口是相同的,但有些地方還是有區別的。在您的應用程序中,每處用到 Linux 上沒有或不完全相同的 Solaris 接口的地方都需要被修改,否則您的應用程序無法被正確地構建。以下列出的是有區別的地方。    系統調用、C 庫和 C++ 庫    API 差別 — Solaris 內核提供邏輯卷支持、文件的訪問控制表(Access control list,ACL)的管理和系統審計日志功能。Linux API 中的這些功能(如果有的話)與 Solaris 上的並不相同。還有,在缺省情況下,Linux 不支持 STREAMS。在網絡中用到 STREAMS 的應用程序需要改用 POSIX 套接字。另外,不少 Linux 上也有的 Solaris API 使用不同的返回和參數類型,或在不同的頭文件中聲明。但是,這些差別往往不大,通常不需要在應用程序中修改代碼。    C++ 庫 — Solaris Forte 6 C++ Compiler 包含三個類庫:復數(-compat=4)、經典 iostream 和 Standard C++ Library(它包含標准的復數和 iostream)。GCC 只包含 Standard C++ Library。如果所移植的應用程序使用 -compat=4 復數庫或經典 iostream 庫,那麼應用程序需改用包含在 Standard C++ Library 中的那些庫的標准版本。作這種修改的額外好處是提高了應用程序的可移植性。    桌面:CDE 對 GNOME/KDE    圖形用戶界面(graphical user interface,GUI)— Solaris 的缺省桌面 Common Desktop Environment(CDE)並不包含在常見的 Linux 分發版中。對於要求 CDE 的應用程序或偏愛這種特別的 GUI 環境的用戶,CDE 的 Linux 版本可從 Xi Graphics(www.xig.com)以他們的 DeXtop 產品的形式獲得。在 Linux 上運行 DeXtop 使 Solaris 用戶置身於熟悉的 GUI 環境從而使他們很容易地適應轉移到 Linux 所帶來的變化。    DeXtop 要求使用也是由 Xi Graphics 提供的 Accelerated-X Linux X-Server。盡管 XFree86 Linux X-Server 可以和 DeXtop 一起運行,但是 Xi Graphics 並不正式支持在 XFree86 上運行 DeXtop。    線程和進程管理    線程/輕量級進程(Light Weight Process,LWP)支持 — Solaris 支持 POSIX 線程和特定於 Solaris 的線程模型。如果所移植的應用程序使用特定於 Solaris 的線程 API,那麼,最好修改應用程序,使其改用 POSIX 線程。POSIX 線程的可移植性更好而且 Linux 也支持它。    進程管理:/proc 文件系統 — /proc 偽文件系統提供了訪問內核數據結構的方便的方法。在 Solaris 上,/proc 包括關於活動的進程和線程的信息,/proc 還提供控制這些進程和線程的接口。Solaris 上的 /proc 控制接口通常被調試器用來跟蹤程序的執行。在 Linux 上,/proc 並不提供進程控制接口。在 Linux 上調試時,為了控制進程,請用 ptrace() API 而不是 /proc。    運行時要考慮的因素    系統管理:一般地說,管理 Linux 和管理任何其它 UNIX 操作系統非常相似。但在某些命令和任務的細節上是有差別的。IBM 和 UNIXGuide(unixguide.net/unixguide.cgi)已出版了比較圖表,該圖表不僅總結了 Solaris 和 Linux 之間的一些差別,還總結了 AIX 和其它版本的 UNIX 之間的差別。有經驗的 Solaris 系統管理員不會遇到多大困難就能得心應手地用 Linux。    其它第三方工具、實用程序和庫:許多 Solaris 上常見的流行的第三方工具、實用程序和庫在 Linux 上也有,例如:    Rational Rose 和其它 Rational 產品在 Solaris 和 Linux 上都能用。   Rogue Wave SourcePro C++ 庫在 Forte/Solaris 上能用,在 GCC/Solaris 和 GCC/Linux 上也能用。   Trolltech Qt C++ GUI 框架在 Solaris 和 Linux 上都能用。   由於 Linux 越來越受到歡迎,支持 Linux 的第三方供應商的數量在不斷增加。    尾數格式 — Sun SPARC 和 UltraSPARC 處理器用大尾數法格式存儲整數。如果您想把應用程序移植到使用小尾數法的 Linux 版本,例如 Linux/Intel,那麼您必須解決應用程序中所有的尾數格式的相關性,以使應用程序能正確運行。另一種方法是把應用程序移植到 Linux/PowerPC、zSeries 上的 Linux 或 Linux/UltraSPARC(它們都是大尾數法平台)而不是 Linux/Intel。    從 Linux 移植到 zSeries 上的 Linux    現在移植到一個平台上(比如說 Intel)的 Linux 已完成,那麼移植到其它硬件平台上的 Linux 怎樣呢?簡短的回答是:這很容易。    由於以下兩個原因,我們選擇以 zSeries 為例。    zSeries 是容易地從一種 Linux 移植到另一種 Linux 的好例子,因為 zSeries 體系結構和 Intel 體系結構完全不同。許多 ISV 先把他們的 UNIX 應用程序移植到 Intel 上的 Linux,這當然是自然的選擇。接著再把應用程序移植到 zSeries 上的 Linux 就不需要太多的努力。   由於 zSeries 在虛擬化領域的獨特功能及其硬件可靠性和可用性,所以,對您來說,zSeries 可能是有吸引力的平台。   為什麼要移植到 zSeries 上的 Linux?    zSeries 上的 Linux 是純粹的 Linux:它不是現有的 zSeries 操作系統上特別的 Linux,也不是為 zSeries 體系結構而修改的 Linux 的特別版本。zSeries 上的 Linux 的特征與其它平台上的 Linux 的特征相同,例如它是純粹的 ASCII 環境。對於所有的體系結構,絕大部分的 Linux 結構是相同的。和 zSeries 相關的修改使 Linux 能和 zSeries 內存、zSeries 磁盤及通信硬件進行通信。Linux 和應用程序的接口及 Linux 和用戶的界面並不受到影響。    應用程序的優點 — 您在 zSeries 上的 Linux 中的 Linux/UNIX 應用程序使您能訪問存儲在 zSeries 環境中的企業數據(後端集成)。這樣提高了響應速度,減少了不必要的數據復制。zSeries 出眾的容量、可伸縮性、可靠性、可用性和安全性使之成為企業服務器應用程序的完美部署平台。另外,在商務環境中,zSeries 上的 Linux 減少了服務器的數量,從而簡化操作並降低成本。    zSeries 上的 Linux 移植提示和技巧    這些提示和技巧是由一個 IBM 技術小組總結的,該小組負責把應用程序移植到 zSeries 上的 Linux。該文檔的全文可從 ibm.com/servers/esdd/articles/linux_s390/index.html 獲得。    小尾數法到大尾數法    S/390 是大尾數法系統。如果代碼要處理由小尾數法系統上產生的面向字節的數據,那麼這些代碼可能需要某種字節對換。這些數據可能需要被重新生成,如果這不可能(例如,共享的文件),那麼,應用程序需被修改,以適合處理小尾數法數據。如果原來的平台是大尾數法平台(例如 UltraSPARC、IBM ~ pSeries™……),那麼就不存在這個問題。    匯編代碼    匯編代碼需用 S/390 匯編器重寫。所有的操作碼需改成 S/390 操作碼。如果應用程序代碼使用匯編頭文件,那麼就需要該頭文件的 S/390 版本。S/390 匯編代碼的 Linux 版本使用 S/390 操作碼但遵守 GNU 匯編器的語法約定。您可以從 www.gnu.org/manual/gas-2.9.1/as.html 下載 GNU 匯編器手冊。    絕對地址和高階位    出於各種目的,一些應用程序使用硬編碼地址。一個可能的目的是在內存中定義固定的頁,用於分配或用 mmap() 來內存映射。mmap() 調用的一種形式允許頁固定。在這種模式中,mmap() 試圖使用在所請求的地址的存儲器來內存映射。在 Intel 平台上,這個地址可能被指定在 zSeries 上的 Linux 無法使用的地方。    每個平台很可能選擇不同的程序堆棧位置、系統庫、堆等等,所以在移植到其它系統的時候,硬編碼地址往往是糟糕的選擇。zSeries 尋址方式還忽略高階位,所以硬編碼地址 0x80000000(高階位是 1)將被轉換成 0x00000000,而這是 zSeries 上的保留地址。在生成地址時,對地址的算術運算也能使高階位變為 1。    如果應用程序因使用絕對地址而產生段違例或其它錯誤,那麼必須修改它。/proc/

/map 顯示一個活動的進程是怎樣使用它的尋址空間內的存儲范圍的。如果代碼必須使用絕對地址,那麼這個 map 可被用來查找還未被保留的地址范圍。    某些地址字段的高階位可能要用“AND”來變為 0(31 位模式位)。如果該地址被用於算術運算,那麼您必須這樣做。    應用程序開發工具    部署應用程序要求在目標服務器上有一套健壯的工具。在 ibm.com/servers/eserver/zseries/os/linux/ldt/ 的 Web 站點描述了將部署到 zSeries 上的 Linux 的 C/C++ 應用程序的開發或移植的幾個階段並給出在每個階段中有用的工具列表。    雜項    ptrace 和返回結構 — ptrace 和返回結構的使用與體系結構相關。    Configuration/build/Makefile 腳本或文件 — 很可能需要增加對 S/390 平台的支持。    proc 文件系統 — 有些區別,例如:    /proc/cpuinfo 格式不同  /proc/interrupts 未被實現  /proc/stat 不包含 INTR 信息    char 是無符號的 — 在 zSeries 上,字符類型 char 被缺省地解釋為無符號的 char,而在其它平台上,char 被解釋為有符號的 char。    Va_args — 在 Linux 的 zSeries 版本中,va_list 的定義與其它平台的不同。如果您的應用程序簡單地使用一個 C 賦值語句來復制 va_list,那麼在 Linux 的 zSeries 版本中,您必須換用 _va_copy 宏來復制。    總結    從任何 UNIX 移植到 Linux 都可以是容易的、簡單的而又直接的,特別是當您的 UNIX 應用程序的編寫符合常見的開放的標准時,更是如此。本文講述了您的應用程序在這個新環境中所能得到的好處,幫您考慮在移植到 Linux 的過程中將遇到的風險。把您的應用程序移植到 zSeries 上的 Linux 還有其它的好處,那就是使您能容易地訪問存儲在 zSeries 環境中的企業數據和應用程序。在總結時,我們想強調以下幾點:    從任何 UNIX 移植到 Linux 的項目可被合理安排,從而不影響您現有的任何業務。不同的應用程序的移植復雜性是不同的,且移植復雜性由所用的編程語言來決定。   所要求的技能是應用程序開發者的常用技能,所以您應該具備開始移植所需的所有技能。如果您需要幫助和支持,IBM 在全世界提供技術支持小組和移植中心來幫您移植應用程序。   詳細的移植指南包含寶貴的提示和技巧,幫您判斷您所移植的應用程序的復雜性。這是制定一致的移植計劃的基礎,使您的項目成功完成。   Linux 巨大的市場成功告訴我們,您的應用程序應該也能在 Linux 上運行。為什麼錯過這個機會?    移植經驗 — 其他人怎麼說    許多印刷的和因特網上的文章為那些考慮向 Linux 移植的人提供更多的深刻見解。當然,把應用程序移植到 Linux 的工作量會因應用程序的復雜程度、所用的編程語言等因素而有所不同。    ISV Sendmail(www.sendmail.com):“最近,Sendmail,Inc. 把我們的商業產品移植到 IBM 的基於 Linux 的 z900。我們用了六天時間就完成了最初的移植,性能要比預想的好。Sendmail,Inc. 服務小組與見多識廣的 IBM 員工緊密合作,這樣大大簡化了該項目。”    ISV BMC(www.bmc.com):“當我們拿了些基於 UNIX 的代碼並把它移植到 zSeries 上的 Linux 時,我們發現這不是真正的移植,”BMC 的 Linux 計劃的戰略主任 Fred Johannessen 這樣說。“我們只重新編譯了一下,它就能運行了。我們對自己說,‘不可能這麼簡單’,但實際上就是這麼簡單。”    ISV Pentaprise(www.pentaprise.de):“我們把我們的整個 ERP 系統從 Linux Intel 移植到所有的 IBM Linux 硬件平台,平均每個 IBM 平台在一天內就完成了,包括對 DB2 的支持。我們從 IBM 得到的組織上的、技術上的和市場支持是出色的。”— Reinhard Herrmann,CEO    SAP(www.sap.com/linux/),“自從 1999 年聖誕節以來,您可以在 Linux 上運行 mySAP Technology,用於關鍵任務環境中的生產,這使我們很自豪。Linux 正以難以置信的速度發展,它絕對滿足 SAP 的質量標准。由於 SAP 體系結構是與平台無關的,SAP 內核的移植相當容易。沒有一個 SAP 業務應用程序需被修改。”    ISV TRUSTIX(www.trustix.com)是挪威的 ISV,已成功地把一個叫 Trustix XPloy 的 Linux 系統管理(Linux Systems Management)框架移植到 Linux 的 S/390 版本。“移植到 Linux 的 S/390 版本比我們預想的要容易地多”,在不到一天的時間裡就完成移植的工程師這樣評論。這次移植完成後,除了 IBM ~ iSeries™,TRUSTIX 應用程序現在可在所有的 IBM 服務器上使用。    ISV SICS(www.sics.se)把 Prolog 編譯器從 Linux 移植到 Linux 的 S/390 版本。“先對配置腳本作修改,使其能夠識別正確的機器類型,再安裝所要求的庫和軟件的正確版本後,實際移植就是簡單的重編譯並且在不到一天的時間裡就完成了”,進行移植的工程師這樣評論。




 



Copyright © Linux教程網 All Rights Reserved