歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 學習如何在基於IBM POWER的服務器上開發和部署Linux應用程序

學習如何在基於IBM POWER的服務器上開發和部署Linux應用程序

日期:2017/3/3 16:40:23   编辑:關於Linux

在 IBM System p™ 和 System i™ POWER 平台上開發和部署 Linux® 應用程序與在其他 Linux 系統上的開發和部署相似。在本文中,討論對於 Linux on POWER 系統應該了解的相似性和差異。

簡介

System p 和 System i 服務器都基於相同的 POWER 處理器架構,在 System p 或 System i 上的 Linux 發行版中編譯的二進制代碼可以在這兩種平台上運行。但是,在 System p 和 System i 服務器之間,I/O 支持有差異,可能需要為此做一些修改。

安裝

本文中的信息基於 SUSE Linux Enterprise Server(SLES)8 和 Red Hat Linux 7.1,內核版本是針對 POWER 架構的 2.4 版。SUSE Linux 發布並支持針對 System p 和 System i 硬件的 SUSE Linux Enterprise Server(SLES)8。

System p 安裝

每個硬件平台都對 Linux 安裝有一組需求。對於 System p 服務器,Linux 安裝的大多數需求與機器引導裝載器和 OpenFirmware 相關。

在基於 Intel® 的硬件上,BIOS 從主引導記錄(Master Boot Record)裝載系統映像。在 System p 硬件上,OpenFirmware 從一個引導分區(Boot Partition)裝載可引導的系統映像。盡管這不是 OpenFirmware 的惟一功能,但它是與 Linux 安裝相關的惟一功能。作為本機安裝的替代方案,可以將 Linux 安裝在 System p 邏輯分區(LPAR)中。這需要使用對 System p LPAR 進行管理的 Hardware Management Console(HMC)。

System p 上的本機 SLES 8 安裝

System p 上 SLES 的本機安裝可以由 SUSE 輕松地完成。有四個安裝選項:

通過串行連接進行基於文本的安裝

通過控制台或 CRT 進行圖形化安裝

通過 VNC 進行圖形化安裝

使用網絡安裝服務器

這裡只簡要地提到這些選項,標准的 SLES 8 文檔中提供了更多信息,在 SLES 8 發行版光盤上可以找到這些文檔。

為什麼使用串行連接進行安裝?

某些(並非全部)System p 機型裝備了支持的視頻適配器。支持的視頻適配器包括 GXP-120、GXP-130 和 GXP-135,但是 GXP-135 需要帶數字視頻連接器的 CRT。對於其他 System p 機型,通過認可的終端客戶機使用串行連接進行安裝。認可的終端包括軟件終端模擬器,比如 Minicom。YaST2 支持幾種常用的終端類型,包括 vt100 和 vt220。為了連接系統服務處理器,一定要將端口速度設置為 9600 波特。SUSE 的 YaST2 安裝程序以基於文本的模式(Linux RC)啟動,引導用戶進行安裝。

為什麼使用 CRT 進行安裝?

裝備了支持的視頻適配器的 System p 機型可以用 CRT 進行安裝。這為 SUSE 的 YaST2 安裝程序提供了更有吸引力的 GUI 界面。但是,如果將 CRT 連接到 System p 硬件在空間方面效率不高,那麼使用 CRT 進行安裝不是合適的方法。

為什麼使用 VNC 進行安裝?

VNC 是一個遠程顯示系統,它允許查看 GUI 顯示,甚至是來自 Microsoft® Windows® 客戶機的 GUI 顯示。如果在環境中 Microsoft Windows 客戶機最適合作為進行安裝的終端,那麼這是合適的方法。這個選項需要使用串行連接啟動計算機,但是在啟動之後,它為 SUSE 的 YaST2 安裝程序提供了 GUI 界面。VNC 的安裝和配置文檔參見 參考資料。

為什麼使用網絡安裝服務器進行安裝?

如果要安裝多台機器,那麼使用網絡安裝服務器可能是值得的。在無人職守(light out) 環境中,這尤其有用;這種環境要求能夠從一個遠程位置進行安裝,而不需要訪問連接到任何計算機的顯示器、鍵盤或鼠標。網絡安裝服務器提供兩個優勢:

安裝時不需要直接訪問控制台

可以跨多個系統同時進行安裝

