1    概要

この章では,アプリケーション開発プロジェクトのさまざまなフェーズについて説明するとともに,これらのフェーズで使用する Tru64 UNIX のツールについて説明します。

この章では,以下に示すトピックについて説明します。

1.1    アプリケーション開発のフェーズ

アプリケーション開発には,5 つの主要なフェーズがあります。 表 1-1 では,これらのフェーズと,各フェーズで使用可能なツールおよび機能を説明します。

表 1-1:  プログラミングのフェーズと Tru64 UNIX

フェーズ ツール/機能
要件および仕様の決定

規格
国際化
機密保護

設計

ルーチン
コーディング上の留意事項
ライブラリ
共通ファイル

開発 (実現) vi, ex, ed, lint, grep, cxref, sed, time, dbx, third, ld, make, コンパイラ,スレッド
テスト diff, シェル・スクリプト,pixie, prof
保守 setld, tar, sccs, rcs

多くの場合,Tru64 UNIX システムでは 1 つのジョブを実行するために 2 つ以上のツールが提供されています。 どのツールおよびプログラミング言語を使用するかはユーザが選択することになります。

1.2    仕様および設計上の留意事項

アプリケーションを設計する場合,アプリケーションの特性に従って設計を行う必要があります。 Tru64 UNIX は,アプリケーションを作成するために有用な機能やツールを備えており,移植性,国際化,ウィンドウ対応などの点で優れ,ユーザのニーズを十分に満たすアプリケーションを作成することができます。

設計の際の主な留意事項の 1 つに,UNIX 環境規格および移植性への対応に関する問題があります。 Tru64 UNIX システム上だけでなく,他の UNIX のオペレーティング・システムでも実行できるようアプリケーションを作成する場合,X/Open の移植ガイドラインおよび POSIX 規格に準拠するように設計する必要があります。

また,さまざまな国で使用できるようにアプリケーションを設計する場合は,Tru64 UNIX オペレーティング・システムの国際化ツールおよび国際化機能を使用してソフトウェアを作成してください。

アプリケーションが使用される端末環境についても考慮しておく必要があります。 エンド・ユーザがワークステーションまたはウィンドウ端末を使用する場合,ウィンドウ・ディスプレイが使用できるようにアプリケーションを設計する必要があります。

1.2.1    規格

プログラミング規格に準拠するようにアプリケーションを作成することにより,ハードウェア間で,あるいはオペレーティング・システム間でのプログラムやアプリケーションの移植性を向上させることができます。 移植性規格に準拠してプログラムを記述すると,ユーザはシステム間を容易に移動できます。 規格の中にはプログラムの移植性を構成する一部として,国際化の考え方が含まれている場合もあります。

UNIX プログラミング環境での主な規格は次のとおりです。

これらの規格以外に,OSF アプリケーション環境仕様 (AES) では,アプリケーション・レベルのインタフェースが指定され,それによりアプリケーションは,このインタフェースによって指定された移植可能なアプリケーション,意味規則,およびプロトコルをサポートするよう規定されています。

ANSI 規格は,プログラミング言語,ネットワーク,通信プロトコル,文字コード化,およびデータベース・システムなど,特定のプログラミング・ツールに適用されます。 個々の ANSI 規格への適合性と拡張機能の情報については,各言語,ネットワーク・システム,またはデータベース・システムのドキュメンテーション・セットを参照してください。 ANSI 規格に準拠するように C プログラムをコンパイルする方法については,第 2 章を参照してください。

Tru64 UNIX システムでは,POSIX および X/Open 規格に対応するプログラムを記述することができます。 POSIX 規格についての詳細は,IEEE Std. 1003.1c-1994 の『POSIX -- Part 1: System Application Program Interface (API) [C Language]』(ISBN 1-55937-061-0) を参照してください。 Tru64 UNIX ヘッダ・ファイルには,POSIX および X/Open に対応する情報があります。

1.2.2    国際化

