日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS
ライブラリ

タイトルページ
目次
まえがき
第 1 章:移行プロセスの概要
第 2 章:移行方法の選択
第 3 章:アプリケーションの移行
第 4 章:再コンパイルと再リンクの概要
第 5 章:ページサイズの拡大に対するアプリケーションの対応
第 6 章:共用データの整合性の維持
第 7 章:アプリケーションデータ宣言の移植性の確認
第 8 章:アプリケーション内の条件処理コードの確認
第 9 章:OpenVMS I64コンパイラ
付録 A :アプリケーション評価チェックリスト
用語集
索引
PDF
OpenVMS ホーム

HP OpenVMS
OpenVMS VAX から OpenVMS I64 への
アプリケーションの移行


目次 索引

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

アプリケーションを実際に OpenVMS I64 システムに移行する作業は,次に示すように複数の段階に分かれています。

  1. 移行環境を設定する

  2. 移行評価の基礎とするために VAX システムでアプリケーションをテストする

  3. I64 システムで実行するためにアプリケーションを変換する

  4. 移行したアプリケーションをデバッグおよびテストする

  5. 移行したアプリケーションをソフトウェア・システムに統合する

  6. 特定の種類のコードを変更する



3.1 移行環境の設定

ネイティブな I64 環境は, VAX システムと同様に完全な開発環境です。移行したアプリケーションのコンパイル,リンク,デバッグおよびテストは, Integrity サーバ・システム上で行わなければなりません。

I64 移行環境の重要な要素は HP からサポートされ,HP はアプリケーションの変更,デバッグ,およびテストのために必要な支援を提供します。

3.1.1 ハードウェア

移行のためにどのハードウェアが必要かを計画する場合,複数の問題を検討しなければなりません。まず,通常の VAX 開発環境でどのような資源が必要であるかを検討してください。

  • CPU

  • ディスク

  • メモリ

I64 への移行環境にとって必要な資源を見積もるには,次の点に注意してください。

  • I64 システムでは,イメージ・サイズが従来より大きくなる
    VAX システムと I64 システムとの間で,コンパイルしたイメージとトランスレートしたイメージを比較してください。

  • I64 システムでは,ページ・サイズと物理メモリ・サイズが従来より大きくなる

  • CPU の要件

VAX イメージを Integrity サーバ上で動作するようにトランスレートすると,一般に多くの CPU 時間が必要となります (実際に必要な CPU 時間を予測することは困難です。必要な CPU 時間は,アプリケーションのサイズよりもアプリケーションの複雑さに依存するからです)。また,イメージ・トランスレータを使用する場合,ログ・ファイルのためのディスク空間,Alpha イメージのためのディスク空間 (必要とする場合),フローグラフのためのディスク空間などが大量に必要になります。新しいイメージには,元の VAX 命令,トランスレートされた Alpha 命令,新しい Itanium 命令が含まれます。したがって,元の VAX イメージより必ず大きくなります。

望ましい構成は次のとおりです。

  • 256 MB のメモリを搭載した 6 VUP 以上のマルチプロセシング・システム

  • 1 GB のシステム・ディスク

  • 各アプリケーションあたり 1 GB のディスク

マルチプロセシング・システムでは,各プロセッサが別々のアプリケーションのイメージ分析を行うことができます。

コンピユータ資源が不足する場合には,次のいずれかの処置で対処してください。

  • コンパイラや VEST は,作業量の少ない時刻にバッチ・ジョブとして実行してください。

  • 移行作業のために必要な機器をリースしてください。



3.1.2 ソフトウェア

効率のよい移行環境を構築するには,以下の要素を確認しなければなりません。

  • 移行ツール
    以下のツールも含めて,互換性のある移行ツールが必要です。

    • コンパイラ

    • トランスレーション・ツール

      • VAX イメージを Alpha にトランスレートするための VEST

      • HP OpenVMS Migration Software for Alpha to Integrity Servers (OMSAIS)

    • RTL

    • システム・ライブラリ

    • C プログラムのためのインクルード・ファイル

  • コンパイル・プロシージャとリンク・プロシージャ
    これらのプロシージャは新しいツールおよび新しい環境に適合するように調整しなければなりません。

  • テスト・ツール
    OpenVMS VAX のテスト・ツールを OpenVMS I64 にポーティングしなければなりません。また,アプリケーションでの OpenVMS I64 固有の動作をテストするために設計されたテスト・ツールも必要です。最初に VAX から Alpha にトランスレートし,その後 I64 にトランスレートする場合は,最初の手順が正常に完了していることを確認する必要があるため, Alpha 用のテスト・ツールも必要になります。

  • ソースの管理とイメージのビルドのためのツール

    • CMS (コード管理システム)

    • MMS (モジュール管理システム)

トランスレーション

ソフトウェア・トランスレータ OMSAIS は Alpha システムと I64 システムの両方で動作します。 TIE はトランスレートされたイメージを実行するために必要であり, OpenVMS I64 の一部です。したがって,トランスレートされたイメージの最終的なテストは I64 システムまたは I64 Migration Center で実行しなければなりません。

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

