日本-日本語

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

OpenVMS マニュアル


≫ 

OpenVMS
ライブラリ

タイトルページ
目次
まえがき
第 1 章:はじめに
第 2 章:ページサイズの拡大に対するアプリケーションの対応
第 3 章:共有データの整合性の維持
第 4 章:アプリケーションデータ宣言の移植性の確認
第 5 章: アプリケーション内の条件処理コードの確認
第 6 章:ネイティブイメージとトランスレートイメージの相互操作性の確認
付録 A :OpenVMS AXPコンパイラ
索引
PDF
OpenVMS ホーム
OpenVMS AXP オペレーティング・システム | HPE 日本

OpenVMS AXP
オペレーティング・システム

OpenVMS AXP オペレーティング・システムへの移行:
再コンパイルと再リンク


AA-PU8LC-TE

ソフトウェア・バージョン: OpenVMS AXP V 6.1

1994年7月

Copyright © 1994 Digital Equipment Corporation Japan

以下は他社の商標です。

PostScriptは,Adobe Systems Incorporated の商標です。


まえがき



本書の目的

本書は,開発者がOpenVMS VAXアプリケーションを OpenVMS AXPシステムに移行する際に役立つように構成されています。

対象読者

本書は経験の豊富なソフトウェア技術者を対象にしており,特にCやFORTRANなどの高級プログラミング言語や,中級プログラミング言語で作成されたアプリケーションのコードを移植する際の責任者を対象にしています。

本書の構成

本書は6つの章と1つの付録から構成されています。

第 1 章 アプリケーションが,VAXアーキテクチャに依存している部分を調べる方法について,その概要を示します。
第 2 章 アプリケーションがVAXのページ・サイズに依存しているときの対処方法を示します。
第 3 章 複数のプロセスによるデータ・アクセスに関して,アプリケーションがVAXアーキテクチャの同期方式に依存しているときの対処方法について説明します。
第 4 章 アラインメントに関する問題も含めて,AXPシステムでのデータ宣言の影響について説明します。
第 5 章 アプリケーションがVAXの条件処理機能に依存しているときの問題への対処方法について説明します。
第 6 章 トランスレートされたVAXイメージを呼び出したり,これらのイメージから呼び出すことができるネイティブな AXPイメージの作成方法について説明します。
付録 A OpenVMS AXPシステムで,Ada,C,Cobol,FORTRANおよびPascalプログラミング言語によってサポートされる,新しい機能と変更された機能を簡単にまとめます。



参考文献

本書はOpenVMS VAXアプリケーションをOpenVMS AXPシステムに移行する際のさまざまな問題を説明したマニュアル・セットの一部です。このマニュアル・セットには,本書の他に次のマニュアルが準備されています。

  • 『OpenVMS AXP オペレーティング・システムへの移行:システム移行の手引き』

    VAXシステムからAlpha AXPシステムへの移行処理の概要を示し,移行計画の作成に役立つ情報も示します。移行計画を作成するときに判断しなければならない事項について説明し,それらの判断を下すのに必要な情報の入手方法も示します。さらに,さまざまな移行方法について説明し,各方法で必要な作業量を見積もるのに必要な情報と,各アプリケーションにとって最適な移行方法を選択する方法についても説明します。

  • 『Migrating to an OpenVMS AXP System: Porting VAX MACRO Code』

    このマニュアルでは,MACRO-32 Compiler for OpenVMS AXPを使用して VAX MACROコードをAXPシステムに移植する方法およびコンパイラの機能,移植不可能なコーディング様式の識別法,このようなコーディング様式のかわりとなる適切な方法などについて説明します。このマニュアルではまた,コンパイラの修飾子,ディレクティブ,および組み込み機能と,AXPシステムに移植するために作成されたシステム・マクロの詳細な説明を示したリファレンスも記載されています。

また,VAX Environment Software Translator(VEST)に関する次のマニュアルがあります。

  • 『DECmigrate for OpenVMS AXP Systems Translating Images』

    このマニュアルでは,VAX Environment Software Translator(VEST)ユーティリティについて説明します。このマニュアルは,オプションとして提供されるレイヤード・プロダクトであるDECmigrate for OpenVMS AXPに添付されており,このレイヤード・プロダクトは,OpenVMS VAXアプリケーションをOpenVMS AXPシステムに移行する処理をサポートします。このマニュアルでは,VESTを使用して大部分のユーザ・モードの OpenVMS VAXイメージを,OpenVMS AXPシステムで実行できるトランスレートされたイメージに変換する方法,トランスレートされたイメージの実行時性能を向上させる方法,VESTを使用して,VAXイメージの中でAXPと互換性のない部分を元のソース・ファイルまでトレースする方法,およびVESTを使用して,ネイティブなランタイム・ライブラリとトランスレートされたランタイム・ライブラリの間で互換性をサポートする方法について説明します。また,このマニュアルには完全なVEST コマンド・リファレンスも記載されています。



