11628


訳あって古い（1998年作成）プログラムを実行したいと思っています．

X線回折に関するとあるプログラムなのですが，IRIX6.2,6.3でコンパイルされたプログラムのようです．拡張子が
".x"のファイルを使用しており，これはIRIX6.xで実行可能なファイルだと書かれています．

Linux(CentOS6.6: 64bit, Ubuntu14.10: 64bit)で実行を試みましたが，エラーが出てしまいました．

> cannot execute binary file: Exec format error

xファイルはMicrosoftのdirectx9.0以前がサポートしているらしいので，directx9.0cをインストールしようとしたのですが，.NET
Frameworkのインストールがうまくいかず，保留中です．  
（※進展があれば追記します）

  
そもそも素人には，directxを入れれば解決する問題なのか，それともなにか他の問題なのか判断がつきません．IRIXでコンパイルされたプログラムを現在のLinuxで使用することはできないのでしょうか？

プログラムは以下のリンクから入手可能です．ダウンロードおよび実行でコンピュータに問題が生じたということは今のところありませんが，あくまで自己責任でダウンロードをお願いします．  
<http://wayback.archive.org/web/20030212203113/http://tui.foodsci.purdue.edu/CPRL/>


CC BY-SA 3.0
2015-06-20T11:10:11.403
11557
2015-06-23T03:27:23.777
2015-06-22T12:04:56.460
3639
9744
question
linux unix
IRIX 6.x で使用されていたxファイルを実行したい


リンク先のアーカイブにはソースコード(cprl.c)も含まれていますので、gcc などでコンパイルすれば良いのではないでしょうか。Warning
が多数表示されますが、実行形式ファイルが生成されます。

[code]

    $ gcc -O -o cprl cprl.c -lm
    
[/code]

同梱されている入力データのサンプルを指定して実行したところ、それらしい結果のファイルが出力されます。

[code]

    $ ./cprl example_1.inp output.dat output.ps
    
[/code]

ただし、予想される出力結果(`example_1.out`)と `output.dat` の中身に違いがあります。


CC BY-SA 3.0
2015-06-20T11:32:03.483
11559
2015-06-20T11:32:03.483
11557
answer


前提知識として  
IRIS は Silicon Graphics International 社製の MIPS プロセッサを使ったマシンです。  
IRIX は IRIS 上で動く UNIX 系 (SysV ベース BSD 拡張あり) OS です。  
提供打ち切りが 2006 年、サポート終了が 2013 年だったか？  
2015 年現在 IRIS の新品マシンを入手するのは困難でしょう。

で・・・  
動かしたいソフトのソースコードはあるのですか？あれば Linux に移植してください。  
バイナリしかないのであれば考えられる手は  
1. 中古 IRIS マシンを購入してください (IRIX がインストール済みであることを確認)  
2. Linux/Windows 上で実行できる IRIX Simulator/Emulator を入手してください。  
URI 書いていいのかよくわからないので検索してみてください。

異 CPU 異 OS だから IRIX 用バイナリが現在の Linux でそのまま動作することはありません。  
DirectX/.NET Framework は無関係です。


CC BY-SA 3.0
2015-06-22T01:27:36.207
11591
2015-06-22T01:27:36.207
8589
11557
answer


DirectXのサポートする[Xファイル](https://msdn.microsoft.com/ja-
jp/library/bb174837\(v=vs.85\).aspx)は

> X
> ファイルは、メッシュ、テクスチャー、アニメーション、およびユーザーによる定義が可能なオブジェクトの格納を可能にする、テンプレート駆動型フォーマットを提供します。

であり、質問の「X線回折」とは無関係です。

/* 以前SGI O2上でIRXI 6.xを使用していました。 */


CC BY-SA 3.0
2015-06-22T01:40:58.000
11593
2015-06-22T01:40:58.000
4236
11557
answer


ソースコード見たところLinuxでもメイク出来そうですね。

前提条件  
make と cc が必要です

[code]

    $ which cc
    /usr/bin/cc
    $ which make
    /usr/bin/make
    
[/code]

ソースのダウンロートと展開

[code]

    $ wget http://wayback.archive.org/web/20030212203113/http://tui.foodsci.purdue.edu/CPRL/cprl_1_0.tar.gz
    --2015-06-23 12:22:40--  http://wayback.archive.org/web/20030212203113/http://tui.foodsci.purdue.edu/CPRL/cprl_1_0.tar.gz
    wayback.archive.org をDNSに問いあわせています... 207.241.224.26, 207.241.224.26
    wayback.archive.org|207.241.224.26|:80 に接続しています... 接続しました。
    HTTP による接続要求を送信しました、応答を待っています... 302 Moved Temporarily
    場所: /web/20010614203444/http://tui.foodsci.purdue.edu/CPRL/cprl_1_0.tar.gz [続く]
    --2015-06-23 12:22:40--  http://wayback.archive.org/web/20010614203444/http://tui.foodsci.purdue.edu/CPRL/cprl_1_0.tar.gz
    wayback.archive.org|207.241.224.26|:80 に接続しています... 接続しました。
    HTTP による接続要求を送信しました、応答を待っています... 200 OK
    長さ: 102600 (100K) [application/x-tar]
    `cprl_1_0.tar.gz' に保存中
    
    100%[==========================================================>] 102,600      221K/s 時間 0.5s
    
    2015-06-23 12:22:41 (221 KB/s) - `cprl_1_0.tar.gz' へ保存完了 [102600/102600]
    
    $ tar xfvz cprl_1_0.tar.gz
    cprl_1_0/
    cprl_1_0/cprl.c
    cprl_1_0/cprl.cfg
    cprl_1_0/cprl.data
    cprl_1_0/cprl.pl
    cprl_1_0/cprl.x
    cprl_1_0/cprl_manual.ps
    cprl_1_0/example_1.inp
    cprl_1_0/example_1.out
    cprl_1_0/example_1.ps
    cprl_1_0/makefile
    
