日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第1章:はじめに
第2章:基本的な相違点
第3章:アプリケーションの調査
第4章:ソース・モジュールの移行
第5章:OpenVMS I64 開発環境
第6章:ポーティングの準備
第7章:その他の検討事項
付録A :アプリケーション評価チェックリスト
付録B :サポート対象外のレイヤード・プロダクト
付録C :アプリケーション固有のスタック切り換えコードの I64 へのポーティング
用語集
索引
PDF
OpenVMS ホーム

HP OpenVMS
OpenVMS Alpha から OpenVMS I64 へのアプリケーション・ポーティング・ガイド


目次 索引

付録 A
アプリケーション評価チェックリスト

計画およびポーティング作業の際には,このチェックリストを手引きとして利用してください。

       
全般的な情報
       
 1. アプリケーションの目的は何ですか? (簡単に記入してください)    
                                                 
                                                 
       
開発の履歴とプラン
       
 2. a. アプリケーションは現在,他のオペレーティング・システムまたはハードウェア・アーキテクチャで動作していますか? [  ] はい [  ] いいえ
  b. 回答が「はい」の場合,アプリケーションは現在,最新の OpenVMS Alpha システムで動作していますか? [  ] はい [  ] いいえ
  [アプリケーションがすでに複数のプラットフォームで動作している場合は,特定のプラットフォームに依存していない可能性が高いため,OpenVMS I64 へのポーティングは比較的簡単に行うことができると考えられます (しかし,アプリケーション・コードがプラットフォームごとに条件化されている場合は,多少の変更が必要になる可能性があります。詳細については, 第 4.8.1 項 を参照してください)。 b の回答が「はい」の場合は, OpenVMS I64 へのアプリケーションのポーティングは比較的簡単に行うことができると考えられます。 OpenVMS VAX で動作しているアプリケーションの場合は,最初に OpenVMS Alpha へのポーティングを行う必要があります (詳細については,『OpenVMS VAX から OpenVMS Alpha へのアプリケーションの移行』を参照してください)。]    
       
 3. 前回,アプリケーション環境をソースから完全に再コンパイルおよび再ビルドしたのはいつですか?                 
  a. アプリケーションの再ビルドは定期的に行っていますか? [  ] はい [  ] いいえ
  b. その頻度を記入してください。                 
  [あまり頻繁には再ビルドされていないアプリケーションの場合は,ポーティングの前に追加作業が必要になることがあります。たとえば,開発環境を変更すると,互換性の問題が発生することがあります。アプリケーションを移植する前に,最新バージョンの OpenVMS Alpha でビルドできるかどうか確認してください。]    
       
 4. アプリケーションについてよく理解している開発者が積極的にメンテナンス作業を行っていますか? [  ] はい [  ] いいえ
  開発者の名前と連絡先を記入してください。    
     開発者                   連絡先
                                                 
                                                 
                                                 
       
5. a. 新しくビルドされたアプリケーションの動作は,どのような方法でテストまたは検証していますか?    
                                                 
                                                 
  b. 最適化に役立つパフォーマンス評価ツールを使用していますか? [  ] はい [  ] いいえ
  c. 回答が「はい」の場合は,使用しているツールとバージョン番号を記入してください。    
      ツール                        バージョン
                                                 
                                                 
                                                 
  d. 使用しているソース・コード構成管理ツールとバージョン番号を記入してください。    
      ツール                        バージョン
                                                 
                                                 
                                                 
       
 6. 運用システムとは別に,開発およびテストのための環境を用意していますか? [  ] はい [  ] いいえ
 7. 新バージョンのアプリケーションを運用環境に導入する際の手順を記入してください。    
                                                 
                                                 
 8. OpenVMS I64 へのポーティング完了後,アプリケーションの今後の開発計画はどのようになっていますか。    
  a. 開発終了 [  ] はい [  ] いいえ
  b. 保守リリースのみ [  ] はい [  ] いいえ
  c. 機能の追加や変更 [  ] はい [  ] いいえ
  d. OpenVMS I64 と OpenVMS Alpha のソースを個別に管理 [  ] はい [  ] いいえ
  [a の回答が「はい」の場合は,利用するアプリケーションのバイナリ・トランスレーションをお勧めします。 b または c の回答が「はい」の場合は,バイナリ・トランスレーションも可能ですが,アプリケーションの再コンパイルと再リンクを行う場合の利点を評価する価値があります。 OpenVMS I64 と OpenVMS Alpha のソースを個別に管理する場合,つまり,d の回答が「はい」の場合は,相互運用性と整合性に関する問題点を考慮する必要があります。特に,同じアプリケーションの複数のバージョンが同じデータベースにアクセスする場合は,この検討が必要です。]    
       
