
Linux/Unixで64ビットに切り替えるには? Windowsの世界ではまだ問題があるようですが、*nixの世界ではどのように処理されるのか疑問に思います。
答え1
カーネルを64ビットにするための作業が完了しました。ううしばらく前に私はDEC Alphaシステムを使用していました。しかし、手順は別の話です。
これまで私が見た一般的な合意は次のとおりです。
- 混合バイナリを持つシステム用の別々の
/lib
ディレクトリ/lib64
- 64ビットにコンパイルしてください。コンパイルが失敗した場合は、ソースコードを64ビットに消去できるまで32ビットに再コンパイルしてください。
それ以外には、32/64ビットの混合ビルドで「悲しみ」があまり見られません。
答え2
Windowsと* ixは変換に異なるデータモデルを使用します。このUNIX.orgページ少し古いが、まだ長所と短所の良い概要を提供します(long long
後でC99に追加され、少なくとも64ビットが必要です)。また、見ることができますウィキペディア記事同じトピックに。 UNIX.orgの記事の最後で述べたように、ほとんどのUNIXシリーズシステムはLP64を使用しています。つまりlong
、、、long long
およびポインタはすべて64ビットです。
WindowsはいわゆるLLP64データモデルを使用します。これはlong long
、ポインタとポインタだけが64ビットであることを意味します。 long
まだ32ビットです。その理由の1つは、単にlong
適切であると思われるものを再確認して修正したくないためですint
。
答え3
Linuxディストリビューションはほとんどオープンソースなので、大きな変化がありました。 Skypeなどの独自のソフトウェアを使用しない限り、何の欠点もなく純粋な64ビットシステムを実行できます。
しかし、IMHOの実際の違いは通常、最初に移植されるオープンソースソフトウェアであるため、排他的でオープンな、UnixとWindowsに近いです。 (一部の申請者は何かを再コンパイルする必要があるかもしれません。いくつかのコンパイルの問題を解決するかもしれません)。 ;) - そして最後に属性を移植しました。
さらに、Linuxにはリポジトリがある可能性があるため、インストールは自動的に処理されます。 64ビット版または32ビット版を選択する必要はありません(システムは自動的にバージョンを選択します)。 Windowsからプログラムをダウンロードすると、別々の64ビットバージョンと32ビットバージョンがあります。
- サーバーのファイルサイズの2倍
- ユーザーは自分のバージョンを知る必要があります。それともある意味では違うけど
これがWindowsのバイナリが通常32ビットである理由のようです。これはすべての場合に適用され、誰もが64ビットバージョンを使用するわけではありません。
答え4
実際、ACMキューで「64ビットに向かう長い旅」を試してみてください。 http://queue.acm.org/detail.cfm?id=1165766 このニュースは後でACMコミュニケーション部門によって発見されました。最初の64ビットマイクロプロセッサはMIPS R4000で、1992年第1四半期にSGI Crimsonにリリースされ、その年末にはDec Alphasにリリースされました。
R4000は最初は32ビットモードで実行され、後で64/32モード、つまり64ビットオペレーティングシステム、64または32ビットユーザーコードで実行されました。 Alphasは常に64ビットでのみUNIXを実行します。 (32ビットアプリケーションのインストールされた基盤がないため、合理的な選択です。)
SGIは1990年代後半に64ビットLinux(Itaniumで実行)に貢献しました。その頃、XFSはLinuxに移植されました(実際には64ビットが必要です)。