- - PR -
64ビットモードでのJNI
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-25 09:51
64ビットモードのjavaから、JNIでCのプログラムを呼ぶ際、呼ばれるCのプログラムと、さらにそこから呼ばれるプログラムも、64ビットアプリケーションである必要があるでしょうか?
(呼び出しは、コマンド経由の呼び出しでは無く、関数呼び出しです) 環境としては、以下の二つを考えております。 (1) プロセッサ:IA-64 OS:HP-UX 11i v2 Cコンパイラ:HP Cコンパイラ (2) プロセッサ:EM64T OS:Red Hat Enterprise Linux AS 4 Cコンパイラ:gcc ご存知の方がいらっしゃいましたら、ご教授お願いできればと思います。 | ||||||||
|
投稿日時: 2007-01-25 11:59
ふつうに考えればそうなんじゃないでしょうか。
| ||||||||
|
投稿日時: 2007-01-25 13:10
返信ありがとうございます。
(1)に関してはそうだと考えておりましたが、明記されたものが見つからず、ここで質問させて頂いた次第です。 (2)に関しては、64ビットアプリケーションで無くても大丈夫ではないかと推測しておりました。 何故かというと、AMD64に関してではありますが、「64ビットモードと互換モードは、コードセグメントごとに切り替えて共存させることができる」という情報がありましたので、32ビットアプリが混じっても大丈夫ではないかと思った次第です。 情報をお持ちの方がいらっしゃいましたら、お願いいたします。 | ||||||||
|
投稿日時: 2007-01-25 13:11
こんにちは。
64 ビット Sparc-v9 プラットフォームの話ですが http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/vm/index.html 下記のように書かれていますけれども、
64ビットの移植には、下記のサイトは参考にならないでしょうか。 Linuxアプリケーションの64ビット・システムへの移植 | ||||||||
|
投稿日時: 2007-01-25 13:20
追記です。参考にならないでしょうか。
WebLogicのドキュメントのようですが、 http://h50146.www5.hp.com/products/software/oe/hpux/developer/document/pdfs/PDFHS04085-01.pdf#search='64%E3%83%93%E3%83%83%E3%83%88%E3%83%A2%E3%83%BC%E3%83%89%20Java' から引用
[ メッセージ編集済み 編集者: Tdnr_Sym 編集日時 2007-01-25 13:33 ] | ||||||||
|
投稿日時: 2007-01-25 14:10
AMD64/EM64T 用の Windows x64 も Linux も、1つのユーザプロセス内に64bitコードと32bitコードを混在させることはできません。
OSがその機能を使って、64bitプロセスと32bitプロセスの同居を実現するんでしょう。 [ メッセージ編集済み 編集者: スフレ 編集日時 2007-01-25 14:12 ] | ||||||||
|
投稿日時: 2007-01-25 14:51
Tdnr_Symさん、スフレさん、返信ありがとうございます。
(1)に関しては、WebLogicのドキュメントから、「32ビットJavaからは32ビットアプリ、64ビットJavaからは64ビットアプリしか呼び出せない」という事だと思います(リンク先も同様と思います)。 (2)に関しては、スフレさんに返信頂いた内容から、「一つのプロセス内に32ビットコードと64ビットコードを混在させる事はできない」という事ですので、JNIによる呼び出しも(1)と同じになると考えられます。 | ||||||||
|
投稿日時: 2007-01-25 15:24
すいません、一応確認させて頂きたく、返信致しました。
例えば、下記のサイトを見ますと、「64ビットベースで書かれたプログラムから32ビットベースのライブラリを呼び出して実行する、といったことも可能である。」と書かれています。 http://e-words.jp/w/x86-64.html ですから、AMD64の場合(おそらくEM64Tも)、1つのユーザプロセス内に64bitコードと32bitコードを混在させることができるように思えるのですが、OSレベルで、可能となっていないという事でしょうか? |