|
ソフトウェア開発においてdistccとは、コンピュータネットワーク上での分散コンピューティングを利用し、ソースコードのコンパイル速度を改善するツールである。適切な設定を行えば、distccはプロジェクトのコンパイル時間を劇的に低減することが可能となる〔 〕〔 〕。 このツールはC言語(また、C++、Objective-Cなどの派生言語)と連携するように、そしてGCCをそのバックエンドとして使用するよう設計されている。Intel C++ Compilerやサン・マイクロシステムズのSun Studio Compiler Suiteでの動作報告も上がっているが互換性があるとまでは言えない〔 〕。distccはフリーソフトウェアであり、GNU General Public Licenseのもと配布される。 == 設計 == distccは、他のコンピュータの未使用プロセスを利用し、コンパイル速度の向上を図るよう設計されている。distccがインストールされたマシンはネットワーク経由でdistccdデーモンと、互換性のあるコンパイラをインストールしたコンピュータにソースコードを送信する〔 〕。 distccはコンパイラエージェントとして機能する。distccdデーモンはネットワークに接続している各マシン上で稼働させなければならない。もともと最初にdistccを走らせたマシンは、ヘッダファイルを取り扱うため、プリプロセッサを起動する。そして、( #ifdef のような)指令文ならびにソースファイルをプリプロセスし、プリプロセスをかけたソースファイルを暗号化処理なしで、もしくはSSHを使用しTCPネットワーク経由で他のマシンに送信する。リモートマシンは受信したソースファイルを(ライブラリ、ヘッダファイル、そしてマクロなど、リンクや展開が必要なデータ等)一切のローカル環境における依存性を排除した上でオブジェクトファイルにコンパイルする。そして次々とオブジェクトファイルを送信元に送り返す〔〕。 distccのバージョン3では、''pump mode''と呼ばれるモードをサポートしており、これは、リモートマシンへのヘッダファイルの送信をサポートしており、これにより、プリプロセス処理も分散化されている〔 〕。 distccにはGTK+で作成されたフロントエンドも付いており、これを利用することで、どのノードで何のソースコードがどのような処理を行っているか分かる〔 〕。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Distcc」の詳細全文を読む スポンサード リンク
|