国際化されたアプリケーションは,実行時インタフェースを提供することにより,ユーザが母国語を使用し,文化的に適切に表現されたデータで作業ができるようにします。 Tru64 UNIX オペレーティング・システムでは,X/Open CAE 仕様の Issue 4 に準拠する国際化されたアプリケーション開発のためのインタフェースとユーティリティを提供します。 また,X/Open CAE 仕様の Issue 5 の一部である ISO C のマルチバイト・サポート拡張 (MSE) もサポートします。

国際化されたアプリケーションを開発する際には,次の点を考慮します。

こうした国際化の要件を満たすには,言語,慣習,またはコード化文字セットのいずれにも依存しないアプリケーションを作成する必要があります。 地域文化に特有のデータは,アプリケーション論理から区別して保持します。 実行時関数を使用して,アプリケーションに適切な言語メッセージ・テキストを対応させてください。

Tru64 UNIX 上での国際化プログラミングについては,『国際化ソフトウェア・プログラミング・ガイド』を参照してください。

1.2.3    ウィンドウ・アプリケーション

ウィンドウ・アプリケーションの開発については,次のマニュアルを参照してください。

OSF/Motif Programmer's Guide

Common Desktop Environment: プログラマーズ・ガイド

Common Desktop Environment: プログラマ概要

Common Desktop Environment: アプリケーション・ビルダ・ユーザーズ・ガイド

Common Desktop Environment: プログラマーズ・ガイド(国際化対応編)

Common Desktop Environment: スタイル・ガイド

Common Desktop Environment: プログラマーズ・ガイド(ヘルプ・システム編)

1.2.4    アプリケーションの保護

セキュリティ・プログラミング・ガイド』 には,トラステッド・プログラムを作成するための詳細な説明が,あらゆる側面から記載されています。

Tru64 UNIX では,オペレーティング・システム上にローカルおよび分散セキュリティ認証メカニズムの階層化を可能にする Security Integration Architecture (SIA) を提供しています。 SIA 構成フレームワークは,特定のセキュリティ・メカニズムからセキュリティに依存するコマンドを分離します。 詳細については,『セキュリティ管理ガイド』 のパスワードに関する付録,および sia*(3) リファレンス・ページを参照してください。

1.3    ソフトウェア開発の主なツール

Tru64 UNIX システムは,多数の高水準言語と互換性があり,リンクやプログラムのデバッグを行うツールを備えています。

1.3.1    Tru64 UNIX 環境でサポートされる言語

Tru64 UNIX オペレーティング・システムには,アセンブラ (アセンブリ言語プログラム用) および Java 開発キット (JDK) が含まれています。 C,C++,Fortran,Ada,および Pascal などの他の言語のコンパイラは,別途注文してください。

オプションのプロダクトについての詳細は,弊社の各支店および営業所にお問い合わせください。

Java についての詳細は,JDK がインストールされているシステム上の次のディレクトリにある Java のドキュメントを参照してください。

/usr/share/doclib/java/index.html

アセンブラについての詳細は, as(1) および『Assembly Language Programmer's Guide』を参照してください。

その他の言語のマニュアルは,各言語のコンパイラを注文するときに一緒に注文できます。

1.3.2    オブジェクト・ファイルのリンク

通常,C コンパイラ・ドライバ・コマンド (cc) を使用して,別個のオブジェクト・ファイルを 1 つの実行可能オブジェクト・ファイルにリンクすることができます。

コンパイルのプロセスの一部として,ほとんどのコンパイラ・ドライバは,リンカ (ld) を呼び出して,1 つまたは複数のオブジェクト・ファイルを単一の実行可能オブジェクト・ファイルに結合します。 また,リンカは外部参照の解釈,ライブラリの探索など,実行可能なオブジェクト・ファイルの作成に必要とされるその他の処理をすべて行います。

開発環境では,さまざまな言語で記述されたソース・コードから構成されるアプリケーションを作成することができます。 この場合,それぞれのファイルを別々にコンパイルし,次に,別のステップでコンパイルされたオブジェクト・ファイルをリンクすることになります。 リンカは,ld コマンドを入力することにより,コンパイラとは別に起動します。

