ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

cygwinコミュのx64環境上でのcygwin

  • mixiチェック
  • このエントリーをはてなブックマークに追加
現在仕事・自宅でWindowsXP32だったのですが
今年いっぱいくらいをめどにVistaまたは7へのx64環境移行を考えています。
きっかけのひとつは7のXP32互換モードです。
Cygwin関連はあまり整理できていなく頓珍漢な認識を披露するかもしれないのでよろしくお願いします。

Q1 cygwin は 32bit のPOSIX-UNIX互換環境であると認識しているが、
これの64bit環境というものは総本山で検討されているのか?またはすでに計画されているのか? 
  その場合、バイナリはx86/x64非互換ということになるでいいでしょうか?

Q2 1.5.X や現在ベータテスト中の1.7.X で x64 WIndows 上での動作報告があるが、
これは中心DLLのcygwin.dll が動作しているということなのでその上ではまったく同じ
  cygwin 32bit アプリケーションが動作する?

Q3 x64OS上のVM環境で作ったXP32bitやWIndows7に搭載されるというXP32bit環境の上で
  cygwinを32bit で動作させた場合と、ネイティブな環境でx64対応cygwinを動作させた場合、
  VMの差による動作の違いはあるにせよ、どれも同じように動作する。

Q4 cygwin の x64 対応というのはバイナリも含めてではなくx64OSのファイルシステムに対応して
  いるだけのいわばアドホックなパッチであると現状は考えていてよい?

以上です。この辺がすっきりするとありがたいです。よろしくお願いします

コメント(6)

どうもイロイロな誤解が混ざっているような気がするのですが…

ザックリ言えば,x86とx64はそもそも非互換です.ですからcygwinだろうが何だろうがx86用のバイナリとx64用のバイナリは互換ではありません.(x86/x64のどちらでもネイティブ動作をするかのように見えるファイルを作ることは可能ですが)

64bit Windowsはx64がネイティブな実行形式ですが,そのままだと「過去のWindows用ソフトウェアが全て使えない」という事態になるわけです.そこで,Microsoftは64bit Windowsにも32bitアプリが動くような仕組みをちゃんと入れてます.しかし,その「32bitアプリを64bit Windows上で使う」という仕組みが100%の互換性ではないようで,全ての32bitアプリが動くとは限りません.言い換えれば,それはアプリ次第と言えます.

で,現在のCygwinは「32bitと64bitのWindowsで動くよ」とトップページに書かれていますが,これは上記の意味での「64bitなWindows上の32bitアプリとして動作可能なことを確認しましたよ」という意味でしょう.多分.なぜならx64なファイルが別途配布されているとかいう話が一切無いからです.

一方,別の問題として,VistaとXPの互換性の問題があります.これも「XP用のアプリはVistaで使えない」というわけではないのですが,全てが動作するとも限りません.実際に動かないアプリがあると,ユーザはVistaへ移行する気が無くなるわけです.MicrosoftはVistaの失敗を踏まえて,「Windows7上では,XP自体を動作させるようなモードを用意する」という強引な解決方法を提供することにしたわけです.つまり,これは元からVistaやWindows7が持っている互換性ではカバーしきれかった場合の最終手段として用意されたものです.で,64bit Windows7に入るXPが32bitなのか64bitなのかは知りません.

ちなみに64bitなVistaにcygwin(1.5.x)を入れました(まだ入れただけでマジメに使ってないです)が,x86/x64とか意識することなく,普通に動作していますよ.
なるほど、ていねいなご回答ありがとうございました。> Wazbonesさん

ということは
x64 上で動く Cygwin実行形式アプリケーションは32bit形式のみで
メモリが4GB超になるとおそらくマシン全体のメモリはアクセスできないという事態も
発生しているわけですね。誰が使うんだという突っ込みは抜きにしてmalloc()的に。
>> メモリが4GB超になるとおそらくマシン全体のメモリはアクセスできない

おそらくそうでしょう.

というか,従来の32bit環境でも,cygwin環境では,通常のWindowsアプリとして使えるはずのメモリの最大容量(3GBとかでしたっけ?)までは使えないんじゃないですかね.←未確認ですが.
少なくとも2000年頃はレジストリにcygwinで使える最大容量を設定していました.今ではそういう設定は無くなったと思いますが,今でもメモリ管理は(完全にOS任せじゃなくて)cygwin1.dll経由で何かやっていそうなので,なんらかの制限があってもおかしくないですよね.

>> 誰が使うんだという突っ込みは抜きにしてmalloc()的に。

御意.自分のVista64bit環境も,基本的に自前のプログラムは32bitで生きていく予定です.ただ,1プロセスで4GBまで使えるので,32bit Windowsから移行したメリットは大きいですね.
ついでなので質問させてください。
64ビットVista で Cygterm (UTF-8 版 Teraterm に付いてくるやつ)がうまく動かないのですが、何か特別な設定がいるのでしょうか?
私はcygtermは使ったことが無いですが,

http://weierstrass.is.tokushima-u.ac.jp/ir/cygwin/cygwin2.html

の説明によると,普通に使えるように見えますが…「うまく動かない」とは具体的にどういう状態なんでしょうか?
ちょっと記憶に頼って書いているので間違ってるかもしれないですが、
初回起動時は起動できるのですが、
文字コードをEUCとかにするために、設定変更すると次回から起動できなくなったと思います。
同じような現象の人がいるかなぁ、と質問してみました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

cygwin 更新情報

cygwinのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング