[ 次のページ ] [ 目次 ] [ 索引 ] [ 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.1 VAXシステムとAlphaシステムの互換性

1.2 VAXアーキテクチャと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.1 VAX MACROアセンブリ言語

2.4.2 特権付きコード

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

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.8 VAXプロシージャ呼び出し規則への明示的な依存

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

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

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

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

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

2.5.12 VAX命令の実行時作成

2.6 VAXシステムと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.2 OpenVMS Alpha用のVAX MACRO-32コンパイラ

3.2.1.3 その他の開発ツール

3.2.2 トランスレーション

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

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

3.3.1 デバッグ

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

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

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

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

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

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

3.3.3 テスト

3.3.3.1 VAXテスト

3.3.3.2 Alphaテスト

3.3.4 潜在的なバグの発見

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

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

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

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

4.3 VAXシステムと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.2 Alphaの互換性機能

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

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

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

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

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

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

7.1 概要

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

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

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

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

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

8.1 概要

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

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

8.4 例外条件の識別

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

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

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

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

9.1 DECmigrate for OpenVMS Alpha

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

9.3 Translated 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.5 VAX C:トランスレートされたプログラムの制限事項

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

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

9.5.1 CRF$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 特殊なトランスレートされたイメージ(ジャケット・イメージ)と代用イメージの作成

11 OpenVMS Alphaコンパイラ

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

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

11.1.2 タスクに関する相違点

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

11.1.4 SYSTEMパッケージの相違点

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

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

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

11.2.1 言語モード

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

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

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

11.2.3.1 Alpha命令のアクセス

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

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

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

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

11.2.4.2 引数リストのアクセス

11.2.4.3 例外の同期化

11.2.4.4 動的条件ハンドラ

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

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

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

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

11.3.2 コマンド行修飾子

11.3.2.1 /NATIONALITY={JAPAN|US}

11.3.2.2 /STANDARD=MIA

11.3.2.3 DEC COBOL固有の修飾子

11.3.2.4 /ALIGNMENT=PADDING

11.3.2.5 VAX COBOL固有の修飾子

11.3.2.6 /STANDARD=V3

11.3.2.7 /STANDARD=OPENVMS_AXP

11.3.3 DEC 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.3 COPY文とREPLACE文

11.3.3.2.4 複数のCOPY文

11.3.3.2.5 COPY挿入文

11.3.3.2.6 REPLACE文

11.3.3.2.7 DATE COMPILED文

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

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

11.3.3.4 DEC COBOLとVAX COBOLの文の違い

11.3.3.4.1 ACCEPTおよびDISPLAY文

11.3.3.4.2 EXIT PROGRAM句

11.3.3.4.3 LINAGE句

11.3.3.4.4 MOVE文

11.3.3.4.5 SEARCH文

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.11 RMS特殊レジスタ

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

11.3.3.13 共通ブロックの共用

11.3.3.14 算術演算

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

11.3.5 予約語

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

11.3.7 DECset/LSEサポートの違い

11.3.8 DBMSサポート

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

11.4.1 言語機能

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

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

11.4.1.3 解釈方法の相違

11.4.2 コマンド行修飾子

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

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

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

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

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

11.5.1 DEC 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.3 OVERLAID属性

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

用語集

索引

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

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

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

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

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

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

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

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

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

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

8-1 条件処理ルーチン

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

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

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

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

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

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

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

3-1 移行環境とツール

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

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

6-1 同期に関する判断

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

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

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

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

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

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

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

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

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

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

2-2 移行方法の比較

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11-6 VAX COBOL固有の修飾子

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

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

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

11-10 DEC Pascal の新機能

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


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