シェアード・ライブラリは,コンパイラ・ドライバ・コマンドまたは ld コマンドを使用して作成することができます。 また,ar コマンドを使用してアーカイブ (静的) ライブラリを作成することもできます。 ライブラリの作成方法についての詳細は,第 4 章を参照してください。 プログラムのコンパイルおよびリンクについての詳細は,第 2 章および第 4 章と,各言語のドキュメンテーション・セットを参照してください。

1.3.3    デバッグおよびプログラム分析ツール

Tru64 UNIX オペレーティング・システムの主なデバッグ・ツールは次のとおりです。

ladebug デバッガは Tru64 UNIX オペレーティング・システムでもサポートされています。 dbx デバッガで提供される機能のサポートに加え,マルチスレッド・プログラムのデバッグ機能もサポートしています。 C,C++,および Fortran をサポートする ladebug デバッガについては,『Ladebug Debugger Manual』および ladebug(1) を参照してください。

1.4    ソース・ファイル制御

ソフトウェア・アプリケーションの作成に必須の作業として,開発および保守プロセスの管理があります。 Tru64 UNIX オペレーティング・システムは,ソース・コード制御システム (SCCS) ユーティリティおよび RCS コード管理システムを備えており,ディレクトリにアプリケーション・モジュールを保存したり,それらのモジュール・ファイルに行われた変更内容を追跡したり,ユーザによるファイルのアクセスをモニタできるようにします。

Tru64 UNIX オペレーティング・システムの SCCS および RCS も,他の UNIX システムの SCCS および RCS ユーティリティと同様なサポートを行っています。 他に,sccs プリプロセッサも備えており,これが従来の SCCS コマンドとのインタフェースとなっています。

SCCS および RCS は,このユーティリティを使用して保存されたファイルの変更のレコードを保守します。 レコードには,変更が行われた理由,時期,および変更の実施者の情報が含まれています。 SCCS あるいは RCS を使用すると,複数のバージョンを同時に保守するだけでなく,前バージョンのファイルを復元することもできます。 SCCS はアプリケーション・プロジェクトの管理に適しています。 SCCS では,複数の人間が,同じファイルを同時に変更することができないためです。

SCCS と sccs コマンドの使用方法の詳細については, sccs(1)rcs(1),および『プログラミング・サポートツール・ガイド』を参照してください。

1.5    プログラムのインストール・ツール

プログラムやアプリケーションを作成した後,他のユーザに簡単に配布できるように,setld インストレーション・ユーティリティで処理可能なキットの形態にパッケージ化することができます。 Tru64 UNIX オペレーティング・システムの多様なユーティリティで,プログラムやアプリケーションのインストール,削除,結合,検査,構成などを行うことができます。

Tru64 UNIX システムのソフトウェアでは,ファイルやディレクトリが階層状のグループを構成しています。 ユーザのアプリケーションやプログラムが 2 つ以上のファイルまたはディレクトリで構成されている場合は,階層内のファイルやディレクトリをどのように分類するか決定する必要があります。 個々の製品の階層を開発システムから運用システムに転送する場合,つまり製品をインストールする場合にも,setld インストレーション・プロセスでは,各製品の階層を完全に保持します。 キットの作成プロセスには,これらの製品の構成ファイルをサブセットに分類する作業も含まれています。 それらのサブセットの中から,必要なものをシステム管理者が選択してインストールすることができます。

setld ユーティリティおよび関連ツールを使用する利点は次のとおりです。

setld を使用することにより,システムへのインストールのための配布メディアとして,次のいずれのメディアにもアプリケーションをロードすることができます。

setld コマンドの使用方法およびソフトウェア製品キットの管理と作成についての詳細は,『プログラミング・サポートツール・ガイド』を参照してください。

1.6    プロセス間通信機能の概要

プロセス間通信 (IPC) とは 2 つ以上のプロセス間でのデータの交換のことです。 単一プロセス・プログラミングでは,単一プロセス内でのモジュールがグローバル変数および関数呼び出しを使用して相互に通信し,関数と呼び出す側の間でデータを受け渡します。 別々のアドレス空間にイメージを持ち,別々の処理を使用してプログラムを作成する場合は,別の通信機構を使用することが必要になります。

Tru64 UNIX には,プロセス間通信のための次の機能が提供されています。