詳細/異種ハードウェア混在環境

Top > 詳細 > 異種ハードウェア混在環境

異種ハードウェア、OSでの分散

内部データの表現が同じなら可能です。
具体的には

charの幅
uint32_t, uint64_t, size_t の幅、バイトオーダー
int32_t, int64_t の幅と負数の表現、バイトオーダー
double の幅と表現(オーダー含む)
ポインタ(void *)の幅

が一致すれば、異なるOS、ハードウェアでも連携して動作します。

(病理学的には、Cの規格を厳密に参照すると、上記の制約でも不十分ですが、
実質的には問題ありません)

通信部分の仕組み

クライアントとサーバは独自のプロトコルで動作しています。
そのプロトコルでは、GETAssocで用いられる一部のデータについて
整列させる関数を用いることで簡素化を図っています。
xgserv.cにあるmar_で始まる関数16個が整列関数です。
一方、整列されたデータを構造体に再組み立てするのは
marshal.cにあるumarですので、これらに手を加えて
データ表現の不一致に対応できるようにすれば、
ヘテロ環境でも動作可能です。

最終更新日: 2014-12-09 (火) 18:25:46 (983d)

このページをブックマーク:

このページのURL(コピペして利用下さい):

TOP