[/code]

ソースをビルド

[code]

    $ cd cprl_1_0
    $ make
    cc    -c -o cprl.o cprl.c
    cprl.c: In function ‘main’:
    cprl.c:179: 警告: incompatible implicit declaration of built-in function ‘exit’
    cprl.c:238: 警告: incompatible implicit declaration of built-in function ‘malloc’
    cprl.c:350: 警告: incompatible implicit declaration of built-in function ‘malloc’
    cprl.c:516: 警告: incompatible implicit declaration of built-in function ‘exit’
    cc -o cprl.x cprl.o  -lm
    
[/code]

実行

[code]

    $ ./cprl.x example_1.inp test.out example_1.ps
    $ ll test.out
    -rw-rw-r--. 1 admin admin   3270  6月 23 12:23 2015 test.out
    $ cat test.out
    CPRL version 1.0 June 1998
    
    triclinic vs monoclinic
    
    Resolution is 0.30 reciprocal angstroms.
    
    Option 1: Plot two unit cells for comparison.
    
    First unit cell parameters:
    6.74 5.93 10.36 117.00 113.00 81.00
    tau = 0.00 theta = 0.00
    
    Reciprocal cell parameters:
    0.16 0.19 0.12 64.40 68.70 88.54
    
    Cylindrically projected recipriocal lattice points:
    
       h    k    l      rho        R         Z
       0    0    0    0.0000    0.0000    0.0000
      -1    0    0    0.1612    0.1612    0.0000
       1    0    0    0.1612    0.1612    0.0000
       0   -1    0    0.1893    0.1893    0.0000
       0    1    0    0.1893    0.1893    0.0000
      -1    1    0    0.2455    0.2455    0.0000
       1   -1    0    0.2455    0.2455    0.0000
      -1   -1    0    0.2518    0.2518    0.0000
       1    1    0    0.2518    0.2518    0.0000
       0    0    1    0.1163    0.0648    0.0965
      -1    0    1    0.1609    0.1288    0.0965
       0   -1    1    0.1742    0.1450    0.0965
      -1   -1    1    0.2104    0.1870    0.0965
       1    0    1    0.2305    0.2093    0.0965
       0    1    1    0.2615    0.2430    0.0965
       1   -1    1    0.2615    0.2431    0.0965
      -1    1    1    0.2814    0.2644    0.0965
       0   -1    2    0.2278    0.1209    0.1931
      -1   -1    2    0.2284    0.1221    0.1931
      -1    0    2    0.2299    0.1248    0.1931
       0    0    2    0.2326    0.1297    0.1931
    
    Second unit cell parameters:
    7.88 8.20 10.36 90.00 90.00 96.50
    tau = 0.0000 theta = 0.0000
    
    Reciprocal cell parameters:
    0.13 0.12 0.10 90.00 90.00 83.50
    
    Cylindrically projected recipriocal lattice points:
    
       h    k    l      rho        R         Z
       0    0    0    0.0000    0.0000    0.0000
       0   -1    0    0.1227    0.1227    0.0000
       0    1    0    0.1227    0.1227    0.0000
      -1    0    0    0.1277    0.1277    0.0000
       1    0    0    0.1277    0.1277    0.0000
      -1    1    0    0.1668    0.1668    0.0000
       1   -1    0    0.1668    0.1668    0.0000
      -1   -1    0    0.1869    0.1869    0.0000
       1    1    0    0.1869    0.1869    0.0000
       0   -2    0    0.2455    0.2455    0.0000
      -2    0    0    0.2554    0.2554    0.0000
       1   -2    0    0.2636    0.2636    0.0000
      -2    1    0    0.2706    0.2706    0.0000
      -1   -2    0    0.2893    0.2893    0.0000
      -2   -1    0    0.2957    0.2957    0.0000
       0    0    1    0.0965    0.0000    0.0965
       0   -1    1    0.1561    0.1227    0.0965
       0    1    1    0.1561    0.1227    0.0965
      -1    0    1    0.1601    0.1277    0.0965
       1    0    1    0.1601    0.1277    0.0965
      -1    1    1    0.1927    0.1668    0.0965
       1   -1    1    0.1927    0.1668    0.0965
      -1   -1    1    0.2103    0.1869    0.0965
       1    1    1    0.2103    0.1869    0.0965
       0   -2    1    0.2638    0.2455    0.0965
      -2    0    1    0.2731    0.2554    0.0965
       1   -2    1    0.2807    0.2636    0.0965
      -2    1    1    0.2873    0.2706    0.0965
       0    0    2    0.1931    0.0000    0.1931
       0   -1    2    0.2288    0.1227    0.1931
       0    1    2    0.2288    0.1227    0.1931
      -1    0    2    0.2315    0.1277    0.1931
       1    0    2    0.2315    0.1277    0.1931
      -1    1    2    0.2551    0.1668    0.1931
       1   -1    2    0.2551    0.1668    0.1931
      -1   -1    2    0.2687    0.1869    0.1931
       1    1    2    0.2687    0.1869    0.1931
    
    EOF: Thank you.
    
[/code]

実行結果が正しいかはわたしには分かりませんのであしからず。


CC BY-SA 3.0
2015-06-23T03:27:23.777
11628
2015-06-23T03:27:23.777
5008
11557
answer