[ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

# OpenVMS Alpha オペレーティング・システム
OpenVMS VAXからOpenVMS Alphaへの
アプリケーションの移行

AA-R1E8B-TE
1999年4月
本書はOpenVMS VAX版アプリケーションの OpenVMS Alpha版を作成する方法について説明しています。
改訂／更新情報： | 本書はOpenVMS V7.1 『 OpenVMS VAX から OpenVMS Alpha へのアプリケーションの移行』の改訂版です。
ソフトウェア・バージョン： | OpenVMS Alpha V7.2
| OpenVMS VAX V7.2
コンパックコンピュータ株式会社

1999 年 4 月

本書の著作権はコンパックコンピュータ株式会社が保有しており， 本書中の解説および図，表はコンパックの文書による許可なしに， その全体または一部を，いかなる場合にも再版あるいは複製することを禁じます。

また，本書に記載されている事項は， 予告なく変更されることがありますので，あらかじめご承知おきください。 万一，本書の記述に誤りがあった場合でも，コンパックは一切その責任を負いかねます。

本書で解説するソフトウェア(対象ソフトウェア)は，所定のライセンス契約が締結された場合に限り， その使用あるいは複製が許可されます。

(c) Compaq Computer K.K. 1999. All Rights Reserved.

以下は，米国 Compaq Computer Corporation の商標です。

Alpha，AlphaGeneration，AlphaServer, AlphaStation，Bookreader，CDA，CI，Compaq，DEC，DEC Ada, DEC BASIC，DEC Fortran，DEC Notes，DECdirect，DECdtm, DECevent，DECforms，DECmigrate，DECnet，DECpresent, DECthreads，DIGITAL，HSC，HSC40，HSC70，HSJ，HSZ, InfoServer，LAT，LinkWorks，MSCP，OpenVMS，PATHWORKS, POLYCENTER，RZ，StorageWorks，TMSCP，VAX，VMS，および Compaq ロゴ。

    Futurebus/PlusはドイツForce Computers GmbHの商標です。

    IEEEは米国The Institute of Electrical and Electronics Engineersの商標です。

    INGRESはIngres Corporationの商標です。

    MotifはOpen Software Foundation社の商標です。

    ORACLEはOracle Corporationの商標です。

    UNIXはX/Openカンパニーリミテッドがライセンスしている米国ならびに他の
    国における登録商標です。

    その他のすべての商標および登録商標は，それぞれの所有者が保有しています。

    原典   Migrating an Application from OpenVMS VAX to OpenVMS Alpha
           Copyright 1996 Compaq Computer Corporation

# 目次

まえがき

1移行プロセスの概要

1.1VAXシステムとAlphaシステムの互換性

1.2VAXアーキテクチャとAlphaアーキテクチャの相違点

1.2.1ユーザ作成デバイス・ドライバ

1.3移行プロセス

1.4移行の手段

1.5　アプリケーションの移行に対するDECのサポート

1.5.1　移行評価サービス

1.5.2　アプリケーション移行詳細分析/設計サービス

1.5.3　システム移行詳細分析/設計サービス

1.5.4

1.5.5　システム移行サービス

2移行方法の選択

2.1移行のための棚卸し

2.2移行方法の選択

2.3どの移行方法が可能か?

2.4再コンパイルに影響を与えるコーディングの様式

2.4.1VAX MACROアセンブリ言語

2.4.2特権付きコード

2.4.3VAXアーキテクチャ固有の機能

2.5アプリケーションでVAXアーキテクチャに依存する部分の識別

2.5.1データ・アラインメント

2.5.2データ型

2.5.3データへの共有アクセス

2.5.4クォドワードより小さいデータの読み込みまたは書き込み

2.5.5ページ・サイズに関する検討

2.5.6マルチプロセッサ・システムでの読み込み/書き込み操作の順序

2.5.7算術演算例外の報告の即時性

2.5.8VAXプロシージャ呼び出し規則への明示的な依存

2.5.9VAXデータ処理メカニズムへの明示的な依存

2.5.9.1動的な条件ハンドラの設定

2.5.9.2シグナル・アレイとメカニズム・アレイ内のデータのアクセス

2.5.10VAX ASTパラメータ・リストの変更

2.5.11VAX命令の形式と動作への明示的な依存

2.5.12VAX命令の実行時作成

2.6VAXシステムとAlphaシステムの間で互換性が維持されない部分の識別

2.7再コンパイルするか，またはトランスレートするかの判断

2.7.1アプリケーションのトランスレート

2.7.2ネイティブ・イメージとトランスレートされたイメージの混在

3アプリケーションの移行

3.1移行環境の設定

3.1.1ハードウェア

3.1.2ソフトウェア

3.2アプリケーションの変換

3.2.1再コンパイルと再リンク

3.2.1.1ネイティブなAlphaコンパイラ

3.2.1.2OpenVMS Alpha用のVAX MACRO-32コンパイラ

3.2.1.3その他の開発ツール

3.2.2トランスレーション

3.2.2.1VAX Environment Software Translator (VEST)とTranslated Image Environment (TIE)

3.3移行したアプリケーションのデバッグとテスト

3.3.1デバッグ

3.3.1.1OpenVMSデバッガによるデバッグ

3.3.1.2Deltaデバッガよるデバッグ

3.3.1.3OpenVMS Alphaシステムコード・デバッガによるデバッグ

3.3.2システム・クラッシュの分析

3.3.2.1システム・ダンプ・アナライザ

3.3.2.2クラッシュ・ログ・ユーティリティ・エクストラクタ(CLUE)

3.3.3テスト

3.3.3.1VAXテスト

3.3.3.2Alphaテスト

3.3.4潜在的なバグの発見

3.4移行したアプリケーションのソフトウェア・システムへの統合

4再コンパイルと再リンクの概要

4.1ネイティブなAlphaコンパイラによるアプリケーションの再コンパイル

4.2Alphaシステムでのアプリケーションの再リンク

4.3VAXシステムとAlphaシステムの算術演算ライブラリ間の互換性

4.4ホスト・アーキテクチャの判断

5ページ・サイズの拡大に対するアプリケーションの対応

5.1概要

5.1.1互換性のある機能

5.1.2特定のページ・サイズに依存する可能性のあるメモリ管理ルーチンのまとめ

5.2メモリ割り当てルーチンの確認

5.2.1拡張された仮想アドレス空間でのメモリの割り当て

5.2.2既存の仮想アドレス空間でのメモリの割り当て

5.2.3仮想メモリの削除

5.3メモリ・マッピング・ルーチンの確認

5.3.1拡張した仮想アドレス空間へのマッピング

5.3.2特定の位置への単一ページのマッピング

5.3.3定義されたアドレス範囲へのマッピング

5.3.4オフセットによるセクション・ファイルのマッピング

5.4ページ・サイズの実行時確認

5.5メモリをワーキング・セットとしてロックする操作

6共有データの整合性の維持

6.1概要

6.1.1不可分性を保証するVAXアーキテクチャの機能

6.1.2Alphaの互換性機能

6.2アプリケーションにおける不可分性への依存の検出

6.2.1明示的に共有されるデータの保護

6.2.2無意識に共有されるデータの保護

6.3読み込み/書き込み操作の同期

6.4トランスレートされたイメージの不可分性の保証

7アプリケーション・データ宣言の移植性の確認

7.1概要

7.2VAXデータ型への依存の確認

7.3データ型の選択に関する仮定の確認

7.3.1データ型の選択がコード・サイズに与える影響

7.3.2データ型の選択が性能に与える影響

8アプリケーション内の条件処理コードの確認

8.1概要

8.2動的条件ハンドラの設定

8.3依存している条件処理ルーチンの確認

8.4例外条件の識別

8.4.1Alphaシステムでの算術演算例外のテスト

8.4.2データ・アラインメント・トラップのテスト

8.5条件処理に関連する他の作業の実行

9アプリケーションのトランスレート

9.1DECmigrate for OpenVMS Alpha

9.2DECmigrate:トランスレートされたイメージのサポート

9.3Translated Image Environment (TIE)

9.3.1問題点と制限事項

9.3.1.1条件ハンドラに関する制限事項

9.3.1.2例外ハンドラに関する制限事項

9.3.1.3浮動小数点に関する制限事項

9.3.1.4相互操作性に関する制限事項

9.3.1.5VAX C:トランスレートされたプログラムの制限事項

9.4トランスレートされたイメージのサポート

9.5トランスレートされた実行時ライブラリ

9.5.1CRF$FREE_VMとCRF$GET_VM:トランスレートされた呼び出しルーチン

9.6トランスレートされたVAX C実行時ライブラリ

9.6.1問題点と制限事項

9.6.1.1機能上の制限事項

9.6.1.2相互操作性に関する制限事項

9.7トランスレートされたVAX COBOLプログラム

9.7.1問題点と制限事項

10ネイティブなイメージとトランスレートされたイメージの間の相互操作性の確認

10.1概要

10.1.1トランスレートされたイメージと相互操作可能なネイティブ・イメージのコンパイル

10.1.2トランスレートされたイメージと相互操作可能なネイティブ・イメージのリンク

10.2トランスレートされたイメージの呼び出しが可能なネイティブ・イメージの作成

10.3トランスレートされたイメージから呼び出すことができるネイティブ・イメージの作成

10.3.1シンボル・ベクタ・レイアウトの制御

10.3.2特殊なトランスレートされたイメージ(ジャケット・イメージ)と代用イメージの作成

11OpenVMS Alphaコンパイラ

11.1DEC AdaのAlphaシステムとVAXシステム間の互換性

11.1.1データ表現とアラインメントにおける相違点

11.1.2タスクに関する相違点

11.1.3プラグマに関する相違点

11.1.4SYSTEMパッケージの相違点

11.1.5他の言語パッケージ間での相違点

11.1.6あらかじめ定義されている命令に対する変更

11.2DEC C for OpenVMS AlphaシステムとVAX Cとの互換性

11.2.1言語モード

11.2.2DEC C for OpenVMS Alphaシステムのデータ型のマッピング

11.2.2.1浮動小数点マッピングの指定

11.2.3Alpha命令にアクセスする組み込み機能

11.2.3.1Alpha命令のアクセス

11.2.3.2Alpha特権付きアーキテクチャ・ライブラリ(PALcode)命令のアクセス

11.2.3.3複数の操作の組み合わせに対する不可分性の保証

11.2.4VAX CとDEC C for OpenVMS Alphaシステムのコンパイラの相違点

11.2.4.1データ・アラインメントの制御

11.2.4.2引数リストのアクセス

11.2.4.3例外の同期化

11.2.4.4動的条件ハンドラ

11.2.5CプログラマのためのSTARLETデータ構造体と定義

11.2.6/STANDARD=VAXCモードでサポートされないVAX Cの機能

11.3VAX COBOLとDEC COBOLの互換性と移行

11.3.1DEC COBOLの拡張仕様と機能の違い

11.3.2コマンド行修飾子

11.3.2.1/NATIONALITY={JAPAN|US}

11.3.2.2/STANDARD=MIA

11.3.2.3DEC COBOL固有の修飾子

11.3.2.4/ALIGNMENT=PADDING

11.3.2.5VAX COBOL固有の修飾子

11.3.2.6/STANDARD=V3

11.3.2.7/STANDARD=OPENVMS_AXP

11.3.3DEC COBOLとVAX COBOLの動作の違い

11.3.3.1プログラム構造メッセージ

11.3.3.2プログラム・リスティングの違い

11.3.3.2.1マシン・コード

11.3.3.2.2モジュール名

11.3.3.2.3COPY文とREPLACE文

11.3.3.2.4複数のCOPY文

11.3.3.2.5COPY挿入文

11.3.3.2.6REPLACE文

11.3.3.2.7DATE COMPILED文

11.3.3.2.8コンパイラ・リスティングと分割コンパイル

11.3.3.3出力のフォーマッティング

11.3.3.4DEC COBOLとVAX COBOLの文の違い

11.3.3.4.1ACCEPTおよびDISPLAY文

11.3.3.4.2EXIT PROGRAM句

11.3.3.4.3LINAGE句

11.3.3.4.4MOVE文

11.3.3.4.5SEARCH文

11.3.3.5システムの戻りコード

11.3.3.6診断メッセージ

11.3.3.7倍精度データ項目の記憶形式

11.3.3.8データ項目のハイオーダー切り捨て

11.3.3.9ファイルの状態値

11.3.3.10参照キー

11.3.3.11RMS特殊レジスタ

11.3.3.12共用可能イメージの呼び出し

11.3.3.13共通ブロックの共用

11.3.3.14算術演算

11.3.4言語とプラットフォームの間でのファイルの互換性

11.3.5予約語

11.3.6デバッガ・サポートの違い

11.3.7DECset/LSEサポートの違い

11.3.8DBMSサポート

11.4Digital Fortran for OpenVMS AlphaとOpenVMS VAXシステムとの互換性

11.4.1言語機能

11.4.1.1Digital Fortran for OpenVMS Alpha固有の言語機能

11.4.1.2Digital Fortran 77 for OpenVMS VAX Systems固有の言語機能

11.4.1.3解釈方法の相違

11.4.2コマンド行修飾子

11.4.2.1Digital Fortran for OpenVMS Alpha固有の修飾子

11.4.2.2Digital Fortran 77 for OpenVMS VAX Systems固有の修飾子

11.4.3トランスレートされた共有可能イメージとの相互操作性

11.4.4Digital Fortran 77 for OpenVMS VAX Systemsデータの移植

11.5DEC Pascal for OpenVMS AlphaシステムとVAX Pascalの互換性

11.5.1DEC Pascalの新機能

11.5.2動的条件ハンドラの設定

11.5.3レコード・ファイルに対する省略時のアラインメント規則の変更

11.5.4あらかじめ宣言されている名前の使用方法

11.5.5プラットフォームに依存する機能

11.5.6古い機能

11.5.6.1/OLD_VERSION修飾子

11.5.6.2/G_FLOATING修飾子

11.5.6.3OVERLAID属性

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

用語集

索引

例

4-1アーキテクチャ・タイプを判断するための ARCH_TYPE キーワードの使用

5-1仮想アドレス空間の拡張によるメモリの割り当て

5-2既存のアドレス空間でのメモリの割り当て

5-3拡張された仮想アドレス空間へのセクションのマッピング

5-4仮想アドレス空間の定義された領域へのセクションのマッピング

5-5 例 5-4をAlphaシステムで実行するのに必要なソース・コードの変更

5-6CPU固有のページ・サイズを確認するための$GETSYIシステム・サービスの使用

6-1ASTスレッドを含むプログラムにおける不可分な処理への依存

6-2例 6-1の同期バージョン

7-1VAX Cコードでのデータ型に関する仮定

8-1条件処理ルーチン

8-2条件処理プログラムの例

10-1メイン・プログラム(MYMAIN.C)のソース・コード

10-2共有可能イメージ(MYMATH.C)のソース・コード

11-1符号付きと符号なしの違い

11-2戻り値の誤ったコーディング

図

1-1VAXアプリケーションをAlphaシステムに移行する方法

2-1プログラム・イメージの移行

3-1移行環境とツール

5-1仮想アドレスのレイアウト

5-2オフセットによるマッピングに対してアドレス範囲が与える影響

6-1同期に関する判断

6-2例 6-1での不可分性の仮定

6-3Alphaシステムでの読み込み/書き込み操作の順序

7-1VAX Cの使用による mystructのアラインメント

7-2DEC C for OpenVMS Alphaシステムの使用によるmystructのアラインメント

8-1VAXシステムとAlphaシステム上の32ビット・シグナル・アレイ

8-2VAXシステムとAlphaシステムでのメカニズム・アレイ

8-3SS$_HPARITH例外シグナル・アレイ

8-4SS$_ALIGN例外のシグナル・アレイ

表

1-1AlphaアーキテクチャとVAXアーキテクチャの比較

2-1浮動小数点データ型のサポート

2-2移行方法の比較

2-3移行方式の選択: アーキテクチャに依存する部分の取り扱い

3-1OpenVMS VAX と OpenVMS Alpha の CLUE の相違点

4-1OpenVMS Alphaシステム固有のリンカ修飾子とオプション

4-2OpenVMS VAX システム固有のリンカ・オプション

4-3ホスト・アーキテクチャを指定する $GETSYIアイテム・コード

5-1メモリ管理ルーチンでページ・サイズに依存する可能性のある部分

5-2ランタイム・ライブラリ・ルーチンでページ・サイズに依存する可能性のある部分

7-1VAXとAlphaのネイティブなデータ型の比較

8-1アーキテクチャ固有のハードウェア例外

8-2例外サマリ引数のフィールド

8-3ランタイム・ライブラリ条件処理サポート・ルーチン

9-1OpenVMS Alpha の各バージョンでのトランスレートされたイメージのサポート

9-2実行時ライブラリの論理名

11-1DEC C for OpenVMS Alphaコンパイラの操作モード

11-2DEC C for OpenVMS Alphaコンパイラでの算術演算データ型のサイズ

11-3DEC C の浮動小数点マッピング

11-4OpenVMS Alphaシステム固有のDEC Cコンパイラ機能

11-5不可分性組み込み機能

11-6VAX COBOL固有の修飾子

11-7Digital Fortran 77 for OpenVMS VAX Systems にないDigital Fortran for OpenVMS Alpha 修飾子

11-8Digital Fortran for OpenVMS Alpha でサポートされないDigital Fortran 77 for OpenVMS VAX Systems 修飾子

11-9VAXシステムとAlphaシステムでの浮動小数点データ

11-10DEC Pascal の新機能

11-11あらかじめ宣言されている名前の使用方法

[ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]