アプリケーションの構成
       
  移植するアプリケーションのサイズとコンポーネントについて検討します。    
       
 9. アプリケーションのサイズを記入してください。    
  モジュールの数を記入してください。                 
  コードの行数,ディスク・ブロック数,または容量 (MB) を記入してください。                 
  必要なディスク容量を記入してください。                 
  [この情報は,ポーティングに必要な作業量とリソースの「サイズ」を判断するのに役立ちます。最も役立つ情報はコードのディスク・ブロック数です。]    
       
 10. a. アプリケーションを構成するすべてのソース・ファイルにアクセスできますか? [  ] はい [  ] いいえ
  b. HP サービスの利用を検討している場合, HP のスタッフがこれらのソース・ファイルおよびビルド・プロシージャにアクセスすることが可能ですか? [  ] はい [  ] いいえ
  [a の回答が「いいえ」の場合,不足しているソース・ファイルについては,バイナリ・トランスレーションによるポーティングしか手段がありません。ユーザ・モードで実行される OpenVMS Alpha イメージを OpenVMS I64 イメージに変換してください。

OpenVMS VAX イメージを移植する場合は,最初に OpenVMS Alpha イメージに変換してください。 OpenVMS I64 イメージに直接変換することはできません。

b の回答が「はい」の場合は,広い範囲で HP ポーティング・サービスを利用できます。]

   
       
 11. a. アプリケーションを作成するのに使用した言語を記入してください (複数の言語を使用している場合は,それぞれの割合も記入してください)。    
      言語                        パーセンテージ
                                                 
                                                 
                                                 
  b. OpenVMS Alpha で MACRO-64,PL/I,Ada 83, Fortran 77 を使用していますか? [  ] はい [  ] いいえ
  [OpenVMS Alpha で MACRO-64 を使用している場合は,OpenVMS I64 で MACRO-64 コンパイラが提供されないため,コードを書き直す必要があります。可能であれば,ドキュメントに記載されているシステム・インタフェースを使用して,コードを高級言語で書き直すことをお勧めします。アセンブリ言語で記述しなければならないマシン固有のコードの場合は,MACRO-64 コードを OpenVMS I64 アセンブリ・コードで書き直す必要があります。

同様に,PL/I,Fortran 77,および Ada 83 も OpenVMS I64 ではサポートされません。 PL/I で作成されたコードがアプリケーションに含まれている場合は,C や C++ などの別の言語で書き直すことをお勧めします。 Ada 83 で書かれているコードは Ada 95 に, Fortran 77 で書かれているコードは Fortran 90 に更新してください。コードを分析して,新しいコンパイラでコードの変更が必要かどうかを確認します。

一般に,OpenVMS I64 でコンパイラが提供されていない場合は,バイナリ・トランスレータを使用するか,または別の言語でコードを書き直す必要があります。

コンパイラとトランスレータが提供されているかどうかについては,第 5 章と第 6 章を参照してください。]

   
       
 12. アプリケーションのドキュメントが存在しますか? [  ] はい [  ] いいえ
  [回答が「はい」の場合は,アプリケーションの変更が必要になったときに,ドキュメントの更新も必要になることに注意してください。]    
       
