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

提升 Linux 開發者的能力

  Matt Davis ([email protected]) Linux Power 技術顧問,IBM 在基於 POWER 的系統中開始使用企業版 Linux 級別:中級 64 位 POWER 體系結構是公認的高性能、可靠而且有用的企業平台,它為 UNIX 和 Linux 應用程序開發者提供了新的選擇。不管是誰,只要有在其他平台上使用 AIX 或者 Linux 的經驗,就可以受益於與世界頂尖的 IBM 硬件 POWER 相結合的開放源代碼社區強有力的基礎。 從價格適中的 2- 路服務器到垂直擴展的超級計算機再到世界頂級的 JS20 BladeCenter,基於 POWER 的機器具備所有的大小和等級,始終領先於人們對企業級硬件的預期。與動態邏輯分區(Dynamic Logical Partitioning)等創新配置一道,Linux 或 AIX 的可用為應用程序開發和部署提供了一個獨特的依賴於 POWER 體系結構性能的平台。本文將為您提供構造大部分代碼和 POWER 平台所需要的工具和知識。 Linux 發行版本 可選范圍廣是 Linux 社區為人們所津津樂道的一個強大之處。POWER 版 Linux 主要由 Red Hat Linux 和 SUSE Linux 這兩家企業 Linux 廠商提供。這兩種 Linux 發行版本各成體系,各有所長,都提供了 Linux 開發者所期望的完整的工具鏈、庫以及開發工具。本文分別進行了評論。 注意,TurboLinux 也得到了支持。TurboLinux Enterprise Server8 使用的是來自 SUSE Linux 的許可代碼,所以在下面的論述中,那些適用於 SUSE 的特性同樣適用於 TurboLinux。 Red Hat Enterprise Linux 3 (RHEL3) Red Hat 成功地充當了開放源代碼社區的領導者和先驅者。2003 年 Red Hat Linux 發布了可用於 POWER 體系結構的企業版,並帶來了先進的 Linux 技術。 內核 RHEL3 的 2.4.21 Linux 內核為 POWER 體系結構進行了優化。甚至在 Linux 2.6 發布之前,Red Hat 已經在他們的 Linux 2.4 內核中移植(backport)了一些 2.6 的特性。 其中,最引人注目的是 Native Posix Threads for Linux(NPTL)庫。先前的線程模型,即 Linux Thread,是傳統的 1:1 線程模型,與 Linux 2.4 調度器配合使用,一段時間以來這個模型就是被革新的目標。在 RHEL3 中,Red Hat 將新的線程模型從 2.5 的開發樹中移植到了 2.4 內核,從而使得可擴展性更好,多線程更快,最明顯的是從根本上提高了 Java 性能。 不同於一些商用 UNIX 操作系統中所用的 m:n 線程,NPTL 仍是 1:1 模型,但是現在沒有人懷疑它的性能。新的線程模型在陳舊的 450 Mhz Intel 處理器上有能力在兩秒鐘內生成和銷毀 100,000 個線程,因而可以提供企業級 Linux 等所需的性能。Java 應用程序的執行速度通常會比使用舊的 Linux 線程模型時快八倍。 前沿開發的結合並不僅限於內核線程模型。RHEL3 中還包括一個新的改進的 glibc,版本為 2.3.1。出於 NPTL 線程性能方面的需要,glibc 2.3.1 還為 Linux 應用程序引入了效率更高的庫。 SUSE SLES8 SUSE SLES8 是兩種企業版 Linux 中資格較老的一個,已經到了它的生命周期的末期。SLES 8 的特色是定期更新的 2.4 內核(SUSE 已經為 SLES8 用戶發布了三個服務包,以確保可以使用補充更新的系統安全和性能),它提供所有類別的選項。有三種帶日志的文件系統可供選擇。默認情況下,在 SLES8 中可以使用所有常見的數據庫、Web 服務器和郵件服務器應用程序以及最新發布的 KDE 和 Gnome 桌面環境。SLES8 中當前可用的 2.4.21 內核為實時地執行 32 位和 64 位的應用程序提供了一個 64 位的基礎。 即將發布的 SLES9 現在還在測試中,SUSE 的最後一項任務是融合新的 GCC、glibc 和 Linux 2.6 內核。發布後,SLES 9 將提供第一個可用於 IBM eServer? iSeries? 和 pSeries? 服務器的 Linux 2.6 內核。 使用哪個發行版本? 由於 RHEL 3 和 SLES8 所提供的線程模型不同,所以當然不能認為會有完全的二進制兼容性。好消息是,開發者幾乎總會發現,不同的 Linux 發行版本中代碼編譯是一致的,POWER 版 Linux 也不例外。