表記法

本書では次の表記法を使用します。

表記法 意味
[Return] 四角形で囲まれたこの記号は,キーボードのキーを押すことを示します。たとえば,[Return]は Returnキーを押すことを示します。
[Ctrl/x] [Ctrl/x] の記号は,Ctrl キーを押しながら,同時にあるキーを押すことを示します。たとえば,[Ctrl/c] は Ctrl キーと c 文字キーを同時に押します。
... 例の中で水平反復記号は,次のいずれかを示します。

  • 文中のオプショナル引数が省略されていること

  • 前の項目(1つ以上)を1回以上繰り返すことができること

  • 追加パラメータ,値,あるいは他の情報を入力でること

.
.
.

垂直反復記号は,コード例やコマンド形式から項目が省略されていることを示します。このように項目が省略されるのは,その項目が説明している内容にとって重要でないからです。
() 括弧は,複数のオプションを選択するときに,選択項目を括弧で囲まなければならないことを示す。
<lbrack symbol> <rbrack symbol> 大括弧は,項目が省略可能であることを示します(しかし,VMSファイル指定のディレクトリ名の構文や,代入文の部分文字列指定の構文では,大括弧は省略可能ではありません)。
<lbrace symbol> <rbrace symbol> 中括弧は,必ず1つを選択しなければならない項目を囲むために使用します。
太字 太字のテキストは,新しい用語を導入する場合や,引数,属性,条件の名前を示すために使用します。

また,マニュアルのオンライン・バージョンでユーザ入力を示す場合も,太字のテキストを使用します。

イタリック体 イタリック体のテキストは,システム・メッセージやコマンド・ラインの中で,変化する可能性のある情報を表現します。
英大文字 英大文字は,コマンド,修飾子,パラメータ,ルーチン名,ファイル名,ファイル保護コード名,システム特権の短縮形を示します。
コード例で使用されているハイフンは,要求に対する追加引数が後続の行に指定されることを示します。
数字 特に示した場合を除き,説明文の内部で使用している数字はすべて 10 進数です。数値が 10 進数以外(2進数,8進数,16 進数)の場合には,そのことが明記されます。
「 」 かぎ括弧は,この製品のドキュメント構成に含まれるマニュアル名を示します。
『 』 二重かぎ括弧は,この製品のドキュメント構成に含まれないマニュアル名または,別の製品のマニュアル名を示します。

第 1 章
はじめに

この章では,アプリケーションを構成するソース・ファイルを再コンパイルおよび再リンクすることにより,VAXシステム上で動くアプリケーションをAXPシステムに移行する(migrate)プロセスについて,その概要を説明します。特に,この章では次の内容について説明します。

  • ネイティブなコンパイラやリンカなど,VAXプログラミング環境のツールの AXP版の使用について

  • アプリケーションでVAXアーキテクチャ固有の機能に依存している部分の識別



1.1 概要

一般に,アプリケーションが高級プログラミング言語で作成されている場合には,わずかな作業でAXPシステムで実行できるようになります。高級言語では,アプリケーションをマシン・アーキテクチャから分離します。さらに,AXPシステム上のプログラミング環境のほとんどの部分は,VAXシステムのプログラミング環境と同じです。したがって,AXP版の各言語のコンパイラとOpenVMSリンカ・ユーティリティを使用すれば,アプリケーションを構成するソース・ファイルを再コンパイルおよび再リンクでき,ネイティブなAXPイメージを作成できます。

しかし,アプリケーションが高級言語で作成されている場合でも,アーキテクチャ固有の機能に依存している可能性があります。この後の節では,AXPシステム上のプログラミング環境について説明し,アプリケーション・ソース・ファイルの中で,変更しなければAXPシステムに移行できないコードを識別するためのガイドラインを示します。

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

VAXシステムでサポートされる言語の多くは,AXPシステムでもサポートされます。たとえばFORTRANやCなどです。AXPシステムでどのプログラミング言語を使用できるかについての詳しい説明は,『OpenVMS AXP オペレーティング・システムへの移行:システム移行の手引き』を参照してください。

AXPシステムで使用出来るコンパイラは,それぞれVAXシステムの対応するコンパイラと互換性(compatibility)を維持するように設計されています。各コンパイラは言語標準規格に準拠し,また,VAXの言語拡張機能の大部分をサポートします。コンパイラは,VAXシステムの場合と同じ省略時のファイル・タイプで,出力ファイルを作成します。たとえば,オブジェクト・モジュールのファイル・タイプは.OBJです。