網絡安裝服務器使用一個網絡文件系統(NFS)共享 SLES 8 光盤的內容。從基於文本的 LinuxRC 安裝實用程序調用網絡安裝服務器,在 Yaboot 提示下提供 install=manual 內核參數時會啟動這個實用程序。

System p 上 SLES 8 的 LPAR 安裝

SLES 8 被設計為在 System p 邏輯分區中運行,所以提供了與 AIX® 相同的資源消費粒度。與 AIX 一樣,必須使用系統的 Hardware Management Console(HMC)對硬件進行分區。使用 HMC 建立邏輯分區(LPAR)之後,可以按照與本機安裝相同的方式引導和安裝目標 LPAR。可以使用前一節(System p 上的本機 SLES 8 安裝)描述的四種安裝方法之一。注意,對於 System p Linux,還不能使用 AIX 5.2 中的那種動態分區特性。在 AIX 5.2 DLPAR 系統上,Dynamic AIX LPAR(DLPAR)可以和 Linux LPAR 同時使用,但是 Linux LPAR 在啟動之後不會對任何動態資源重分配做出響應。

在 System p 上安裝 Red Hat Linux 7.1

在 System p 上安裝 Red Hat Linux 7.1 與安裝 SLES 8 相似。Red Hat 提供一個與 SUSE 的 YaST2 不同的安裝程序,但是它們都使用 Yaboot 引導裝載器,都依靠 System p OpenFirmware 來啟動可引導的內核映像。Red Hat Linux 7.1 提供了串行連接、CRT 和網絡安裝服務器三個安裝選項,但是不支持通過 VNC 進行安裝。

System p p655 機型上的安裝

System p p655 需要獨特的安裝過程,因為它沒有圖形適配器、CD-ROM 和鍵盤。由於缺少圖形適配器,就不能用 CRT 進行安裝。可以添加外部 CD-ROM 驅動器,在這種情況下,可以用串行連接進行一般的安裝。還可以添加圖形卡和 USB 鍵盤,這樣就能夠進行 CRT 安裝,但是這在許多環境中不方便。如果沒有外部 CD-ROM 可用,就需要從一台 AIX 機器進行特殊的網絡安裝。在 System p 硬件的文檔中可以找到進行 Remote Initial Program Load(RIPL)設置的指令,但是這裡只簡要介紹一下在 p655 上使用 RIPL 安裝 Linux 的過程。

從 OpenFirmware 菜單中選擇 Remote Initial Program Load Setup。這會打開對網絡設備進行選擇和配置的菜單。這些菜單還可以配置關於 RIPL 服務器(例如,NIM 服務器)的信息。配置數據之後,返回到頂級 OpenFirmware 菜單並選擇 Multiboot,然後選擇 Select Install Device。為 RIPL 安裝配置的網絡設備將可用。選擇這個安裝設備,OpenFirmware 將裝載 SLES 引導映像。

System i 安裝

正如前面提到的,每個硬件平台都對 Linux 安裝有一組需求。對於 System i,在開始 Linux 安裝之前需要進行服務器的硬件分區。然後,用 OS/400® 管理連接創建一個 Linux 虛擬磁盤。在此之後,在 System i 上安裝 Linux 的過程就與其他平台相似了。

在 System i 上安裝 SLES 8

很容易使用 SUSE 和 OS/400 在 System i 上安裝 SLES 8。可以使用 System i 用戶熟悉的用於集成其他操作系統的模型在 System i 上提供 Linux 支持。安裝分五個基本步驟。

創建 Linux 要使用的分區。分配硬件資源。

創建一個 OS/400 Network Server Description(NWSD),它引用 Linux 分區並指向作為引導設備的 OS/400 光盤驅動器。

創建一個 OS/400 Network Storage Space(NWSSTG),它將作為 Linux 虛擬磁盤,並將它連接到 Linux Network Server Description。

連接到 Linux 虛擬控制台,從而可以在安裝期間看到消息並完成任何額外的 Linux 配置。連接方法是通過 telnet 連接 OS/400 上的特定端口,並提供特定的 Linux 虛擬控制台密碼。連接到控制台之後,Linux 用戶就可以登錄 Linux了。

將 Linux 光盤放進 OS/400 光盤驅動器,並根據 OS/400 的 Network Server Description 進行不同的操作。安裝時首先從光盤驅動器進行 Linux 引導,並在虛擬磁盤上創建 Linux 磁盤映像。此後的操作由 Linux 負責執行。