不過,在部署時,一些應用程序對具體的發行版本更為敏感。例如,SLES8 上默認使用的 Reiser 文件系統以高性能地處理小文件而聞名。主要對小於 1 KB 的文件進行讀寫訪問的應用程序適合使用這種文件系統,這樣的程序最好運行在 SLES8 上,而運行 Java 線程的應用程序將受益於 NPTL 的 RHEL3 實現。 開放源代碼模型的優點在於它的靈活性,POWER 版 Linux 也是靈活的。也就是說,開發者將可以找到關於在 RHEL3 和 SLES8 上進行開發的通用參考資料。編譯器、IBM Java Developer’s Kit ,以及像流行的集成開發環境 Eclipse 這樣的開發工具,都是這兩種發行版本中自由可用的工具的例子。 編譯器和庫 POWER 版 Linux 是兩個方面的結合:最好的開放源代碼開發和企業級的硬件。最好是提供 C、C++ 和 Fortran 編譯器的一個選擇以反映這一結合。 GNU Compiler Collection (GCC) GNU GCC 是用於所有體系結構的 Linux 中應用最廣泛的編譯器,Red Hat 和 SUSE 都使用此編譯器來編譯隨它們的產品發布的二進制文件(可執行文件)。由於 GCC 3.2 可以生成 32 位的和 64 位的二進制文件,所以 RHEL3 和 SLES8 中都提供了 GCC 3.2。RHEL3 實現利用了一個“biarch”風格的雙編譯器,使用一個編譯器標記(-m64)來進行 64 位編譯。 與之不同,SLES8 使用單獨的 64 位 GCC 的工具鏈,這個工具鏈默認存儲在 /opt/cross 中。為了在 SLES8 中可以使用 64 位編譯器,開發者應該確保他們的配置腳本和 Makefile 文件可以識別出這個編譯器。您可以通過將 CC 環境變量設置為 64 位 GCC 編譯器的位置來完成這一任務。 當前,人們正在對 GNU 編譯器集進行重大革新,為 POWER 體系結構而進行性能優化。在即將發行的 3.3 和 3.4 中,GCC 的調度和信號處理將得到改進。另外,針對特定體系結構的優化(比如對 IBM JS20 BladeCenter 中 PPC970 芯片的 VMX/Altivec 支持)將為編譯後的代碼帶來極大的性能優勢。不過,SLES8 和 RHEL3 現在使用的都是 GCC 3.2 版本,在這裡評述了對這些版本性能的優化。 GCC 3.2 沒有為 POWER 處理器進行針對特定體系結構的優化。所以,編譯時不建議使用針對特定體系結構的標記,比如 -mpower。可以使用這些選項,但通常不會帶來性能上的提高。與 x86 上的 GCC 實現不同,GCC 3.2 中沒有包括 -fPIC 標記。為生成動態鏈接的二進制文件,需要在所有的 Makefile 文件中包含 -fPIC。如果您正從 Intel 上的 Linux 移植代碼庫(codebase),這尤其關鍵,因為已有的 Makefile 文件可能沒有顯式地使用這個標記。 除了要識別出那些沒有被當前用於 POWER 體系結構的 GCC 所使用的標記之外,您應該知道那些對 x86 和 POWER 體系結構來說可用的標記。這些標記包括處理重定位、目錄(table of contents)大小、浮點選項、位調整等等的編譯標記。例如,大 TOC 支持(多於 8K 個條目)需要多個 TOC,由 -mminimal-toc 編譯標記指定。要回顧這些標記,請閱讀源代碼包中的標准 GCC 文檔。 IBM VisualAge 編譯器集 除了 GCC 以外,IBM 還發布了高性能 VisualAge 編譯器集,這個編譯器集既可以用於 RHEL3,也可以用於 SLES8。這些用於 C、C++ 和 Fortran 的編譯器將性能優化技術發揮到了極致;它們被精心地定制,以全面地利用 POWER 體系結構。高性能計算(High Performance Computing)開發者通常會發現,只要使用這些編譯器來重新編譯他們的代碼,性能就會提高 30% 以上! 使用 VisualAge 進行優化很簡單,只需預先設定優化級別,這些級別對應使用不同種類的算法。通常,使用簡單的 -O3 -qtune=auto 和 -qarch=auto 會帶來最為顯著的性能提高。第三級優化將自動識別出芯片類型並進行芯片(但不是體系結構)無關的優化。進一步使用 -O4 優化標記可以獲得更高的性能,但付出的代價是針對特定芯片的優化、程序間分析以及高階轉換例程。高性能代碼應該首先以 -O3 優化,然後再嘗試 -O4。雖然 -O4 可能會提高性能,但是它對代碼結構更為挑剔,而且 POWER 系列微處理器系列上的二進制兼容性更為受限。 為避免出現庫不兼容的不愉快情形,POWER 版 Linux 中的 VisualAge 編譯器設計為分別去使用每個發行版本包中所帶的 glibc,而且它們甚至使用本地 Linux 鏈接器。渴望性能的應用程序顯然需要 POWER 版 Linux 的這一獨特功能。 有大量的關於用於 POWER 版 Linux 中的 GCC 和 VisualAge 編譯器集編譯期優化的文檔。在 參考資料 中列出了所有 POWER 版 Linux 開發者都應該放在桌面上的可免費獲得的技術資料。 IBM JDK 1.4.1 IBM 已經將開發資源加入到對定制的 JDK 的改進中,可用於 POWER 版 Linux 的 JDK 既有 32 位的也有 64 位的。BHEL3 和 SLES8 的安裝包中都有 IBM JDK 1.4.1,可以與 POWER 版 Linux 的 Eclipse 集成開發環境配合使用。 開發工具 很多 Linux 開發者樂於使用傳統的開發工具,比如 vi 或 Emacs。自然,這些以及 gdb 等 Linux 中常見的內核級調試工具都是可用的。不過,除了這些工具以外,POWER 版 Linux 的特色是支持 Eclipse IDE 等開發工具。VisualAge 編譯器有詳細的代碼分析選項來確定源代碼中的字符排列順序(endianness)以及 64 位兼容性,並且,舒適的 KDE 和 Gnome 桌面環境讓那些習慣於圖形界面的開發者非常自如。高性能計算(HPC)以及生命科學(Life Science)開發者將受益於可用的通用應用程序,例如 NCBI 應用程序。IBM 的高級數學和科學庫 ESSL 和 P/ESSL 也可以用來輔助 POWER 版 Linux 上的高性能應用程序。隨著 Globus Toolkit 等相關解決方案與集群系統管理(Cluster Systems Management, CSM)等集群工具的結合,基於 POWER 版 Linux 的網格計算變得活躍起來。