外部依存性
       
  アプリケーションの開発,テスト,および実行に必要なシステム構成,環境,ソフトウェアについて検討します。    
       
 13. アプリケーションの開発環境を設定するのに必要なシステム構成 (CPU,メモリ,ディスク) を記入してください。    
                                                 
                                                 
  [この情報は,ポーティングに必要なリソースを見積もるのに役立ちます。]    
       
 14. アプリケーションの典型的なユーザ環境 (インストール検証プロシージャ,リグレッション・テスト,ベンチマーク,作業負荷など) を設定するのに必要なシステム構成 (CPU,メモリ,ディスク) を記入してください。    
                                                 
                                                 
  [この情報は,環境全体が OpenVMS I64 で提供されるかどうかを判断するのに役立ちます。]    
       
 15. アプリケーションは特殊なハードウェアに依存していますか? [  ] はい [  ] いいえ
  [この情報は,ハードウェアが OpenVMS I64 で使用できるかどうか,およびアプリケーションにハードウェア固有のコードが含まれているかどうかを判断するのに役立ちます。]    
       
 16. アプリケーションが現在動作している OpenVMS Alpha のバージョンを記入してください。                 
  アプリケーションは OpenVMS Alpha Version 7.3-2 または 7.3-1 で動作していますか? [  ] はい [  ] いいえ
  [アプリケーションをOpenVMS I64 へ移植する前に,最新バージョンの OpenVMS Alpha で実行できるようにすることをお勧めします。]    
       
 17. アプリケーションでレイヤード・ソフトウェアや他社製品を実行することが必要ですか?    
  a. HP 製品 (コンパイラ・ランタイム・ライブラリ以外): [  ] はい [  ] いいえ
  HP 製レイヤード・ソフトウェアとそのバージョンを記入してください。    
      HP 製品                      バージョン
                                                 
                                                 
                                                 
  b. 他社製品: [  ] はい [  ] いいえ
  他社製品とそのバージョンを記入してください。    
      他社製品                バージョン
                                                 
                                                 
                                                 
  [a の回答が「はい」で, HP 製レイヤード・ソフトウェアが OpenVMS I64 で提供されるかどうかわからない場合は, HP のサポート担当者にお問い合わせください。ソフトウェアのポーティングに対する HP の取り組みについては, 第 3.4 節 を参照してください。 b の回答が「はい」の場合は,その製品を提供する会社にお問い合わせください。]    
       
 18. a. アプリケーション用のリグレッション・テスト・ツールを用意していますか? [  ] はい [  ] いいえ
  b. 回答が「はい」の場合は,HP Digital Test Manager など,特定のソフトウェア製品が必要ですか? [  ] はい [  ] いいえ
  [a の回答が「はい」の場合は,リグレッション・テスト・ツールのポーティングを検討する必要があります。 b の回答が「はい」の場合は,本リリースの OpenVMS で HP Digital Test Manager が DECset 製品セットの一部として提供されています。テスト用に他のツールが必要な場合は,HP のサポート担当者にお問い合わせください。また, 第 5 章 も参照してください。運用環境でリグレッションをチェックするために,適切なテスト・プロセスを使用することをお勧めします。]    
       
OpenVMS Alpha アーキテクチャへの依存性
       
  OpenVMS Alpha と OpenVMS I64 との相違点について検討します。以下の質問は,最も重要な相違点を明らかにするのに役立ちます。これらの相違点によって必要になるアプリケーション・コンポーネントの変更点を検討してください。 OpenVMS Alpha アーキテクチャに特別に依存しているユーザ作成コードやアセンブリ・コードは書き直す必要があります。    
       
19. アプリケーションで OpenVMS VAX 浮動小数点データ・タイプを使用していますか? [  ] はい [  ] いいえ
  [回答が「はい」の場合は,OpenVMS I64 のコンパイラのデフォルトが IEEE 浮動小数点データ・タイプであることに注意してください。 OpenVMS I64 のコンパイラでは, OpenVMS VAX 浮動小数点データ・タイプから IEEE 浮動小数点データ・タイプに自動的に変換することで, VAX 浮動小数点形式をサポートしています。その結果,わずかな精度の差が発生することがあります。さらに,アプリケーションでどの程度の浮動小数点演算が実行されるかに応じて,実行時のパフォーマンスが少し低下します (変換せずに,IEEE 浮動小数点データ・タイプを直接使用した場合と比較して)。浮動小数点データ・タイプの詳細については, 第 4.8.4 項 を参照してください。]    
       