コードを完全に分析し,移行計画の作成を完了してある場合には,この最終段階は簡単に終了できます。多くのプログラムは全く変更せずに再コンパイルまたはトランスレートできます。直接に再コンパイルまたはトランスレートできないプログラムでも,多くの場合,簡単な変更だけで I64 システムで実行できるようになります。

コードの実際の変換についての詳しい説明は,OpenVMS I64 の移行に関する次のマニュアルを参照してください。

  • 『DECmigrate for OpenVMS AXP Systems Translating Images』

  • 『OpenVMS MACRO-32 Porting and User's Guide』

  • HP OpenVMS Migration Software for Alpha to Integrity Servers: イメージ変換ガイド

これらのマニュアルについての説明は,本書のまえがきを参照してください。

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

一般に,アプリケーションを移行する場合には,コードの変更,コンパイル,リンク,およびデバッグを繰り返し実行しなければなりません。これらの処理を実行することにより,開発ツールから指摘されたすべての構文エラーとロジック・エラーを解決します。通常,構文エラーは簡単に修正できますが,ロジック・エラーを修正するには,コードの大幅な変更が必要になります。

時が経つにつれて,言語規格とコンパイラ品質の両方が変化します。コードの移植性によって,規格へのより厳密な準拠またはその他の品質向上を示すコンパイラ・メッセージが表示されることがあります。コードの移植性が高いほど,メッセージが表示される機会は減ります。

新しいコンパイラ・スイッチやリンカ・スイッチに対応するために,コンパイル・コマンドとリンク・コマンドは,ある程度変更しなければなりません。たとえば,さまざまなバージョンの OpenVMS I64 で移植可能にするために,リンカはデフォルトのページ・サイズを 64KB として設定します。これにより OpenVMS I64 イメージは,デフォルトのページ・サイズが最大 64 KB までのシステムで実行可能になります。

I64 システムでソフトウェアを開発し移行するために,多くのネイティブ・コンパイラとその他のツールが提供されています。

既存の VAX ソースを再コンパイルおよび再リンクすると,ネイティブ I64 イメージが作成されます。このイメージは,Intel Itanium アーキテクチャの性能上の利点をすべて利用して, I64 環境で実行されます。 I64 コードでは,一連の高度な最適化コンパイラを使用します。

OpenVMS I64 では,次の言語に対してネイティブ I64 コンパイラが提供されています。

  • GNAT Pro Ada1

  • BASIC

  • BLISS (Freeware CD で提供)

  • C

  • C++

  • COBOL

  • Fortran

  • MACRO--32

  • Pascal

他の言語1で作成されたユーザ・モードの VAX プログラムは, VEST および OMSAI を使用してトランスレートすることにより, I64 システムで実行できます。また,他社からも他の言語のためのコンパイラが提供されます。

一般に,I64 コンパイラには,VAX アーキテクチャに依存するコードを少し変更するだけで I64 システムでも実行できるようにするための,コマンド・ライン修飾子と言語セマンティックが準備されています。このようなVAX アーキテクチャへの依存のリストについては, 表 2-2 を参照してください。

OpenVMS I64 システムの一部のコンパイラは,OpenVMS VAX システムでの対応するコンパイラでサポートされていない新しい機能をサポートしています。互換性を維持するために,一部のコンパイラは互換性モードをサポートしています。たとえば,OpenVMS I64 システム用の HP C コンパイラでは, VAX C 互換性モードがサポートされており, /STANDARD=VAXC 修飾子を指定することにより起動されます。

場合によっては,互換性が制限されます。たとえば,VAX C では,特殊な VAX ハードウェア機能にアクセスできるようにするための組み込み関数が実装されています。 VAX コンピュータのハードウェア・アーキテクチャは Integrity サーバのハードウェア・アーキテクチャと異なるため,これらの組み込み関数は, /STANDARD=VAXC 修飾子を使用した場合でも,OpenVMS I64 システム用の HP C コンパイラでは使用できません。

また,コード内に存在するアーキテクチャ依存部分をコンパイラである程度補正することもできます。たとえば,MACRO--32 コンパイラには /PRESERVE 修飾子があり,粒度と不可分性のどちらか一方または両方を維持できます。

HP C コンパイラには,各データ型の typedef を定義しているヘッダ・ファイルがあります。これらの typedef は,int64 などの汎用データ型の名前を __int64 などのマシン固有のデータ型に変換します。たとえば,64 ビットの長さのデータ型が必要な場合には,int64 typedef を使用します。

移植性をサポートするすべての機能の詳細については,コンパイラのマニュアルを参照してください。

I64 コンパイラを使用して,OpenVMS VAX プログラムを OpenVMS I64 システムに移行する処理の詳細については, 第 9 章 を参照してください。

既存の VAX MACRO コードを OpenVMS I64 システムで動作するマシン・コードに変換するには,MACRO--32 Compiler for OpenVMS I64 を使用します。 OpenVMS I64 にはその目的で,このコンパイラが含まれています。

一部の VAX MACRO コードは変更せずにコンパイルできますが,大部分のコード・モジュールでは,エントリ・ポイント指示文を追加する必要があります。また,多くのコード・モジュールではその他の変更も必要です。