在 System i 上,如果需要從由 Linux 直接控制的磁盤(而不是虛擬磁盤)運行 Linux,那麼 System i 也支持在安裝之後將 I/O 設備直接連接到 Linux 分區。關於 Linux 分區特性和在 System i 上安裝 Linux 的更多信息,請參見 參考資料 和發行版附帶的 System i SUSE 安裝手冊。

在 System i 上安裝 Red Hat Linux 7.1

與 System p 一樣,System i 上的 Red Hat 安裝要使用與 SUSE 不同的安裝程序,但是基本步驟與上面描述的 System i 上的 SLES 安裝相同。

設置和維護

一般的 Linux 維護可以以多種方式進行管理。大多數發行版(包括 SUSE 和 Red Hat 產品)都包含一個集中的管理程序,這個程序與傳統企業 UNIX® 中的管理程序(比如 SMIT for AIX)相似。SUSE 開發了一個集中的管理程序 Yet another Setup Tool 2(YaST2)。Red Hat 提供 Linuxconf,這個程序被其他幾個 Linux 發行版采用了,成為標准的配置實用程序。這裡簡要介紹這些工具,以及管理 Linux 系統的信息。

YaST2

SLES 8 中的管理工作在 YaST2 管理實用程序中集中地處理。YaST2 可以管理用戶、安全、軟件、網絡、文件系統等等。可以在 X11 中遠程使用它,或者通過安全 shell 在基於文本的模式中使用。YaST2 還提供了一種安全保護機制,它在機器每次引導時重寫配置文件,否則 YaST2 就會退出。這會防止腳本例程修改配置,造成全系統范圍的不利後果。但是,管理員應該認識到,除非出現以下情況,否則手工編輯的配置文件將被重寫:

使用 YaST2 進行的修改與手工編輯的修改匹配。

編輯 /etc/sysconfig/suseconfig 文件,讓 YaST2 不覆蓋文件。

Linuxconf

Linuxconf 是一個開放源碼的實用程序。與 YaST2 相似,Linuxconf 支持對用戶、安全、網絡等等進行管理。可以使用安全 shell 運行 Linuxconf,從而進行遠程管理。Linuxconf 有 X11 版本和基於文本的版本。

一般 Linux 管理

Webmin

Webmin 是一個管理工具,它提供從安全 Web 界面遠程管理 Linux 系統的能力。Webmin 是用可插入模塊設計的,它提供對各種服務器進程的管理能力,包括 Apache Web 服務器、Samba 或 NFS 文件共享、Berkeley Internet Name Daemon(BIND)等等。許多服務器守護進程都安裝了可選的 Webmin 模塊,這些模塊與現有的 Webmin 集成。Webmin 是基於 PERL 的,而且是完全開放源碼的。關於 Webmin 的更多信息參見 參考資料。

手工編輯 /etc/ 中的配置

盡管像 Linuxconf 和 Webmin 這樣的工具會使管理更加容易,但是在某些情況下,手工編輯配置文件可能是必需的,或者是更合適的方法。例如,管理工具可能無法控制軟件的特定部分,或者是雖然提供了控制能力,但是控制粒度不符合需要。盡管有一些例外情況(比如安裝在 /opt/ 或用戶主目錄中的軟件),但是大多數配置文件可以在 /etc/ 目錄樹中找到。

應用程序開發

編譯器

Linux on POWER 有許多可選的編譯器。除了 IBM 開發的 VisualAge C、C++ 和 FORTRAN 編譯器之外,GNU Software Project 為 Linux on POWER 上的開發提供了他們的編譯器(GCC)的四個版本。對於高性能的應用程序,尤其是執行大量浮點計算的應用程序,VisualAge 編譯器提供了一個企業級的開發工具,可以針對 Linux on POWER 進行最好的優化。64 位和 32 位的 GCC 3.2 在 GNU Public License 之下免費提供。在針對 IBM System p 和 System i 服務器的 Red Hat Advanced Server 3.0 和 SUSE SLES 8 中都附帶這些編譯器。關於在哪裡可以找到 GCC 3.2 和比較老的 GCC 2.95,請參見 參考資料。如果要編譯比較老的沒有針對 GCC 3.2 優化過的開放源碼,就可能需要 GNU 編譯器的這個老版本。

