Difference between revisions of "Eos System Architecture"

From EosPedia
Jump to: navigation, search
(Graphics)
(MATH)
Line 114: Line 114:
  
 
===== MATH =====
 
===== MATH =====
[[fftw]]などの数値計算のためのライブラリのために準備しています。
+
It is served for Numerical Calculation Library.(e.g. [[fftw]])
  
 
=== EosData ===
 
=== EosData ===

Revision as of 04:42, 3 September 2014

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 $EOS_HOME. All file and directory related to Eos are included in here.(Exception: Environment file)

Eos

EosBase

It serves as a central role in Eos. This directory includes development environment. "bin/sbin/lib/hostdepend" includes required data to run, and "src/include/sbin" includes required data to develop.

Eos/bin

This directory include executables related to Command(Small Tools) of Eos.

Eos/bin
Eos/bin/XXXXXX
Eos/bin/wish
Eos/bin/ruby
Eos/bin/shell
Eos/bin/perl

XXXXXX is directory that is determined by each host type, and it is stored real data which is compiled and linked. However, actually it is used as link from "Eos/hostdepend" by considering the continuity with hitherto.

wish, ruby, shell, and perl are directory for shell script of Tcl/Tk, Ruyb, Bash, and perl , respectively. These can be called in Eos/bin.

Eos/hostdepend

Binary data that depends on host is stored here. Refer to #Control each host of Eos in this page about details.

Eos/sbin

This is the directory that stores System Command of Eos.

Eos/sbin
Eos/sbin/sed
Eos/sbin/awk
Eos/sbin/config

/sed and /awk are stored commands for sed and awk, respectively. /config is stored setting file for using in sbin.

Eos/lib

This is the directory that is stored Library of Eos.

Eos/lib
Eos/lib/XXXXXX
Eos/lib/*.rb
Eos/lib/*.wish

XXXXXX is directory that is determined by each host type, and it is stored binary data which is compiled as library.

  • .rb and *.wish are group of function for ruby and Tcl/Tk, respectively.

Eos/include

This is the directory that is stored include-file for compiling Eos.

Eos/include

Eos/src

This is the directory of source file in Objects/Tools of Eos.

Eos/src
Eos/src/Config

This is the directory that sets environment for compiling source file of each host type. It has template of Makefile for compiling at each directory.

Eos/src/Config
Eos/src/Objects

This is the directory that has source code of Objects(Library) of Eos. Compile here. Then, it copies to Eos/lib or Eos/include, and you can use by Tools.

Eos/src/Objects

Refer to Eos/src/Objects, about lower layer directory than here.

Eos/src/Tools

This is the directory that has source code of Commands(Small Tools) of Eos. Command that is compiled and linked here is installed to Eos/bin directory.

Eos/src/Tools

Refer to Eos/src/Tools, about lower layer directory than here.

Eos/util

This is stored libraries of other required system for Eos. It is left for continuity with past. Actually, real data is stored in Eos/hostdepend/XXXXXX/util/XXXXXX.

Eos/util
Eos/util/src
Eos/util/srcXXXXXX
Eos/util/XXXXXX

In src, tgz files of source code downloaded are put. However, It is difficult to redistribute, so we won't upload these in git. In srcXXXXX, files that are decompressed for each host type are put. Each directory serves Makefile.

$ make Init
$ make Config
$ make All

Executing as above command can compile. But, it may not compile depending on an environment.

Currently, libraries as the following are required.

TclTk

This is required at Interative Tools.(e.g. Display2) In the case of the application that creates a graph by using BLT, not only Tcl/Tk but also BLT is required. In addition, if you wish to easily use 3D Graphics(e.g. OpenGL), vtk is required too, it is used by commands as smolet.

Graphics

e.g. libtif, libjpg. Mainly, it is required for compatible with each image file format.

MATH

It is served for Numerical Calculation Library.(e.g. 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の直下でコンパイルし、ライブラリを作成する事になります。

Control each host of 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/