しかし,VAXシステムのコンパイラがサポートする一部の機能は,AXPシステムの同じコンパイラでサポートされません。さらに,AXPシステムのいくつかのコンパイラは,VAXシステムの対応するコンパイラがサポートしない新しい機能をサポートします。また互換性を維持するために,一部のAXPコンパイラは互換モードをサポートします。たとえば,DEC C for OpenVMS AXP システムのコンパイラはVAX C互換モードをサポートし,このモードは/STANDARD=VAXC修飾子を指定することにより起動されます。付録 A は,VAXシステムとAXPシステムで使用できるコンパイラの機能を示しています。

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

ネイティブなAXPコードで生成されたコンパイラを使用して,アプリケーションを正しく再コンパイルできた場合でも,VAXアーキテクチャに依存する部分が含まれている可能性があります。オペレーティング・システムは,高いレベルの互換性を維持するように設計されています。しかし,2つのアーキテクチャには基本的な相違があるため,ある種の矛盾をどうしても避けることができません。次のリストはアプリケーションの中で調べなければならない部分を示しています。本書のこの後の各章では,これらの各項目について詳しく説明します。

  • アプリケーションに含まれるデータ宣言を確認してください。VAXシステムでデータを表現するために選択した高級言語のデータ型(data type)がAXPシステムでは最適なデータ型でない可能性があります。特に次のことを考慮してください。

    • データのパック---VAXシステムのアプリケーションでは通常,メモリ資源を効率よく使用するために,可能な限り最小のデータ型を使用してデータを表現します。しかし,AXPシステムでは,さまざまな理由から(第 4 章 を参照),大きなデータ型を使用した方が効率を向上できることがあります。

    • データ型の選択---Alpha AXPアーキテクチャは,大部分の VAXネイティブ・データ型をサポートします。しかし,H浮動小数点データ型など,特定のVAXデータ型はサポートされません。アプリケーションがハードウェア固有のデータ型のビット表現やサイズに依存していないかどうかを確認してください。Alpha AXPアーキテクチャでサポートされるすべてのデータ型のリストは,第 4 章 を参照してください。

    • データの共有アクセス---複数の実行スレッドによってアクセスされるデータを確認してください。VAXアーキテクチャには,変数のインクリメントなどのように,他の実行スレッドからは割り込み不可能な1つの操作として見える,複雑な操作を実行できる命令があります。しかし,Alpha AXPアーキテクチャはロード・ストア・アーキテクチャであり,それ以外の不可分な(atomic)メモリ操作はサポートされません。この問題についての詳しい説明は,第 3 章 を参照してください。

      さらに,VAXアーキテクチャでは,バイト・サイズおよびワード・サイズのデータを,1つの割り込み不可能な操作で処理できる命令をサポートします。Alpha AXPアーキテクチャはアラインされたロングワード・サイズ,またはアラインされたクォドワード・サイズのデータに対してのみ,割り込み不可能なアクセスをサポートします。この問題がアプリケーションにどのような影響を与えるかについては,第 3 章第 4 章 を参照してください。

    • バッファ・サイズ---アプリケーションによっては,VAXページ・サイズをもとにデータ・バッファのサイズを決定している可能性があります。Alpha AXPアーキテクチャを実現した各システムでは,8Kバイト,16Kバイト,32Kバイト,または64Kバイトのページをサポートします。VAXページ・サイズに依存する部分を検出するには,"512"や"511"(または16進数の"200")というテキスト文字列をアプリケーションから検索してください。このページ・サイズの変更に対してアプリケーションでどのように対処するかについては,第 2 章 を参照してください。

  • アプリケーションに含まれる条件ハンドラを確認してください。AXPシステムの条件処理機能は,VAXシステムの条件処理機能と同じ機能を実行しますが,メカニズム・アレイの形式など,部分的に変更されている箇所があります。さらに,算術演算例外の報告方法が変更されました。この問題についての詳しい説明は 第 5 章 を参照してください。

  • ASTパラメータ・リストに依存する部分を確認してください。AXPシステムの ASTパラメータ・リストはVAXシステムと同じ形式ですが,ASTパラメータ・フィールドだけが使用されます。ASTパラメータ・リスト内の他のフィールド(R0,R1,プログラム・カウンタ[PC],およびプロセッサ・ステータス[PS]の内容)は互換性を維持するためだけに提供され,ASTプロシージャが終了した後は使用されません。



1.4 AXPシステムでのアプリケーションの再リンク

ソース・ファイルを正しく再コンパイルした後,アプリケーションを再リンクしてネイティブなAXPイメージを作成しなければなりません。リンカは現在のVAXシステムと同じファイル・タイプで,出力ファイルを作成します。たとえば,省略時の設定では,リンカはイメージ・ファイルのファイル・タイプとして.EXEを使用します。

