Difference between revisions of "Eos System Architecture"
(Created page with "Here, we show about structure on Eos as system. == Structure of directory on Eos == === Eos === This is Home directory of Eos. It is specified by Environment variable of $EO...") |
(→Eos) |
||
Line 5: | Line 5: | ||
=== Eos === | === Eos === | ||
This is Home directory of Eos. It is specified by Environment variable of $EOS_HOME. | This is Home directory of Eos. It is specified by Environment variable of $EOS_HOME. | ||
− | + | All file and directory related to Eos are included in here.(Exception: Environment file) | |
<pre> | <pre> |
Revision as of 01:41, 3 September 2014
Here, we show about structure on Eos as system.
Contents
Structure of directory on Eos
Eos
This is Home directory of Eos. It is specified by Environment variable of $EOS_HOME. All file and directory related to Eos are included in here.(Exception: Environment file)
Eos
EosBase
Eosにおいて中心的な役割を果たすものです。開発環境も含んだディレクトリです。bin/sbin/lib/hostdependは実行の際に必要、src/include/sbinは開発に必要なものを含んでいます。
Eos/bin
Eosのコマンド(Small Tools)に関する実行ファイル等があるディレクトリです。
Eos/bin Eos/bin/XXXXXX Eos/bin/wish Eos/bin/ruby Eos/bin/shell Eos/bin/perl
XXXXXXは、それぞれのホストのタイプ($EOS_HOST)毎に異なるディレクトリになっており、コンパイル・リンクされた実体が格納されています。ただし、実際には、Eos/hostdependにあり、是までとの継続性を考慮して、リンクとなっています。
wish, ruby, shell, perlは、それぞれ、Tcl/Tk, Ruyb, Bash, perl等のシェルスクリプト用のディレクトリです。Eos/binから呼び出されるようになっています。
Eos/hostdepend
ホストに依存したバイナリが保存されています。詳細は、本頁のホスト毎のバイナリの管理方法をご覧下さい。
Eos/sbin
Eosのシステムコマンドが格納されているディレクトリです。
Eos/sbin Eos/sbin/sed Eos/sbin/awk Eos/sbin/config
sed/awkはそれぞれ、sed, awk用のコマンドが格納されています。 configには、sbin内で利用する設定ファイルが格納されています。
Eos/lib
Eosのライブラリが格納されているディレクトリです。
Eos/lib Eos/lib/XXXXXX Eos/lib/*.rb Eos/lib/*.wish
XXXXXXは、それぞれ異なるホストタイプ($EOS_HOST)毎のディレクトリになっており、コンパイルされたバイナリがライブラリとして格納されています。
- .rb, *.wishはそれぞれ、ruby, Tcl/Tk用の関数群です。
Eos/include
Eosをコンパイルするためのincludeファイルが格納されているディレクトリです。
Eos/include
Eos/src
EosのObjects/Toolsのソースファイルのディレクトリです。
Eos/src
Eos/src/Config
ソースファイルをコンパイルするためのホストタイプ毎の環境を設定しているディレクトリです。コンパイルのための各ディレクトリのMakefileのテンプレートも存在しています。
Eos/src/Config
Eos/src/Objects
EosのObjects(ライブラリ)のソースコードがあるディレクトリです。ここでコンパイルされるとEos/lib及びEos/includeにコピーされ、Tools等から利用できる様になります。
Eos/src/Objects
これより下部のディレクトリ構成は、Eos/src/Objectsを参照して下さい。。
Eos/src/Tools
Eosのコマンド(Small Tools)のソースコードがあるディレクトリです。ここでコンパイル・リンクされたコマンドは、Eos/binのディレクトリにインストールされます。
Eos/src/Tools
このディレクトリの下の構造に関しては、Eos/src/Toolsを参照して下さい。
Eos/util
Eosのために必要な他のシステムのライブラリが格納されています。過去との継続のために残しています。 実際の実体は、Eos/hostdepend/XXXXXX/util/XXXXXXのなかに格納されています。
Eos/util Eos/util/src Eos/util/srcXXXXXX Eos/util/XXXXXX
srcにはダウンロードしてきたソースコードのtgzファイルをおいています。ただし、再配布が困難であるため、gitの中にはアップロードしていません。srcXXXXXは、それらをホストタイプ毎に解凍したものが置かれます。それぞれのディレクトリにMakefileが用意されています。
$ make Init $ make Config $ make All
の順に実行すればコンパイルされるはずです。ただ環境に応じて、必ずしもコンパイルできない場合があります。
現在、必要となるライブラリは下記の様になります。
TclTk
Display2のようなInterativeなツールのために必要です。BLTを使って、グラフ等を作成しているアプリケーションでは、Tcl/Tkだけではなく、BLTまで必要です。OpenGL等の三次元グラフィックスを利用しやすくするには、vtkも必要で、smoletなどで必要としています。
Graphics
libtif、libjpgなど、主として、各種の画像ファイルフォーマット等に対応するために必要です。
MATH
fftwなどの数値計算のためのライブラリのために準備しています。
EosData
Eos/data
Eosのテストなどのためのdataが格納されたディレクトリです。まだ整理が十分とは言えませんので、大きく内容が変更になる可能性があります。
Eos/data
EosOptional
Eos/doc
Eosのためのドキュメントが格納されているディレクトリです。
Eos/doc
EosOthers
Eos/others
Eos以外のオープンソースが提供するソースコード等を保管したディレクトリです。 それぞれのバージョン毎に仕様が異なるために、Eosが保証しているソースコードを保管しています。
utilsrc # ライブラリ等のソースファイル utiltools # 単独のアプリケーション(インストールが自由で無い場合向け)
の二つのディレクトリからなっています。
これらをコンパイルしたライブラリがhostdepend/XXXXXX/util/XXXXXXの下に格納されており、動作を保証しています。 このファイルは、util/XXXXXXXからリンクが張られており、そちらを利用します。
ただし、glibcなどのLINUX等が提供するバイナリのバージョンによってはうまく動作しない可能性があります。その場合には、こちらのothersからリンクを設定されているutil/srcXXXXXXの直下でコンパイルし、ライブラリを作成する事になります。
Eosのホスト毎の制御
Eosでは、ヘテロな環境でも一つのディレクトリで管理し、実行できるような仕組みをとることにしています。
環境変数による切り替え
Eosのホスト毎の管理は、$EOS_HOSTと$EOS_HOSTDIRの二つの環境変数により、切り替えを行っています。
Eosのホスト毎のファイルの管理方法の変更
最近、git管理に変えた際に、ホスト毎の切り替えが大変困難になってしまいました。そこで、バイナリ毎にダウンロード出来るようにディレクトリ構成を変更しました。(2013/02/01版より)
以前のものを使われている方は、src直下のツール(Tools)やオブジェクト(Objects)のそれぞれのディレクトリにバイナリが置かれています。現在のものをダウンロードするとそれらは全て下記のホストごとのディレクトリへのリンクに変更になっています。ご注意下さい。
2013/02/01移行は、各ホスト毎のバイナリ等は、すべてEosの直下のhostdependのディレクトリ以下に、$EOS_HOSTDIRに従って保存するように移動しました。これにより、ホストタイプ毎にそのディレクトリをコピーやバックアップすれば済むようになりました。これが現在のダウンロードサイトからダウンロード出来るようにしています。
現在のバージョンのホスト毎のディレクトリ構成
$EOS_HOME/hostdepend/$EOS_HOSTDIR/bin lib util src/WORLD/CLASS/NAME/src/