Jump to content 日本-日本語

製品  >  ソフトウェア  >  HP- UX Developer Edge

HP-UX/Itaniumへラクに移行する6つの方法・前編

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
HP-UX/Itaniumへラクに移行する6つの方法・前編
HP-UX/Itaniumへラクに移行する6つの方法・前編
アプリケーション移行の6つの方法
HP-UX/PA-RISCからの移行

HP-UX/PA-RISCからの移行


図2は、HP-UX/PA-RISCとの互換性を示した図である。

  図2:ItaniumベースHP-UX移行のためのソリューション
図2:ItaniumベースHP-UX移行のためのソリューション
 

最初に押さえておくべきポイントは、「インテル® Itanium® アーキテクチャ(以下、Itanium)だからといって64ビット化は必須ではない」という点だ。周知のとおり、64ビット対応アプリへの移行では、ソースコードの修正が広範囲に及ぶ可能性がある。しかしItaniumでは、PA-RISCと同じく32ビットと64ビット両方のアプリを混在させることが可能だ。32ビットだからといってパフォーマンス面でペナルティが発生するわけではない。ただもちろん、移行を機会に64ビット化も同時に実施すれば、4GB以上のアドレス空間が使用できるなどのメリットが得られる。これらのトレードオフを考慮して、64ビット化の是非を決定すればよいだろう。ちなみにデータの互換性(バイトオーダー)に関しては、PA-RISCとItaniumいずれの場合でもHP-UXはビッグ・エンディアンを採用しており、移行に際して特別な変換は不要だ。


AriesによるPA-RISCとのバイナリ互換性


図2が示すように、HP-UX/ItaniumではHP-UX/PA-RISCとのバイナリ互換性を提供している。つまり、PA-RISCバイナリがまったくそのままでItaniumでも動作する。この互換性は、HP-UXカーネルに内蔵されたバイナリ・トランスレータ「Aries」によって実現されている。

Ariesがいわゆるエミュレータや仮想マシンと異なるのは、それが「Itaniumバイナリをリアルタイムに生成するトランスレータ」である点だ。このユニークなメカニズムにより、HP 9000サーバと同レベルの高パフォーマンスを達成している。またAriesはカーネルに内蔵されており、PA-RISCバイナリの起動を検出すると自動的に呼び出される。よってユーザから見れば、ItaniumバイナリとPA-RISCバイナリの違いを意識する必要さえない。

さらにAriesは、プロダクション環境でも導入可能な高信頼性が特徴だ。ApacheサーバやJava VMといった主要なアプリケーションの安定動作が確認済みである。実のところ、HP-UX/Itaniumのオペレーティング環境の一部(例えばCDEなど)は現在でもPA-RISCバイナリで提供されているが、表面上その違いは分からない。

このように、Ariesはきわめて透過的なバイナリ互換性を実現している。とはいえ、ネーティブのItaniumバイナリと同じようにItaniumの性能をフルに引き出せるわけではないし、また使用上の制限もいくつかある(詳しくは特集2で触れる)。よってAriesは、あくまでも「Itaniumバイナリに完全移行するまでの一時的なソリューション」と捉えるべきであろう。

なお、Ariesの動作メカニズムについては、後編で簡単に紹介する。


ソース互換性とHP-UX STK


一方、HP-UX/Itaniumは、HP-UX/PA-RISCとのソース互換性も維持している。すなわちAPIやヘッダファイルに加えて、コンパイラやMakefileなどの互換性があるため、既存アプリケーションのビルド・スクリプトをそのまま利用可能だ。よってソースコードさえ手に入れば、原則的にはほとんど手を加えずにItaniumバイナリをビルドできる。

ただし多くの場合、PA-RISCからItaniumへの移行に加えて、旧バージョンのHP-UXから最新バージョンHP-UX 11i v2への移行も伴うはずだ。そのため、ソースコードやスクリプトが以下のような変更点の影響を受けるかどうか、事前のチェックが必要になる。

  • Cコンパイラの変更点(K&R仕様は非対応、およびオプションの変更)
  • 共有ライブラリ名の変更(lib*.slからlib*.soへ)
  • PA-RISC依存のマクロ定義の廃止
  • 端末関連の変更(termcapからterminfoへ、Hcursesからxcursesへ)
  • 非推奨のハードウェア依存API(コンテキストAPI、setjmp/longjmpなど)

そこでHPでは、この事前チェックを支援するツールHP STK(Software Transition Kit)を無償で用意している(関連リンク参照)。HP STKの核となるツールは、既存のソースやバイナリをスキャンし、上述のような変更点に抵触する部分を検出する「ファイルスキャナー」である。

  • scansummary/scandetail/scanwizard
    CまたはC++、Fortran、COBOLのソースコード、およびMakefileやシェルスクリプトのスキャン
  • binaryScan
    実行可能モジュール、共有ライブラリなどのバイナリコードのスキャン

これらのツールによるスキャン結果は、HTML形式のレポートとして出力される。このレポートはHP STKに含まれる移行支援ドキュメントにリンクされており、それを辿れば具体的な修正手順をさらに詳しく調査できる。その指示にしたがってコードを修正したのち、HP-UX/Itaniumでのビルドを実施するという手順だ。


Itanium対応コンパイラの入手


HP-UX/Itaniumでのビルド作業に際しては、HP STKだけでなくItanium対応コンパイラも事前に用意しておく必要がある。例えば、以下の各種コンパイラがHP-UX向けに提供されている。

  • HP ANSI C/aC++コンパイラ
  • gcc
  • Java JDK
  • HP Fortranコンパイラ
  • COBOLコンパイラ (マイクロフォーカス社より提供中)

C/C++コンパイラについては、HPが販売するHP ANSI C/aC++コンパイラと、HPのWebサイト(関連リンク参照)から無償ダウンロード可能なgccコンパイラの2種類が利用可能だ。ただし、gccはHPによるサポートの対象外であり、またItaniumのEPICアーキテクチャに対応した最適化機能を備えていない。よって、「Itaniumのパフォーマンスをフルに引き出したいアプリ」のビルドには前者を利用し、各種のオープンソース・ツールなど「性能はともかく手軽にビルドしたいアプリ」には後者を使えばよいだろう。

またJavaについては、HP-UXのオペレーティング環境にItanium対応HP JVMが標準で付属している。HP FortranはHPより、COBOLコンパイラはマイクロフォーカス社(関連リンク参照)から販売されている。

つづく後編では、Linuxからの移行ソリューションを中心に解説しよう。

関連リンク

 
HP STK
GCC for HP-UX 11i USサイト
COBOLコンパイラ(Micro Focus Server Express)
 
トップへ 戻る    

記事の内容に関するご意見・ご質問・お問い合わせ

  日本ITフォーラムにて承っております(別途、会員登録が必要です)。

日本ITフォーラム
 

その他のコラム(特集)もお読み下さい

 
 

本ページの内容は執筆時の情報に基づいており、異なる場合があります。
印刷用画面へ
プライバシー ご利用条件・免責事項