Jump to content 日本-日本語
日本HPホーム 製品 & サービス サポート & ドライバー ソリューション ご購入方法
≫  お問い合わせ

製品とサービス  >  ソフトウェアとOS  >  HP- UX Developer Edge

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

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
HP-UX/Itaniumへラクに移行する6つの方法・後編
Linuxアプリケーションをインテル®Itanium®プロセッサをベースとしたHP-UX(以下、HP-UX/Itanium)へ移行するには、まずLinuxとHP-UXというOSの違いを乗り越えなくてはならない。そこでHPでは、glibc 2.2.4のAPIの96%を実装したglibc互換ライブラリ「libhplx」を提供している。同ライブラリは、Linuxの各種APIに対応するHP-UXシステム・コールを実行することでAPI互換性を実現。さらにHP-UX/Itaniumには、数100種類のオープンソース・ソフトウェアがポーティング済みで、gccをはじめ、gmake、bashなどが利用可能だ。ここでは、LinuxからHP-UX/Itaniumへの移行のコツを解説するとともに、HP-UX/PA-RISCとの透過的なバイナリ互換性を実現するAriesの動作メカニズムやパフォーマンスについても紹介する。
HP-UX/Itaniumへラクに移行する6つの方法・後編
Linuxからの移行
Ariesの動作メカニズムとパフォーマンス
2005年2月
テクニカルライター 吉川和巳

Linuxからの移行


LinuxアプリケーションをHP-UX/Itaniumへ移行するには、まずLinuxとHP-UXというOSの違いを乗り越えなくてはならない。例えば、LinuxとHP-UXそれぞれが実装するシステム・コールやシグナルに互換性はない。またデータのバイトオーダーも、Linuxはリトル・エンディアン(LE)であるのに対し、HP-UXはビッグ・エンディアン(BE)だ。

HPでは、これらの差異を埋めるための移行ソリューションとして、以下の2つを提供している。

  • インテル®Itanium® アーキテクチャ・ベースのLinux(以下、Linux/Itanium)とのバイナリ互換性
  • x86アーキテクチャ・ベースのLinux(以下、Linux/x86)とのソース互換性

図1は、これらによって得られる互換性を示したものだ。

  図1:Linuxとの互換性
図1:Linuxとの互換性

LREによるLinuxとのバイナリ互換性


移行手段のひとつは、Linux/Itaniumアプリケーションとのバイナリ互換性である。これは、現在ベータ版として公開されているLRE(Linux Runtime Environment)によって実現される(関連リンク参照)。LREは、その名の通り「Linux実行環境」をHP-UX上で実装したものだ。同ツールを使えば、再コンパイルを行わずとも、LinuxアプリケーションがそのままHP-UX/Itanium上で動作する()。

  図2:LREの構成
図2:LREの構成
 

図2において、赤色で示した「glibc」がLREの中核をなすコンポーネントだ。HPが開発したこのglibcは、LinuxとのABI互換性を提供しつつ、その内部では以下のような手順で変換処理を実施する。

  1. Linuxアプリケーションがglibcを呼び出す
  2. パラメータをLEからBEに変換する
  3. 対応するHP-UXシステム・コールを呼び出す
  4. 戻り値をBEからLEに変換する
  5. エラー発生時は、HP-UXのエラーをLinuxのエラーに変換する
  6. Linuxアプリケーションに制御を戻す

LREはこの他にも、Linuxアプリケーション用のシグナル・ハンドラを備え、LinuxシグナルとHP-UXシグナルの相互変換を行っている。こうしたメカニズムによって、HP-UX/Itanium上で仮想的なLinux実行環境を再現しているわけだ。HPによると、主要なLinuxアプリケーションの大半についてLREによる安定動作が確認されており、またオーバーヘッドも低く抑えられているという。

ただし、LREには制限も多い。まず、サポートするLinuxアプリケーションが64ビットインテル®Itanium® アーキテクチャ(以下、Itanium)バイナリに限定されており、通常のx86バイナリが動作する訳ではない。またLREはベータ版であり、HPによるサポートの対象外だ。さらに、Linuxカーネルやハードウェアに直接アクセスするようなLinuxアプリケーションには対応しない。


LPKによるLinuxとのソース互換性


一方、Linux/ x86のアプリケーションにソース互換性を提供するのが、LPK(Linux Porting Kit)である(関連リンク参照)。LPKは、以下のコンポーネントで構成されている。

  • libhplxライブラリ
  • HP-UX 11iオープンソース・ツールキット
  • Linux STK
  • 移行ドキュメント

「libhplxライブラリ」は、glibc 2.2.4のAPIの96%を実装したglibc互換ライブラリである。上述したLREのようなバイトオーダー変換などは行わないものの、各APIに対応するHP-UXシステム・コールを実行し、LinuxとのAPI互換性を実現する。このlibhplxについても、Apache WebサーバやMySQLなど大半のアプリケーションでの安定動作が確認されている。ちなみに、未実装の4%はおもにプラットフォーム依存部分とのことだ。

一方、「HP-UX 11iオープンソース・ツールキット」は、Linux上で広く利用されている数100種類のオープンソース・ソフトウェアをHP-UX/Itanium上にポーティングしたものである。例えばビルドに関連するツールとしては、前編で紹介したgccをはじめ、gmake、m4、autoconf/automake、ant、cvsなどが利用可能だ。またシェルとしては、bashやtcsh、zshが用意されている(Bourneシェルは非サポート)。このように、ビルド・システムについても高い互換性が確保されており、スクリプトの変更は最小限で済む。

そして「Linux STK」は、これらの移行済みツールやlibhplxを利用したLinuxアプリケーションの移行を支援するSTKである。前編で紹介したHP-UX STKと同様に、C/C++のソースコードやスクリプト、Makefileを事前チェックするファイルスキャナーを提供する。スキャン結果は、移行ドキュメントと統合されたHTML形式レポートとして出力される。

以上の各種ツールを含むLPKを使えば、Linux/ x86のアプリケーションについても、HP-UX/Itanium上での再ビルドをスムーズに進められるはずだ。なおHPでは、Linuxからの移行を支援するサポート・サービスも提供している。


SolarisおよびTru64からの移行


ちなみに、SolarisおよびTru64 UNIXからHP-UX/Itaniumへの移行について、HPでは以下の2種類のSTKを公開している。

  • Solaris STK
  • Tru64 STK

SolarisとTru64 UNIXアプリケーションについては、PA-RISCやLinuxの場合とは異なり、残念ながらバイナリ互換性は実現されていない。よって移行に際しては、ソースコードからの再ビルドが必須だ。上述したSTKを利用し、移行ドキュメントにしたがってソースやスクリプトの修正を進めていくことになる。なおデータの互換性については、SolarisはHP-UXと同じくBEであるため互換性がある。一方、Tru64 UNIXはLEであるため、バイトオーダーの変更にともなう修正が随所に必要となる。

トップへ   次のページへ

本ページの内容は執筆時の情報に基づいており、異なる場合があります。

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項 ウェブマスターに連絡