結束語 POWER 版 Linux 為那些需要使用更為健壯的硬件的應用程序提供了一個高性能環境,同時還提供了全部的硬件和軟件資源。在雙執行環境中,64 位的應用程序可以與 32 位的應用程序和平共處。IBM iSeries 和 pSeries 系列產品為 Linux 提供了健壯的硬件基礎,而這些產品以前是不能用於 Linux 的。Red Hat 和 SUSE 一直致力於讓人們可以用上最好的開放源代碼發行版本,IBM 則提供為 AIX 開發者所熟悉的領先的中間件解決方案。Eclipse 等新開發工具使轉換變得容易,先進的開發環境提供了希望從 Linux 與 IBM iSeries 和 pSeries 服務器的結合中得到的靈活性和性能。 參考資料 - 深入了解 Red Hat Enterprise Linux AS、SUSE SLES8 for IBM iSeries and pSeries 和 TurboLinux。 - POWER 版 Linux 可以使用在 IBM eServer pSeries、IBM eServer iSeries 和 JS20 Blade Center 產品上。在 Linux on POWER 網頁中查找所有選項。 - 為您的 Linux 應用開發加油提速 提供 DB2、Rational 和 WebSphere 等 IBM 產品下載 —— 還有文檔、文章以及其他信息。您可以跳過這些直接訪問 Linux on POWER 下載頁。IBM RedBooks on Linux topics 也是極好的信息資源。 - Matt 特別喜歡的兩篇 Linux POWER 開發者參考資料包括“Migrating UNIX Applications for Linux on IBM pSeries and iSeries Servers”和“How To Use IBM VisualAge C++ Version 6.0 for Linux on IBM pSeries and iSeries Servers”(都是 PDF 格式)。 - 跨平台的 GNU Compiler Collection (GCC) 支持所有語言,從 C 和 C++ 到 Fortran 再到 Ada —— 還有更多!GCC 的 3.3 和 3.4 版本有很多針對 POWER 體系結構的改進。SUSE Enterprise Server 9 將使用一個名為“hammer”的 3.3 版本分支,其中有很多移植自 3.4 的功能。 - 相對於其他編譯器,IBM VisualAge 編譯器集 可以將性能提高 30% 以上。它還結合了對高級的 ESSL 和 P/ESSL(Parallel/Engineering and Scientific Subroutine)數學和科學庫的支持。 - IBM Java Developer Kit 1.4.1SR1 和 Eclipse Integrated Development Environment for Linux 為 POWER 版 Linux 提供了一個完整的 Java 開發環境。 - 通過 linuXPpc64.org 您可以了解更多關於 POWER 版 Linux 內核開發以及其他 64 位 Linux 問題的信息。 - 如果您是開放源代碼軟件世界的新手,您將發現“在 Power 上使用 Linux 開放源代碼工具一文很有幫助。 - “POWER 上安裝 Globus”是“為您的 Linux 應用開發加油提速”系列的一部分;您還可以在 Globus Web 站點 上找到非常有用的 文檔。 - “Application Development on Linux Power”(developerWorks, 2003 年 3 月)是在 POWER 平台上部署和開發 Linux 應用程序的指南。 - 在 developerWorks 的 開放源代碼項目專區 查找 為 Eclipse 用戶准備的文章。至於 Eclipse 插件和工具,還請參閱 alphaWorks 上的 Eclipse technology page。 - 在 developerWorks Linux 專區 可以找到更多為 Linux 開發者准備的參考資料。 - 在 Developer Bookstore 的 Linux 區,可以找到很多精選的 Linux 書籍。 關於作者 Matt Davis 是 IBM eServer Solutions Enablement 團隊中的一名 Linux 技術顧問。作為 pSeries Linux 項目的一名元老,他研究和測試了新近出現的 pSeries Linux 技術,並寫了一些報告以總結他的發現。這其中包括針對 POWER 版 Linux 的日志文件系統(Journaling File Systems),用 POWER 版 Linux 進行並行網格計算,以開放源代碼來取代 POWER 版 Linux 中的商業軟件,以及 Linux 解決方案編目。當他還是得克薩斯州立大學(位於奧斯汀,在那裡他獲得了兩個學位)的一名學生時,他以實習生的身份來到了 IBM。可以通過 [email protected] 與他聯系。 全文出自 : IBM developerWorks 中國網站