20. データは自然な境界に配置されていますか? [  ] はい [  ] いいえ
  [データが自然な境界に配置されていない場合は,データ参照のパフォーマンスを向上するために,データが自然な境界に配置されるようにしてください。自然な境界に配置されていないデータの場合,データ参照のパフォーマンスが大幅に低下します。特定の状況では,データを自然な境界に配置する必要があります。データ構造とアラインメントの詳細については, 第 4.8.7 項 と『OpenVMS Programming Concepts Manual』を参照してください。]    
       
21. アプリケーションで呼び出す OpenVMS システム・サービスは,次の操作を行いますか?    
  a. ワーキング・セットを変更しますか? [  ] はい [  ] いいえ
  b. SYS$GOTO_UNWIND を使用してプログラムの制御の流れを変更しますか? [  ] はい [  ] いいえ
  [a の回答が「はい」の場合は,SYS$LKWSET および SYS$LKWSET_64 システム・サービスの呼び出しに必要な入力パラメータが正しく指定されているかどうか確認してください。

b の回答が「はい」の場合は,SYS$GOTO_UNWIND の呼び出しを SYS$GOTO_UNWIND_64 に変更してください。 OpenVMS I64 では SYS$GOTO_UNWIND はサポートされません。

詳細については, 第 4 章 を参照してください。]

   
       
22. a. アプリケーションで複数の協調動作プロセスを使用していますか? [  ] はい [  ] いいえ
  回答が「はい」の場合:    
  b. プロセスの数を記入してください。                 
  c. 使用しているプロセス間通信の方法を記入してください。                 
   

[  ] $CRMPSC [  ] メールボックス [  ] SCS [  ] その他
[  ] DLM [  ] SHM,IPC [  ] SMG$ [  ] STR$

   
       
  d. グローバル・セクション ($CRMPSC) を使用して他のプロセスとデータを共有している場合,データ・アクセスの同期をとる方法を記入してください。                 
  [この情報は,明示的な同期化を使用する必要があるかどうかと,アプリケーションの要素間で同期化を保証するのに必要な作業レベルを判断するのに役立ちます。一般に,高度な同期化方式を使用すると,アプリケーションのポーティングは最も簡単に行うことができます。]    
       
23. アプリケーションは現在,マルチプロセッサ (SMP) 環境で動作していますか? [  ] はい [  ] いいえ
  [回答が「はい」の場合は,アプリケーションですでに適切なプロセス間同期化方式が使用されていると考えられます。]    
       
24. アプリケーションで AST (非同期システム・トラップ) 機能を使用していますか? [  ] はい [  ] いいえ
  [回答が「はい」の場合は, AST とメイン・プロセスがプロセス空間でデータへのアクセスを共有しているかどうかを判断する必要があります。共有している場合は,このようなアクセスは明示的に同期化しなければならないことがあります。これは Alpha 上のアプリケーションにも同じく当てはまる点に注意してください。 AST についての詳細は,『OpenVMS Programming Concepts Manual』を参照してください。]    
       
25. a. アプリケーションに条件ハンドラが含まれていますか? [  ] はい [  ] いいえ
  b. ハンドラでメカニズム・アレイ内のデータを変更しますか? [  ] はい [  ] いいえ
  [OpenVMS Alpha と OpenVMS I64 のメカニズム・アレイの形式は大きく異なります。メカニズム・アレイ内のレジスタ値を変更するアプリケーションは必ず変更してください。詳細は,『OpenVMS Guide to Upgrading Privileged-Code Applications』を参照してください。]    
       
26. a. アプリケーションは特権モードで動作するか,または SYS$BASE_IMAGE に対してリンクされていますか? [  ] はい [  ] いいえ
  回答が「はい」の場合は,その理由を記入してください。                                          
  b. アプリケーションは OpenVMS の内部データ構造またはインタフェースに依存していますか? [  ] はい [  ] いいえ
  [OpenVMS エグゼクティブに対してリンクされているアプリケーションや特権モードで動作するアプリケーションの場合は,ポーティングで追加作業が必要になることがあります。 SYS$BASE_IMAGE でドキュメントに記載されていないインタフェースは,OpenVMS I64 で変更されている可能性があります。

OpenVMS の内部データ構造定義 (SYS$LIBRARY:LIB.INCLUDE, SYS$LIBRARY:LIB.L32,SYS$LIBRARY:LIB.MLB, SYS$LIBRARY:LIB.R64, SYS$LIBRARY:LIB.REQ,および SYS$LIBRARY:SYS$LIB_C.TLB に定義) に依存するアプリケーションの場合も,一部の内部データ構造が OpenVMS I64 で変更されている可能性があるため,ポーティングで追加作業が必要になることがあります。]

   
       
