日本-日本語

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

OpenVMS マニュアル


≫ 

OpenVMS
ライブラリ

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

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


目次 索引

第 1 章
移行プロセスの概要

多くの場合, OpenVMS VAX から OpenVMS I64 への移行 (マイグレーション) は簡単です。 アプリケーションがユーザ・モードでのみ実行され,標準的な高級言語で作成されている場合には,ほとんどの場合,ネイティブの OpenVMS I64 コンパイラを使用してそのアプリケーションを再コンパイルし,再リンクすることにより, OpenVMS I64 システムで実行可能なバージョンを作成できます。本書では,移行するアプリケーションを評価する方法,および,より複雑で特殊な場合の対処方法について説明します。

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

OpenVMS I64 オペレーティング・システムは,OpenVMS VAX のユーザ,システム管理,およびプログラミングの環境とできるだけ互換性を維持するように設計されています。一般的なユーザとシステム管理者に対しては, OpenVMS I64 は OpenVMS VAX と同じインタフェースを備えています。プログラマに対しては,「再コンパイル,再リンク,実行」という移行のモデルにできるだけ近づけることを目的にしています。

OpenVMS VAX システムで動作しているアプリケーションの場合,ほとんどの部分は I64 システムでも変更されません。

ユーザ・インタフェース

  • DIGITAL コマンド言語 (DCL)
    DIGITAL コマンド言語 (DCL) は OpenVMS に対する標準的なユーザ・インタフェースであり, OpenVMS I64 でも変更されません。 OpenVMS VAX で使用できるすべてのコマンド,修飾子,およびレキシカル関数は OpenVMS I64 でも使用できます。

  • コマンド・プロシージャ
    OpenVMS VAX の以前のバージョンを対象に作成されたコマンド・プロシージャは, OpenVMS I64 システムでも全く変更せずに動作します。ただし,ビルド・プロシージャなどの特定のコマンド・プロシージャは,新しいコンパイラ修飾子やリンカ・スイッチに対応できるように変更しなければならないことがあります。リンカ・オプション・ファイルも変更が必要な場合があり,特に共有イメージ (shareable image) の場合は変更が必要となります。

  • DECwindows
    ウィンドウ・インタフェースであるDECwindows Motif は変更されません。

  • DECforms
    DECforms インタフェースは変更されません。

  • エディタ
    2 つの標準的な OpenVMS エディタである EVE とEDT は変更されません。

システム管理インタフェース

システム管理ユーティリティはほとんど変更されません。ただし,主な例外が1 つあります。それはデバイス構成機能で, VAX システムでは System Generation ユーティリティ(SYSGEN) で提供される機能ですが, OpenVMS I64 では System Management ユーティリティ(SYSMAN) で提供されます。

プログラミング・インタフェース

概して,システム・サービスおよびランタイム・ライブラリ(RTL) 呼び出しインタフェースは変更されません。引数の定義を変更する必要はありません。相違点がいくつかありますが,これらの相違点は,次の2 種類に分類されます。

  • 一部のシステム・サービスと RTL ルーチン (メモリ管理システムと例外処理サービスなど) は,VAX システムと OpenVMS I64 システムとでは,少し異なる方法で動作します。詳しくは『OpenVMS System Services Reference Manual』と『OpenVMS RTL Library (LIB$) Manual』を参照してください。

  • 一部の RTL ルーチンは VAX アーキテクチャに密接に関係しており, OpenVMS I64 システムでは意味がありません。これらのルーチンは次のとおりです。

    ルーチン名 制約事項
    LIB$DECODE_FAULT VAX 命令をデコードする
    LIB$DEC_OVER VAX プロセッサ・ステータス・ロングワード (PSL) のみに適用される
    LIB$ESTABLISH OpenVMS I64 システムでは,類似する機能をコンパイラがサポートする
    LIB$FIXUP_FLT VAX PSL のみに適用される
    LIB$FLT_UNDER VAX PSL のみに適用される
    LIB$INT_OVER VAX PSL のみに適用される
    LIB$REVERT OpenVMS I64 システムではコンパイラがサポートする
    LIB$SIM_TRAP VAX のコードに適用される
    LIB$TPARSE 動作ルーチンのインタフェースの変更が必要である。 LIB$TABLE_PARSE に置き換えられている

これらのサービスとルーチンを呼び出す VAX イメージの大部分は,トランスレートし, OpenVMS I64 の TIE (Translated Image Environment) のもとで実行すれば,正しく動作します。 TIE についての詳しい説明は,『DECmigrate for OpenVMS AXP Systems Translating Images』を参照してください。