什麼東西要用 GCC 編譯器進行編譯?

Red Hat Advanced Server 3.0 和 SUSE SLES 8 都附帶用 GCC 3.2 編譯的軟件。除了 Red Hat 和 SUSE 附帶的用戶空間軟件之外,Linux 內核也是用 GCC 3.2 編譯的。

Linux 內核可以是 32 位或 64 位的,這取決於編譯它所用的 GCC 編譯器版本。這條原則也適用於任何 Linux 內核模塊或 C 運行時庫的構建。注意,與其他一些 64 位平台上的 Linux 不同,64 位的 Linux on POWER 不會損害 32 位應用程序的性能。所有 32 位和 64 位應用程序都可以在相同的空間中運行,沒有任何性能損失。因此,建議只使用 64 位內核。

GCC 可能也適用於用戶級軟件的編譯。GCC 是標准的 Linux 應用程序編譯器。這意味著 Linux 社區花費了很大精力讓用 GCC 編譯的代碼可以輕松地跨平台工作。因此,在一個平台上用 GCC 編譯的大多數軟件,在另一個平台上也可以用 GCC 輕松地編譯。

什麼東西要用 Visual Age 編譯器進行編譯?

IBM 開發的 Visual Age Compiler Set for Linux on POWER 提供了高性能的編譯器,可以針對 POWER3 和 POWER4 架構進行出色的優化。用這些編譯器編譯的應用程序(尤其是執行大量浮點計算的應用程序)的性能比用 GCC 編譯時好得多。建議對任何資源密集型軟件都用 Visual Age 編譯器進行編譯。

除了出色的性能之外,Visual Age 編譯器還支持從其他 UNIX 平台輕松地移植到 Linux on POWER。

向 Linux on POWER 進行 Java 移植

Red Hat 和 SUSE 在它們的 Linux on POWER 版本中都提供了 Blackdown JDK 1.3.1。這個 JDK 是專門為 POWER 開發的。但是,許多應用程序針對的是其他 JDK,比如 Sun Microsystems 和 IBM 提供的 JDK。幸運的是,在 Linux on POWER 環境中可以安裝 IBM JDK 的 1.3.1 版本。Sun Microsystems JDK 當前還不能用於 Linux on POWER。這些 JDK 通常安裝在 /usr/local 或 /opt/ 下面的一個目錄中;但是無論安裝目錄在哪裡,都應該修改 JAVA_PATH 環境變量來提供對 JDK 可執行文件的訪問。通常在 /etc/profile 中進行修改來支持系統范圍的訪問,或者根據需要在相應用戶的 .profile 文件中進行修改。

方法版本的差異有時候會導致 Java 不兼容問題。在這些情況下,可能需要更換 JDK 廠商或版本,以使應用程序可以工作。幸運的是,完全可以同時安裝多個 JDK 並根據需要修改 JAVA_PATH 環境變量。

軟件部署

在 POWER 處理器平台上運行 Linux 應用程序

對於在低端 Intel 處理器計算機上開發的應用程序,可以在高端 POWER 服務器上使用相同的開發工具以 32 位或 64 位模式進行重新編譯。也可以使用跨編譯器選項在 Intel 處理器上創建 POWER 處理器二進制代碼。但是,建議使用 VisualAge 編譯器,從而在 POWER 處理器系列上獲得最好的性能。另外,對於任何不需要進行 64 位尋址的應用程序,建議仍然使用 32 位的庫以保持它的運行時效率。

版本和發行版之間的差異

對於一個 Linux 發行版的不同版本,庫和編譯器版本常常有差異。例如,libc 和 glibc 是兩個系統范圍的庫,大多數 Linux 應用程序都需要它們。盡管在 Linux 開發中向上兼容性通常非常好,但是在版本變化時頭文件和系統調用有時候會合並或者改變名稱。這些變化在庫附帶的文檔中和開放源碼維護者的 Web 站點上都有記錄(參見 參考資料),比如許多 Linux 發行版的庫、編譯器和其他組件的不同版本和級別。請注意這些差異。

因為 Linux File System Hierarchy(由 Free Standards Group 制訂)還沒有被所有發行版采用,所以在不同的發行版上可執行文件的位置可能不一樣。通過在 PATH 中追加目錄或者創建到所需位置的符號鏈接,就可以輕松地解決這些問題。同樣,在不同的發行版之間,一些應用程序的配置文件位置也不一樣。例如,Apache Web 服務器配置文件 httpd.conf 在一些發行版中位於 /etc 樹中,在其他發行版中位於 /opt/httpd/ 中。同樣,符號鏈接可以解決這些不一致問題。