27. アプリケーションで接続/割り込み機能 (connect-to-interrupt) を使用していますか? [  ] はい [  ]いいえ
  回答が「はい」の場合は,その機能を記述してください。                 
  [接続/割り込み機能は OpenVMS I64 システムではサポートされません。この機能が必要な場合は, HP の担当者にお問い合わせください。]    
       
28. アプリケーションでマシン・インストラクションを生成または変更しますか? [  ] はい [  ] いいえ
  [OpenVMS I64 では,インストラクション・ストリームに書き込まれたインストラクションが正しく実行されることを保証するには,細心の注意を払う必要があります。特定のマシン・インストラクションを取り扱うコードは,書き直す必要があります。]    
       
29. OpenVMS Alpha アーキテクチャに特に依存しているその他のユーザ作成コードやアセンブラ・コードがアプリケーションに含まれていますか? [  ] はい [  ] いいえ
  [回答が「はい」の場合は,このようなコードは書き直してください。できれば,アーキテクチャに依存しないように書き直してください。]    
       
30. アプリケーションのソース・コードやビルド・ファイルに,条件付きステートメントや VAX システムまたは OpenVMS Alpha システムで動作することを前提としたロジックが含まれていますか? [  ] はい [  ] いいえ
  [回答が「はい」の場合は,条件付きディレクティブを多少変更する必要があります。たとえば,"IF ALPHA" を "IF ALPHA OR IPF" に変更したり, "IF NOT ALPHA" を "IF VAX" に変更したりします。詳細については, 第 4.8.1 項 を参照してください。]    
       
31. アプリケーションの中でパフォーマンスに最も影響を与えやすい要素を記述してください。たとえば,I/O,浮動小数点,メモリ,リアルタイム (つまり,割り込み待ち時間) などの要素です。    
                                                 
                                                 
  [この情報は,アプリケーションの各要素に対する作業の優先順位を判断するのに役立ちます。この情報をもとに,HP はお客様にとって最も意味のあるパフォーマンス強化手段を計画することができます。]    
       
32. アプリケーションで OpenVMS Alpha 呼び出し規則ルーチンを使用していますか? [  ] はい [  ] いいえ
  [回答が「はい」の場合は,LIBICB という呼び出し規則データ構造を使用するアプリケーションや, LIB$GET_CURRENT_INVO_CONTEXT, LIB$GET_PREVIOUS_INVO_CONTEXT, LIB$PUT_INVO_CONTEXT,および LIB$GET_INVO_HANDLE などの呼び出し規則ルーチンを使用するアプリケーションは変更する必要があります。 OpenVMS I64 では,LIBICB データ構造が変更された結果,これらのルーチンの名前も変更されました。さらに,呼び出し規則も変更されています。 OpenVMS Alpha呼び出し規則に関する情報を直接使用するアプリケーションは,OpenVMS I64 では変更する必要があります。 OpenVMS Alpha と OpenVMS I64 の呼び出し規則の相違点の詳細については, 第 2.1.1 項 を参照してください。 OpenVMS の呼び出し規則の詳細については,『OpenVMS Calling Standard』を参照してください。]    
       
33. アプリケーションで非標準ルーチン・リンケージ宣言を使用していますか? [  ] はい [  ] いいえ
  [回答が「はい」の場合は,非標準リンケージを含むアプリケーションは OpenVMS Alpha の呼び出し規則に従っているため, OpenVMS I64 の呼び出し規則に準拠するように変更する必要があります。]    
       
