32bitと64bit検討
背景
- 13.10からubuntu.comのdefaultが64bit版になっている。
- ではRemixでいつまでi386をサポートしよう? という話
Remixの対応アーキテクチャはどうする?
- A. 64bit推奨、32bitもリリース。
- B. 64bitのみ「リリース」、32bitはISOは作るがrelengせずas-isで提供
- もともとRemixもas-isだけど、32bitはテストすら省略、ISOを転がすだけ。
- C. 64bitのみリリースして32bitはISO作らない。
- D. 32bit対応版をrelengありで出すぐらいならそもそもXubuntuなりの日本語Remixを出す
32bit版ISO廃止による問題
- 32bitでないと動かない環境を持っている初心者が困る。
- 初心者でなければインストール後にRemix相当にする手順を踏むだけなので、おそらく困らない
- 「日本語環境を前提にしたLive Desktop」という意味では困る。
基礎知識
そもそも14.04はXなのかMirなのか?
現状では不透明。
- Mirの場合はUnityを使う上でのGPUサポートが若干厳しくなる(パフォーマンス的に特段問題があるわけではない古いNVIDIA/AMDのGPUが未サポートになる)。
- Xの場合はUnityの制約はこれまでと同様で、Compizがハードウェアアクセラレーテッドで動かないと事実上実用にならない。
ハードウェア面でどんな環境が困るか
IA32/x64環境において、64bit onlyでのリリースだとどれぐらいの世代を切り捨てることになるのかを考えるための基礎知識。
x64 Ready
x64で現役と考えられるCPUは以下。
IA
- Core MA以降のIntel CPU
- K8以降のAMD CPU
LPIA
- Intel製LPIA全て(= Bonnel以降)
- Bobcat以降のAMD製LPIA全て
- Centaur以降のVIA CPU
x64 not ready, but useful
32bitでないと困るが(周辺を含めて)、「Ubuntu環境で」(Compiz+Unity or Mirで)現役と考えられるCPUのリスト
- 仮想化ハイパーバイザー上で、ハイパーバイザーに64bitサポートがない場合(親が64bitでない / CPUに仮想化支援がない / etc..)
- Atom(無印, N2x0, Dxxx, Nxxx)(CPUパワーはともかくGPUがつらく、メモリも2GBものが非常に多い)
- Atom(N3xxx,Z3xxx) (CPUもGPUも問題ないがメモリが2GB)
- あとは……?
x64 not ready, use Lubuntu/Xubuntu
64bitが走るが、現実的に64bit環境のUbuntu(Unity)は厳しそうと考えられるCPUのリスト
- Atom(D2xxx, Z2xxx)(CPUパワーはともかくGPUがまるで実用でなく、かつメモリも2GBものが非常に多い)
64bit非対応で(周辺を含めて)、Ubuntu(Unity)では厳しそうと考えられるCPUのリスト
- 頑張れば動くかも
- Core Duo/Solo (CPUパワーはそれなりだが、i845GME等のGPUがつらい)
- Pentium 4(CPUパワーが足りない。GPUもつらい可能性が高い)
- Atom Z
- あきらかにつらい
- Pentium 3全コア
- AthlonXP/MP全コア
- VIA Nehemia派生
参考
現時点でのUbuntuのi386はPAE必須。結果として2002〜2003年のCPUは切り捨てられている。 これと同じぐらいの世代のCPUは「Ubuntu」フレーバーのリリースでは(Unityもまともに動かない可能性が高いので)捨ててもいい気がする。 XubuntuやLubuntuならまた話は違う。
そういう意味での「i386だがNGなCPU」リストは以下。
- 仮想化ハイパーバイザー上で、ハイパーバイザーのPAEを有効にしていない場合
- Intel Pentium MとCeleron MのうちFSB 400MHzのもの(≒おおむね855GMEチップセットと組み合わされているもの)
- Pentium MのBaniasコアすべて(型番的には「Pentium M 1.30GHz」のような周波数表記のものと705/718/713/900)
- Pentium MのDothanコアの一部(型番7*5と7*8と723と733)
- Celeron MのBaniasコアすべて(310~340)
- Celeron MのDothanコアの一部(350・360・353ULV)
- VIA C3
- AMD Geode LX
- AMD Geode GX
DM&P Vortex86MX
64bit化のpros/cons
64bitにする場合のpros/cons list。比較対象はi386-PAE。
総じてprosが弱いが、ubuntu.comに揃えられるという一点でGo?
pros
- ubuntu.comリリースのpreferredに揃えられる
-> それなりに意味がある。
- 32bitを捨てられる
-> LTSなのでそれなりに意味がある(2017まで使われるわけで)
- IA32を捨ててAMD64にするのは世の流れではある。
- とはいえユーザランドプロセスはmultiarchされてi386バイナリも走る。
- プロセス毎のメモリ空間が広がる。
-> あまり意味がある変化ではない。
- 向上幅としては大きいがユースケースにマッチしないので影響が大きいとは言えない。
- デスクトップで3GB Limitで困るケースはあまり考えられないがローカルにRDBMSあたりを走らせるケースでは幸せになれる?
- Webブラウザがメモリキャッシュとしてそれぐらいまでは使う?
- 性能向上する?
-> あまり意味がある変化ではない。
- Nehalem MA系列とK8/K10系列はレジスタ増加分は高速化する
- ただし、もともとデスクトップのワークロードではタスクスイッチによるハザード頻度が高すぎるので誤差。
- Core MAやそれ以前のIntelプロセッサは性能向上するかというと相当微妙
- CPUインテンシブなタスクで性能差が出るかというと結構微妙なような。
- Core MAの宿命的な問題。64bitワークロードはL2ハザードが起きやすくなるという弱点もある(けどやはりハザードの方がよほど大きいので誤差に収まる)。
- とはいえ悪い方向には働かない。
- そろそろ純正Core MA(2008年リリース)は2010年リリースでobsoletedな気がしなくもない。
- Nehalem(というかArrandale)ですら2009〜2010にリリースされている。
- CPUインテンシブなタスクで性能差が出るかというと結構微妙なような。
- ext3使用時の利用可能なファイルシステム最大サイズが増える
-> あまり意味がある変化ではない。
- デフォルトext4なのであまり変化はないが……。
標準モードで4TB -> 8TB
拡張で8TB -> 16TB
cons
- 64bit binaryの方が大きいので、必要メモリが増える
- 512MBメモリで実用、というのは厳しくなる。i386だと512MBでも(Webブラウザ以外は)一応実用。
- たぶん1GBでFirefoxを動かさなければ実用範囲。
- 64bit binaryオンリーで2GBなら快適
- 「快適」ではあるがi386比で本当に幸せか、というとかなり疑問が残る
- Core Duo/Pentium M/Athlon XP等の32bit CPUで動作しなくなる。
- 2004年ぐらいのマシンが足切りされる。
- i386版を使って頂くしか。
- Multiarch由来のFTBFSを食らう可能性がある
- が、i386でも食らう可能性がとても高いので気にしなくてもよさそう。
- 当然ながらx64非対応CPUでは動かない
仮想化環境で動かす場合、64bitゲストマシンを動かすにはAMD-V or VT-xが必須になる場合がある(VirtualBox等)