データ

  • ODS-2 データ・ファイルのディスク上での形式は, VAX システムと Integrity サーバ・システムとで同じです。しかし,ODS-1 ファイルは OpenVMS I64 ではサポートされません。

  • レコード管理サービス (RMS) とファイル管理インタフェースは変更されていません。

  • IEEE リトル・エンディアン・データ型である S 浮動小数点 (S_floating) と T 浮動小数点 (T_floating) が追加されました。

  • 大部分の VAX データ型は OpenVMS I64 上のコンパイラでサポートされています。詳細は, 第 2.6.2 項 を参照してください。

データベース

標準的な弊社のデータベースは,VAX システムと OpenVMS I64 システムで同様に機能します。

ネットワーク・インタフェース

VAX システムと OpenVMS I64 システムはどちらも次のインタフェースをサポートします。

  • インターコネクト

    • Ethernet

    • X.25

  • プロトコル

    • DECnet (バージョン 8.2 のフェーズ IV, オプションの DECnet-Plus キットのフェーズ V)

    • TCP/IP

    • OSI

    • LAD/LAST

    • LAT (ローカル・エリア・トランスポート)

  • 周辺装置接続

    • SCSI

    • Ethernet

    • PCI



OpenVMS VAX のデバイス・ドライバを直接 OpenVMS I64 にポーティングする方法はありません。弊社では,まず OpenVMS VAX デバイス・ドライバを OpenVMS Alpha にポーティングすることをお勧めします。いったんこれを行うと,OpenVMS I64 へのポーティングは簡単です。

VAX から Alpha へのドライバのポーティングについては,アーカイブ扱いのマニュアル『Creating an OpenVMS AXP Step 2 Device Driver From an OpenVMS VAX Device Driver』を参照してください。本書のまえがきの「関連資料」の項に,このマニュアルの Web 上の場所が記載されています。このデバイス・ドライバ・マニュアルで説明されている手順を実行した後で, OpenVMS Alpha V7.0 で 64 ビットのサポートが導入されたときの OpenVMS カーネルでの変更に関係する変更を,デバイス・ドライバに対してさらに行います。詳細は,『OpenVMS Guide to Upgrading Privileged-Code Applications』を参照してください。

OpenVMS VAX から OpenVMS Alpha にデバイス・ドライバをポーティングする際には,以下の推奨事項に従ってください。

  • AP (R12) よりも大きな番号のレジスタを明示的に使用しないようにします。これにより,Alpha Macro-32 コードが簡単に再コンパイルできる可能性が高くなります。

  • デバイス・ドライバで, PFN が 32 ビット (VAX および Alpha の制限) しかないと仮定していないことを確認してください。 OpenVMS I64 では,HP Integrity サーバでサポートされている 50 ビットの物理アドレスをサポートしています。そのため,PFN フィールドは 64 ビット PTE のうち 32 ビット以上を必要とします。 PFN についての詳細は,『OpenVMS Guide to Upgrading Privileged-Code Applications』を参照してください。

  • いくつかの VAX オプション・カード用の OpenVMS VAX ドライバは,バスのサポートを明確に参照している可能性があります。たとえば,VAX Q バス・アダプタがある場合,同等の PCI アダプタを見つけてドライバを書き直す必要があります。

  • 「クラス・ドライバ」または同等のドライバがある場合 (通常は /NOADAPTER スイッチ付きでロードされる),特定のバス・オプション・カードに結びつけられていません。これは,I64 にポーティングする有力な候補となります。

  • ドライバが OpenVMS バージョン 7.x とバージョン 8.x の両方のバージョンで動作する場合は,両方のバージョン用にコンパイルおよびリンクする必要があります。これは,バージョン 8.2 で内部のデータ構造体が変更されているためです。たとえば,バージョン 8.2 上でリンクされたドライバは,バージョン 7.3-2 では動作せず,逆も同様です。

多くの OpenVMS VAX デバイス・ドライバは,VAX Macro-32 で作成されています。そのため,ドライバがそれほど大きくなければ,全体または一部を C で書き直すことも検討してください。

新しい OpenVMS Alpha デバイス・ドライバを作成する方法についての詳細は,『Writing OpenVMS Alpha Device Drivers in C』を参照してください。

1.3 移行プロセス

VAX プログラムを I64 システムで実行できるように変換するプロセスは,以下の段階に分類されます。

  1. 移行するコードを評価します。

    • アプリケーションのモジュールとその環境を確認します。他のプログラムに依存する部分があるかどうかも確認します。

    • 各モジュールのコードを調べ,移行にとって障害となる部分があるかどうかを確認します。

    • アプリケーションの各部分を I64 システムに移行するための最適な方法を判断します。

  2. 移行計画を作成します。

  3. 移行環境を設定します。

  4. アプリケーションを移行します。

  5. 移行したアプリケーションをデバッグし,テストします。

  6. 移行したソフトウェアをソフトウェア・システムに統合します。