34. a. アプリケーションはオブジェクト・ファイルの形式または内容に依存していますか? [  ] はい [  ] いいえ
  b. アプリケーションは実行イメージの形式または内容に依存していますか? [  ] はい [  ] いいえ
  c. アプリケーションはイメージのデバッグ・シンボル・テーブルの内容に依存していますか? [  ] はい [  ] いいえ
  [いずれかの回答が「はい」の場合は,これらのイメージおよびオブジェクト・ファイルのデータ構造に依存しているアプリケーションは変更する必要があります。 OpenVMS I64 では,ELF という業界標準のオブジェクト・ファイルおよびイメージ・ファイルのレイアウトが採用されています。また,DWARF という業界標準のデバッグ・シンボル・テーブルの形式も採用されています。 OpenVMS Alpha のオブジェクト・ファイル,イメージ・ファイル,またはデバッグ・シンボル・テーブルの形式に依存しているアプリケーションは,変更する必要があります。詳細については, 第 4.8.3.4 項 を参照してください。]    
       
35. アプリケーションで C の asm ステートメントを使用していますか? [  ] はい [  ] いいえ
  [ C の asm ステートメントを使用しているアプリケーションは Alpha インストラクションに依存するので,回答が「はい」の場合は,変更する必要があります。 OpenVMS I64 向けの HP C コンパイラでは, asm ステートメントを使用する必要性をできるだけ少なくするために,多くの新しい組み込み関数が追加されています。 ]    
       
36. アプリケーションでBLISS レジスタ・ビルトインを使用していますか? [  ] はい [  ] いいえ
  [回答が「はい」の場合は, BLISS の BUILTIN ステートメントを使用して組み込みレジスタ名を宣言するアプリケーションは変更する必要があります。]    
       
アプリケーションのポーティング
       
  評価と計画段階が終了したら,実際のポーティング作業を行います。    
37. OpenVMS Alpha システムを,提供されている最新バージョンにアップグレードしましたか? [  ] はい [  ] いいえ
  [回答が「いいえ」の場合は,アプリケーションのポーティングを開始する前に,OpenVMS Alpha システムをアップグレードしてください。]    
       
38. a. 最新バージョンのコンパイラを使用して,最新バージョンの OpenVMS Alpha でアプリケーションをコンパイルしましたか? [  ] はい [  ] いいえ
  b. コンパイル時に検出された問題を修正しましたか。 [  ] はい [  ] いいえ
  [回答が「いいえ」の場合は,最新バージョンのコンパイラを使用して,最新バージョンの OpenVMS Alpha でアプリケーションをコンパイルしてください。 a の回答が「はい」であっても,コンパイル後にコードの一部を変更している場合は,再度コンパイルしてください。この段階が終了し,このチェックリストでこれまで詳しく検討した他のすべての項目に回答し,第 4 章から第 7 章までの検討事項にも対応したら,アプリケーションは OpenVMS I64 にポーティング可能な状態になっています。 ]    
       
39. アプリケーション・ソース・モジュールとすべての関連コードを OpenVMS I64 システムにコピーしてください。モジュールと関連コードを OpenVMS I64 にコピーしましたか? [  ] はい [  ] いいえ
       
40. OpenVMS I64 システムでアプリケーションをコンパイルおよびリンクして,実行します。
アプリケーションをコンパイルおよびリンクして,実行していますか?


[  ] はい


[  ] いいえ
  [詳細については, 第 5 章 を参照してください。 ]    
       
41. OpenVMS I64 システムで単体テストを行ってください。
単体テストは完了しましたか?

[  ] はい

[  ] いいえ
  [詳細については, 第 5 章 を参照してください。 ]    
       
42. OpenVMS I64 システムでシステム・テストを行ってください。
システム・テストは完了しましたか?

[  ] はい

[  ] いいえ
  [詳細については, 第 5 章 を参照してください。 ]    
       
43. OpenVMS I64 システムでリグレッション・テストを行ってください。
リグレッション・テストは完了しましたか?

[  ] はい

[  ] いいえ
  [詳細については, 第 5 章 を参照してください。 ]    
       
44. テストは成功しましたか?
[  ] はい
[  ] いいえ
  [回答が「いいえ」の場合は,問題を解決した後,アプリケーションのコンパイル,リンク,テストを再度行います。詳細については, 第 5 章 を参照してください。 ]    


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.