注意

MACRO--32 コンパイラは,ソース・コードに LIB$ESTABLISH が含まれている場合には,それを呼び出そうとします。

MACRO--32 プログラムが,0(FP) にルーチン・アドレスを格納することにより動的ハンドラを確立する場合には,OpenVMS I64 システムでコンパイルしても,そのプログラムは正しく動作します。ただし,JSB (Jump to Subroutine) ルーチンの内部から条件ハンドラ・アドレスを設定することはできません。条件ハンドラ・アドレスの設定は,必ず CALL_ENTRY ルーチンの内部から行います。

コンパイラは OpenVMS I64 システム用に最適化されたコードを生成しますが, VAX MACRO 言語には高レベルの制御機能をプログラマに提供する多くの機能があるため, OpenVMS I64 システム用の最適なコードを生成することが困難になっています。 OpenVMS I64 用に新たなプログラムを開発する場合には,中級言語または高級言語を使用することをお勧めします。 MACRO--32 コンパイラについての詳細は,『OpenVMS MACRO-32 Porting and User's Guide』を参照してください。

コンパイラに加えて,ネイティブ I64 アプリケーションの開発,デバッグ,展開用にさまざまなツールが利用できます。 表 3-1 にこれらのツールの要約を示します。

表 3-1 OpenVMS の開発ツール
ツール 説明
OpenVMS リンカ OpenVMS リンカは,I64 オブジェクト・ファイルを受け付け,I64 イメージを生成します。 OpenVMS リンカについての詳細は, 第 4 章 を参照してください。
OpenVMS DEBUG OpenVMS I64 上の OpenVMS DEBUG は,シンボリックなソース・レベル・デバッガで,いくつかのグラフィカル・インタフェースを備えています。ユーザ・モード・アプリケーションのデバッグを目的としており,コマンドとインタフェースは OpenVMS VAX 上のものと同じです。 OpenVMS DEBUG についての詳細は,『OpenVMS デバッガ説明書』を参照してください。
DELTA デバッガ OpenVMS I64 上の DELTA デバッガは,高いモード (スーパバイザ・モード,エグゼクティブ・モード,カーネル・モード) で動作するプロセス・ベースのアプリケーション用の,シンボリックでない命令レベル・デバッガです。詳細は,『OpenVMS Delta/XDelta Debugger Manual』を参照してください。
System Code Debugger (SCD) SCD は,オペレーティング・システムとデバイス・ドライバのコードをデバッグするための,グラフィカルでシンボリックなソース・レベル・デバッガです。詳細は,『OpenVMS System Analysis Tools Manual』を参照してください。
XDelta デバッガ XDelta デバッガは,オペレーティング・システムとデバイス・ドライバのコードをデバッグするために使用する,シンボリックでないデバッガです。 OpenVMS I64 上の XDELTA についての詳細は,『OpenVMS Delta/XDelta Debugger Manual』を参照してください。
OpenVMS ライブラリアン・ユーティリティ OpenVMS ライブラリアン・ユーティリティは,I64 ライブラリを作成します。
OpenVMS メッセージ・ユーティリティ OpenVMS メッセージ・ユーティリティを使用すれば,OpenVMS システム・メッセージに独自のメッセージを追加できます。
IAS (Itanium アセンブラ) OpenVMS I64 システム用の IAS アセンブラは,Intel Itanium プロセッサ向けのネイティブ・アセンブラです。このアセンブラはオペレーティング・システムには添付されていませんが, OpenVMS I64 ディストリビューションに付属している Open Source CD に収録されています。
ANALYZE/IMAGE ANALYZE/IMAGE ユーティリティは,I64 イメージを分析できます。
ANALYZE/OBJECT ANALYZE/OBJECT ユーティリティは,I64 オブジェクトを分析できます。
DECset DECset は総合的な開発ツール群であり,Language Sensitive Editor (LSE), Digital Test Manager (DTM),Code Management System (CMS),および Module Management System (MMS) が含まれています。
コマンド定義ユーティリティ コマンド定義ユーティリティ (CDU) を使用すると,アプリケーション開発者が DCL コマンドを作成することができます。
System Dump Analyzer (SDA) SDA は,OpenVMS I64 システム固有の情報を表示するように拡張されました。
Crash Log Utility Extractor (CLUE) CLUE は,クラッシュ・ダンプと各クラッシュ・ダンプの重要なパラメータの履歴を記録し,重要な情報を抽出して要約するためのツールです。



3.2.2 トランスレーション

I64 システムで実行するために VAX イメージをトランスレートする処理については,『DECmigrate for OpenVMS AXP Systems Translating Images』および『HP OpenVMS Migration Software for Alpha to Integrity Servers: イメージ変換ガイド』を参照してください。

注意

1 Ada Core Technologies が販売している GNAT Pro は, OpenVMS I64 での推奨 Ada 95 コンパイラです。詳細は, 第 9 章 を参照してください。

1 PL/I プログラムはトランスレートできません。



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

OpenVMS では,システム・クラッシュを分析するために 2 つのツールを使用できます。それは System Dump Analyzer (SDA) と Crash Log Utility Extractor (CLUE) です。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項