AXPシステムではある種のリンク作業を実行する方法が異なるため,アプリケーションを構築するために使用するLINKコマンドを変更しなければなりません。次のリストは,アプリケーションのビルド手順に影響を与える可能性のある,これらのリンカの変更点を説明しています。詳しくは『OpenVMS Linker Utility Manual』を参照してください。

  • 共有可能イメージ(shareable image)内でのユニバーサル・シンボルの宣言--- アプリケーションが共有可能イメージを作成する場合には,おそらくアプリケーションのビルド・プロシージャにVAX MACROで作成された転送ベクタ・ファイルが含まれており,共有可能イメージ内のユニバーサル・シンボルが宣言されています。AXPシステムでは,転送ベクタ・ファイルを作成するかわりに,SYMBOL_VECTORオプションを指定することにより,リンカ・オプション・ファイルでユニバーサル・シンボルを宣言しなければなりません。

  • OpenVMSエグゼクティブに対するリンク---VAXシステムでは,ビルド・プロシージャにシステム・シンボル・テーブル・ファイル(SYS.STB)をインクルードすることにより,OpenVMSエグゼクティブに対してリンクします。AXPシステムでは,/SYSEXE修飾子を指定することにより,OpenVMSエグゼクティブに対してリンクします。

  • イメージの性能の最適化---AXPシステムでは,リンカは作成したイメージの性能を向上させるために最適化を行います。さらにリンカは,常駐イメージとしてインストール可能な共有可能イメージを作成できます。この結果,さらに性能を向上できます。

  • 共有可能イメージの暗黙の処理---VAXシステムでは,リンク操作で共有可能イメージを指定した場合,リンカは共有可能イメージがリンクされる対象となるすべての共有可能イメージも処理します。AXPシステムでは,ビルド・プロシージャがこれらの共有可能イメージを含む場合,これらのイメージを明示的に指定しなければなりません。

リンカはAXPシステム固有の修飾子とオプションをサポートします。これらは 表 1-1表 1-2 に示すとおりです。この表にはまた,VAXシステムでサポートされ,AXPシステムのリンカでサポートされないリンカ修飾子も示されています。

表 1-1 AXPシステム固有のリンカ修飾子
修飾子 説明
/DEMAND_ZERO リンカがデマンド・ゼロ・イメージ・セクションを作成する方法を制御する。
/GST 共有可能イメージに対してグローバル・シンボル・テーブル(GST)を作成することをリンカに要求する(省略時の設定)。ランタイム・キット用に共有可能イメージを作成する場合には,/NOGSTを指定する方が一般的である。
/INFORMATIONALS リンク操作で情報メッセージを出力することをリンカに要求する(省略時の設定)。/NOINFORMATIONALSを指定する方が一般的であり,その場合には情報メッセージは出力されない。
/NATIVE_ONLY 作成中のイメージ内で,コンパイラが作成したプロシージャ・シグナチャ・ブロック(PSB)情報を渡さないことをリンカに要求する。省略時の設定では,リンク操作に対する入力ファイルとして指定したオブジェクト・モジュールにPSB情報が含まれている場合には,リンカはイメージに PSB情報を含む。イメージ・アクティベータはこの情報を使用して,ジャケット・ルーチンを作成する。ネイティブなAXPイメージがトランスレートされた VAXイメージと協調動作するには,ジャケット・ルーチンが必要である。
/REPLACE コンパイラによって要求された場合,作成中のイメージの性能を向上するための最適化を行うことをリンカに要求する(省略時の設定)。
/SECTION_BINDING 常駐イメージとしてインストール可能な共有可能イメージを作成することをリンカに要求する。
/SYSEXE リンク操作で解釈されなかったシンボルを解釈するために OpenVMSエグゼクティブ・イメージ(SYS$BASE_IMAGE.EXE)を処理することをリンカに要求する。

表 1-2 AXPシステム固有のオプション
オプション 説明
BASEオプション AXPシステムではサポートされない。
DZRO_MINオプション AXPシステムではサポートされない。
ISD_MAXオプション AXPシステムではサポートされない。
SYMBOL_TABLEオプション 共有可能イメージに関連するシンボル・テーブル・ファイルにユニバーサル・シンボルだけでなく,グローバル・シンボルも登録することをリンカに要求する。省略時の設定では,リンカはユニバーサル・シンボルだけを登録する。
SYMBOL_VECTORオプション AXP共有可能イメージでユニバーサル・シンボルを宣言するために使用する。
UNIVERSALオプション AXPシステムではサポートされない。


目次 索引

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