- 通過 linuXPpc64.org 您可以了解更多關於 POWER 版 Linux 內核開發以及其他 64 位 Linux 問題的信息。 - 如果您是開放源代碼軟件世界的新手,您將發現“在 Power 上使用 Linux 開放源代碼工具一文很有幫助。 - “POWER 上安裝 Globus”是“為您的 Linux 應用開發加油提速”系列的一部分;您還可以在 Globus Web 站點 上找到非常有用的 文檔。 - “Application Development on Linux Power”(developerWorks, 2003 年 3 月)是在 POWER 平台上部署和開發 Linux 應用程序的指南。 - 在 developerWorks 的 開放源代碼項目專區 查找 為 Eclipse 用戶准備的文章。至於 Eclipse 插件和工具,還請參閱 alphaWorks 上的 Eclipse technology page。 - 在 developerWorks Linux 專區 可以找到更多為 Linux 開發者准備的參考資料。 - 在 Developer Bookstore 的 Linux 區,可以找到很多精選的 Linux 書籍。 關於作者 Matt Davis 是 IBM eServer Solutions Enablement 團隊中的一名 Linux 技術顧問。作為 pSeries Linux 項目的一名元老,他研究和測試了新近出現的 pSeries Linux 技術,並寫了一些報告以總結他的發現。這其中包括針對 POWER 版 Linux 的日志文件系統(Journaling File Systems),用 POWER 版 Linux 進行並行網格計算,以開放源代碼來取代 POWER 版 Linux 中的商業軟件,以及 Linux 解決方案編目。當他還是得克薩斯州立大學(位於奧斯汀,在那裡他獲得了兩個學位)的一名學生時,他以實習生的身份來到了 IBM。可以通過 [email protected] 與他聯系。 全文出自 : IBM developerWorks 中國網站



- “Application Development on Linux Power”(developerWorks, 2003 年 3 月)是在 POWER 平台上部署和開發 Linux 應用程序的指南。 - 在 developerWorks 的 開放源代碼項目專區 查找 為 Eclipse 用戶准備的文章。至於 Eclipse 插件和工具,還請參閱 alphaWorks 上的 Eclipse technology page。 - 在 developerWorks Linux 專區 可以找到更多為 Linux 開發者准備的參考資料。 - 在 Developer Bookstore 的 Linux 區,可以找到很多精選的 Linux 書籍。 關於作者 Matt Davis 是 IBM eServer Solutions Enablement 團隊中的一名 Linux 技術顧問。作為 pSeries Linux 項目的一名元老,他研究和測試了新近出現的 pSeries Linux 技術,並寫了一些報告以總結他的發現。這其中包括針對 POWER 版 Linux 的日志文件系統(Journaling File Systems),用 POWER 版 Linux 進行並行網格計算,以開放源代碼來取代 POWER 版 Linux 中的商業軟件,以及 Linux 解決方案編目。當他還是得克薩斯州立大學(位於奧斯汀,在那裡他獲得了兩個學位)的一名學生時,他以實習生的身份來到了 IBM。可以通過 [email protected] 與他聯系。 全文出自 : IBM developerWorks 中國網站



Copyright © Linux教程網 All Rights Reserved