2012-07-01

glibc 2.16がリリース。x32をサポート

Carlos O'Donell - The GNU C Library version 2.16 is now available.
[Phoronix] GNU C Library 2.16 Brings Many Features (GLIBC)

GNU C Library 2.16がリリースされた。

今回の目玉は、x32をサポートしたことだろう。これにより、x32をサポートするための環境である、カーネル、コンパイラー、libcがひと通り揃ったことになる。

x32については、もう読者は知っているだろう。x84_64環境における、64bitコードだが32bitアドレス長という変則的なABIのことである。これにより、64bitコードの恩恵(追加の汎用レジスタや機能など)を受けつつ 、しかもアドレス長を32bitに抑えることで、32bit、64bitよりもパフォーマンスの向上をはかることができる。

本の虫: x32 ABIの簡易的なまとめ

もちろん、32bitアドレスを使うわけだから、ひとつのプロセスから見えるメモリ空間は、ユーザーとカーネルあわせて4GBに制限されてしまうわけだが、未だに多くのソフトウェアは、32bitアドレス空間だという現状からすれば、それほど問題にはならない。

しかし問題は、x32はまったく別のABIだということである。比較的最近のx86_64カーネルを使い、コンパイラーにx32用のコードを吐かせ、もちろんライブラリもすべてx32に対応しなければならない。さらに、動的なライブラリをどこに置くのかという問題もある。Debian系列ならMultiarchが使えるが、その他のディストロではどうするのか。

ディストロでのサポートは、現在のところGentooが先行している。まあ、Gentooは仕組み的に早く対応できるのだろう。しかし、いくら対応したとしても、結局ライブラリをx32用にコンパイルしなければならないわけだ。僅かなパフォーマンス向上には、どうも見合わないような気がする。それに結局32bitアドレス空間は、ますます、実感として狭くなっていくことに疑いはない。640KBは、もはや誰にとっても十分ではないように。

No comments: