Difference between revisions of "Eos System Architecture"

From EosPedia
Jump to: navigation, search
(Eos/bin)
 
(35 intermediate revisions by the same user not shown)
Line 1: Line 1:
Here, we show about structure on Eos as system.
+
Here, we show about architecture on Eos as system.
  
== Structure of directory on Eos ==
+
== Architecture of directory on Eos ==
  
 
=== Eos ===
 
=== Eos ===
Line 26: Line 26:
 
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.
 
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''' is directory for shell script of '''Tcl/Tk''', '''Ruyb''', '''Bash''', and '''perl''' , respectively. These can be called in '''Eos/bin'''.
+
'''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 ====
 
==== 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 ====
 
==== Eos/sbin ====
Eosの[[システムコマンド]]が格納されているディレクトリです。
+
This is the directory that stores [[System Command]] of Eos.
  
 
  Eos/sbin
 
  Eos/sbin
Line 39: Line 39:
 
  Eos/sbin/config
 
  Eos/sbin/config
 
   
 
   
sed/awkはそれぞれ、sed, awk用のコマンドが格納されています。
+
'''/sed''' and '''/awk''' are stored commands for '''sed''' and '''awk''', respectively.
configには、sbin内で利用する設定ファイルが格納されています。
+
'''/config''' is stored setting file for using in '''sbin'''.
  
 
==== Eos/lib ====
 
==== Eos/lib ====
Eosの[[ライブラリ]]が格納されているディレクトリです。
+
This is the directory that stores [[Library]] of Eos.
  
 
  Eos/lib
 
  Eos/lib