アプリケーションを OpenVMS I64 に移行するのに役立つように,多くのツールと弊社によるサービスが提供されます。これらのツールについては,本書で実際のプロセスを説明するときに示します。移行サービスについては, 第 1.5 節 で概要を説明します。

1.4 移行の手段

I64 システムで実行するためにプログラムを変換する方法としては,次の 2 種類の方法があります。

  • 再コンパイルと再リンクを行い,ネイティブ I64 イメージを作成します。

  • トランスレーションにより,ネイティブ I64 イメージを作成します。一部のルーチンは,TIE のもとでエミュレートされます。

これらの 2 種類の方法は, 図 1-1 に示すとおりです。 第 2.2 節 では,移行方式を選択するときに考慮しなければならない事柄を説明しています。

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


再コンパイルと再リンク

プログラムを OpenVMS VAX から OpenVMS I64 に変換するための,もっとも効果的な方法は,ネイティブ I64 コンパイラ (C や Fortran など) を使用してソース・コードを再コンパイルし,その後, OpenVMS リンカを使用して,作成されたオブジェクト・ファイルと必要な他の共有イメージを再リンクする方法です。この方法では,Integrity システムのスピードを完全に活用できる,ネイティブ I64 イメージが作成されます。

トランスレーション

VAX から I64 にイメージをトランスレートするには,まず VEST ユーティリティを使用して Alpha にトランスレートし,その後 Alpha イメージを I64 にトランスレートする必要があります。

トランスレーション・プロセスでは,VAX との高い互換性を維持できますが,トランスレートされたイメージは,再コンパイルされたイメージほど高い性能を実現できないため,トランスレーションは,再コンパイルが不可能な場合や実用的でない場合の代替手段として使用してください。たとえば,以下の状況ではトランスレーションが適しています。

  • ターゲット・システムで適切なコンパイを使用できない場合

  • ソース・ファイルを入手できない場合

詳細は, 第 2.4 節 を参照してください。

1.5 弊社から提供される移行サポート

弊社では,アプリケーションを OpenVMS I64 に移行するためのさまざまなサービスを提供しています。

弊社では,お客様のニーズに合わせてサービスのレベルをカスタマイズします。 VAX から Integrity への利用可能な移行サービスには,以下のものがあります。

  • 移行評価

  • アプリケーション移行の詳細分析と設計

  • システム移行の詳細分析と設計

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

  • システムの移行

お客様に適したサービスを判断するには,弊社のサポート担当または正規の販売代理店にお問い合わせください。

1.5.1 移行評価サービス

移行評価サービスでは,Integrity プラットフォームに移行する VAX システムとアプリケーション環境を評価します。移行の目的が確認され,完全な現在の構成の状態が完成します。希望する最終状態が決定され,リスクと制約事項を明確にします。最後に,いくつかの移行シナリオが作成されます。

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

アプリケーション移行の詳細分析と設計サービスでは,自社開発したアプリケーションを詳細に分析し,すべてのモジュールについて VAX に依存しているかどうかのレポートを作成し,アプリケーションを I64 に移行するにあたって必要な変更に関する助言を行います。性能と機能に関する受け入れ条件が規定されます。

1.5.3 システム移行の詳細分析および設計サービス

システム移行の詳細分析および設計サービスでは,現在のシステム環境を詳細に分析します。これには,ハードウェア,ソフトウェア (自社開発アプリケーションを除く,商用および非商用ソフトウェア),およびネットワーク・コンポーネントが含まれます。最適なツールと移行方法が決定され,現在の状態から将来の状態にいたる手順を反映したプロジェクト計画が作成されます。

1.5.4 アプリケーション移行サービス

アプリケーション移行サービスでは,自社開発アプリケーションを VAX プラットフォームから Integrity プラットフォームに移行します。各コード・モジュールは,ソース・コードが入手できるかどうかによって再コンパイルまたはトランスレートされます。まず,VAX への依存が取り除かれます。次に,アプリケーション全体が再リンクされ,Integrity プラットフォーム上でテストされます。次に,アプリケーションをターゲット・システムに展開します。

1.5.5 システム移行サービス

システム移行サービスでは,OpenVMS システム (単一ノードまたはクラスタ) を VAX プラットフォームから Integrity プラットフォームに移行します。顧客のシステムの使用可否と性能要件が確認され,受け入れテストの方法と条件が決定されます。


目次 索引

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