除了版本差異之外,一些有流行的替代品的 Linux 軟件在一些發行版中可能並未默認安裝。Linux 引導裝載器是這種情況的一個好例子。在許多發行版中,Linux Loader(LiLo)是默認的引導裝載器,但是其他發行版以圖形化引導裝載器 GRUB 作為默認的引導裝載器。除了這些低級工具之外,在不同的發行版之間,KDE 和 GNOME 等窗口環境及其開發工具包的版本和默認安裝情況也可能不一樣。這對於開發 GUI 軟件可能很重要。

I/O 設備支持

運行 Linux 的 System p 和 System i 服務器上的 I/O 適配器支持取決於許多因素,包括是否有開放源碼的驅動程序以及 IBM 對可用 Linux 發行版的測試和認證活動。一些 I/O 設備得到比較普遍的支持。首先支持的是在系統平台和關鍵設備上集成的 I/O 適配器,比如 SCSI 和 LAN 適配器。對於 System i 內核,IBM 已經在 Linux 2.4 PowerPC 源代碼樹中提供了虛擬設備(由 OS/400 擁有,通過 Linux 分區共享)的設備驅動程序。對於直接連接到 Linux 分區的設備,請參見 參考資料 中 System i Linux Web 站點的鏈接,了解 ibmsis 驅動程序及其配置實用程序。

隨著時間的推移,會出現更多的設備驅動程序並得到測試,支持的 I/O 設備將因此增加。

有用的術語和定義

AIX 5L - AIX 操作系統的第 5 版,它在基於 POWER 架構的系統上運行。最新的版本是 AIX 5.2,於 2002 年 10 月 8 日發布。

GCC - GNU Compiler Collection。這是 GNU Project 提供的一組編譯器,包括 C、C++ 和 Java 編譯器。

VisualAge - IBM 提供的一組編譯器,包括 C 和 C++。

OS - 操作系統。

POWER - IBM System p 和 System i 服務器共用的芯片架構的名稱。

PowerPC - 與 POWER 相同。IBM System p 和 System i 服務器共用的芯片。

POWER4 - 最新的 POWER 芯片。POWER4 架構在許多商業和高性能計算環境中提供出色的性能。基於 POWER4 的 System p 和 System i 服務器支持動態邏輯分區。更多信息參見 參考資料 中的 POWER4 白皮書。

POWER3 - 入門級 System p 服務器當前可用的 POWER 芯片之一。

System p - IBM 基於 UNIX 的服務器,可以運行 AIX 和 Linux。AIX 和 Linux 可以在同一個基於 POWER4 的系統的邏輯分區中運行。Linux 還可以作為主操作系統在 System p 服務器上運行。

System i - IBM 的集成服務器,可以運行 OS/400 和 Linux。OS/400 和 Linux 可以在 System i 服務器的邏輯分區中運行。System i 可以支持最多 31 個 Linux 分區。IBM 聲明在未來的 System i 版本中將支持在分區中運行 AIX。

LPAR - 邏輯分區。允許多個操作系統實例在同一個服務器上運行。

DLPAR - 動態邏輯分區。與 LPAR 相似,但是能夠動態地改變系統資源(比如 CPU 和內存)的分配,不需要重新啟動系統或分區。

HMC - Hardware Management Console(HMC),LPAR 和 DLPAR System p 服務器使用它管理邏輯分區。

IDE - 集成開發環境。用來編譯和調試應用程序代碼的開發環境。

CRT - 連接到服務器的顯示器。

VNC - 虛擬網絡計算。這是一種遠程顯示系統,支持從互聯網上的任何地方查看計算機(Linux 和其他平台)的計算桌面環境。

LinuxRC - 一個基於文本的程序,用來設置要安裝的 Linux 內核。

YaST2 - Yet another Setup Tool 2。SUSE Linux 使用它進行系統配置。

GNU - Free Software Foundation 的免費操作系統和免費軟件項目。

GPL - GNU Public License。開放源碼軟件常常采用 GPL 作為許可協議。

Copyright © Linux教程網 All Rights Reserved