Line 50: Line 50:
 
  Eos/lib/*.wish
 
  Eos/lib/*.wish
  
XXXXXXは、それぞれ異なるホストタイプ($EOS_HOST)毎のディレクトリになっており、コンパイルされたバイナリがライブラリとして格納されています。
+
XXXXXX is directory that is determined by each host type, and it is stored binary data which is compiled as library.
  
*.rb, *.wishはそれぞれ、ruby, Tcl/Tk用の関数群です。
+
*.rb and *.wish are group of function for ruby and Tcl/Tk, respectively.
  
 
==== Eos/include ====
 
==== Eos/include ====
Eosをコンパイルするためのincludeファイルが格納されているディレクトリです。
+
This is the directory that stores include-file for compiling Eos.
  
 
  Eos/include
 
  Eos/include
 
  
 
==== Eos/src ====
 
==== Eos/src ====
EosのObjects/Toolsのソースファイルのディレクトリです。
+
This is the directory of source file in '''Objects/Tools''' of Eos.
  
 
  Eos/src
 
  Eos/src
  
 
===== Eos/src/Config =====
 
===== Eos/src/Config =====
ソースファイルをコンパイルするためのホストタイプ毎の環境を設定しているディレクトリです。コンパイルのための各ディレクトリのMakefileのテンプレートも存在しています。
+
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/Config
  
 
===== Eos/src/Objects =====
 
===== Eos/src/Objects =====
EosのObjects(ライブラリ)のソースコードがあるディレクトリです。ここでコンパイルされるとEos/lib及びEos/includeにコピーされ、Tools等から利用できる様になります。
+
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
 
  Eos/src/Objects
  
これより下部のディレクトリ構成は、[[Eos/src/Objects]]を参照して下さい。。
+
Refer to [[Eos/src/Objects]], about lower layer directory than here.
  
 
===== Eos/src/Tools =====
 
===== Eos/src/Tools =====
Eosの[[コマンド]]([[Small Tools]])のソースコードがあるディレクトリです。ここでコンパイル・リンクされたコマンドは、Eos/binのディレクトリにインストールされます。
+
This is the directory that has source code of [[Command]]s([[Small Tools]]) of Eos. Command that is compiled and linked here is installed to '''Eos/bin''' directory.
  
 
  Eos/src/Tools
 
  Eos/src/Tools
  
このディレクトリの下の構造に関しては、[[Eos/src/Tools]]を参照して下さい。
+
Refer to [[Eos/src/Tools]], about lower layer directory than here.
  
 
==== Eos/util ====
 
==== Eos/util ====
  
Eosのために必要な他のシステムのライブラリが格納されています。過去との継続のために残しています。
+
It stores libraries of other required system for Eos. It is left for continuity with past.
実際の実体は、Eos/hostdepend/XXXXXX/util/XXXXXXのなかに格納されています。
+
Actually, real data is stored in Eos/hostdepend/XXXXXX/util/XXXXXX.
  
 
<pre>
 
<pre>
Line 96: Line 95:
 
</pre>
 
</pre>
  
srcにはダウンロードしてきたソースコードのtgzファイルをおいています。ただし、再配布が困難であるため、gitの中にはアップロードしていません。srcXXXXXは、それらをホストタイプ毎に解凍したものが置かれます。それぞれのディレクトリにMakefileが用意されています。
+
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.
  
 
<pre>
 
<pre>
Line 104: Line 103:
 
</pre>
 
</pre>
  
の順に実行すればコンパイルされるはずです。ただ環境に応じて、必ずしもコンパイルできない場合があります。
+
Executing as above command can compile. But, it may not compile depending on an environment.
  
現在、必要となるライブラリは下記の様になります。
+
Currently, libraries as the following are required.
  
 
===== TclTk =====
 
===== TclTk =====
[[Display2]]のようなInterativeなツールのために必要です。[[BLT]]を使って、グラフ等を作成しているアプリケーションでは、Tcl/Tkだけではなく、BLTまで必要です。OpenGL等の三次元グラフィックスを利用しやすくするには、[[vtk]]も必要で、smoletなどで必要としています。
+
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 =====
 
===== Graphics =====
[[libtif]][[libjpg]]など、主として、各種の画像ファイルフォーマット等に対応するために必要です。
+
Mainly, it is required for compatible with each image file format. (e.g. [[libtif]], [[libjpg]])
  
 
===== MATH =====
 
===== MATH =====
[[fftw]]などの数値計算のためのライブラリのために準備しています。
+
It is served for Numerical Calculation Library.(e.g. [[fftw]])
  
 
=== EosData ===
 
=== EosData ===
 
==== Eos/data ====
 
==== Eos/data ====
Eosのテストなどのためのdataが格納されたディレクトリです。まだ整理が十分とは言えませんので、大きく内容が変更になる可能性があります。
+
This is the directory that stores Eos test data. Since it is unfiled still, its contents may greatly change.
 
+
 
  Eos/data
 
  Eos/data
  
 
=== EosOptional ===
 
=== EosOptional ===
 
==== Eos/doc ====
 
==== Eos/doc ====
Eosのためのドキュメントが格納されているディレクトリです。
+
This is the directory that stores documents for Eos.
  
 
  Eos/doc
 
  Eos/doc
Line 131: Line 129:
 
=== EosOthers ===
 
=== EosOthers ===
 
==== Eos/others ====
 
==== Eos/others ====
Eos以外のオープンソースが提供するソースコード等を保管したディレクトリです。
+
This directory stores data as provided source code by open source except for Eos.
それぞれのバージョン毎に仕様が異なるために、Eosが保証しているソースコードを保管しています。
+
There is difference among specification of each version, so source code that is supported by Eos is stored.
  
  utilsrc    # ライブラリ等のソースファイル
+
  utilsrc    # Source file like library
  utiltools  # 単独のアプリケーション(インストールが自由で無い場合向け)
+
  utiltools  # Single Application (For the person who is not free to install)
  
の二つのディレクトリからなっています。
+
It is consist at above directories.
  
これらをコンパイルしたライブラリがhostdepend/XXXXXX/util/XXXXXXの下に格納されており、動作を保証しています。
+
Library compiled from these is stored under hostdepend/XXXXXX/util/XXXXXX, and it is supported about running.
このファイルは、util/XXXXXXXからリンクが張られており、そちらを利用します。
+
This file is linked for using from util/XXXXXXX.
  
  
ただし、glibcなどのLINUX等が提供するバイナリのバージョンによってはうまく動作しない可能性があります。その場合には、こちらのothersからリンクを設定されているutil/srcXXXXXXの直下でコンパイルし、ライブラリを作成する事になります。
+
But, depending on a version of binary data that is provided by LINUX like glibc, it may not well work. In this case, it is required to compile at directly under just util/srcXXXXXX that is linked from others, for create libraries.
  
== Eosのホスト毎の制御 ==
+
== Control each host of Eos ==
 Eosでは、ヘテロな環境でも一つのディレクトリで管理し、実行できるような仕組みをとることにしています。
+
:Eos has a mechanism that can manage and execute in one directory, even if there is in hetero environment.
  
  
=== 環境変数による切り替え ===
+
=== Switching by environment variable ===
Eosのホスト毎の管理は、$EOS_HOSTと$EOS_HOSTDIRの二つの環境変数により、切り替えを行っています。
+
It performs switching as manage of each host by 2 environment variables: $EOS_HOST and  $EOS_HOSTDIR .
  
=== Eosのホスト毎のファイルの管理方法の変更 ===
+
=== management method for files of each Eos host was changed ===
最近、git管理に変えた際に、ホスト毎の切り替えが大変困難になってしまいました。そこで、バイナリ毎にダウンロード出来るようにディレクトリ構成を変更しました。(2013/02/01版より)
+
The other day we changed git management, then it is very difficult to switch each host. So, we change architecture of  directory so that you can download each binary data. (Since 2013/02/01 version)
  
以前のものを使われている方は、src直下のツール(Tools)やオブジェクト(Objects)のそれぞれのディレクトリにバイナリが置かれています。現在のものをダウンロードするとそれらは全て下記のホストごとのディレクトリへのリンクに変更になっています。ご注意下さい。
+
If you have older version, binary data is put at each directory of Tools and Objects in directly under src. When current version is downloaded, it is changed as link for all directory of the each following host. Note it.
  
2013/02/01移行は、各ホスト毎のバイナリ等は、すべてEosの直下のhostdependのディレクトリ以下に、$EOS_HOSTDIRに従って保存するように移動しました。これにより、ホストタイプ毎にそのディレクトリをコピーやバックアップすれば済むようになりました。これが現在のダウンロードサイトからダウンロード出来るようにしています。
+
At since 2013/02/01 version, binary of each host is moved as saving in hostdepend(directly under Eos) or lower layer directory depending on $EOS_HOSTDIR . By virtue of this, all you have to download or backup only directory required for each host type. You can download it at current download site.
  
現在のバージョンのホスト毎のディレクトリ構成
+
Architecture of directory for each host on current version
  
 
  $EOS_HOME/hostdepend/$EOS_HOSTDIR/bin
 
  $EOS_HOME/hostdepend/$EOS_HOSTDIR/bin

Latest revision as of 06:51, 3 September 2014

Here, we show about architecture on Eos as system.

Architecture 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 stores 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 stores 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

It stores 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

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

MATH

It is served for Numerical Calculation Library.(e.g. fftw)

EosData

Eos/data

This is the directory that stores Eos test data. Since it is unfiled still, its contents may greatly change.

Eos/data

EosOptional

Eos/doc

This is the directory that stores documents for Eos.

Eos/doc

EosOthers

Eos/others

This directory stores data as provided source code by open source except for Eos. There is difference among specification of each version, so source code that is supported by Eos is stored.

utilsrc     # Source file like library
utiltools   # Single Application (For the person who is not free to install)

It is consist at above directories.

Library compiled from these is stored under hostdepend/XXXXXX/util/XXXXXX, and it is supported about running. This file is linked for using from util/XXXXXXX.


But, depending on a version of binary data that is provided by LINUX like glibc, it may not well work. In this case, it is required to compile at directly under just util/srcXXXXXX that is linked from others, for create libraries.

Control each host of Eos

Eos has a mechanism that can manage and execute in one directory, even if there is in hetero environment.


Switching by environment variable

It performs switching as manage of each host by 2 environment variables: $EOS_HOST and $EOS_HOSTDIR .

management method for files of each Eos host was changed

The other day we changed git management, then it is very difficult to switch each host. So, we change architecture of directory so that you can download each binary data. (Since 2013/02/01 version)

If you have older version, binary data is put at each directory of Tools and Objects in directly under src. When current version is downloaded, it is changed as link for all directory of the each following host. Note it.

At since 2013/02/01 version, binary of each host is moved as saving in hostdepend(directly under Eos) or lower layer directory depending on $EOS_HOSTDIR . By virtue of this, all you have to download or backup only directory required for each host type. You can download it at current download site.

Architecture of directory for each host on current version

$EOS_HOME/hostdepend/$EOS_HOSTDIR/bin
                                 lib
                                 util
                                 src/WORLD/CLASS/NAME/src/